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, such as a cluster or an Amazon EMR Studio.
330// Tags make it easier to associate resources in various ways, such as grouping
331// clusters to track your Amazon EMR resource allocation costs. For more information,
332// see Tag Clusters (https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-tags.html).
333//
334// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
335// with awserr.Error's Code and Message methods to get detailed information about
336// the error.
337//
338// See the AWS API reference guide for Amazon EMR's
339// API operation AddTags for usage and error information.
340//
341// Returned Error Types:
342//   * InternalServerException
343//   This exception occurs when there is an internal failure in the Amazon EMR
344//   service.
345//
346//   * InvalidRequestException
347//   This exception occurs when there is something wrong with user input.
348//
349// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/AddTags
350func (c *EMR) AddTags(input *AddTagsInput) (*AddTagsOutput, error) {
351	req, out := c.AddTagsRequest(input)
352	return out, req.Send()
353}
354
355// AddTagsWithContext is the same as AddTags with the addition of
356// the ability to pass a context and additional request options.
357//
358// See AddTags for details on how to use this API operation.
359//
360// The context must be non-nil and will be used for request cancellation. If
361// the context is nil a panic will occur. In the future the SDK may create
362// sub-contexts for http.Requests. See https://golang.org/pkg/context/
363// for more information on using Contexts.
364func (c *EMR) AddTagsWithContext(ctx aws.Context, input *AddTagsInput, opts ...request.Option) (*AddTagsOutput, error) {
365	req, out := c.AddTagsRequest(input)
366	req.SetContext(ctx)
367	req.ApplyOptions(opts...)
368	return out, req.Send()
369}
370
371const opCancelSteps = "CancelSteps"
372
373// CancelStepsRequest generates a "aws/request.Request" representing the
374// client's request for the CancelSteps operation. The "output" return
375// value will be populated with the request's response once the request completes
376// successfully.
377//
378// Use "Send" method on the returned Request to send the API call to the service.
379// the "output" return value is not valid until after Send returns without error.
380//
381// See CancelSteps for more information on using the CancelSteps
382// API call, and error handling.
383//
384// This method is useful when you want to inject custom logic or configuration
385// into the SDK's request lifecycle. Such as custom headers, or retry logic.
386//
387//
388//    // Example sending a request using the CancelStepsRequest method.
389//    req, resp := client.CancelStepsRequest(params)
390//
391//    err := req.Send()
392//    if err == nil { // resp is now filled
393//        fmt.Println(resp)
394//    }
395//
396// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/CancelSteps
397func (c *EMR) CancelStepsRequest(input *CancelStepsInput) (req *request.Request, output *CancelStepsOutput) {
398	op := &request.Operation{
399		Name:       opCancelSteps,
400		HTTPMethod: "POST",
401		HTTPPath:   "/",
402	}
403
404	if input == nil {
405		input = &CancelStepsInput{}
406	}
407
408	output = &CancelStepsOutput{}
409	req = c.newRequest(op, input, output)
410	return
411}
412
413// CancelSteps API operation for Amazon EMR.
414//
415// Cancels a pending step or steps in a running cluster. Available only in Amazon
416// EMR versions 4.8.0 and later, excluding version 5.0.0. A maximum of 256 steps
417// are allowed in each CancelSteps request. CancelSteps is idempotent but asynchronous;
418// it does not guarantee that a step will be canceled, even if the request is
419// successfully submitted. When you use Amazon EMR versions 5.28.0 and later,
420// you can cancel steps that are in a PENDING or RUNNING state. In earlier versions
421// of Amazon EMR, you can only cancel steps that are in a PENDING state.
422//
423// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
424// with awserr.Error's Code and Message methods to get detailed information about
425// the error.
426//
427// See the AWS API reference guide for Amazon EMR's
428// API operation CancelSteps for usage and error information.
429//
430// Returned Error Types:
431//   * InternalServerError
432//   Indicates that an error occurred while processing the request and that the
433//   request was not completed.
434//
435//   * InvalidRequestException
436//   This exception occurs when there is something wrong with user input.
437//
438// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/CancelSteps
439func (c *EMR) CancelSteps(input *CancelStepsInput) (*CancelStepsOutput, error) {
440	req, out := c.CancelStepsRequest(input)
441	return out, req.Send()
442}
443
444// CancelStepsWithContext is the same as CancelSteps with the addition of
445// the ability to pass a context and additional request options.
446//
447// See CancelSteps for details on how to use this API operation.
448//
449// The context must be non-nil and will be used for request cancellation. If
450// the context is nil a panic will occur. In the future the SDK may create
451// sub-contexts for http.Requests. See https://golang.org/pkg/context/
452// for more information on using Contexts.
453func (c *EMR) CancelStepsWithContext(ctx aws.Context, input *CancelStepsInput, opts ...request.Option) (*CancelStepsOutput, error) {
454	req, out := c.CancelStepsRequest(input)
455	req.SetContext(ctx)
456	req.ApplyOptions(opts...)
457	return out, req.Send()
458}
459
460const opCreateSecurityConfiguration = "CreateSecurityConfiguration"
461
462// CreateSecurityConfigurationRequest generates a "aws/request.Request" representing the
463// client's request for the CreateSecurityConfiguration operation. The "output" return
464// value will be populated with the request's response once the request completes
465// successfully.
466//
467// Use "Send" method on the returned Request to send the API call to the service.
468// the "output" return value is not valid until after Send returns without error.
469//
470// See CreateSecurityConfiguration for more information on using the CreateSecurityConfiguration
471// API call, and error handling.
472//
473// This method is useful when you want to inject custom logic or configuration
474// into the SDK's request lifecycle. Such as custom headers, or retry logic.
475//
476//
477//    // Example sending a request using the CreateSecurityConfigurationRequest method.
478//    req, resp := client.CreateSecurityConfigurationRequest(params)
479//
480//    err := req.Send()
481//    if err == nil { // resp is now filled
482//        fmt.Println(resp)
483//    }
484//
485// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/CreateSecurityConfiguration
486func (c *EMR) CreateSecurityConfigurationRequest(input *CreateSecurityConfigurationInput) (req *request.Request, output *CreateSecurityConfigurationOutput) {
487	op := &request.Operation{
488		Name:       opCreateSecurityConfiguration,
489		HTTPMethod: "POST",
490		HTTPPath:   "/",
491	}
492
493	if input == nil {
494		input = &CreateSecurityConfigurationInput{}
495	}
496
497	output = &CreateSecurityConfigurationOutput{}
498	req = c.newRequest(op, input, output)
499	return
500}
501
502// CreateSecurityConfiguration API operation for Amazon EMR.
503//
504// Creates a security configuration, which is stored in the service and can
505// be specified when a cluster is created.
506//
507// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
508// with awserr.Error's Code and Message methods to get detailed information about
509// the error.
510//
511// See the AWS API reference guide for Amazon EMR's
512// API operation CreateSecurityConfiguration for usage and error information.
513//
514// Returned Error Types:
515//   * InternalServerException
516//   This exception occurs when there is an internal failure in the Amazon EMR
517//   service.
518//
519//   * InvalidRequestException
520//   This exception occurs when there is something wrong with user input.
521//
522// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/CreateSecurityConfiguration
523func (c *EMR) CreateSecurityConfiguration(input *CreateSecurityConfigurationInput) (*CreateSecurityConfigurationOutput, error) {
524	req, out := c.CreateSecurityConfigurationRequest(input)
525	return out, req.Send()
526}
527
528// CreateSecurityConfigurationWithContext is the same as CreateSecurityConfiguration with the addition of
529// the ability to pass a context and additional request options.
530//
531// See CreateSecurityConfiguration for details on how to use this API operation.
532//
533// The context must be non-nil and will be used for request cancellation. If
534// the context is nil a panic will occur. In the future the SDK may create
535// sub-contexts for http.Requests. See https://golang.org/pkg/context/
536// for more information on using Contexts.
537func (c *EMR) CreateSecurityConfigurationWithContext(ctx aws.Context, input *CreateSecurityConfigurationInput, opts ...request.Option) (*CreateSecurityConfigurationOutput, error) {
538	req, out := c.CreateSecurityConfigurationRequest(input)
539	req.SetContext(ctx)
540	req.ApplyOptions(opts...)
541	return out, req.Send()
542}
543
544const opCreateStudio = "CreateStudio"
545
546// CreateStudioRequest generates a "aws/request.Request" representing the
547// client's request for the CreateStudio operation. The "output" return
548// value will be populated with the request's response once the request completes
549// successfully.
550//
551// Use "Send" method on the returned Request to send the API call to the service.
552// the "output" return value is not valid until after Send returns without error.
553//
554// See CreateStudio for more information on using the CreateStudio
555// API call, and error handling.
556//
557// This method is useful when you want to inject custom logic or configuration
558// into the SDK's request lifecycle. Such as custom headers, or retry logic.
559//
560//
561//    // Example sending a request using the CreateStudioRequest method.
562//    req, resp := client.CreateStudioRequest(params)
563//
564//    err := req.Send()
565//    if err == nil { // resp is now filled
566//        fmt.Println(resp)
567//    }
568//
569// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/CreateStudio
570func (c *EMR) CreateStudioRequest(input *CreateStudioInput) (req *request.Request, output *CreateStudioOutput) {
571	op := &request.Operation{
572		Name:       opCreateStudio,
573		HTTPMethod: "POST",
574		HTTPPath:   "/",
575	}
576
577	if input == nil {
578		input = &CreateStudioInput{}
579	}
580
581	output = &CreateStudioOutput{}
582	req = c.newRequest(op, input, output)
583	return
584}
585
586// CreateStudio API operation for Amazon EMR.
587//
588// Creates a new Amazon EMR Studio.
589//
590// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
591// with awserr.Error's Code and Message methods to get detailed information about
592// the error.
593//
594// See the AWS API reference guide for Amazon EMR's
595// API operation CreateStudio for usage and error information.
596//
597// Returned Error Types:
598//   * InternalServerException
599//   This exception occurs when there is an internal failure in the Amazon EMR
600//   service.
601//
602//   * InvalidRequestException
603//   This exception occurs when there is something wrong with user input.
604//
605// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/CreateStudio
606func (c *EMR) CreateStudio(input *CreateStudioInput) (*CreateStudioOutput, error) {
607	req, out := c.CreateStudioRequest(input)
608	return out, req.Send()
609}
610
611// CreateStudioWithContext is the same as CreateStudio with the addition of
612// the ability to pass a context and additional request options.
613//
614// See CreateStudio for details on how to use this API operation.
615//
616// The context must be non-nil and will be used for request cancellation. If
617// the context is nil a panic will occur. In the future the SDK may create
618// sub-contexts for http.Requests. See https://golang.org/pkg/context/
619// for more information on using Contexts.
620func (c *EMR) CreateStudioWithContext(ctx aws.Context, input *CreateStudioInput, opts ...request.Option) (*CreateStudioOutput, error) {
621	req, out := c.CreateStudioRequest(input)
622	req.SetContext(ctx)
623	req.ApplyOptions(opts...)
624	return out, req.Send()
625}
626
627const opCreateStudioSessionMapping = "CreateStudioSessionMapping"
628
629// CreateStudioSessionMappingRequest generates a "aws/request.Request" representing the
630// client's request for the CreateStudioSessionMapping operation. The "output" return
631// value will be populated with the request's response once the request completes
632// successfully.
633//
634// Use "Send" method on the returned Request to send the API call to the service.
635// the "output" return value is not valid until after Send returns without error.
636//
637// See CreateStudioSessionMapping for more information on using the CreateStudioSessionMapping
638// API call, and error handling.
639//
640// This method is useful when you want to inject custom logic or configuration
641// into the SDK's request lifecycle. Such as custom headers, or retry logic.
642//
643//
644//    // Example sending a request using the CreateStudioSessionMappingRequest method.
645//    req, resp := client.CreateStudioSessionMappingRequest(params)
646//
647//    err := req.Send()
648//    if err == nil { // resp is now filled
649//        fmt.Println(resp)
650//    }
651//
652// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/CreateStudioSessionMapping
653func (c *EMR) CreateStudioSessionMappingRequest(input *CreateStudioSessionMappingInput) (req *request.Request, output *CreateStudioSessionMappingOutput) {
654	op := &request.Operation{
655		Name:       opCreateStudioSessionMapping,
656		HTTPMethod: "POST",
657		HTTPPath:   "/",
658	}
659
660	if input == nil {
661		input = &CreateStudioSessionMappingInput{}
662	}
663
664	output = &CreateStudioSessionMappingOutput{}
665	req = c.newRequest(op, input, output)
666	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
667	return
668}
669
670// CreateStudioSessionMapping API operation for Amazon EMR.
671//
672// Maps a user or group to the Amazon EMR Studio specified by StudioId, and
673// applies a session policy to refine Studio permissions for that user or group.
674// Use CreateStudioSessionMapping to assign users to a Studio when you use Amazon
675// Web Services SSO authentication. For instructions on how to assign users
676// to a Studio when you use IAM authentication, see Assign a user or group to
677// your EMR Studio (https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-studio-manage-users.html#emr-studio-assign-users-groups).
678//
679// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
680// with awserr.Error's Code and Message methods to get detailed information about
681// the error.
682//
683// See the AWS API reference guide for Amazon EMR's
684// API operation CreateStudioSessionMapping for usage and error information.
685//
686// Returned Error Types:
687//   * InternalServerError
688//   Indicates that an error occurred while processing the request and that the
689//   request was not completed.
690//
691//   * InvalidRequestException
692//   This exception occurs when there is something wrong with user input.
693//
694// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/CreateStudioSessionMapping
695func (c *EMR) CreateStudioSessionMapping(input *CreateStudioSessionMappingInput) (*CreateStudioSessionMappingOutput, error) {
696	req, out := c.CreateStudioSessionMappingRequest(input)
697	return out, req.Send()
698}
699
700// CreateStudioSessionMappingWithContext is the same as CreateStudioSessionMapping with the addition of
701// the ability to pass a context and additional request options.
702//
703// See CreateStudioSessionMapping for details on how to use this API operation.
704//
705// The context must be non-nil and will be used for request cancellation. If
706// the context is nil a panic will occur. In the future the SDK may create
707// sub-contexts for http.Requests. See https://golang.org/pkg/context/
708// for more information on using Contexts.
709func (c *EMR) CreateStudioSessionMappingWithContext(ctx aws.Context, input *CreateStudioSessionMappingInput, opts ...request.Option) (*CreateStudioSessionMappingOutput, error) {
710	req, out := c.CreateStudioSessionMappingRequest(input)
711	req.SetContext(ctx)
712	req.ApplyOptions(opts...)
713	return out, req.Send()
714}
715
716const opDeleteSecurityConfiguration = "DeleteSecurityConfiguration"
717
718// DeleteSecurityConfigurationRequest generates a "aws/request.Request" representing the
719// client's request for the DeleteSecurityConfiguration operation. The "output" return
720// value will be populated with the request's response once the request completes
721// successfully.
722//
723// Use "Send" method on the returned Request to send the API call to the service.
724// the "output" return value is not valid until after Send returns without error.
725//
726// See DeleteSecurityConfiguration for more information on using the DeleteSecurityConfiguration
727// API call, and error handling.
728//
729// This method is useful when you want to inject custom logic or configuration
730// into the SDK's request lifecycle. Such as custom headers, or retry logic.
731//
732//
733//    // Example sending a request using the DeleteSecurityConfigurationRequest method.
734//    req, resp := client.DeleteSecurityConfigurationRequest(params)
735//
736//    err := req.Send()
737//    if err == nil { // resp is now filled
738//        fmt.Println(resp)
739//    }
740//
741// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DeleteSecurityConfiguration
742func (c *EMR) DeleteSecurityConfigurationRequest(input *DeleteSecurityConfigurationInput) (req *request.Request, output *DeleteSecurityConfigurationOutput) {
743	op := &request.Operation{
744		Name:       opDeleteSecurityConfiguration,
745		HTTPMethod: "POST",
746		HTTPPath:   "/",
747	}
748
749	if input == nil {
750		input = &DeleteSecurityConfigurationInput{}
751	}
752
753	output = &DeleteSecurityConfigurationOutput{}
754	req = c.newRequest(op, input, output)
755	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
756	return
757}
758
759// DeleteSecurityConfiguration API operation for Amazon EMR.
760//
761// Deletes a security configuration.
762//
763// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
764// with awserr.Error's Code and Message methods to get detailed information about
765// the error.
766//
767// See the AWS API reference guide for Amazon EMR's
768// API operation DeleteSecurityConfiguration for usage and error information.
769//
770// Returned Error Types:
771//   * InternalServerException
772//   This exception occurs when there is an internal failure in the Amazon EMR
773//   service.
774//
775//   * InvalidRequestException
776//   This exception occurs when there is something wrong with user input.
777//
778// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DeleteSecurityConfiguration
779func (c *EMR) DeleteSecurityConfiguration(input *DeleteSecurityConfigurationInput) (*DeleteSecurityConfigurationOutput, error) {
780	req, out := c.DeleteSecurityConfigurationRequest(input)
781	return out, req.Send()
782}
783
784// DeleteSecurityConfigurationWithContext is the same as DeleteSecurityConfiguration with the addition of
785// the ability to pass a context and additional request options.
786//
787// See DeleteSecurityConfiguration for details on how to use this API operation.
788//
789// The context must be non-nil and will be used for request cancellation. If
790// the context is nil a panic will occur. In the future the SDK may create
791// sub-contexts for http.Requests. See https://golang.org/pkg/context/
792// for more information on using Contexts.
793func (c *EMR) DeleteSecurityConfigurationWithContext(ctx aws.Context, input *DeleteSecurityConfigurationInput, opts ...request.Option) (*DeleteSecurityConfigurationOutput, error) {
794	req, out := c.DeleteSecurityConfigurationRequest(input)
795	req.SetContext(ctx)
796	req.ApplyOptions(opts...)
797	return out, req.Send()
798}
799
800const opDeleteStudio = "DeleteStudio"
801
802// DeleteStudioRequest generates a "aws/request.Request" representing the
803// client's request for the DeleteStudio operation. The "output" return
804// value will be populated with the request's response once the request completes
805// successfully.
806//
807// Use "Send" method on the returned Request to send the API call to the service.
808// the "output" return value is not valid until after Send returns without error.
809//
810// See DeleteStudio for more information on using the DeleteStudio
811// API call, and error handling.
812//
813// This method is useful when you want to inject custom logic or configuration
814// into the SDK's request lifecycle. Such as custom headers, or retry logic.
815//
816//
817//    // Example sending a request using the DeleteStudioRequest method.
818//    req, resp := client.DeleteStudioRequest(params)
819//
820//    err := req.Send()
821//    if err == nil { // resp is now filled
822//        fmt.Println(resp)
823//    }
824//
825// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DeleteStudio
826func (c *EMR) DeleteStudioRequest(input *DeleteStudioInput) (req *request.Request, output *DeleteStudioOutput) {
827	op := &request.Operation{
828		Name:       opDeleteStudio,
829		HTTPMethod: "POST",
830		HTTPPath:   "/",
831	}
832
833	if input == nil {
834		input = &DeleteStudioInput{}
835	}
836
837	output = &DeleteStudioOutput{}
838	req = c.newRequest(op, input, output)
839	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
840	return
841}
842
843// DeleteStudio API operation for Amazon EMR.
844//
845// Removes an Amazon EMR Studio from the Studio metadata store.
846//
847// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
848// with awserr.Error's Code and Message methods to get detailed information about
849// the error.
850//
851// See the AWS API reference guide for Amazon EMR's
852// API operation DeleteStudio for usage and error information.
853//
854// Returned Error Types:
855//   * InternalServerException
856//   This exception occurs when there is an internal failure in the Amazon EMR
857//   service.
858//
859//   * InvalidRequestException
860//   This exception occurs when there is something wrong with user input.
861//
862// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DeleteStudio
863func (c *EMR) DeleteStudio(input *DeleteStudioInput) (*DeleteStudioOutput, error) {
864	req, out := c.DeleteStudioRequest(input)
865	return out, req.Send()
866}
867
868// DeleteStudioWithContext is the same as DeleteStudio with the addition of
869// the ability to pass a context and additional request options.
870//
871// See DeleteStudio for details on how to use this API operation.
872//
873// The context must be non-nil and will be used for request cancellation. If
874// the context is nil a panic will occur. In the future the SDK may create
875// sub-contexts for http.Requests. See https://golang.org/pkg/context/
876// for more information on using Contexts.
877func (c *EMR) DeleteStudioWithContext(ctx aws.Context, input *DeleteStudioInput, opts ...request.Option) (*DeleteStudioOutput, error) {
878	req, out := c.DeleteStudioRequest(input)
879	req.SetContext(ctx)
880	req.ApplyOptions(opts...)
881	return out, req.Send()
882}
883
884const opDeleteStudioSessionMapping = "DeleteStudioSessionMapping"
885
886// DeleteStudioSessionMappingRequest generates a "aws/request.Request" representing the
887// client's request for the DeleteStudioSessionMapping operation. The "output" return
888// value will be populated with the request's response once the request completes
889// successfully.
890//
891// Use "Send" method on the returned Request to send the API call to the service.
892// the "output" return value is not valid until after Send returns without error.
893//
894// See DeleteStudioSessionMapping for more information on using the DeleteStudioSessionMapping
895// API call, and error handling.
896//
897// This method is useful when you want to inject custom logic or configuration
898// into the SDK's request lifecycle. Such as custom headers, or retry logic.
899//
900//
901//    // Example sending a request using the DeleteStudioSessionMappingRequest method.
902//    req, resp := client.DeleteStudioSessionMappingRequest(params)
903//
904//    err := req.Send()
905//    if err == nil { // resp is now filled
906//        fmt.Println(resp)
907//    }
908//
909// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DeleteStudioSessionMapping
910func (c *EMR) DeleteStudioSessionMappingRequest(input *DeleteStudioSessionMappingInput) (req *request.Request, output *DeleteStudioSessionMappingOutput) {
911	op := &request.Operation{
912		Name:       opDeleteStudioSessionMapping,
913		HTTPMethod: "POST",
914		HTTPPath:   "/",
915	}
916
917	if input == nil {
918		input = &DeleteStudioSessionMappingInput{}
919	}
920
921	output = &DeleteStudioSessionMappingOutput{}
922	req = c.newRequest(op, input, output)
923	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
924	return
925}
926
927// DeleteStudioSessionMapping API operation for Amazon EMR.
928//
929// Removes a user or group from an Amazon EMR Studio.
930//
931// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
932// with awserr.Error's Code and Message methods to get detailed information about
933// the error.
934//
935// See the AWS API reference guide for Amazon EMR's
936// API operation DeleteStudioSessionMapping for usage and error information.
937//
938// Returned Error Types:
939//   * InternalServerError
940//   Indicates that an error occurred while processing the request and that the
941//   request was not completed.
942//
943//   * InvalidRequestException
944//   This exception occurs when there is something wrong with user input.
945//
946// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DeleteStudioSessionMapping
947func (c *EMR) DeleteStudioSessionMapping(input *DeleteStudioSessionMappingInput) (*DeleteStudioSessionMappingOutput, error) {
948	req, out := c.DeleteStudioSessionMappingRequest(input)
949	return out, req.Send()
950}
951
952// DeleteStudioSessionMappingWithContext is the same as DeleteStudioSessionMapping with the addition of
953// the ability to pass a context and additional request options.
954//
955// See DeleteStudioSessionMapping for details on how to use this API operation.
956//
957// The context must be non-nil and will be used for request cancellation. If
958// the context is nil a panic will occur. In the future the SDK may create
959// sub-contexts for http.Requests. See https://golang.org/pkg/context/
960// for more information on using Contexts.
961func (c *EMR) DeleteStudioSessionMappingWithContext(ctx aws.Context, input *DeleteStudioSessionMappingInput, opts ...request.Option) (*DeleteStudioSessionMappingOutput, error) {
962	req, out := c.DeleteStudioSessionMappingRequest(input)
963	req.SetContext(ctx)
964	req.ApplyOptions(opts...)
965	return out, req.Send()
966}
967
968const opDescribeCluster = "DescribeCluster"
969
970// DescribeClusterRequest generates a "aws/request.Request" representing the
971// client's request for the DescribeCluster operation. The "output" return
972// value will be populated with the request's response once the request completes
973// successfully.
974//
975// Use "Send" method on the returned Request to send the API call to the service.
976// the "output" return value is not valid until after Send returns without error.
977//
978// See DescribeCluster for more information on using the DescribeCluster
979// API call, and error handling.
980//
981// This method is useful when you want to inject custom logic or configuration
982// into the SDK's request lifecycle. Such as custom headers, or retry logic.
983//
984//
985//    // Example sending a request using the DescribeClusterRequest method.
986//    req, resp := client.DescribeClusterRequest(params)
987//
988//    err := req.Send()
989//    if err == nil { // resp is now filled
990//        fmt.Println(resp)
991//    }
992//
993// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeCluster
994func (c *EMR) DescribeClusterRequest(input *DescribeClusterInput) (req *request.Request, output *DescribeClusterOutput) {
995	op := &request.Operation{
996		Name:       opDescribeCluster,
997		HTTPMethod: "POST",
998		HTTPPath:   "/",
999	}
1000
1001	if input == nil {
1002		input = &DescribeClusterInput{}
1003	}
1004
1005	output = &DescribeClusterOutput{}
1006	req = c.newRequest(op, input, output)
1007	return
1008}
1009
1010// DescribeCluster API operation for Amazon EMR.
1011//
1012// Provides cluster-level details including status, hardware and software configuration,
1013// VPC settings, and so on.
1014//
1015// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1016// with awserr.Error's Code and Message methods to get detailed information about
1017// the error.
1018//
1019// See the AWS API reference guide for Amazon EMR's
1020// API operation DescribeCluster for usage and error information.
1021//
1022// Returned Error Types:
1023//   * InternalServerException
1024//   This exception occurs when there is an internal failure in the Amazon EMR
1025//   service.
1026//
1027//   * InvalidRequestException
1028//   This exception occurs when there is something wrong with user input.
1029//
1030// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeCluster
1031func (c *EMR) DescribeCluster(input *DescribeClusterInput) (*DescribeClusterOutput, error) {
1032	req, out := c.DescribeClusterRequest(input)
1033	return out, req.Send()
1034}
1035
1036// DescribeClusterWithContext is the same as DescribeCluster with the addition of
1037// the ability to pass a context and additional request options.
1038//
1039// See DescribeCluster for details on how to use this API operation.
1040//
1041// The context must be non-nil and will be used for request cancellation. If
1042// the context is nil a panic will occur. In the future the SDK may create
1043// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1044// for more information on using Contexts.
1045func (c *EMR) DescribeClusterWithContext(ctx aws.Context, input *DescribeClusterInput, opts ...request.Option) (*DescribeClusterOutput, error) {
1046	req, out := c.DescribeClusterRequest(input)
1047	req.SetContext(ctx)
1048	req.ApplyOptions(opts...)
1049	return out, req.Send()
1050}
1051
1052const opDescribeJobFlows = "DescribeJobFlows"
1053
1054// DescribeJobFlowsRequest generates a "aws/request.Request" representing the
1055// client's request for the DescribeJobFlows operation. The "output" return
1056// value will be populated with the request's response once the request completes
1057// successfully.
1058//
1059// Use "Send" method on the returned Request to send the API call to the service.
1060// the "output" return value is not valid until after Send returns without error.
1061//
1062// See DescribeJobFlows for more information on using the DescribeJobFlows
1063// API call, and error handling.
1064//
1065// This method is useful when you want to inject custom logic or configuration
1066// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1067//
1068//
1069//    // Example sending a request using the DescribeJobFlowsRequest method.
1070//    req, resp := client.DescribeJobFlowsRequest(params)
1071//
1072//    err := req.Send()
1073//    if err == nil { // resp is now filled
1074//        fmt.Println(resp)
1075//    }
1076//
1077// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeJobFlows
1078//
1079// Deprecated: DescribeJobFlows has been deprecated
1080func (c *EMR) DescribeJobFlowsRequest(input *DescribeJobFlowsInput) (req *request.Request, output *DescribeJobFlowsOutput) {
1081	if c.Client.Config.Logger != nil {
1082		c.Client.Config.Logger.Log("This operation, DescribeJobFlows, has been deprecated")
1083	}
1084	op := &request.Operation{
1085		Name:       opDescribeJobFlows,
1086		HTTPMethod: "POST",
1087		HTTPPath:   "/",
1088	}
1089
1090	if input == nil {
1091		input = &DescribeJobFlowsInput{}
1092	}
1093
1094	output = &DescribeJobFlowsOutput{}
1095	req = c.newRequest(op, input, output)
1096	return
1097}
1098
1099// DescribeJobFlows API operation for Amazon EMR.
1100//
1101// This API is no longer supported and will eventually be removed. We recommend
1102// you use ListClusters, DescribeCluster, ListSteps, ListInstanceGroups and
1103// ListBootstrapActions instead.
1104//
1105// DescribeJobFlows returns a list of job flows that match all of the supplied
1106// parameters. The parameters can include a list of job flow IDs, job flow states,
1107// and restrictions on job flow creation date and time.
1108//
1109// Regardless of supplied parameters, only job flows created within the last
1110// two months are returned.
1111//
1112// If no parameters are supplied, then job flows matching either of the following
1113// criteria are returned:
1114//
1115//    * Job flows created and completed in the last two weeks
1116//
1117//    * Job flows created within the last two months that are in one of the
1118//    following states: RUNNING, WAITING, SHUTTING_DOWN, STARTING
1119//
1120// Amazon EMR can return a maximum of 512 job flow descriptions.
1121//
1122// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1123// with awserr.Error's Code and Message methods to get detailed information about
1124// the error.
1125//
1126// See the AWS API reference guide for Amazon EMR's
1127// API operation DescribeJobFlows for usage and error information.
1128//
1129// Returned Error Types:
1130//   * InternalServerError
1131//   Indicates that an error occurred while processing the request and that the
1132//   request was not completed.
1133//
1134// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeJobFlows
1135//
1136// Deprecated: DescribeJobFlows has been deprecated
1137func (c *EMR) DescribeJobFlows(input *DescribeJobFlowsInput) (*DescribeJobFlowsOutput, error) {
1138	req, out := c.DescribeJobFlowsRequest(input)
1139	return out, req.Send()
1140}
1141
1142// DescribeJobFlowsWithContext is the same as DescribeJobFlows with the addition of
1143// the ability to pass a context and additional request options.
1144//
1145// See DescribeJobFlows for details on how to use this API operation.
1146//
1147// The context must be non-nil and will be used for request cancellation. If
1148// the context is nil a panic will occur. In the future the SDK may create
1149// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1150// for more information on using Contexts.
1151//
1152// Deprecated: DescribeJobFlowsWithContext has been deprecated
1153func (c *EMR) DescribeJobFlowsWithContext(ctx aws.Context, input *DescribeJobFlowsInput, opts ...request.Option) (*DescribeJobFlowsOutput, error) {
1154	req, out := c.DescribeJobFlowsRequest(input)
1155	req.SetContext(ctx)
1156	req.ApplyOptions(opts...)
1157	return out, req.Send()
1158}
1159
1160const opDescribeNotebookExecution = "DescribeNotebookExecution"
1161
1162// DescribeNotebookExecutionRequest generates a "aws/request.Request" representing the
1163// client's request for the DescribeNotebookExecution operation. The "output" return
1164// value will be populated with the request's response once the request completes
1165// successfully.
1166//
1167// Use "Send" method on the returned Request to send the API call to the service.
1168// the "output" return value is not valid until after Send returns without error.
1169//
1170// See DescribeNotebookExecution for more information on using the DescribeNotebookExecution
1171// API call, and error handling.
1172//
1173// This method is useful when you want to inject custom logic or configuration
1174// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1175//
1176//
1177//    // Example sending a request using the DescribeNotebookExecutionRequest method.
1178//    req, resp := client.DescribeNotebookExecutionRequest(params)
1179//
1180//    err := req.Send()
1181//    if err == nil { // resp is now filled
1182//        fmt.Println(resp)
1183//    }
1184//
1185// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeNotebookExecution
1186func (c *EMR) DescribeNotebookExecutionRequest(input *DescribeNotebookExecutionInput) (req *request.Request, output *DescribeNotebookExecutionOutput) {
1187	op := &request.Operation{
1188		Name:       opDescribeNotebookExecution,
1189		HTTPMethod: "POST",
1190		HTTPPath:   "/",
1191	}
1192
1193	if input == nil {
1194		input = &DescribeNotebookExecutionInput{}
1195	}
1196
1197	output = &DescribeNotebookExecutionOutput{}
1198	req = c.newRequest(op, input, output)
1199	return
1200}
1201
1202// DescribeNotebookExecution API operation for Amazon EMR.
1203//
1204// Provides details of a notebook execution.
1205//
1206// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1207// with awserr.Error's Code and Message methods to get detailed information about
1208// the error.
1209//
1210// See the AWS API reference guide for Amazon EMR's
1211// API operation DescribeNotebookExecution for usage and error information.
1212//
1213// Returned Error Types:
1214//   * InternalServerError
1215//   Indicates that an error occurred while processing the request and that the
1216//   request was not completed.
1217//
1218//   * InvalidRequestException
1219//   This exception occurs when there is something wrong with user input.
1220//
1221// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeNotebookExecution
1222func (c *EMR) DescribeNotebookExecution(input *DescribeNotebookExecutionInput) (*DescribeNotebookExecutionOutput, error) {
1223	req, out := c.DescribeNotebookExecutionRequest(input)
1224	return out, req.Send()
1225}
1226
1227// DescribeNotebookExecutionWithContext is the same as DescribeNotebookExecution with the addition of
1228// the ability to pass a context and additional request options.
1229//
1230// See DescribeNotebookExecution for details on how to use this API operation.
1231//
1232// The context must be non-nil and will be used for request cancellation. If
1233// the context is nil a panic will occur. In the future the SDK may create
1234// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1235// for more information on using Contexts.
1236func (c *EMR) DescribeNotebookExecutionWithContext(ctx aws.Context, input *DescribeNotebookExecutionInput, opts ...request.Option) (*DescribeNotebookExecutionOutput, error) {
1237	req, out := c.DescribeNotebookExecutionRequest(input)
1238	req.SetContext(ctx)
1239	req.ApplyOptions(opts...)
1240	return out, req.Send()
1241}
1242
1243const opDescribeReleaseLabel = "DescribeReleaseLabel"
1244
1245// DescribeReleaseLabelRequest generates a "aws/request.Request" representing the
1246// client's request for the DescribeReleaseLabel operation. The "output" return
1247// value will be populated with the request's response once the request completes
1248// successfully.
1249//
1250// Use "Send" method on the returned Request to send the API call to the service.
1251// the "output" return value is not valid until after Send returns without error.
1252//
1253// See DescribeReleaseLabel for more information on using the DescribeReleaseLabel
1254// API call, and error handling.
1255//
1256// This method is useful when you want to inject custom logic or configuration
1257// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1258//
1259//
1260//    // Example sending a request using the DescribeReleaseLabelRequest method.
1261//    req, resp := client.DescribeReleaseLabelRequest(params)
1262//
1263//    err := req.Send()
1264//    if err == nil { // resp is now filled
1265//        fmt.Println(resp)
1266//    }
1267//
1268// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeReleaseLabel
1269func (c *EMR) DescribeReleaseLabelRequest(input *DescribeReleaseLabelInput) (req *request.Request, output *DescribeReleaseLabelOutput) {
1270	op := &request.Operation{
1271		Name:       opDescribeReleaseLabel,
1272		HTTPMethod: "POST",
1273		HTTPPath:   "/",
1274	}
1275
1276	if input == nil {
1277		input = &DescribeReleaseLabelInput{}
1278	}
1279
1280	output = &DescribeReleaseLabelOutput{}
1281	req = c.newRequest(op, input, output)
1282	return
1283}
1284
1285// DescribeReleaseLabel API operation for Amazon EMR.
1286//
1287// Provides EMR release label details, such as releases available the region
1288// where the API request is run, and the available applications for a specific
1289// EMR release label. Can also list EMR release versions that support a specified
1290// version of Spark.
1291//
1292// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1293// with awserr.Error's Code and Message methods to get detailed information about
1294// the error.
1295//
1296// See the AWS API reference guide for Amazon EMR's
1297// API operation DescribeReleaseLabel for usage and error information.
1298//
1299// Returned Error Types:
1300//   * InternalServerException
1301//   This exception occurs when there is an internal failure in the Amazon EMR
1302//   service.
1303//
1304//   * InvalidRequestException
1305//   This exception occurs when there is something wrong with user input.
1306//
1307// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeReleaseLabel
1308func (c *EMR) DescribeReleaseLabel(input *DescribeReleaseLabelInput) (*DescribeReleaseLabelOutput, error) {
1309	req, out := c.DescribeReleaseLabelRequest(input)
1310	return out, req.Send()
1311}
1312
1313// DescribeReleaseLabelWithContext is the same as DescribeReleaseLabel with the addition of
1314// the ability to pass a context and additional request options.
1315//
1316// See DescribeReleaseLabel for details on how to use this API operation.
1317//
1318// The context must be non-nil and will be used for request cancellation. If
1319// the context is nil a panic will occur. In the future the SDK may create
1320// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1321// for more information on using Contexts.
1322func (c *EMR) DescribeReleaseLabelWithContext(ctx aws.Context, input *DescribeReleaseLabelInput, opts ...request.Option) (*DescribeReleaseLabelOutput, error) {
1323	req, out := c.DescribeReleaseLabelRequest(input)
1324	req.SetContext(ctx)
1325	req.ApplyOptions(opts...)
1326	return out, req.Send()
1327}
1328
1329const opDescribeSecurityConfiguration = "DescribeSecurityConfiguration"
1330
1331// DescribeSecurityConfigurationRequest generates a "aws/request.Request" representing the
1332// client's request for the DescribeSecurityConfiguration operation. The "output" return
1333// value will be populated with the request's response once the request completes
1334// successfully.
1335//
1336// Use "Send" method on the returned Request to send the API call to the service.
1337// the "output" return value is not valid until after Send returns without error.
1338//
1339// See DescribeSecurityConfiguration for more information on using the DescribeSecurityConfiguration
1340// API call, and error handling.
1341//
1342// This method is useful when you want to inject custom logic or configuration
1343// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1344//
1345//
1346//    // Example sending a request using the DescribeSecurityConfigurationRequest method.
1347//    req, resp := client.DescribeSecurityConfigurationRequest(params)
1348//
1349//    err := req.Send()
1350//    if err == nil { // resp is now filled
1351//        fmt.Println(resp)
1352//    }
1353//
1354// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeSecurityConfiguration
1355func (c *EMR) DescribeSecurityConfigurationRequest(input *DescribeSecurityConfigurationInput) (req *request.Request, output *DescribeSecurityConfigurationOutput) {
1356	op := &request.Operation{
1357		Name:       opDescribeSecurityConfiguration,
1358		HTTPMethod: "POST",
1359		HTTPPath:   "/",
1360	}
1361
1362	if input == nil {
1363		input = &DescribeSecurityConfigurationInput{}
1364	}
1365
1366	output = &DescribeSecurityConfigurationOutput{}
1367	req = c.newRequest(op, input, output)
1368	return
1369}
1370
1371// DescribeSecurityConfiguration API operation for Amazon EMR.
1372//
1373// Provides the details of a security configuration by returning the configuration
1374// JSON.
1375//
1376// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1377// with awserr.Error's Code and Message methods to get detailed information about
1378// the error.
1379//
1380// See the AWS API reference guide for Amazon EMR's
1381// API operation DescribeSecurityConfiguration for usage and error information.
1382//
1383// Returned Error Types:
1384//   * InternalServerException
1385//   This exception occurs when there is an internal failure in the Amazon EMR
1386//   service.
1387//
1388//   * InvalidRequestException
1389//   This exception occurs when there is something wrong with user input.
1390//
1391// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeSecurityConfiguration
1392func (c *EMR) DescribeSecurityConfiguration(input *DescribeSecurityConfigurationInput) (*DescribeSecurityConfigurationOutput, error) {
1393	req, out := c.DescribeSecurityConfigurationRequest(input)
1394	return out, req.Send()
1395}
1396
1397// DescribeSecurityConfigurationWithContext is the same as DescribeSecurityConfiguration with the addition of
1398// the ability to pass a context and additional request options.
1399//
1400// See DescribeSecurityConfiguration for details on how to use this API operation.
1401//
1402// The context must be non-nil and will be used for request cancellation. If
1403// the context is nil a panic will occur. In the future the SDK may create
1404// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1405// for more information on using Contexts.
1406func (c *EMR) DescribeSecurityConfigurationWithContext(ctx aws.Context, input *DescribeSecurityConfigurationInput, opts ...request.Option) (*DescribeSecurityConfigurationOutput, error) {
1407	req, out := c.DescribeSecurityConfigurationRequest(input)
1408	req.SetContext(ctx)
1409	req.ApplyOptions(opts...)
1410	return out, req.Send()
1411}
1412
1413const opDescribeStep = "DescribeStep"
1414
1415// DescribeStepRequest generates a "aws/request.Request" representing the
1416// client's request for the DescribeStep operation. The "output" return
1417// value will be populated with the request's response once the request completes
1418// successfully.
1419//
1420// Use "Send" method on the returned Request to send the API call to the service.
1421// the "output" return value is not valid until after Send returns without error.
1422//
1423// See DescribeStep for more information on using the DescribeStep
1424// API call, and error handling.
1425//
1426// This method is useful when you want to inject custom logic or configuration
1427// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1428//
1429//
1430//    // Example sending a request using the DescribeStepRequest method.
1431//    req, resp := client.DescribeStepRequest(params)
1432//
1433//    err := req.Send()
1434//    if err == nil { // resp is now filled
1435//        fmt.Println(resp)
1436//    }
1437//
1438// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeStep
1439func (c *EMR) DescribeStepRequest(input *DescribeStepInput) (req *request.Request, output *DescribeStepOutput) {
1440	op := &request.Operation{
1441		Name:       opDescribeStep,
1442		HTTPMethod: "POST",
1443		HTTPPath:   "/",
1444	}
1445
1446	if input == nil {
1447		input = &DescribeStepInput{}
1448	}
1449
1450	output = &DescribeStepOutput{}
1451	req = c.newRequest(op, input, output)
1452	return
1453}
1454
1455// DescribeStep API operation for Amazon EMR.
1456//
1457// Provides more detail about the cluster step.
1458//
1459// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1460// with awserr.Error's Code and Message methods to get detailed information about
1461// the error.
1462//
1463// See the AWS API reference guide for Amazon EMR's
1464// API operation DescribeStep for usage and error information.
1465//
1466// Returned Error Types:
1467//   * InternalServerException
1468//   This exception occurs when there is an internal failure in the Amazon EMR
1469//   service.
1470//
1471//   * InvalidRequestException
1472//   This exception occurs when there is something wrong with user input.
1473//
1474// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeStep
1475func (c *EMR) DescribeStep(input *DescribeStepInput) (*DescribeStepOutput, error) {
1476	req, out := c.DescribeStepRequest(input)
1477	return out, req.Send()
1478}
1479
1480// DescribeStepWithContext is the same as DescribeStep with the addition of
1481// the ability to pass a context and additional request options.
1482//
1483// See DescribeStep for details on how to use this API operation.
1484//
1485// The context must be non-nil and will be used for request cancellation. If
1486// the context is nil a panic will occur. In the future the SDK may create
1487// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1488// for more information on using Contexts.
1489func (c *EMR) DescribeStepWithContext(ctx aws.Context, input *DescribeStepInput, opts ...request.Option) (*DescribeStepOutput, error) {
1490	req, out := c.DescribeStepRequest(input)
1491	req.SetContext(ctx)
1492	req.ApplyOptions(opts...)
1493	return out, req.Send()
1494}
1495
1496const opDescribeStudio = "DescribeStudio"
1497
1498// DescribeStudioRequest generates a "aws/request.Request" representing the
1499// client's request for the DescribeStudio operation. The "output" return
1500// value will be populated with the request's response once the request completes
1501// successfully.
1502//
1503// Use "Send" method on the returned Request to send the API call to the service.
1504// the "output" return value is not valid until after Send returns without error.
1505//
1506// See DescribeStudio for more information on using the DescribeStudio
1507// API call, and error handling.
1508//
1509// This method is useful when you want to inject custom logic or configuration
1510// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1511//
1512//
1513//    // Example sending a request using the DescribeStudioRequest method.
1514//    req, resp := client.DescribeStudioRequest(params)
1515//
1516//    err := req.Send()
1517//    if err == nil { // resp is now filled
1518//        fmt.Println(resp)
1519//    }
1520//
1521// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeStudio
1522func (c *EMR) DescribeStudioRequest(input *DescribeStudioInput) (req *request.Request, output *DescribeStudioOutput) {
1523	op := &request.Operation{
1524		Name:       opDescribeStudio,
1525		HTTPMethod: "POST",
1526		HTTPPath:   "/",
1527	}
1528
1529	if input == nil {
1530		input = &DescribeStudioInput{}
1531	}
1532
1533	output = &DescribeStudioOutput{}
1534	req = c.newRequest(op, input, output)
1535	return
1536}
1537
1538// DescribeStudio API operation for Amazon EMR.
1539//
1540// Returns details for the specified Amazon EMR Studio including ID, Name, VPC,
1541// Studio access URL, and so on.
1542//
1543// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1544// with awserr.Error's Code and Message methods to get detailed information about
1545// the error.
1546//
1547// See the AWS API reference guide for Amazon EMR's
1548// API operation DescribeStudio for usage and error information.
1549//
1550// Returned Error Types:
1551//   * InternalServerException
1552//   This exception occurs when there is an internal failure in the Amazon EMR
1553//   service.
1554//
1555//   * InvalidRequestException
1556//   This exception occurs when there is something wrong with user input.
1557//
1558// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeStudio
1559func (c *EMR) DescribeStudio(input *DescribeStudioInput) (*DescribeStudioOutput, error) {
1560	req, out := c.DescribeStudioRequest(input)
1561	return out, req.Send()
1562}
1563
1564// DescribeStudioWithContext is the same as DescribeStudio with the addition of
1565// the ability to pass a context and additional request options.
1566//
1567// See DescribeStudio for details on how to use this API operation.
1568//
1569// The context must be non-nil and will be used for request cancellation. If
1570// the context is nil a panic will occur. In the future the SDK may create
1571// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1572// for more information on using Contexts.
1573func (c *EMR) DescribeStudioWithContext(ctx aws.Context, input *DescribeStudioInput, opts ...request.Option) (*DescribeStudioOutput, error) {
1574	req, out := c.DescribeStudioRequest(input)
1575	req.SetContext(ctx)
1576	req.ApplyOptions(opts...)
1577	return out, req.Send()
1578}
1579
1580const opGetAutoTerminationPolicy = "GetAutoTerminationPolicy"
1581
1582// GetAutoTerminationPolicyRequest generates a "aws/request.Request" representing the
1583// client's request for the GetAutoTerminationPolicy operation. The "output" return
1584// value will be populated with the request's response once the request completes
1585// successfully.
1586//
1587// Use "Send" method on the returned Request to send the API call to the service.
1588// the "output" return value is not valid until after Send returns without error.
1589//
1590// See GetAutoTerminationPolicy for more information on using the GetAutoTerminationPolicy
1591// API call, and error handling.
1592//
1593// This method is useful when you want to inject custom logic or configuration
1594// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1595//
1596//
1597//    // Example sending a request using the GetAutoTerminationPolicyRequest method.
1598//    req, resp := client.GetAutoTerminationPolicyRequest(params)
1599//
1600//    err := req.Send()
1601//    if err == nil { // resp is now filled
1602//        fmt.Println(resp)
1603//    }
1604//
1605// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/GetAutoTerminationPolicy
1606func (c *EMR) GetAutoTerminationPolicyRequest(input *GetAutoTerminationPolicyInput) (req *request.Request, output *GetAutoTerminationPolicyOutput) {
1607	op := &request.Operation{
1608		Name:       opGetAutoTerminationPolicy,
1609		HTTPMethod: "POST",
1610		HTTPPath:   "/",
1611	}
1612
1613	if input == nil {
1614		input = &GetAutoTerminationPolicyInput{}
1615	}
1616
1617	output = &GetAutoTerminationPolicyOutput{}
1618	req = c.newRequest(op, input, output)
1619	return
1620}
1621
1622// GetAutoTerminationPolicy API operation for Amazon EMR.
1623//
1624// Returns the auto-termination policy for an Amazon EMR cluster.
1625//
1626// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1627// with awserr.Error's Code and Message methods to get detailed information about
1628// the error.
1629//
1630// See the AWS API reference guide for Amazon EMR's
1631// API operation GetAutoTerminationPolicy for usage and error information.
1632// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/GetAutoTerminationPolicy
1633func (c *EMR) GetAutoTerminationPolicy(input *GetAutoTerminationPolicyInput) (*GetAutoTerminationPolicyOutput, error) {
1634	req, out := c.GetAutoTerminationPolicyRequest(input)
1635	return out, req.Send()
1636}
1637
1638// GetAutoTerminationPolicyWithContext is the same as GetAutoTerminationPolicy with the addition of
1639// the ability to pass a context and additional request options.
1640//
1641// See GetAutoTerminationPolicy for details on how to use this API operation.
1642//
1643// The context must be non-nil and will be used for request cancellation. If
1644// the context is nil a panic will occur. In the future the SDK may create
1645// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1646// for more information on using Contexts.
1647func (c *EMR) GetAutoTerminationPolicyWithContext(ctx aws.Context, input *GetAutoTerminationPolicyInput, opts ...request.Option) (*GetAutoTerminationPolicyOutput, error) {
1648	req, out := c.GetAutoTerminationPolicyRequest(input)
1649	req.SetContext(ctx)
1650	req.ApplyOptions(opts...)
1651	return out, req.Send()
1652}
1653
1654const opGetBlockPublicAccessConfiguration = "GetBlockPublicAccessConfiguration"
1655
1656// GetBlockPublicAccessConfigurationRequest generates a "aws/request.Request" representing the
1657// client's request for the GetBlockPublicAccessConfiguration operation. The "output" return
1658// value will be populated with the request's response once the request completes
1659// successfully.
1660//
1661// Use "Send" method on the returned Request to send the API call to the service.
1662// the "output" return value is not valid until after Send returns without error.
1663//
1664// See GetBlockPublicAccessConfiguration for more information on using the GetBlockPublicAccessConfiguration
1665// API call, and error handling.
1666//
1667// This method is useful when you want to inject custom logic or configuration
1668// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1669//
1670//
1671//    // Example sending a request using the GetBlockPublicAccessConfigurationRequest method.
1672//    req, resp := client.GetBlockPublicAccessConfigurationRequest(params)
1673//
1674//    err := req.Send()
1675//    if err == nil { // resp is now filled
1676//        fmt.Println(resp)
1677//    }
1678//
1679// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/GetBlockPublicAccessConfiguration
1680func (c *EMR) GetBlockPublicAccessConfigurationRequest(input *GetBlockPublicAccessConfigurationInput) (req *request.Request, output *GetBlockPublicAccessConfigurationOutput) {
1681	op := &request.Operation{
1682		Name:       opGetBlockPublicAccessConfiguration,
1683		HTTPMethod: "POST",
1684		HTTPPath:   "/",
1685	}
1686
1687	if input == nil {
1688		input = &GetBlockPublicAccessConfigurationInput{}
1689	}
1690
1691	output = &GetBlockPublicAccessConfigurationOutput{}
1692	req = c.newRequest(op, input, output)
1693	return
1694}
1695
1696// GetBlockPublicAccessConfiguration API operation for Amazon EMR.
1697//
1698// Returns the Amazon EMR block public access configuration for your Amazon
1699// Web Services account in the current Region. For more information see Configure
1700// Block Public Access for Amazon EMR (https://docs.aws.amazon.com/emr/latest/ManagementGuide/configure-block-public-access.html)
1701// in the Amazon EMR Management Guide.
1702//
1703// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1704// with awserr.Error's Code and Message methods to get detailed information about
1705// the error.
1706//
1707// See the AWS API reference guide for Amazon EMR's
1708// API operation GetBlockPublicAccessConfiguration for usage and error information.
1709//
1710// Returned Error Types:
1711//   * InternalServerException
1712//   This exception occurs when there is an internal failure in the Amazon EMR
1713//   service.
1714//
1715//   * InvalidRequestException
1716//   This exception occurs when there is something wrong with user input.
1717//
1718// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/GetBlockPublicAccessConfiguration
1719func (c *EMR) GetBlockPublicAccessConfiguration(input *GetBlockPublicAccessConfigurationInput) (*GetBlockPublicAccessConfigurationOutput, error) {
1720	req, out := c.GetBlockPublicAccessConfigurationRequest(input)
1721	return out, req.Send()
1722}
1723
1724// GetBlockPublicAccessConfigurationWithContext is the same as GetBlockPublicAccessConfiguration with the addition of
1725// the ability to pass a context and additional request options.
1726//
1727// See GetBlockPublicAccessConfiguration for details on how to use this API operation.
1728//
1729// The context must be non-nil and will be used for request cancellation. If
1730// the context is nil a panic will occur. In the future the SDK may create
1731// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1732// for more information on using Contexts.
1733func (c *EMR) GetBlockPublicAccessConfigurationWithContext(ctx aws.Context, input *GetBlockPublicAccessConfigurationInput, opts ...request.Option) (*GetBlockPublicAccessConfigurationOutput, error) {
1734	req, out := c.GetBlockPublicAccessConfigurationRequest(input)
1735	req.SetContext(ctx)
1736	req.ApplyOptions(opts...)
1737	return out, req.Send()
1738}
1739
1740const opGetManagedScalingPolicy = "GetManagedScalingPolicy"
1741
1742// GetManagedScalingPolicyRequest generates a "aws/request.Request" representing the
1743// client's request for the GetManagedScalingPolicy operation. The "output" return
1744// value will be populated with the request's response once the request completes
1745// successfully.
1746//
1747// Use "Send" method on the returned Request to send the API call to the service.
1748// the "output" return value is not valid until after Send returns without error.
1749//
1750// See GetManagedScalingPolicy for more information on using the GetManagedScalingPolicy
1751// API call, and error handling.
1752//
1753// This method is useful when you want to inject custom logic or configuration
1754// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1755//
1756//
1757//    // Example sending a request using the GetManagedScalingPolicyRequest method.
1758//    req, resp := client.GetManagedScalingPolicyRequest(params)
1759//
1760//    err := req.Send()
1761//    if err == nil { // resp is now filled
1762//        fmt.Println(resp)
1763//    }
1764//
1765// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/GetManagedScalingPolicy
1766func (c *EMR) GetManagedScalingPolicyRequest(input *GetManagedScalingPolicyInput) (req *request.Request, output *GetManagedScalingPolicyOutput) {
1767	op := &request.Operation{
1768		Name:       opGetManagedScalingPolicy,
1769		HTTPMethod: "POST",
1770		HTTPPath:   "/",
1771	}
1772
1773	if input == nil {
1774		input = &GetManagedScalingPolicyInput{}
1775	}
1776
1777	output = &GetManagedScalingPolicyOutput{}
1778	req = c.newRequest(op, input, output)
1779	return
1780}
1781
1782// GetManagedScalingPolicy API operation for Amazon EMR.
1783//
1784// Fetches the attached managed scaling policy for an Amazon EMR cluster.
1785//
1786// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1787// with awserr.Error's Code and Message methods to get detailed information about
1788// the error.
1789//
1790// See the AWS API reference guide for Amazon EMR's
1791// API operation GetManagedScalingPolicy for usage and error information.
1792// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/GetManagedScalingPolicy
1793func (c *EMR) GetManagedScalingPolicy(input *GetManagedScalingPolicyInput) (*GetManagedScalingPolicyOutput, error) {
1794	req, out := c.GetManagedScalingPolicyRequest(input)
1795	return out, req.Send()
1796}
1797
1798// GetManagedScalingPolicyWithContext is the same as GetManagedScalingPolicy with the addition of
1799// the ability to pass a context and additional request options.
1800//
1801// See GetManagedScalingPolicy for details on how to use this API operation.
1802//
1803// The context must be non-nil and will be used for request cancellation. If
1804// the context is nil a panic will occur. In the future the SDK may create
1805// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1806// for more information on using Contexts.
1807func (c *EMR) GetManagedScalingPolicyWithContext(ctx aws.Context, input *GetManagedScalingPolicyInput, opts ...request.Option) (*GetManagedScalingPolicyOutput, error) {
1808	req, out := c.GetManagedScalingPolicyRequest(input)
1809	req.SetContext(ctx)
1810	req.ApplyOptions(opts...)
1811	return out, req.Send()
1812}
1813
1814const opGetStudioSessionMapping = "GetStudioSessionMapping"
1815
1816// GetStudioSessionMappingRequest generates a "aws/request.Request" representing the
1817// client's request for the GetStudioSessionMapping operation. The "output" return
1818// value will be populated with the request's response once the request completes
1819// successfully.
1820//
1821// Use "Send" method on the returned Request to send the API call to the service.
1822// the "output" return value is not valid until after Send returns without error.
1823//
1824// See GetStudioSessionMapping for more information on using the GetStudioSessionMapping
1825// API call, and error handling.
1826//
1827// This method is useful when you want to inject custom logic or configuration
1828// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1829//
1830//
1831//    // Example sending a request using the GetStudioSessionMappingRequest method.
1832//    req, resp := client.GetStudioSessionMappingRequest(params)
1833//
1834//    err := req.Send()
1835//    if err == nil { // resp is now filled
1836//        fmt.Println(resp)
1837//    }
1838//
1839// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/GetStudioSessionMapping
1840func (c *EMR) GetStudioSessionMappingRequest(input *GetStudioSessionMappingInput) (req *request.Request, output *GetStudioSessionMappingOutput) {
1841	op := &request.Operation{
1842		Name:       opGetStudioSessionMapping,
1843		HTTPMethod: "POST",
1844		HTTPPath:   "/",
1845	}
1846
1847	if input == nil {
1848		input = &GetStudioSessionMappingInput{}
1849	}
1850
1851	output = &GetStudioSessionMappingOutput{}
1852	req = c.newRequest(op, input, output)
1853	return
1854}
1855
1856// GetStudioSessionMapping API operation for Amazon EMR.
1857//
1858// Fetches mapping details for the specified Amazon EMR Studio and identity
1859// (user or group).
1860//
1861// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1862// with awserr.Error's Code and Message methods to get detailed information about
1863// the error.
1864//
1865// See the AWS API reference guide for Amazon EMR's
1866// API operation GetStudioSessionMapping for usage and error information.
1867//
1868// Returned Error Types:
1869//   * InternalServerError
1870//   Indicates that an error occurred while processing the request and that the
1871//   request was not completed.
1872//
1873//   * InvalidRequestException
1874//   This exception occurs when there is something wrong with user input.
1875//
1876// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/GetStudioSessionMapping
1877func (c *EMR) GetStudioSessionMapping(input *GetStudioSessionMappingInput) (*GetStudioSessionMappingOutput, error) {
1878	req, out := c.GetStudioSessionMappingRequest(input)
1879	return out, req.Send()
1880}
1881
1882// GetStudioSessionMappingWithContext is the same as GetStudioSessionMapping with the addition of
1883// the ability to pass a context and additional request options.
1884//
1885// See GetStudioSessionMapping for details on how to use this API operation.
1886//
1887// The context must be non-nil and will be used for request cancellation. If
1888// the context is nil a panic will occur. In the future the SDK may create
1889// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1890// for more information on using Contexts.
1891func (c *EMR) GetStudioSessionMappingWithContext(ctx aws.Context, input *GetStudioSessionMappingInput, opts ...request.Option) (*GetStudioSessionMappingOutput, error) {
1892	req, out := c.GetStudioSessionMappingRequest(input)
1893	req.SetContext(ctx)
1894	req.ApplyOptions(opts...)
1895	return out, req.Send()
1896}
1897
1898const opListBootstrapActions = "ListBootstrapActions"
1899
1900// ListBootstrapActionsRequest generates a "aws/request.Request" representing the
1901// client's request for the ListBootstrapActions operation. The "output" return
1902// value will be populated with the request's response once the request completes
1903// successfully.
1904//
1905// Use "Send" method on the returned Request to send the API call to the service.
1906// the "output" return value is not valid until after Send returns without error.
1907//
1908// See ListBootstrapActions for more information on using the ListBootstrapActions
1909// API call, and error handling.
1910//
1911// This method is useful when you want to inject custom logic or configuration
1912// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1913//
1914//
1915//    // Example sending a request using the ListBootstrapActionsRequest method.
1916//    req, resp := client.ListBootstrapActionsRequest(params)
1917//
1918//    err := req.Send()
1919//    if err == nil { // resp is now filled
1920//        fmt.Println(resp)
1921//    }
1922//
1923// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListBootstrapActions
1924func (c *EMR) ListBootstrapActionsRequest(input *ListBootstrapActionsInput) (req *request.Request, output *ListBootstrapActionsOutput) {
1925	op := &request.Operation{
1926		Name:       opListBootstrapActions,
1927		HTTPMethod: "POST",
1928		HTTPPath:   "/",
1929		Paginator: &request.Paginator{
1930			InputTokens:     []string{"Marker"},
1931			OutputTokens:    []string{"Marker"},
1932			LimitToken:      "",
1933			TruncationToken: "",
1934		},
1935	}
1936
1937	if input == nil {
1938		input = &ListBootstrapActionsInput{}
1939	}
1940
1941	output = &ListBootstrapActionsOutput{}
1942	req = c.newRequest(op, input, output)
1943	return
1944}
1945
1946// ListBootstrapActions API operation for Amazon EMR.
1947//
1948// Provides information about the bootstrap actions associated with a cluster.
1949//
1950// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1951// with awserr.Error's Code and Message methods to get detailed information about
1952// the error.
1953//
1954// See the AWS API reference guide for Amazon EMR's
1955// API operation ListBootstrapActions for usage and error information.
1956//
1957// Returned Error Types:
1958//   * InternalServerException
1959//   This exception occurs when there is an internal failure in the Amazon EMR
1960//   service.
1961//
1962//   * InvalidRequestException
1963//   This exception occurs when there is something wrong with user input.
1964//
1965// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListBootstrapActions
1966func (c *EMR) ListBootstrapActions(input *ListBootstrapActionsInput) (*ListBootstrapActionsOutput, error) {
1967	req, out := c.ListBootstrapActionsRequest(input)
1968	return out, req.Send()
1969}
1970
1971// ListBootstrapActionsWithContext is the same as ListBootstrapActions with the addition of
1972// the ability to pass a context and additional request options.
1973//
1974// See ListBootstrapActions for details on how to use this API operation.
1975//
1976// The context must be non-nil and will be used for request cancellation. If
1977// the context is nil a panic will occur. In the future the SDK may create
1978// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1979// for more information on using Contexts.
1980func (c *EMR) ListBootstrapActionsWithContext(ctx aws.Context, input *ListBootstrapActionsInput, opts ...request.Option) (*ListBootstrapActionsOutput, error) {
1981	req, out := c.ListBootstrapActionsRequest(input)
1982	req.SetContext(ctx)
1983	req.ApplyOptions(opts...)
1984	return out, req.Send()
1985}
1986
1987// ListBootstrapActionsPages iterates over the pages of a ListBootstrapActions operation,
1988// calling the "fn" function with the response data for each page. To stop
1989// iterating, return false from the fn function.
1990//
1991// See ListBootstrapActions method for more information on how to use this operation.
1992//
1993// Note: This operation can generate multiple requests to a service.
1994//
1995//    // Example iterating over at most 3 pages of a ListBootstrapActions operation.
1996//    pageNum := 0
1997//    err := client.ListBootstrapActionsPages(params,
1998//        func(page *emr.ListBootstrapActionsOutput, lastPage bool) bool {
1999//            pageNum++
2000//            fmt.Println(page)
2001//            return pageNum <= 3
2002//        })
2003//
2004func (c *EMR) ListBootstrapActionsPages(input *ListBootstrapActionsInput, fn func(*ListBootstrapActionsOutput, bool) bool) error {
2005	return c.ListBootstrapActionsPagesWithContext(aws.BackgroundContext(), input, fn)
2006}
2007
2008// ListBootstrapActionsPagesWithContext same as ListBootstrapActionsPages except
2009// it takes a Context and allows setting request options on the pages.
2010//
2011// The context must be non-nil and will be used for request cancellation. If
2012// the context is nil a panic will occur. In the future the SDK may create
2013// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2014// for more information on using Contexts.
2015func (c *EMR) ListBootstrapActionsPagesWithContext(ctx aws.Context, input *ListBootstrapActionsInput, fn func(*ListBootstrapActionsOutput, bool) bool, opts ...request.Option) error {
2016	p := request.Pagination{
2017		NewRequest: func() (*request.Request, error) {
2018			var inCpy *ListBootstrapActionsInput
2019			if input != nil {
2020				tmp := *input
2021				inCpy = &tmp
2022			}
2023			req, _ := c.ListBootstrapActionsRequest(inCpy)
2024			req.SetContext(ctx)
2025			req.ApplyOptions(opts...)
2026			return req, nil
2027		},
2028	}
2029
2030	for p.Next() {
2031		if !fn(p.Page().(*ListBootstrapActionsOutput), !p.HasNextPage()) {
2032			break
2033		}
2034	}
2035
2036	return p.Err()
2037}
2038
2039const opListClusters = "ListClusters"
2040
2041// ListClustersRequest generates a "aws/request.Request" representing the
2042// client's request for the ListClusters operation. The "output" return
2043// value will be populated with the request's response once the request completes
2044// successfully.
2045//
2046// Use "Send" method on the returned Request to send the API call to the service.
2047// the "output" return value is not valid until after Send returns without error.
2048//
2049// See ListClusters for more information on using the ListClusters
2050// API call, and error handling.
2051//
2052// This method is useful when you want to inject custom logic or configuration
2053// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2054//
2055//
2056//    // Example sending a request using the ListClustersRequest method.
2057//    req, resp := client.ListClustersRequest(params)
2058//
2059//    err := req.Send()
2060//    if err == nil { // resp is now filled
2061//        fmt.Println(resp)
2062//    }
2063//
2064// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListClusters
2065func (c *EMR) ListClustersRequest(input *ListClustersInput) (req *request.Request, output *ListClustersOutput) {
2066	op := &request.Operation{
2067		Name:       opListClusters,
2068		HTTPMethod: "POST",
2069		HTTPPath:   "/",
2070		Paginator: &request.Paginator{
2071			InputTokens:     []string{"Marker"},
2072			OutputTokens:    []string{"Marker"},
2073			LimitToken:      "",
2074			TruncationToken: "",
2075		},
2076	}
2077
2078	if input == nil {
2079		input = &ListClustersInput{}
2080	}
2081
2082	output = &ListClustersOutput{}
2083	req = c.newRequest(op, input, output)
2084	return
2085}
2086
2087// ListClusters API operation for Amazon EMR.
2088//
2089// Provides the status of all clusters visible to this Amazon Web Services account.
2090// Allows you to filter the list of clusters based on certain criteria; for
2091// example, filtering by cluster creation date and time or by status. This call
2092// returns a maximum of 50 clusters in unsorted order per call, but returns
2093// a marker to track the paging of the cluster list across multiple ListClusters
2094// calls.
2095//
2096// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2097// with awserr.Error's Code and Message methods to get detailed information about
2098// the error.
2099//
2100// See the AWS API reference guide for Amazon EMR's
2101// API operation ListClusters for usage and error information.
2102//
2103// Returned Error Types:
2104//   * InternalServerException
2105//   This exception occurs when there is an internal failure in the Amazon EMR
2106//   service.
2107//
2108//   * InvalidRequestException
2109//   This exception occurs when there is something wrong with user input.
2110//
2111// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListClusters
2112func (c *EMR) ListClusters(input *ListClustersInput) (*ListClustersOutput, error) {
2113	req, out := c.ListClustersRequest(input)
2114	return out, req.Send()
2115}
2116
2117// ListClustersWithContext is the same as ListClusters with the addition of
2118// the ability to pass a context and additional request options.
2119//
2120// See ListClusters for details on how to use this API operation.
2121//
2122// The context must be non-nil and will be used for request cancellation. If
2123// the context is nil a panic will occur. In the future the SDK may create
2124// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2125// for more information on using Contexts.
2126func (c *EMR) ListClustersWithContext(ctx aws.Context, input *ListClustersInput, opts ...request.Option) (*ListClustersOutput, error) {
2127	req, out := c.ListClustersRequest(input)
2128	req.SetContext(ctx)
2129	req.ApplyOptions(opts...)
2130	return out, req.Send()
2131}
2132
2133// ListClustersPages iterates over the pages of a ListClusters operation,
2134// calling the "fn" function with the response data for each page. To stop
2135// iterating, return false from the fn function.
2136//
2137// See ListClusters method for more information on how to use this operation.
2138//
2139// Note: This operation can generate multiple requests to a service.
2140//
2141//    // Example iterating over at most 3 pages of a ListClusters operation.
2142//    pageNum := 0
2143//    err := client.ListClustersPages(params,
2144//        func(page *emr.ListClustersOutput, lastPage bool) bool {
2145//            pageNum++
2146//            fmt.Println(page)
2147//            return pageNum <= 3
2148//        })
2149//
2150func (c *EMR) ListClustersPages(input *ListClustersInput, fn func(*ListClustersOutput, bool) bool) error {
2151	return c.ListClustersPagesWithContext(aws.BackgroundContext(), input, fn)
2152}
2153
2154// ListClustersPagesWithContext same as ListClustersPages except
2155// it takes a Context and allows setting request options on the pages.
2156//
2157// The context must be non-nil and will be used for request cancellation. If
2158// the context is nil a panic will occur. In the future the SDK may create
2159// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2160// for more information on using Contexts.
2161func (c *EMR) ListClustersPagesWithContext(ctx aws.Context, input *ListClustersInput, fn func(*ListClustersOutput, bool) bool, opts ...request.Option) error {
2162	p := request.Pagination{
2163		NewRequest: func() (*request.Request, error) {
2164			var inCpy *ListClustersInput
2165			if input != nil {
2166				tmp := *input
2167				inCpy = &tmp
2168			}
2169			req, _ := c.ListClustersRequest(inCpy)
2170			req.SetContext(ctx)
2171			req.ApplyOptions(opts...)
2172			return req, nil
2173		},
2174	}
2175
2176	for p.Next() {
2177		if !fn(p.Page().(*ListClustersOutput), !p.HasNextPage()) {
2178			break
2179		}
2180	}
2181
2182	return p.Err()
2183}
2184
2185const opListInstanceFleets = "ListInstanceFleets"
2186
2187// ListInstanceFleetsRequest generates a "aws/request.Request" representing the
2188// client's request for the ListInstanceFleets operation. The "output" return
2189// value will be populated with the request's response once the request completes
2190// successfully.
2191//
2192// Use "Send" method on the returned Request to send the API call to the service.
2193// the "output" return value is not valid until after Send returns without error.
2194//
2195// See ListInstanceFleets for more information on using the ListInstanceFleets
2196// API call, and error handling.
2197//
2198// This method is useful when you want to inject custom logic or configuration
2199// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2200//
2201//
2202//    // Example sending a request using the ListInstanceFleetsRequest method.
2203//    req, resp := client.ListInstanceFleetsRequest(params)
2204//
2205//    err := req.Send()
2206//    if err == nil { // resp is now filled
2207//        fmt.Println(resp)
2208//    }
2209//
2210// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListInstanceFleets
2211func (c *EMR) ListInstanceFleetsRequest(input *ListInstanceFleetsInput) (req *request.Request, output *ListInstanceFleetsOutput) {
2212	op := &request.Operation{
2213		Name:       opListInstanceFleets,
2214		HTTPMethod: "POST",
2215		HTTPPath:   "/",
2216		Paginator: &request.Paginator{
2217			InputTokens:     []string{"Marker"},
2218			OutputTokens:    []string{"Marker"},
2219			LimitToken:      "",
2220			TruncationToken: "",
2221		},
2222	}
2223
2224	if input == nil {
2225		input = &ListInstanceFleetsInput{}
2226	}
2227
2228	output = &ListInstanceFleetsOutput{}
2229	req = c.newRequest(op, input, output)
2230	return
2231}
2232
2233// ListInstanceFleets API operation for Amazon EMR.
2234//
2235// Lists all available details about the instance fleets in a cluster.
2236//
2237// The instance fleet configuration is available only in Amazon EMR versions
2238// 4.8.0 and later, excluding 5.0.x versions.
2239//
2240// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2241// with awserr.Error's Code and Message methods to get detailed information about
2242// the error.
2243//
2244// See the AWS API reference guide for Amazon EMR's
2245// API operation ListInstanceFleets for usage and error information.
2246//
2247// Returned Error Types:
2248//   * InternalServerException
2249//   This exception occurs when there is an internal failure in the Amazon EMR
2250//   service.
2251//
2252//   * InvalidRequestException
2253//   This exception occurs when there is something wrong with user input.
2254//
2255// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListInstanceFleets
2256func (c *EMR) ListInstanceFleets(input *ListInstanceFleetsInput) (*ListInstanceFleetsOutput, error) {
2257	req, out := c.ListInstanceFleetsRequest(input)
2258	return out, req.Send()
2259}
2260
2261// ListInstanceFleetsWithContext is the same as ListInstanceFleets with the addition of
2262// the ability to pass a context and additional request options.
2263//
2264// See ListInstanceFleets for details on how to use this API operation.
2265//
2266// The context must be non-nil and will be used for request cancellation. If
2267// the context is nil a panic will occur. In the future the SDK may create
2268// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2269// for more information on using Contexts.
2270func (c *EMR) ListInstanceFleetsWithContext(ctx aws.Context, input *ListInstanceFleetsInput, opts ...request.Option) (*ListInstanceFleetsOutput, error) {
2271	req, out := c.ListInstanceFleetsRequest(input)
2272	req.SetContext(ctx)
2273	req.ApplyOptions(opts...)
2274	return out, req.Send()
2275}
2276
2277// ListInstanceFleetsPages iterates over the pages of a ListInstanceFleets operation,
2278// calling the "fn" function with the response data for each page. To stop
2279// iterating, return false from the fn function.
2280//
2281// See ListInstanceFleets method for more information on how to use this operation.
2282//
2283// Note: This operation can generate multiple requests to a service.
2284//
2285//    // Example iterating over at most 3 pages of a ListInstanceFleets operation.
2286//    pageNum := 0
2287//    err := client.ListInstanceFleetsPages(params,
2288//        func(page *emr.ListInstanceFleetsOutput, lastPage bool) bool {
2289//            pageNum++
2290//            fmt.Println(page)
2291//            return pageNum <= 3
2292//        })
2293//
2294func (c *EMR) ListInstanceFleetsPages(input *ListInstanceFleetsInput, fn func(*ListInstanceFleetsOutput, bool) bool) error {
2295	return c.ListInstanceFleetsPagesWithContext(aws.BackgroundContext(), input, fn)
2296}
2297
2298// ListInstanceFleetsPagesWithContext same as ListInstanceFleetsPages except
2299// it takes a Context and allows setting request options on the pages.
2300//
2301// The context must be non-nil and will be used for request cancellation. If
2302// the context is nil a panic will occur. In the future the SDK may create
2303// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2304// for more information on using Contexts.
2305func (c *EMR) ListInstanceFleetsPagesWithContext(ctx aws.Context, input *ListInstanceFleetsInput, fn func(*ListInstanceFleetsOutput, bool) bool, opts ...request.Option) error {
2306	p := request.Pagination{
2307		NewRequest: func() (*request.Request, error) {
2308			var inCpy *ListInstanceFleetsInput
2309			if input != nil {
2310				tmp := *input
2311				inCpy = &tmp
2312			}
2313			req, _ := c.ListInstanceFleetsRequest(inCpy)
2314			req.SetContext(ctx)
2315			req.ApplyOptions(opts...)
2316			return req, nil
2317		},
2318	}
2319
2320	for p.Next() {
2321		if !fn(p.Page().(*ListInstanceFleetsOutput), !p.HasNextPage()) {
2322			break
2323		}
2324	}
2325
2326	return p.Err()
2327}
2328
2329const opListInstanceGroups = "ListInstanceGroups"
2330
2331// ListInstanceGroupsRequest generates a "aws/request.Request" representing the
2332// client's request for the ListInstanceGroups operation. The "output" return
2333// value will be populated with the request's response once the request completes
2334// successfully.
2335//
2336// Use "Send" method on the returned Request to send the API call to the service.
2337// the "output" return value is not valid until after Send returns without error.
2338//
2339// See ListInstanceGroups for more information on using the ListInstanceGroups
2340// API call, and error handling.
2341//
2342// This method is useful when you want to inject custom logic or configuration
2343// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2344//
2345//
2346//    // Example sending a request using the ListInstanceGroupsRequest method.
2347//    req, resp := client.ListInstanceGroupsRequest(params)
2348//
2349//    err := req.Send()
2350//    if err == nil { // resp is now filled
2351//        fmt.Println(resp)
2352//    }
2353//
2354// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListInstanceGroups
2355func (c *EMR) ListInstanceGroupsRequest(input *ListInstanceGroupsInput) (req *request.Request, output *ListInstanceGroupsOutput) {
2356	op := &request.Operation{
2357		Name:       opListInstanceGroups,
2358		HTTPMethod: "POST",
2359		HTTPPath:   "/",
2360		Paginator: &request.Paginator{
2361			InputTokens:     []string{"Marker"},
2362			OutputTokens:    []string{"Marker"},
2363			LimitToken:      "",
2364			TruncationToken: "",
2365		},
2366	}
2367
2368	if input == nil {
2369		input = &ListInstanceGroupsInput{}
2370	}
2371
2372	output = &ListInstanceGroupsOutput{}
2373	req = c.newRequest(op, input, output)
2374	return
2375}
2376
2377// ListInstanceGroups API operation for Amazon EMR.
2378//
2379// Provides all available details about the instance groups in a cluster.
2380//
2381// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2382// with awserr.Error's Code and Message methods to get detailed information about
2383// the error.
2384//
2385// See the AWS API reference guide for Amazon EMR's
2386// API operation ListInstanceGroups for usage and error information.
2387//
2388// Returned Error Types:
2389//   * InternalServerException
2390//   This exception occurs when there is an internal failure in the Amazon EMR
2391//   service.
2392//
2393//   * InvalidRequestException
2394//   This exception occurs when there is something wrong with user input.
2395//
2396// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListInstanceGroups
2397func (c *EMR) ListInstanceGroups(input *ListInstanceGroupsInput) (*ListInstanceGroupsOutput, error) {
2398	req, out := c.ListInstanceGroupsRequest(input)
2399	return out, req.Send()
2400}
2401
2402// ListInstanceGroupsWithContext is the same as ListInstanceGroups with the addition of
2403// the ability to pass a context and additional request options.
2404//
2405// See ListInstanceGroups for details on how to use this API operation.
2406//
2407// The context must be non-nil and will be used for request cancellation. If
2408// the context is nil a panic will occur. In the future the SDK may create
2409// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2410// for more information on using Contexts.
2411func (c *EMR) ListInstanceGroupsWithContext(ctx aws.Context, input *ListInstanceGroupsInput, opts ...request.Option) (*ListInstanceGroupsOutput, error) {
2412	req, out := c.ListInstanceGroupsRequest(input)
2413	req.SetContext(ctx)
2414	req.ApplyOptions(opts...)
2415	return out, req.Send()
2416}
2417
2418// ListInstanceGroupsPages iterates over the pages of a ListInstanceGroups operation,
2419// calling the "fn" function with the response data for each page. To stop
2420// iterating, return false from the fn function.
2421//
2422// See ListInstanceGroups method for more information on how to use this operation.
2423//
2424// Note: This operation can generate multiple requests to a service.
2425//
2426//    // Example iterating over at most 3 pages of a ListInstanceGroups operation.
2427//    pageNum := 0
2428//    err := client.ListInstanceGroupsPages(params,
2429//        func(page *emr.ListInstanceGroupsOutput, lastPage bool) bool {
2430//            pageNum++
2431//            fmt.Println(page)
2432//            return pageNum <= 3
2433//        })
2434//
2435func (c *EMR) ListInstanceGroupsPages(input *ListInstanceGroupsInput, fn func(*ListInstanceGroupsOutput, bool) bool) error {
2436	return c.ListInstanceGroupsPagesWithContext(aws.BackgroundContext(), input, fn)
2437}
2438
2439// ListInstanceGroupsPagesWithContext same as ListInstanceGroupsPages except
2440// it takes a Context and allows setting request options on the pages.
2441//
2442// The context must be non-nil and will be used for request cancellation. If
2443// the context is nil a panic will occur. In the future the SDK may create
2444// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2445// for more information on using Contexts.
2446func (c *EMR) ListInstanceGroupsPagesWithContext(ctx aws.Context, input *ListInstanceGroupsInput, fn func(*ListInstanceGroupsOutput, bool) bool, opts ...request.Option) error {
2447	p := request.Pagination{
2448		NewRequest: func() (*request.Request, error) {
2449			var inCpy *ListInstanceGroupsInput
2450			if input != nil {
2451				tmp := *input
2452				inCpy = &tmp
2453			}
2454			req, _ := c.ListInstanceGroupsRequest(inCpy)
2455			req.SetContext(ctx)
2456			req.ApplyOptions(opts...)
2457			return req, nil
2458		},
2459	}
2460
2461	for p.Next() {
2462		if !fn(p.Page().(*ListInstanceGroupsOutput), !p.HasNextPage()) {
2463			break
2464		}
2465	}
2466
2467	return p.Err()
2468}
2469
2470const opListInstances = "ListInstances"
2471
2472// ListInstancesRequest generates a "aws/request.Request" representing the
2473// client's request for the ListInstances operation. The "output" return
2474// value will be populated with the request's response once the request completes
2475// successfully.
2476//
2477// Use "Send" method on the returned Request to send the API call to the service.
2478// the "output" return value is not valid until after Send returns without error.
2479//
2480// See ListInstances for more information on using the ListInstances
2481// API call, and error handling.
2482//
2483// This method is useful when you want to inject custom logic or configuration
2484// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2485//
2486//
2487//    // Example sending a request using the ListInstancesRequest method.
2488//    req, resp := client.ListInstancesRequest(params)
2489//
2490//    err := req.Send()
2491//    if err == nil { // resp is now filled
2492//        fmt.Println(resp)
2493//    }
2494//
2495// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListInstances
2496func (c *EMR) ListInstancesRequest(input *ListInstancesInput) (req *request.Request, output *ListInstancesOutput) {
2497	op := &request.Operation{
2498		Name:       opListInstances,
2499		HTTPMethod: "POST",
2500		HTTPPath:   "/",
2501		Paginator: &request.Paginator{
2502			InputTokens:     []string{"Marker"},
2503			OutputTokens:    []string{"Marker"},
2504			LimitToken:      "",
2505			TruncationToken: "",
2506		},
2507	}
2508
2509	if input == nil {
2510		input = &ListInstancesInput{}
2511	}
2512
2513	output = &ListInstancesOutput{}
2514	req = c.newRequest(op, input, output)
2515	return
2516}
2517
2518// ListInstances API operation for Amazon EMR.
2519//
2520// Provides information for all active EC2 instances and EC2 instances terminated
2521// in the last 30 days, up to a maximum of 2,000. EC2 instances in any of the
2522// following states are considered active: AWAITING_FULFILLMENT, PROVISIONING,
2523// BOOTSTRAPPING, RUNNING.
2524//
2525// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2526// with awserr.Error's Code and Message methods to get detailed information about
2527// the error.
2528//
2529// See the AWS API reference guide for Amazon EMR's
2530// API operation ListInstances for usage and error information.
2531//
2532// Returned Error Types:
2533//   * InternalServerException
2534//   This exception occurs when there is an internal failure in the Amazon EMR
2535//   service.
2536//
2537//   * InvalidRequestException
2538//   This exception occurs when there is something wrong with user input.
2539//
2540// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListInstances
2541func (c *EMR) ListInstances(input *ListInstancesInput) (*ListInstancesOutput, error) {
2542	req, out := c.ListInstancesRequest(input)
2543	return out, req.Send()
2544}
2545
2546// ListInstancesWithContext is the same as ListInstances with the addition of
2547// the ability to pass a context and additional request options.
2548//
2549// See ListInstances for details on how to use this API operation.
2550//
2551// The context must be non-nil and will be used for request cancellation. If
2552// the context is nil a panic will occur. In the future the SDK may create
2553// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2554// for more information on using Contexts.
2555func (c *EMR) ListInstancesWithContext(ctx aws.Context, input *ListInstancesInput, opts ...request.Option) (*ListInstancesOutput, error) {
2556	req, out := c.ListInstancesRequest(input)
2557	req.SetContext(ctx)
2558	req.ApplyOptions(opts...)
2559	return out, req.Send()
2560}
2561
2562// ListInstancesPages iterates over the pages of a ListInstances operation,
2563// calling the "fn" function with the response data for each page. To stop
2564// iterating, return false from the fn function.
2565//
2566// See ListInstances method for more information on how to use this operation.
2567//
2568// Note: This operation can generate multiple requests to a service.
2569//
2570//    // Example iterating over at most 3 pages of a ListInstances operation.
2571//    pageNum := 0
2572//    err := client.ListInstancesPages(params,
2573//        func(page *emr.ListInstancesOutput, lastPage bool) bool {
2574//            pageNum++
2575//            fmt.Println(page)
2576//            return pageNum <= 3
2577//        })
2578//
2579func (c *EMR) ListInstancesPages(input *ListInstancesInput, fn func(*ListInstancesOutput, bool) bool) error {
2580	return c.ListInstancesPagesWithContext(aws.BackgroundContext(), input, fn)
2581}
2582
2583// ListInstancesPagesWithContext same as ListInstancesPages except
2584// it takes a Context and allows setting request options on the pages.
2585//
2586// The context must be non-nil and will be used for request cancellation. If
2587// the context is nil a panic will occur. In the future the SDK may create
2588// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2589// for more information on using Contexts.
2590func (c *EMR) ListInstancesPagesWithContext(ctx aws.Context, input *ListInstancesInput, fn func(*ListInstancesOutput, bool) bool, opts ...request.Option) error {
2591	p := request.Pagination{
2592		NewRequest: func() (*request.Request, error) {
2593			var inCpy *ListInstancesInput
2594			if input != nil {
2595				tmp := *input
2596				inCpy = &tmp
2597			}
2598			req, _ := c.ListInstancesRequest(inCpy)
2599			req.SetContext(ctx)
2600			req.ApplyOptions(opts...)
2601			return req, nil
2602		},
2603	}
2604
2605	for p.Next() {
2606		if !fn(p.Page().(*ListInstancesOutput), !p.HasNextPage()) {
2607			break
2608		}
2609	}
2610
2611	return p.Err()
2612}
2613
2614const opListNotebookExecutions = "ListNotebookExecutions"
2615
2616// ListNotebookExecutionsRequest generates a "aws/request.Request" representing the
2617// client's request for the ListNotebookExecutions operation. The "output" return
2618// value will be populated with the request's response once the request completes
2619// successfully.
2620//
2621// Use "Send" method on the returned Request to send the API call to the service.
2622// the "output" return value is not valid until after Send returns without error.
2623//
2624// See ListNotebookExecutions for more information on using the ListNotebookExecutions
2625// API call, and error handling.
2626//
2627// This method is useful when you want to inject custom logic or configuration
2628// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2629//
2630//
2631//    // Example sending a request using the ListNotebookExecutionsRequest method.
2632//    req, resp := client.ListNotebookExecutionsRequest(params)
2633//
2634//    err := req.Send()
2635//    if err == nil { // resp is now filled
2636//        fmt.Println(resp)
2637//    }
2638//
2639// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListNotebookExecutions
2640func (c *EMR) ListNotebookExecutionsRequest(input *ListNotebookExecutionsInput) (req *request.Request, output *ListNotebookExecutionsOutput) {
2641	op := &request.Operation{
2642		Name:       opListNotebookExecutions,
2643		HTTPMethod: "POST",
2644		HTTPPath:   "/",
2645		Paginator: &request.Paginator{
2646			InputTokens:     []string{"Marker"},
2647			OutputTokens:    []string{"Marker"},
2648			LimitToken:      "",
2649			TruncationToken: "",
2650		},
2651	}
2652
2653	if input == nil {
2654		input = &ListNotebookExecutionsInput{}
2655	}
2656
2657	output = &ListNotebookExecutionsOutput{}
2658	req = c.newRequest(op, input, output)
2659	return
2660}
2661
2662// ListNotebookExecutions API operation for Amazon EMR.
2663//
2664// Provides summaries of all notebook executions. You can filter the list based
2665// on multiple criteria such as status, time range, and editor id. Returns a
2666// maximum of 50 notebook executions and a marker to track the paging of a longer
2667// notebook execution list across multiple ListNotebookExecution calls.
2668//
2669// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2670// with awserr.Error's Code and Message methods to get detailed information about
2671// the error.
2672//
2673// See the AWS API reference guide for Amazon EMR's
2674// API operation ListNotebookExecutions for usage and error information.
2675//
2676// Returned Error Types:
2677//   * InternalServerError
2678//   Indicates that an error occurred while processing the request and that the
2679//   request was not completed.
2680//
2681//   * InvalidRequestException
2682//   This exception occurs when there is something wrong with user input.
2683//
2684// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListNotebookExecutions
2685func (c *EMR) ListNotebookExecutions(input *ListNotebookExecutionsInput) (*ListNotebookExecutionsOutput, error) {
2686	req, out := c.ListNotebookExecutionsRequest(input)
2687	return out, req.Send()
2688}
2689
2690// ListNotebookExecutionsWithContext is the same as ListNotebookExecutions with the addition of
2691// the ability to pass a context and additional request options.
2692//
2693// See ListNotebookExecutions for details on how to use this API operation.
2694//
2695// The context must be non-nil and will be used for request cancellation. If
2696// the context is nil a panic will occur. In the future the SDK may create
2697// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2698// for more information on using Contexts.
2699func (c *EMR) ListNotebookExecutionsWithContext(ctx aws.Context, input *ListNotebookExecutionsInput, opts ...request.Option) (*ListNotebookExecutionsOutput, error) {
2700	req, out := c.ListNotebookExecutionsRequest(input)
2701	req.SetContext(ctx)
2702	req.ApplyOptions(opts...)
2703	return out, req.Send()
2704}
2705
2706// ListNotebookExecutionsPages iterates over the pages of a ListNotebookExecutions operation,
2707// calling the "fn" function with the response data for each page. To stop
2708// iterating, return false from the fn function.
2709//
2710// See ListNotebookExecutions method for more information on how to use this operation.
2711//
2712// Note: This operation can generate multiple requests to a service.
2713//
2714//    // Example iterating over at most 3 pages of a ListNotebookExecutions operation.
2715//    pageNum := 0
2716//    err := client.ListNotebookExecutionsPages(params,
2717//        func(page *emr.ListNotebookExecutionsOutput, lastPage bool) bool {
2718//            pageNum++
2719//            fmt.Println(page)
2720//            return pageNum <= 3
2721//        })
2722//
2723func (c *EMR) ListNotebookExecutionsPages(input *ListNotebookExecutionsInput, fn func(*ListNotebookExecutionsOutput, bool) bool) error {
2724	return c.ListNotebookExecutionsPagesWithContext(aws.BackgroundContext(), input, fn)
2725}
2726
2727// ListNotebookExecutionsPagesWithContext same as ListNotebookExecutionsPages except
2728// it takes a Context and allows setting request options on the pages.
2729//
2730// The context must be non-nil and will be used for request cancellation. If
2731// the context is nil a panic will occur. In the future the SDK may create
2732// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2733// for more information on using Contexts.
2734func (c *EMR) ListNotebookExecutionsPagesWithContext(ctx aws.Context, input *ListNotebookExecutionsInput, fn func(*ListNotebookExecutionsOutput, bool) bool, opts ...request.Option) error {
2735	p := request.Pagination{
2736		NewRequest: func() (*request.Request, error) {
2737			var inCpy *ListNotebookExecutionsInput
2738			if input != nil {
2739				tmp := *input
2740				inCpy = &tmp
2741			}
2742			req, _ := c.ListNotebookExecutionsRequest(inCpy)
2743			req.SetContext(ctx)
2744			req.ApplyOptions(opts...)
2745			return req, nil
2746		},
2747	}
2748
2749	for p.Next() {
2750		if !fn(p.Page().(*ListNotebookExecutionsOutput), !p.HasNextPage()) {
2751			break
2752		}
2753	}
2754
2755	return p.Err()
2756}
2757
2758const opListReleaseLabels = "ListReleaseLabels"
2759
2760// ListReleaseLabelsRequest generates a "aws/request.Request" representing the
2761// client's request for the ListReleaseLabels operation. The "output" return
2762// value will be populated with the request's response once the request completes
2763// successfully.
2764//
2765// Use "Send" method on the returned Request to send the API call to the service.
2766// the "output" return value is not valid until after Send returns without error.
2767//
2768// See ListReleaseLabels for more information on using the ListReleaseLabels
2769// API call, and error handling.
2770//
2771// This method is useful when you want to inject custom logic or configuration
2772// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2773//
2774//
2775//    // Example sending a request using the ListReleaseLabelsRequest method.
2776//    req, resp := client.ListReleaseLabelsRequest(params)
2777//
2778//    err := req.Send()
2779//    if err == nil { // resp is now filled
2780//        fmt.Println(resp)
2781//    }
2782//
2783// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListReleaseLabels
2784func (c *EMR) ListReleaseLabelsRequest(input *ListReleaseLabelsInput) (req *request.Request, output *ListReleaseLabelsOutput) {
2785	op := &request.Operation{
2786		Name:       opListReleaseLabels,
2787		HTTPMethod: "POST",
2788		HTTPPath:   "/",
2789		Paginator: &request.Paginator{
2790			InputTokens:     []string{"NextToken"},
2791			OutputTokens:    []string{"NextToken"},
2792			LimitToken:      "MaxResults",
2793			TruncationToken: "",
2794		},
2795	}
2796
2797	if input == nil {
2798		input = &ListReleaseLabelsInput{}
2799	}
2800
2801	output = &ListReleaseLabelsOutput{}
2802	req = c.newRequest(op, input, output)
2803	return
2804}
2805
2806// ListReleaseLabels API operation for Amazon EMR.
2807//
2808// Retrieves release labels of EMR services in the region where the API is called.
2809//
2810// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2811// with awserr.Error's Code and Message methods to get detailed information about
2812// the error.
2813//
2814// See the AWS API reference guide for Amazon EMR's
2815// API operation ListReleaseLabels for usage and error information.
2816//
2817// Returned Error Types:
2818//   * InternalServerException
2819//   This exception occurs when there is an internal failure in the Amazon EMR
2820//   service.
2821//
2822//   * InvalidRequestException
2823//   This exception occurs when there is something wrong with user input.
2824//
2825// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListReleaseLabels
2826func (c *EMR) ListReleaseLabels(input *ListReleaseLabelsInput) (*ListReleaseLabelsOutput, error) {
2827	req, out := c.ListReleaseLabelsRequest(input)
2828	return out, req.Send()
2829}
2830
2831// ListReleaseLabelsWithContext is the same as ListReleaseLabels with the addition of
2832// the ability to pass a context and additional request options.
2833//
2834// See ListReleaseLabels for details on how to use this API operation.
2835//
2836// The context must be non-nil and will be used for request cancellation. If
2837// the context is nil a panic will occur. In the future the SDK may create
2838// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2839// for more information on using Contexts.
2840func (c *EMR) ListReleaseLabelsWithContext(ctx aws.Context, input *ListReleaseLabelsInput, opts ...request.Option) (*ListReleaseLabelsOutput, error) {
2841	req, out := c.ListReleaseLabelsRequest(input)
2842	req.SetContext(ctx)
2843	req.ApplyOptions(opts...)
2844	return out, req.Send()
2845}
2846
2847// ListReleaseLabelsPages iterates over the pages of a ListReleaseLabels operation,
2848// calling the "fn" function with the response data for each page. To stop
2849// iterating, return false from the fn function.
2850//
2851// See ListReleaseLabels method for more information on how to use this operation.
2852//
2853// Note: This operation can generate multiple requests to a service.
2854//
2855//    // Example iterating over at most 3 pages of a ListReleaseLabels operation.
2856//    pageNum := 0
2857//    err := client.ListReleaseLabelsPages(params,
2858//        func(page *emr.ListReleaseLabelsOutput, lastPage bool) bool {
2859//            pageNum++
2860//            fmt.Println(page)
2861//            return pageNum <= 3
2862//        })
2863//
2864func (c *EMR) ListReleaseLabelsPages(input *ListReleaseLabelsInput, fn func(*ListReleaseLabelsOutput, bool) bool) error {
2865	return c.ListReleaseLabelsPagesWithContext(aws.BackgroundContext(), input, fn)
2866}
2867
2868// ListReleaseLabelsPagesWithContext same as ListReleaseLabelsPages except
2869// it takes a Context and allows setting request options on the pages.
2870//
2871// The context must be non-nil and will be used for request cancellation. If
2872// the context is nil a panic will occur. In the future the SDK may create
2873// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2874// for more information on using Contexts.
2875func (c *EMR) ListReleaseLabelsPagesWithContext(ctx aws.Context, input *ListReleaseLabelsInput, fn func(*ListReleaseLabelsOutput, bool) bool, opts ...request.Option) error {
2876	p := request.Pagination{
2877		NewRequest: func() (*request.Request, error) {
2878			var inCpy *ListReleaseLabelsInput
2879			if input != nil {
2880				tmp := *input
2881				inCpy = &tmp
2882			}
2883			req, _ := c.ListReleaseLabelsRequest(inCpy)
2884			req.SetContext(ctx)
2885			req.ApplyOptions(opts...)
2886			return req, nil
2887		},
2888	}
2889
2890	for p.Next() {
2891		if !fn(p.Page().(*ListReleaseLabelsOutput), !p.HasNextPage()) {
2892			break
2893		}
2894	}
2895
2896	return p.Err()
2897}
2898
2899const opListSecurityConfigurations = "ListSecurityConfigurations"
2900
2901// ListSecurityConfigurationsRequest generates a "aws/request.Request" representing the
2902// client's request for the ListSecurityConfigurations operation. The "output" return
2903// value will be populated with the request's response once the request completes
2904// successfully.
2905//
2906// Use "Send" method on the returned Request to send the API call to the service.
2907// the "output" return value is not valid until after Send returns without error.
2908//
2909// See ListSecurityConfigurations for more information on using the ListSecurityConfigurations
2910// API call, and error handling.
2911//
2912// This method is useful when you want to inject custom logic or configuration
2913// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2914//
2915//
2916//    // Example sending a request using the ListSecurityConfigurationsRequest method.
2917//    req, resp := client.ListSecurityConfigurationsRequest(params)
2918//
2919//    err := req.Send()
2920//    if err == nil { // resp is now filled
2921//        fmt.Println(resp)
2922//    }
2923//
2924// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListSecurityConfigurations
2925func (c *EMR) ListSecurityConfigurationsRequest(input *ListSecurityConfigurationsInput) (req *request.Request, output *ListSecurityConfigurationsOutput) {
2926	op := &request.Operation{
2927		Name:       opListSecurityConfigurations,
2928		HTTPMethod: "POST",
2929		HTTPPath:   "/",
2930		Paginator: &request.Paginator{
2931			InputTokens:     []string{"Marker"},
2932			OutputTokens:    []string{"Marker"},
2933			LimitToken:      "",
2934			TruncationToken: "",
2935		},
2936	}
2937
2938	if input == nil {
2939		input = &ListSecurityConfigurationsInput{}
2940	}
2941
2942	output = &ListSecurityConfigurationsOutput{}
2943	req = c.newRequest(op, input, output)
2944	return
2945}
2946
2947// ListSecurityConfigurations API operation for Amazon EMR.
2948//
2949// Lists all the security configurations visible to this account, providing
2950// their creation dates and times, and their names. This call returns a maximum
2951// of 50 clusters per call, but returns a marker to track the paging of the
2952// cluster list across multiple ListSecurityConfigurations calls.
2953//
2954// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2955// with awserr.Error's Code and Message methods to get detailed information about
2956// the error.
2957//
2958// See the AWS API reference guide for Amazon EMR's
2959// API operation ListSecurityConfigurations for usage and error information.
2960//
2961// Returned Error Types:
2962//   * InternalServerException
2963//   This exception occurs when there is an internal failure in the Amazon EMR
2964//   service.
2965//
2966//   * InvalidRequestException
2967//   This exception occurs when there is something wrong with user input.
2968//
2969// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListSecurityConfigurations
2970func (c *EMR) ListSecurityConfigurations(input *ListSecurityConfigurationsInput) (*ListSecurityConfigurationsOutput, error) {
2971	req, out := c.ListSecurityConfigurationsRequest(input)
2972	return out, req.Send()
2973}
2974
2975// ListSecurityConfigurationsWithContext is the same as ListSecurityConfigurations with the addition of
2976// the ability to pass a context and additional request options.
2977//
2978// See ListSecurityConfigurations for details on how to use this API operation.
2979//
2980// The context must be non-nil and will be used for request cancellation. If
2981// the context is nil a panic will occur. In the future the SDK may create
2982// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2983// for more information on using Contexts.
2984func (c *EMR) ListSecurityConfigurationsWithContext(ctx aws.Context, input *ListSecurityConfigurationsInput, opts ...request.Option) (*ListSecurityConfigurationsOutput, error) {
2985	req, out := c.ListSecurityConfigurationsRequest(input)
2986	req.SetContext(ctx)
2987	req.ApplyOptions(opts...)
2988	return out, req.Send()
2989}
2990
2991// ListSecurityConfigurationsPages iterates over the pages of a ListSecurityConfigurations operation,
2992// calling the "fn" function with the response data for each page. To stop
2993// iterating, return false from the fn function.
2994//
2995// See ListSecurityConfigurations method for more information on how to use this operation.
2996//
2997// Note: This operation can generate multiple requests to a service.
2998//
2999//    // Example iterating over at most 3 pages of a ListSecurityConfigurations operation.
3000//    pageNum := 0
3001//    err := client.ListSecurityConfigurationsPages(params,
3002//        func(page *emr.ListSecurityConfigurationsOutput, lastPage bool) bool {
3003//            pageNum++
3004//            fmt.Println(page)
3005//            return pageNum <= 3
3006//        })
3007//
3008func (c *EMR) ListSecurityConfigurationsPages(input *ListSecurityConfigurationsInput, fn func(*ListSecurityConfigurationsOutput, bool) bool) error {
3009	return c.ListSecurityConfigurationsPagesWithContext(aws.BackgroundContext(), input, fn)
3010}
3011
3012// ListSecurityConfigurationsPagesWithContext same as ListSecurityConfigurationsPages except
3013// it takes a Context and allows setting request options on the pages.
3014//
3015// The context must be non-nil and will be used for request cancellation. If
3016// the context is nil a panic will occur. In the future the SDK may create
3017// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3018// for more information on using Contexts.
3019func (c *EMR) ListSecurityConfigurationsPagesWithContext(ctx aws.Context, input *ListSecurityConfigurationsInput, fn func(*ListSecurityConfigurationsOutput, bool) bool, opts ...request.Option) error {
3020	p := request.Pagination{
3021		NewRequest: func() (*request.Request, error) {
3022			var inCpy *ListSecurityConfigurationsInput
3023			if input != nil {
3024				tmp := *input
3025				inCpy = &tmp
3026			}
3027			req, _ := c.ListSecurityConfigurationsRequest(inCpy)
3028			req.SetContext(ctx)
3029			req.ApplyOptions(opts...)
3030			return req, nil
3031		},
3032	}
3033
3034	for p.Next() {
3035		if !fn(p.Page().(*ListSecurityConfigurationsOutput), !p.HasNextPage()) {
3036			break
3037		}
3038	}
3039
3040	return p.Err()
3041}
3042
3043const opListSteps = "ListSteps"
3044
3045// ListStepsRequest generates a "aws/request.Request" representing the
3046// client's request for the ListSteps operation. The "output" return
3047// value will be populated with the request's response once the request completes
3048// successfully.
3049//
3050// Use "Send" method on the returned Request to send the API call to the service.
3051// the "output" return value is not valid until after Send returns without error.
3052//
3053// See ListSteps for more information on using the ListSteps
3054// API call, and error handling.
3055//
3056// This method is useful when you want to inject custom logic or configuration
3057// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3058//
3059//
3060//    // Example sending a request using the ListStepsRequest method.
3061//    req, resp := client.ListStepsRequest(params)
3062//
3063//    err := req.Send()
3064//    if err == nil { // resp is now filled
3065//        fmt.Println(resp)
3066//    }
3067//
3068// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListSteps
3069func (c *EMR) ListStepsRequest(input *ListStepsInput) (req *request.Request, output *ListStepsOutput) {
3070	op := &request.Operation{
3071		Name:       opListSteps,
3072		HTTPMethod: "POST",
3073		HTTPPath:   "/",
3074		Paginator: &request.Paginator{
3075			InputTokens:     []string{"Marker"},
3076			OutputTokens:    []string{"Marker"},
3077			LimitToken:      "",
3078			TruncationToken: "",
3079		},
3080	}
3081
3082	if input == nil {
3083		input = &ListStepsInput{}
3084	}
3085
3086	output = &ListStepsOutput{}
3087	req = c.newRequest(op, input, output)
3088	return
3089}
3090
3091// ListSteps API operation for Amazon EMR.
3092//
3093// Provides a list of steps for the cluster in reverse order unless you specify
3094// stepIds with the request or filter by StepStates. You can specify a maximum
3095// of 10 stepIDs. The CLI automatically paginates results to return a list greater
3096// than 50 steps. To return more than 50 steps using the CLI, specify a Marker,
3097// which is a pagination token that indicates the next set of steps to retrieve.
3098//
3099// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3100// with awserr.Error's Code and Message methods to get detailed information about
3101// the error.
3102//
3103// See the AWS API reference guide for Amazon EMR's
3104// API operation ListSteps for usage and error information.
3105//
3106// Returned Error Types:
3107//   * InternalServerException
3108//   This exception occurs when there is an internal failure in the Amazon EMR
3109//   service.
3110//
3111//   * InvalidRequestException
3112//   This exception occurs when there is something wrong with user input.
3113//
3114// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListSteps
3115func (c *EMR) ListSteps(input *ListStepsInput) (*ListStepsOutput, error) {
3116	req, out := c.ListStepsRequest(input)
3117	return out, req.Send()
3118}
3119
3120// ListStepsWithContext is the same as ListSteps with the addition of
3121// the ability to pass a context and additional request options.
3122//
3123// See ListSteps for details on how to use this API operation.
3124//
3125// The context must be non-nil and will be used for request cancellation. If
3126// the context is nil a panic will occur. In the future the SDK may create
3127// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3128// for more information on using Contexts.
3129func (c *EMR) ListStepsWithContext(ctx aws.Context, input *ListStepsInput, opts ...request.Option) (*ListStepsOutput, error) {
3130	req, out := c.ListStepsRequest(input)
3131	req.SetContext(ctx)
3132	req.ApplyOptions(opts...)
3133	return out, req.Send()
3134}
3135
3136// ListStepsPages iterates over the pages of a ListSteps operation,
3137// calling the "fn" function with the response data for each page. To stop
3138// iterating, return false from the fn function.
3139//
3140// See ListSteps method for more information on how to use this operation.
3141//
3142// Note: This operation can generate multiple requests to a service.
3143//
3144//    // Example iterating over at most 3 pages of a ListSteps operation.
3145//    pageNum := 0
3146//    err := client.ListStepsPages(params,
3147//        func(page *emr.ListStepsOutput, lastPage bool) bool {
3148//            pageNum++
3149//            fmt.Println(page)
3150//            return pageNum <= 3
3151//        })
3152//
3153func (c *EMR) ListStepsPages(input *ListStepsInput, fn func(*ListStepsOutput, bool) bool) error {
3154	return c.ListStepsPagesWithContext(aws.BackgroundContext(), input, fn)
3155}
3156
3157// ListStepsPagesWithContext same as ListStepsPages except
3158// it takes a Context and allows setting request options on the pages.
3159//
3160// The context must be non-nil and will be used for request cancellation. If
3161// the context is nil a panic will occur. In the future the SDK may create
3162// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3163// for more information on using Contexts.
3164func (c *EMR) ListStepsPagesWithContext(ctx aws.Context, input *ListStepsInput, fn func(*ListStepsOutput, bool) bool, opts ...request.Option) error {
3165	p := request.Pagination{
3166		NewRequest: func() (*request.Request, error) {
3167			var inCpy *ListStepsInput
3168			if input != nil {
3169				tmp := *input
3170				inCpy = &tmp
3171			}
3172			req, _ := c.ListStepsRequest(inCpy)
3173			req.SetContext(ctx)
3174			req.ApplyOptions(opts...)
3175			return req, nil
3176		},
3177	}
3178
3179	for p.Next() {
3180		if !fn(p.Page().(*ListStepsOutput), !p.HasNextPage()) {
3181			break
3182		}
3183	}
3184
3185	return p.Err()
3186}
3187
3188const opListStudioSessionMappings = "ListStudioSessionMappings"
3189
3190// ListStudioSessionMappingsRequest generates a "aws/request.Request" representing the
3191// client's request for the ListStudioSessionMappings operation. The "output" return
3192// value will be populated with the request's response once the request completes
3193// successfully.
3194//
3195// Use "Send" method on the returned Request to send the API call to the service.
3196// the "output" return value is not valid until after Send returns without error.
3197//
3198// See ListStudioSessionMappings for more information on using the ListStudioSessionMappings
3199// API call, and error handling.
3200//
3201// This method is useful when you want to inject custom logic or configuration
3202// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3203//
3204//
3205//    // Example sending a request using the ListStudioSessionMappingsRequest method.
3206//    req, resp := client.ListStudioSessionMappingsRequest(params)
3207//
3208//    err := req.Send()
3209//    if err == nil { // resp is now filled
3210//        fmt.Println(resp)
3211//    }
3212//
3213// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListStudioSessionMappings
3214func (c *EMR) ListStudioSessionMappingsRequest(input *ListStudioSessionMappingsInput) (req *request.Request, output *ListStudioSessionMappingsOutput) {
3215	op := &request.Operation{
3216		Name:       opListStudioSessionMappings,
3217		HTTPMethod: "POST",
3218		HTTPPath:   "/",
3219		Paginator: &request.Paginator{
3220			InputTokens:     []string{"Marker"},
3221			OutputTokens:    []string{"Marker"},
3222			LimitToken:      "",
3223			TruncationToken: "",
3224		},
3225	}
3226
3227	if input == nil {
3228		input = &ListStudioSessionMappingsInput{}
3229	}
3230
3231	output = &ListStudioSessionMappingsOutput{}
3232	req = c.newRequest(op, input, output)
3233	return
3234}
3235
3236// ListStudioSessionMappings API operation for Amazon EMR.
3237//
3238// Returns a list of all user or group session mappings for the Amazon EMR Studio
3239// specified by StudioId.
3240//
3241// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3242// with awserr.Error's Code and Message methods to get detailed information about
3243// the error.
3244//
3245// See the AWS API reference guide for Amazon EMR's
3246// API operation ListStudioSessionMappings for usage and error information.
3247//
3248// Returned Error Types:
3249//   * InternalServerError
3250//   Indicates that an error occurred while processing the request and that the
3251//   request was not completed.
3252//
3253//   * InvalidRequestException
3254//   This exception occurs when there is something wrong with user input.
3255//
3256// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListStudioSessionMappings
3257func (c *EMR) ListStudioSessionMappings(input *ListStudioSessionMappingsInput) (*ListStudioSessionMappingsOutput, error) {
3258	req, out := c.ListStudioSessionMappingsRequest(input)
3259	return out, req.Send()
3260}
3261
3262// ListStudioSessionMappingsWithContext is the same as ListStudioSessionMappings with the addition of
3263// the ability to pass a context and additional request options.
3264//
3265// See ListStudioSessionMappings for details on how to use this API operation.
3266//
3267// The context must be non-nil and will be used for request cancellation. If
3268// the context is nil a panic will occur. In the future the SDK may create
3269// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3270// for more information on using Contexts.
3271func (c *EMR) ListStudioSessionMappingsWithContext(ctx aws.Context, input *ListStudioSessionMappingsInput, opts ...request.Option) (*ListStudioSessionMappingsOutput, error) {
3272	req, out := c.ListStudioSessionMappingsRequest(input)
3273	req.SetContext(ctx)
3274	req.ApplyOptions(opts...)
3275	return out, req.Send()
3276}
3277
3278// ListStudioSessionMappingsPages iterates over the pages of a ListStudioSessionMappings operation,
3279// calling the "fn" function with the response data for each page. To stop
3280// iterating, return false from the fn function.
3281//
3282// See ListStudioSessionMappings method for more information on how to use this operation.
3283//
3284// Note: This operation can generate multiple requests to a service.
3285//
3286//    // Example iterating over at most 3 pages of a ListStudioSessionMappings operation.
3287//    pageNum := 0
3288//    err := client.ListStudioSessionMappingsPages(params,
3289//        func(page *emr.ListStudioSessionMappingsOutput, lastPage bool) bool {
3290//            pageNum++
3291//            fmt.Println(page)
3292//            return pageNum <= 3
3293//        })
3294//
3295func (c *EMR) ListStudioSessionMappingsPages(input *ListStudioSessionMappingsInput, fn func(*ListStudioSessionMappingsOutput, bool) bool) error {
3296	return c.ListStudioSessionMappingsPagesWithContext(aws.BackgroundContext(), input, fn)
3297}
3298
3299// ListStudioSessionMappingsPagesWithContext same as ListStudioSessionMappingsPages except
3300// it takes a Context and allows setting request options on the pages.
3301//
3302// The context must be non-nil and will be used for request cancellation. If
3303// the context is nil a panic will occur. In the future the SDK may create
3304// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3305// for more information on using Contexts.
3306func (c *EMR) ListStudioSessionMappingsPagesWithContext(ctx aws.Context, input *ListStudioSessionMappingsInput, fn func(*ListStudioSessionMappingsOutput, bool) bool, opts ...request.Option) error {
3307	p := request.Pagination{
3308		NewRequest: func() (*request.Request, error) {
3309			var inCpy *ListStudioSessionMappingsInput
3310			if input != nil {
3311				tmp := *input
3312				inCpy = &tmp
3313			}
3314			req, _ := c.ListStudioSessionMappingsRequest(inCpy)
3315			req.SetContext(ctx)
3316			req.ApplyOptions(opts...)
3317			return req, nil
3318		},
3319	}
3320
3321	for p.Next() {
3322		if !fn(p.Page().(*ListStudioSessionMappingsOutput), !p.HasNextPage()) {
3323			break
3324		}
3325	}
3326
3327	return p.Err()
3328}
3329
3330const opListStudios = "ListStudios"
3331
3332// ListStudiosRequest generates a "aws/request.Request" representing the
3333// client's request for the ListStudios operation. The "output" return
3334// value will be populated with the request's response once the request completes
3335// successfully.
3336//
3337// Use "Send" method on the returned Request to send the API call to the service.
3338// the "output" return value is not valid until after Send returns without error.
3339//
3340// See ListStudios for more information on using the ListStudios
3341// API call, and error handling.
3342//
3343// This method is useful when you want to inject custom logic or configuration
3344// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3345//
3346//
3347//    // Example sending a request using the ListStudiosRequest method.
3348//    req, resp := client.ListStudiosRequest(params)
3349//
3350//    err := req.Send()
3351//    if err == nil { // resp is now filled
3352//        fmt.Println(resp)
3353//    }
3354//
3355// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListStudios
3356func (c *EMR) ListStudiosRequest(input *ListStudiosInput) (req *request.Request, output *ListStudiosOutput) {
3357	op := &request.Operation{
3358		Name:       opListStudios,
3359		HTTPMethod: "POST",
3360		HTTPPath:   "/",
3361		Paginator: &request.Paginator{
3362			InputTokens:     []string{"Marker"},
3363			OutputTokens:    []string{"Marker"},
3364			LimitToken:      "",
3365			TruncationToken: "",
3366		},
3367	}
3368
3369	if input == nil {
3370		input = &ListStudiosInput{}
3371	}
3372
3373	output = &ListStudiosOutput{}
3374	req = c.newRequest(op, input, output)
3375	return
3376}
3377
3378// ListStudios API operation for Amazon EMR.
3379//
3380// Returns a list of all Amazon EMR Studios associated with the Amazon Web Services
3381// account. The list includes details such as ID, Studio Access URL, and creation
3382// time for each Studio.
3383//
3384// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3385// with awserr.Error's Code and Message methods to get detailed information about
3386// the error.
3387//
3388// See the AWS API reference guide for Amazon EMR's
3389// API operation ListStudios for usage and error information.
3390//
3391// Returned Error Types:
3392//   * InternalServerException
3393//   This exception occurs when there is an internal failure in the Amazon EMR
3394//   service.
3395//
3396//   * InvalidRequestException
3397//   This exception occurs when there is something wrong with user input.
3398//
3399// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListStudios
3400func (c *EMR) ListStudios(input *ListStudiosInput) (*ListStudiosOutput, error) {
3401	req, out := c.ListStudiosRequest(input)
3402	return out, req.Send()
3403}
3404
3405// ListStudiosWithContext is the same as ListStudios with the addition of
3406// the ability to pass a context and additional request options.
3407//
3408// See ListStudios for details on how to use this API operation.
3409//
3410// The context must be non-nil and will be used for request cancellation. If
3411// the context is nil a panic will occur. In the future the SDK may create
3412// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3413// for more information on using Contexts.
3414func (c *EMR) ListStudiosWithContext(ctx aws.Context, input *ListStudiosInput, opts ...request.Option) (*ListStudiosOutput, error) {
3415	req, out := c.ListStudiosRequest(input)
3416	req.SetContext(ctx)
3417	req.ApplyOptions(opts...)
3418	return out, req.Send()
3419}
3420
3421// ListStudiosPages iterates over the pages of a ListStudios operation,
3422// calling the "fn" function with the response data for each page. To stop
3423// iterating, return false from the fn function.
3424//
3425// See ListStudios method for more information on how to use this operation.
3426//
3427// Note: This operation can generate multiple requests to a service.
3428//
3429//    // Example iterating over at most 3 pages of a ListStudios operation.
3430//    pageNum := 0
3431//    err := client.ListStudiosPages(params,
3432//        func(page *emr.ListStudiosOutput, lastPage bool) bool {
3433//            pageNum++
3434//            fmt.Println(page)
3435//            return pageNum <= 3
3436//        })
3437//
3438func (c *EMR) ListStudiosPages(input *ListStudiosInput, fn func(*ListStudiosOutput, bool) bool) error {
3439	return c.ListStudiosPagesWithContext(aws.BackgroundContext(), input, fn)
3440}
3441
3442// ListStudiosPagesWithContext same as ListStudiosPages except
3443// it takes a Context and allows setting request options on the pages.
3444//
3445// The context must be non-nil and will be used for request cancellation. If
3446// the context is nil a panic will occur. In the future the SDK may create
3447// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3448// for more information on using Contexts.
3449func (c *EMR) ListStudiosPagesWithContext(ctx aws.Context, input *ListStudiosInput, fn func(*ListStudiosOutput, bool) bool, opts ...request.Option) error {
3450	p := request.Pagination{
3451		NewRequest: func() (*request.Request, error) {
3452			var inCpy *ListStudiosInput
3453			if input != nil {
3454				tmp := *input
3455				inCpy = &tmp
3456			}
3457			req, _ := c.ListStudiosRequest(inCpy)
3458			req.SetContext(ctx)
3459			req.ApplyOptions(opts...)
3460			return req, nil
3461		},
3462	}
3463
3464	for p.Next() {
3465		if !fn(p.Page().(*ListStudiosOutput), !p.HasNextPage()) {
3466			break
3467		}
3468	}
3469
3470	return p.Err()
3471}
3472
3473const opModifyCluster = "ModifyCluster"
3474
3475// ModifyClusterRequest generates a "aws/request.Request" representing the
3476// client's request for the ModifyCluster operation. The "output" return
3477// value will be populated with the request's response once the request completes
3478// successfully.
3479//
3480// Use "Send" method on the returned Request to send the API call to the service.
3481// the "output" return value is not valid until after Send returns without error.
3482//
3483// See ModifyCluster for more information on using the ModifyCluster
3484// API call, and error handling.
3485//
3486// This method is useful when you want to inject custom logic or configuration
3487// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3488//
3489//
3490//    // Example sending a request using the ModifyClusterRequest method.
3491//    req, resp := client.ModifyClusterRequest(params)
3492//
3493//    err := req.Send()
3494//    if err == nil { // resp is now filled
3495//        fmt.Println(resp)
3496//    }
3497//
3498// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ModifyCluster
3499func (c *EMR) ModifyClusterRequest(input *ModifyClusterInput) (req *request.Request, output *ModifyClusterOutput) {
3500	op := &request.Operation{
3501		Name:       opModifyCluster,
3502		HTTPMethod: "POST",
3503		HTTPPath:   "/",
3504	}
3505
3506	if input == nil {
3507		input = &ModifyClusterInput{}
3508	}
3509
3510	output = &ModifyClusterOutput{}
3511	req = c.newRequest(op, input, output)
3512	return
3513}
3514
3515// ModifyCluster API operation for Amazon EMR.
3516//
3517// Modifies the number of steps that can be executed concurrently for the cluster
3518// specified using ClusterID.
3519//
3520// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3521// with awserr.Error's Code and Message methods to get detailed information about
3522// the error.
3523//
3524// See the AWS API reference guide for Amazon EMR's
3525// API operation ModifyCluster for usage and error information.
3526//
3527// Returned Error Types:
3528//   * InternalServerError
3529//   Indicates that an error occurred while processing the request and that the
3530//   request was not completed.
3531//
3532//   * InvalidRequestException
3533//   This exception occurs when there is something wrong with user input.
3534//
3535// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ModifyCluster
3536func (c *EMR) ModifyCluster(input *ModifyClusterInput) (*ModifyClusterOutput, error) {
3537	req, out := c.ModifyClusterRequest(input)
3538	return out, req.Send()
3539}
3540
3541// ModifyClusterWithContext is the same as ModifyCluster with the addition of
3542// the ability to pass a context and additional request options.
3543//
3544// See ModifyCluster for details on how to use this API operation.
3545//
3546// The context must be non-nil and will be used for request cancellation. If
3547// the context is nil a panic will occur. In the future the SDK may create
3548// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3549// for more information on using Contexts.
3550func (c *EMR) ModifyClusterWithContext(ctx aws.Context, input *ModifyClusterInput, opts ...request.Option) (*ModifyClusterOutput, error) {
3551	req, out := c.ModifyClusterRequest(input)
3552	req.SetContext(ctx)
3553	req.ApplyOptions(opts...)
3554	return out, req.Send()
3555}
3556
3557const opModifyInstanceFleet = "ModifyInstanceFleet"
3558
3559// ModifyInstanceFleetRequest generates a "aws/request.Request" representing the
3560// client's request for the ModifyInstanceFleet operation. The "output" return
3561// value will be populated with the request's response once the request completes
3562// successfully.
3563//
3564// Use "Send" method on the returned Request to send the API call to the service.
3565// the "output" return value is not valid until after Send returns without error.
3566//
3567// See ModifyInstanceFleet for more information on using the ModifyInstanceFleet
3568// API call, and error handling.
3569//
3570// This method is useful when you want to inject custom logic or configuration
3571// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3572//
3573//
3574//    // Example sending a request using the ModifyInstanceFleetRequest method.
3575//    req, resp := client.ModifyInstanceFleetRequest(params)
3576//
3577//    err := req.Send()
3578//    if err == nil { // resp is now filled
3579//        fmt.Println(resp)
3580//    }
3581//
3582// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ModifyInstanceFleet
3583func (c *EMR) ModifyInstanceFleetRequest(input *ModifyInstanceFleetInput) (req *request.Request, output *ModifyInstanceFleetOutput) {
3584	op := &request.Operation{
3585		Name:       opModifyInstanceFleet,
3586		HTTPMethod: "POST",
3587		HTTPPath:   "/",
3588	}
3589
3590	if input == nil {
3591		input = &ModifyInstanceFleetInput{}
3592	}
3593
3594	output = &ModifyInstanceFleetOutput{}
3595	req = c.newRequest(op, input, output)
3596	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3597	return
3598}
3599
3600// ModifyInstanceFleet API operation for Amazon EMR.
3601//
3602// Modifies the target On-Demand and target Spot capacities for the instance
3603// fleet with the specified InstanceFleetID within the cluster specified using
3604// ClusterID. The call either succeeds or fails atomically.
3605//
3606// The instance fleet configuration is available only in Amazon EMR versions
3607// 4.8.0 and later, excluding 5.0.x versions.
3608//
3609// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3610// with awserr.Error's Code and Message methods to get detailed information about
3611// the error.
3612//
3613// See the AWS API reference guide for Amazon EMR's
3614// API operation ModifyInstanceFleet for usage and error information.
3615//
3616// Returned Error Types:
3617//   * InternalServerException
3618//   This exception occurs when there is an internal failure in the Amazon EMR
3619//   service.
3620//
3621//   * InvalidRequestException
3622//   This exception occurs when there is something wrong with user input.
3623//
3624// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ModifyInstanceFleet
3625func (c *EMR) ModifyInstanceFleet(input *ModifyInstanceFleetInput) (*ModifyInstanceFleetOutput, error) {
3626	req, out := c.ModifyInstanceFleetRequest(input)
3627	return out, req.Send()
3628}
3629
3630// ModifyInstanceFleetWithContext is the same as ModifyInstanceFleet with the addition of
3631// the ability to pass a context and additional request options.
3632//
3633// See ModifyInstanceFleet for details on how to use this API operation.
3634//
3635// The context must be non-nil and will be used for request cancellation. If
3636// the context is nil a panic will occur. In the future the SDK may create
3637// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3638// for more information on using Contexts.
3639func (c *EMR) ModifyInstanceFleetWithContext(ctx aws.Context, input *ModifyInstanceFleetInput, opts ...request.Option) (*ModifyInstanceFleetOutput, error) {
3640	req, out := c.ModifyInstanceFleetRequest(input)
3641	req.SetContext(ctx)
3642	req.ApplyOptions(opts...)
3643	return out, req.Send()
3644}
3645
3646const opModifyInstanceGroups = "ModifyInstanceGroups"
3647
3648// ModifyInstanceGroupsRequest generates a "aws/request.Request" representing the
3649// client's request for the ModifyInstanceGroups operation. The "output" return
3650// value will be populated with the request's response once the request completes
3651// successfully.
3652//
3653// Use "Send" method on the returned Request to send the API call to the service.
3654// the "output" return value is not valid until after Send returns without error.
3655//
3656// See ModifyInstanceGroups for more information on using the ModifyInstanceGroups
3657// API call, and error handling.
3658//
3659// This method is useful when you want to inject custom logic or configuration
3660// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3661//
3662//
3663//    // Example sending a request using the ModifyInstanceGroupsRequest method.
3664//    req, resp := client.ModifyInstanceGroupsRequest(params)
3665//
3666//    err := req.Send()
3667//    if err == nil { // resp is now filled
3668//        fmt.Println(resp)
3669//    }
3670//
3671// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ModifyInstanceGroups
3672func (c *EMR) ModifyInstanceGroupsRequest(input *ModifyInstanceGroupsInput) (req *request.Request, output *ModifyInstanceGroupsOutput) {
3673	op := &request.Operation{
3674		Name:       opModifyInstanceGroups,
3675		HTTPMethod: "POST",
3676		HTTPPath:   "/",
3677	}
3678
3679	if input == nil {
3680		input = &ModifyInstanceGroupsInput{}
3681	}
3682
3683	output = &ModifyInstanceGroupsOutput{}
3684	req = c.newRequest(op, input, output)
3685	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3686	return
3687}
3688
3689// ModifyInstanceGroups API operation for Amazon EMR.
3690//
3691// ModifyInstanceGroups modifies the number of nodes and configuration settings
3692// of an instance group. The input parameters include the new target instance
3693// count for the group and the instance group ID. The call will either succeed
3694// or fail atomically.
3695//
3696// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3697// with awserr.Error's Code and Message methods to get detailed information about
3698// the error.
3699//
3700// See the AWS API reference guide for Amazon EMR's
3701// API operation ModifyInstanceGroups for usage and error information.
3702//
3703// Returned Error Types:
3704//   * InternalServerError
3705//   Indicates that an error occurred while processing the request and that the
3706//   request was not completed.
3707//
3708// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ModifyInstanceGroups
3709func (c *EMR) ModifyInstanceGroups(input *ModifyInstanceGroupsInput) (*ModifyInstanceGroupsOutput, error) {
3710	req, out := c.ModifyInstanceGroupsRequest(input)
3711	return out, req.Send()
3712}
3713
3714// ModifyInstanceGroupsWithContext is the same as ModifyInstanceGroups with the addition of
3715// the ability to pass a context and additional request options.
3716//
3717// See ModifyInstanceGroups for details on how to use this API operation.
3718//
3719// The context must be non-nil and will be used for request cancellation. If
3720// the context is nil a panic will occur. In the future the SDK may create
3721// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3722// for more information on using Contexts.
3723func (c *EMR) ModifyInstanceGroupsWithContext(ctx aws.Context, input *ModifyInstanceGroupsInput, opts ...request.Option) (*ModifyInstanceGroupsOutput, error) {
3724	req, out := c.ModifyInstanceGroupsRequest(input)
3725	req.SetContext(ctx)
3726	req.ApplyOptions(opts...)
3727	return out, req.Send()
3728}
3729
3730const opPutAutoScalingPolicy = "PutAutoScalingPolicy"
3731
3732// PutAutoScalingPolicyRequest generates a "aws/request.Request" representing the
3733// client's request for the PutAutoScalingPolicy operation. The "output" return
3734// value will be populated with the request's response once the request completes
3735// successfully.
3736//
3737// Use "Send" method on the returned Request to send the API call to the service.
3738// the "output" return value is not valid until after Send returns without error.
3739//
3740// See PutAutoScalingPolicy for more information on using the PutAutoScalingPolicy
3741// API call, and error handling.
3742//
3743// This method is useful when you want to inject custom logic or configuration
3744// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3745//
3746//
3747//    // Example sending a request using the PutAutoScalingPolicyRequest method.
3748//    req, resp := client.PutAutoScalingPolicyRequest(params)
3749//
3750//    err := req.Send()
3751//    if err == nil { // resp is now filled
3752//        fmt.Println(resp)
3753//    }
3754//
3755// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/PutAutoScalingPolicy
3756func (c *EMR) PutAutoScalingPolicyRequest(input *PutAutoScalingPolicyInput) (req *request.Request, output *PutAutoScalingPolicyOutput) {
3757	op := &request.Operation{
3758		Name:       opPutAutoScalingPolicy,
3759		HTTPMethod: "POST",
3760		HTTPPath:   "/",
3761	}
3762
3763	if input == nil {
3764		input = &PutAutoScalingPolicyInput{}
3765	}
3766
3767	output = &PutAutoScalingPolicyOutput{}
3768	req = c.newRequest(op, input, output)
3769	return
3770}
3771
3772// PutAutoScalingPolicy API operation for Amazon EMR.
3773//
3774// Creates or updates an automatic scaling policy for a core instance group
3775// or task instance group in an Amazon EMR cluster. The automatic scaling policy
3776// defines how an instance group dynamically adds and terminates EC2 instances
3777// in response to the value of a CloudWatch metric.
3778//
3779// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3780// with awserr.Error's Code and Message methods to get detailed information about
3781// the error.
3782//
3783// See the AWS API reference guide for Amazon EMR's
3784// API operation PutAutoScalingPolicy for usage and error information.
3785// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/PutAutoScalingPolicy
3786func (c *EMR) PutAutoScalingPolicy(input *PutAutoScalingPolicyInput) (*PutAutoScalingPolicyOutput, error) {
3787	req, out := c.PutAutoScalingPolicyRequest(input)
3788	return out, req.Send()
3789}
3790
3791// PutAutoScalingPolicyWithContext is the same as PutAutoScalingPolicy with the addition of
3792// the ability to pass a context and additional request options.
3793//
3794// See PutAutoScalingPolicy for details on how to use this API operation.
3795//
3796// The context must be non-nil and will be used for request cancellation. If
3797// the context is nil a panic will occur. In the future the SDK may create
3798// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3799// for more information on using Contexts.
3800func (c *EMR) PutAutoScalingPolicyWithContext(ctx aws.Context, input *PutAutoScalingPolicyInput, opts ...request.Option) (*PutAutoScalingPolicyOutput, error) {
3801	req, out := c.PutAutoScalingPolicyRequest(input)
3802	req.SetContext(ctx)
3803	req.ApplyOptions(opts...)
3804	return out, req.Send()
3805}
3806
3807const opPutAutoTerminationPolicy = "PutAutoTerminationPolicy"
3808
3809// PutAutoTerminationPolicyRequest generates a "aws/request.Request" representing the
3810// client's request for the PutAutoTerminationPolicy operation. The "output" return
3811// value will be populated with the request's response once the request completes
3812// successfully.
3813//
3814// Use "Send" method on the returned Request to send the API call to the service.
3815// the "output" return value is not valid until after Send returns without error.
3816//
3817// See PutAutoTerminationPolicy for more information on using the PutAutoTerminationPolicy
3818// API call, and error handling.
3819//
3820// This method is useful when you want to inject custom logic or configuration
3821// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3822//
3823//
3824//    // Example sending a request using the PutAutoTerminationPolicyRequest method.
3825//    req, resp := client.PutAutoTerminationPolicyRequest(params)
3826//
3827//    err := req.Send()
3828//    if err == nil { // resp is now filled
3829//        fmt.Println(resp)
3830//    }
3831//
3832// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/PutAutoTerminationPolicy
3833func (c *EMR) PutAutoTerminationPolicyRequest(input *PutAutoTerminationPolicyInput) (req *request.Request, output *PutAutoTerminationPolicyOutput) {
3834	op := &request.Operation{
3835		Name:       opPutAutoTerminationPolicy,
3836		HTTPMethod: "POST",
3837		HTTPPath:   "/",
3838	}
3839
3840	if input == nil {
3841		input = &PutAutoTerminationPolicyInput{}
3842	}
3843
3844	output = &PutAutoTerminationPolicyOutput{}
3845	req = c.newRequest(op, input, output)
3846	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3847	return
3848}
3849
3850// PutAutoTerminationPolicy API operation for Amazon EMR.
3851//
3852// Creates or updates an auto-termination policy for an Amazon EMR cluster.
3853// An auto-termination policy defines the amount of idle time in seconds after
3854// which a cluster automatically terminates. For alternative cluster termination
3855// options, see Control cluster termination (https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-termination.html).
3856//
3857// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3858// with awserr.Error's Code and Message methods to get detailed information about
3859// the error.
3860//
3861// See the AWS API reference guide for Amazon EMR's
3862// API operation PutAutoTerminationPolicy for usage and error information.
3863// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/PutAutoTerminationPolicy
3864func (c *EMR) PutAutoTerminationPolicy(input *PutAutoTerminationPolicyInput) (*PutAutoTerminationPolicyOutput, error) {
3865	req, out := c.PutAutoTerminationPolicyRequest(input)
3866	return out, req.Send()
3867}
3868
3869// PutAutoTerminationPolicyWithContext is the same as PutAutoTerminationPolicy with the addition of
3870// the ability to pass a context and additional request options.
3871//
3872// See PutAutoTerminationPolicy for details on how to use this API operation.
3873//
3874// The context must be non-nil and will be used for request cancellation. If
3875// the context is nil a panic will occur. In the future the SDK may create
3876// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3877// for more information on using Contexts.
3878func (c *EMR) PutAutoTerminationPolicyWithContext(ctx aws.Context, input *PutAutoTerminationPolicyInput, opts ...request.Option) (*PutAutoTerminationPolicyOutput, error) {
3879	req, out := c.PutAutoTerminationPolicyRequest(input)
3880	req.SetContext(ctx)
3881	req.ApplyOptions(opts...)
3882	return out, req.Send()
3883}
3884
3885const opPutBlockPublicAccessConfiguration = "PutBlockPublicAccessConfiguration"
3886
3887// PutBlockPublicAccessConfigurationRequest generates a "aws/request.Request" representing the
3888// client's request for the PutBlockPublicAccessConfiguration operation. The "output" return
3889// value will be populated with the request's response once the request completes
3890// successfully.
3891//
3892// Use "Send" method on the returned Request to send the API call to the service.
3893// the "output" return value is not valid until after Send returns without error.
3894//
3895// See PutBlockPublicAccessConfiguration for more information on using the PutBlockPublicAccessConfiguration
3896// API call, and error handling.
3897//
3898// This method is useful when you want to inject custom logic or configuration
3899// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3900//
3901//
3902//    // Example sending a request using the PutBlockPublicAccessConfigurationRequest method.
3903//    req, resp := client.PutBlockPublicAccessConfigurationRequest(params)
3904//
3905//    err := req.Send()
3906//    if err == nil { // resp is now filled
3907//        fmt.Println(resp)
3908//    }
3909//
3910// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/PutBlockPublicAccessConfiguration
3911func (c *EMR) PutBlockPublicAccessConfigurationRequest(input *PutBlockPublicAccessConfigurationInput) (req *request.Request, output *PutBlockPublicAccessConfigurationOutput) {
3912	op := &request.Operation{
3913		Name:       opPutBlockPublicAccessConfiguration,
3914		HTTPMethod: "POST",
3915		HTTPPath:   "/",
3916	}
3917
3918	if input == nil {
3919		input = &PutBlockPublicAccessConfigurationInput{}
3920	}
3921
3922	output = &PutBlockPublicAccessConfigurationOutput{}
3923	req = c.newRequest(op, input, output)
3924	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3925	return
3926}
3927
3928// PutBlockPublicAccessConfiguration API operation for Amazon EMR.
3929//
3930// Creates or updates an Amazon EMR block public access configuration for your
3931// Amazon Web Services account in the current Region. For more information see
3932// Configure Block Public Access for Amazon EMR (https://docs.aws.amazon.com/emr/latest/ManagementGuide/configure-block-public-access.html)
3933// in the Amazon EMR Management Guide.
3934//
3935// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3936// with awserr.Error's Code and Message methods to get detailed information about
3937// the error.
3938//
3939// See the AWS API reference guide for Amazon EMR's
3940// API operation PutBlockPublicAccessConfiguration for usage and error information.
3941//
3942// Returned Error Types:
3943//   * InternalServerException
3944//   This exception occurs when there is an internal failure in the Amazon EMR
3945//   service.
3946//
3947//   * InvalidRequestException
3948//   This exception occurs when there is something wrong with user input.
3949//
3950// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/PutBlockPublicAccessConfiguration
3951func (c *EMR) PutBlockPublicAccessConfiguration(input *PutBlockPublicAccessConfigurationInput) (*PutBlockPublicAccessConfigurationOutput, error) {
3952	req, out := c.PutBlockPublicAccessConfigurationRequest(input)
3953	return out, req.Send()
3954}
3955
3956// PutBlockPublicAccessConfigurationWithContext is the same as PutBlockPublicAccessConfiguration with the addition of
3957// the ability to pass a context and additional request options.
3958//
3959// See PutBlockPublicAccessConfiguration for details on how to use this API operation.
3960//
3961// The context must be non-nil and will be used for request cancellation. If
3962// the context is nil a panic will occur. In the future the SDK may create
3963// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3964// for more information on using Contexts.
3965func (c *EMR) PutBlockPublicAccessConfigurationWithContext(ctx aws.Context, input *PutBlockPublicAccessConfigurationInput, opts ...request.Option) (*PutBlockPublicAccessConfigurationOutput, error) {
3966	req, out := c.PutBlockPublicAccessConfigurationRequest(input)
3967	req.SetContext(ctx)
3968	req.ApplyOptions(opts...)
3969	return out, req.Send()
3970}
3971
3972const opPutManagedScalingPolicy = "PutManagedScalingPolicy"
3973
3974// PutManagedScalingPolicyRequest generates a "aws/request.Request" representing the
3975// client's request for the PutManagedScalingPolicy operation. The "output" return
3976// value will be populated with the request's response once the request completes
3977// successfully.
3978//
3979// Use "Send" method on the returned Request to send the API call to the service.
3980// the "output" return value is not valid until after Send returns without error.
3981//
3982// See PutManagedScalingPolicy for more information on using the PutManagedScalingPolicy
3983// API call, and error handling.
3984//
3985// This method is useful when you want to inject custom logic or configuration
3986// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3987//
3988//
3989//    // Example sending a request using the PutManagedScalingPolicyRequest method.
3990//    req, resp := client.PutManagedScalingPolicyRequest(params)
3991//
3992//    err := req.Send()
3993//    if err == nil { // resp is now filled
3994//        fmt.Println(resp)
3995//    }
3996//
3997// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/PutManagedScalingPolicy
3998func (c *EMR) PutManagedScalingPolicyRequest(input *PutManagedScalingPolicyInput) (req *request.Request, output *PutManagedScalingPolicyOutput) {
3999	op := &request.Operation{
4000		Name:       opPutManagedScalingPolicy,
4001		HTTPMethod: "POST",
4002		HTTPPath:   "/",
4003	}
4004
4005	if input == nil {
4006		input = &PutManagedScalingPolicyInput{}
4007	}
4008
4009	output = &PutManagedScalingPolicyOutput{}
4010	req = c.newRequest(op, input, output)
4011	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4012	return
4013}
4014
4015// PutManagedScalingPolicy API operation for Amazon EMR.
4016//
4017// Creates or updates a managed scaling policy for an Amazon EMR cluster. The
4018// managed scaling policy defines the limits for resources, such as EC2 instances
4019// that can be added or terminated from a cluster. The policy only applies to
4020// the core and task nodes. The master node cannot be scaled after initial configuration.
4021//
4022// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4023// with awserr.Error's Code and Message methods to get detailed information about
4024// the error.
4025//
4026// See the AWS API reference guide for Amazon EMR's
4027// API operation PutManagedScalingPolicy for usage and error information.
4028// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/PutManagedScalingPolicy
4029func (c *EMR) PutManagedScalingPolicy(input *PutManagedScalingPolicyInput) (*PutManagedScalingPolicyOutput, error) {
4030	req, out := c.PutManagedScalingPolicyRequest(input)
4031	return out, req.Send()
4032}
4033
4034// PutManagedScalingPolicyWithContext is the same as PutManagedScalingPolicy with the addition of
4035// the ability to pass a context and additional request options.
4036//
4037// See PutManagedScalingPolicy for details on how to use this API operation.
4038//
4039// The context must be non-nil and will be used for request cancellation. If
4040// the context is nil a panic will occur. In the future the SDK may create
4041// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4042// for more information on using Contexts.
4043func (c *EMR) PutManagedScalingPolicyWithContext(ctx aws.Context, input *PutManagedScalingPolicyInput, opts ...request.Option) (*PutManagedScalingPolicyOutput, error) {
4044	req, out := c.PutManagedScalingPolicyRequest(input)
4045	req.SetContext(ctx)
4046	req.ApplyOptions(opts...)
4047	return out, req.Send()
4048}
4049
4050const opRemoveAutoScalingPolicy = "RemoveAutoScalingPolicy"
4051
4052// RemoveAutoScalingPolicyRequest generates a "aws/request.Request" representing the
4053// client's request for the RemoveAutoScalingPolicy operation. The "output" return
4054// value will be populated with the request's response once the request completes
4055// successfully.
4056//
4057// Use "Send" method on the returned Request to send the API call to the service.
4058// the "output" return value is not valid until after Send returns without error.
4059//
4060// See RemoveAutoScalingPolicy for more information on using the RemoveAutoScalingPolicy
4061// API call, and error handling.
4062//
4063// This method is useful when you want to inject custom logic or configuration
4064// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4065//
4066//
4067//    // Example sending a request using the RemoveAutoScalingPolicyRequest method.
4068//    req, resp := client.RemoveAutoScalingPolicyRequest(params)
4069//
4070//    err := req.Send()
4071//    if err == nil { // resp is now filled
4072//        fmt.Println(resp)
4073//    }
4074//
4075// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/RemoveAutoScalingPolicy
4076func (c *EMR) RemoveAutoScalingPolicyRequest(input *RemoveAutoScalingPolicyInput) (req *request.Request, output *RemoveAutoScalingPolicyOutput) {
4077	op := &request.Operation{
4078		Name:       opRemoveAutoScalingPolicy,
4079		HTTPMethod: "POST",
4080		HTTPPath:   "/",
4081	}
4082
4083	if input == nil {
4084		input = &RemoveAutoScalingPolicyInput{}
4085	}
4086
4087	output = &RemoveAutoScalingPolicyOutput{}
4088	req = c.newRequest(op, input, output)
4089	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4090	return
4091}
4092
4093// RemoveAutoScalingPolicy API operation for Amazon EMR.
4094//
4095// Removes an automatic scaling policy from a specified instance group within
4096// an EMR cluster.
4097//
4098// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4099// with awserr.Error's Code and Message methods to get detailed information about
4100// the error.
4101//
4102// See the AWS API reference guide for Amazon EMR's
4103// API operation RemoveAutoScalingPolicy for usage and error information.
4104// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/RemoveAutoScalingPolicy
4105func (c *EMR) RemoveAutoScalingPolicy(input *RemoveAutoScalingPolicyInput) (*RemoveAutoScalingPolicyOutput, error) {
4106	req, out := c.RemoveAutoScalingPolicyRequest(input)
4107	return out, req.Send()
4108}
4109
4110// RemoveAutoScalingPolicyWithContext is the same as RemoveAutoScalingPolicy with the addition of
4111// the ability to pass a context and additional request options.
4112//
4113// See RemoveAutoScalingPolicy for details on how to use this API operation.
4114//
4115// The context must be non-nil and will be used for request cancellation. If
4116// the context is nil a panic will occur. In the future the SDK may create
4117// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4118// for more information on using Contexts.
4119func (c *EMR) RemoveAutoScalingPolicyWithContext(ctx aws.Context, input *RemoveAutoScalingPolicyInput, opts ...request.Option) (*RemoveAutoScalingPolicyOutput, error) {
4120	req, out := c.RemoveAutoScalingPolicyRequest(input)
4121	req.SetContext(ctx)
4122	req.ApplyOptions(opts...)
4123	return out, req.Send()
4124}
4125
4126const opRemoveAutoTerminationPolicy = "RemoveAutoTerminationPolicy"
4127
4128// RemoveAutoTerminationPolicyRequest generates a "aws/request.Request" representing the
4129// client's request for the RemoveAutoTerminationPolicy operation. The "output" return
4130// value will be populated with the request's response once the request completes
4131// successfully.
4132//
4133// Use "Send" method on the returned Request to send the API call to the service.
4134// the "output" return value is not valid until after Send returns without error.
4135//
4136// See RemoveAutoTerminationPolicy for more information on using the RemoveAutoTerminationPolicy
4137// API call, and error handling.
4138//
4139// This method is useful when you want to inject custom logic or configuration
4140// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4141//
4142//
4143//    // Example sending a request using the RemoveAutoTerminationPolicyRequest method.
4144//    req, resp := client.RemoveAutoTerminationPolicyRequest(params)
4145//
4146//    err := req.Send()
4147//    if err == nil { // resp is now filled
4148//        fmt.Println(resp)
4149//    }
4150//
4151// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/RemoveAutoTerminationPolicy
4152func (c *EMR) RemoveAutoTerminationPolicyRequest(input *RemoveAutoTerminationPolicyInput) (req *request.Request, output *RemoveAutoTerminationPolicyOutput) {
4153	op := &request.Operation{
4154		Name:       opRemoveAutoTerminationPolicy,
4155		HTTPMethod: "POST",
4156		HTTPPath:   "/",
4157	}
4158
4159	if input == nil {
4160		input = &RemoveAutoTerminationPolicyInput{}
4161	}
4162
4163	output = &RemoveAutoTerminationPolicyOutput{}
4164	req = c.newRequest(op, input, output)
4165	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4166	return
4167}
4168
4169// RemoveAutoTerminationPolicy API operation for Amazon EMR.
4170//
4171// Removes an auto-termination policy from an Amazon EMR cluster.
4172//
4173// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4174// with awserr.Error's Code and Message methods to get detailed information about
4175// the error.
4176//
4177// See the AWS API reference guide for Amazon EMR's
4178// API operation RemoveAutoTerminationPolicy for usage and error information.
4179// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/RemoveAutoTerminationPolicy
4180func (c *EMR) RemoveAutoTerminationPolicy(input *RemoveAutoTerminationPolicyInput) (*RemoveAutoTerminationPolicyOutput, error) {
4181	req, out := c.RemoveAutoTerminationPolicyRequest(input)
4182	return out, req.Send()
4183}
4184
4185// RemoveAutoTerminationPolicyWithContext is the same as RemoveAutoTerminationPolicy with the addition of
4186// the ability to pass a context and additional request options.
4187//
4188// See RemoveAutoTerminationPolicy for details on how to use this API operation.
4189//
4190// The context must be non-nil and will be used for request cancellation. If
4191// the context is nil a panic will occur. In the future the SDK may create
4192// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4193// for more information on using Contexts.
4194func (c *EMR) RemoveAutoTerminationPolicyWithContext(ctx aws.Context, input *RemoveAutoTerminationPolicyInput, opts ...request.Option) (*RemoveAutoTerminationPolicyOutput, error) {
4195	req, out := c.RemoveAutoTerminationPolicyRequest(input)
4196	req.SetContext(ctx)
4197	req.ApplyOptions(opts...)
4198	return out, req.Send()
4199}
4200
4201const opRemoveManagedScalingPolicy = "RemoveManagedScalingPolicy"
4202
4203// RemoveManagedScalingPolicyRequest generates a "aws/request.Request" representing the
4204// client's request for the RemoveManagedScalingPolicy operation. The "output" return
4205// value will be populated with the request's response once the request completes
4206// successfully.
4207//
4208// Use "Send" method on the returned Request to send the API call to the service.
4209// the "output" return value is not valid until after Send returns without error.
4210//
4211// See RemoveManagedScalingPolicy for more information on using the RemoveManagedScalingPolicy
4212// API call, and error handling.
4213//
4214// This method is useful when you want to inject custom logic or configuration
4215// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4216//
4217//
4218//    // Example sending a request using the RemoveManagedScalingPolicyRequest method.
4219//    req, resp := client.RemoveManagedScalingPolicyRequest(params)
4220//
4221//    err := req.Send()
4222//    if err == nil { // resp is now filled
4223//        fmt.Println(resp)
4224//    }
4225//
4226// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/RemoveManagedScalingPolicy
4227func (c *EMR) RemoveManagedScalingPolicyRequest(input *RemoveManagedScalingPolicyInput) (req *request.Request, output *RemoveManagedScalingPolicyOutput) {
4228	op := &request.Operation{
4229		Name:       opRemoveManagedScalingPolicy,
4230		HTTPMethod: "POST",
4231		HTTPPath:   "/",
4232	}
4233
4234	if input == nil {
4235		input = &RemoveManagedScalingPolicyInput{}
4236	}
4237
4238	output = &RemoveManagedScalingPolicyOutput{}
4239	req = c.newRequest(op, input, output)
4240	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4241	return
4242}
4243
4244// RemoveManagedScalingPolicy API operation for Amazon EMR.
4245//
4246// Removes a managed scaling policy from a specified EMR cluster.
4247//
4248// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4249// with awserr.Error's Code and Message methods to get detailed information about
4250// the error.
4251//
4252// See the AWS API reference guide for Amazon EMR's
4253// API operation RemoveManagedScalingPolicy for usage and error information.
4254// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/RemoveManagedScalingPolicy
4255func (c *EMR) RemoveManagedScalingPolicy(input *RemoveManagedScalingPolicyInput) (*RemoveManagedScalingPolicyOutput, error) {
4256	req, out := c.RemoveManagedScalingPolicyRequest(input)
4257	return out, req.Send()
4258}
4259
4260// RemoveManagedScalingPolicyWithContext is the same as RemoveManagedScalingPolicy with the addition of
4261// the ability to pass a context and additional request options.
4262//
4263// See RemoveManagedScalingPolicy for details on how to use this API operation.
4264//
4265// The context must be non-nil and will be used for request cancellation. If
4266// the context is nil a panic will occur. In the future the SDK may create
4267// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4268// for more information on using Contexts.
4269func (c *EMR) RemoveManagedScalingPolicyWithContext(ctx aws.Context, input *RemoveManagedScalingPolicyInput, opts ...request.Option) (*RemoveManagedScalingPolicyOutput, error) {
4270	req, out := c.RemoveManagedScalingPolicyRequest(input)
4271	req.SetContext(ctx)
4272	req.ApplyOptions(opts...)
4273	return out, req.Send()
4274}
4275
4276const opRemoveTags = "RemoveTags"
4277
4278// RemoveTagsRequest generates a "aws/request.Request" representing the
4279// client's request for the RemoveTags operation. The "output" return
4280// value will be populated with the request's response once the request completes
4281// successfully.
4282//
4283// Use "Send" method on the returned Request to send the API call to the service.
4284// the "output" return value is not valid until after Send returns without error.
4285//
4286// See RemoveTags for more information on using the RemoveTags
4287// API call, and error handling.
4288//
4289// This method is useful when you want to inject custom logic or configuration
4290// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4291//
4292//
4293//    // Example sending a request using the RemoveTagsRequest method.
4294//    req, resp := client.RemoveTagsRequest(params)
4295//
4296//    err := req.Send()
4297//    if err == nil { // resp is now filled
4298//        fmt.Println(resp)
4299//    }
4300//
4301// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/RemoveTags
4302func (c *EMR) RemoveTagsRequest(input *RemoveTagsInput) (req *request.Request, output *RemoveTagsOutput) {
4303	op := &request.Operation{
4304		Name:       opRemoveTags,
4305		HTTPMethod: "POST",
4306		HTTPPath:   "/",
4307	}
4308
4309	if input == nil {
4310		input = &RemoveTagsInput{}
4311	}
4312
4313	output = &RemoveTagsOutput{}
4314	req = c.newRequest(op, input, output)
4315	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4316	return
4317}
4318
4319// RemoveTags API operation for Amazon EMR.
4320//
4321// Removes tags from an Amazon EMR resource, such as a cluster or Amazon EMR
4322// Studio. Tags make it easier to associate resources in various ways, such
4323// as grouping clusters to track your Amazon EMR resource allocation costs.
4324// For more information, see Tag Clusters (https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-tags.html).
4325//
4326// The following example removes the stack tag with value Prod from a cluster:
4327//
4328// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4329// with awserr.Error's Code and Message methods to get detailed information about
4330// the error.
4331//
4332// See the AWS API reference guide for Amazon EMR's
4333// API operation RemoveTags for usage and error information.
4334//
4335// Returned Error Types:
4336//   * InternalServerException
4337//   This exception occurs when there is an internal failure in the Amazon EMR
4338//   service.
4339//
4340//   * InvalidRequestException
4341//   This exception occurs when there is something wrong with user input.
4342//
4343// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/RemoveTags
4344func (c *EMR) RemoveTags(input *RemoveTagsInput) (*RemoveTagsOutput, error) {
4345	req, out := c.RemoveTagsRequest(input)
4346	return out, req.Send()
4347}
4348
4349// RemoveTagsWithContext is the same as RemoveTags with the addition of
4350// the ability to pass a context and additional request options.
4351//
4352// See RemoveTags for details on how to use this API operation.
4353//
4354// The context must be non-nil and will be used for request cancellation. If
4355// the context is nil a panic will occur. In the future the SDK may create
4356// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4357// for more information on using Contexts.
4358func (c *EMR) RemoveTagsWithContext(ctx aws.Context, input *RemoveTagsInput, opts ...request.Option) (*RemoveTagsOutput, error) {
4359	req, out := c.RemoveTagsRequest(input)
4360	req.SetContext(ctx)
4361	req.ApplyOptions(opts...)
4362	return out, req.Send()
4363}
4364
4365const opRunJobFlow = "RunJobFlow"
4366
4367// RunJobFlowRequest generates a "aws/request.Request" representing the
4368// client's request for the RunJobFlow operation. The "output" return
4369// value will be populated with the request's response once the request completes
4370// successfully.
4371//
4372// Use "Send" method on the returned Request to send the API call to the service.
4373// the "output" return value is not valid until after Send returns without error.
4374//
4375// See RunJobFlow for more information on using the RunJobFlow
4376// API call, and error handling.
4377//
4378// This method is useful when you want to inject custom logic or configuration
4379// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4380//
4381//
4382//    // Example sending a request using the RunJobFlowRequest method.
4383//    req, resp := client.RunJobFlowRequest(params)
4384//
4385//    err := req.Send()
4386//    if err == nil { // resp is now filled
4387//        fmt.Println(resp)
4388//    }
4389//
4390// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/RunJobFlow
4391func (c *EMR) RunJobFlowRequest(input *RunJobFlowInput) (req *request.Request, output *RunJobFlowOutput) {
4392	op := &request.Operation{
4393		Name:       opRunJobFlow,
4394		HTTPMethod: "POST",
4395		HTTPPath:   "/",
4396	}
4397
4398	if input == nil {
4399		input = &RunJobFlowInput{}
4400	}
4401
4402	output = &RunJobFlowOutput{}
4403	req = c.newRequest(op, input, output)
4404	return
4405}
4406
4407// RunJobFlow API operation for Amazon EMR.
4408//
4409// RunJobFlow creates and starts running a new cluster (job flow). The cluster
4410// runs the steps specified. After the steps complete, the cluster stops and
4411// the HDFS partition is lost. To prevent loss of data, configure the last step
4412// of the job flow to store results in Amazon S3. If the JobFlowInstancesConfig
4413// KeepJobFlowAliveWhenNoSteps parameter is set to TRUE, the cluster transitions
4414// to the WAITING state rather than shutting down after the steps have completed.
4415//
4416// For additional protection, you can set the JobFlowInstancesConfig TerminationProtected
4417// parameter to TRUE to lock the cluster and prevent it from being terminated
4418// by API call, user intervention, or in the event of a job flow error.
4419//
4420// A maximum of 256 steps are allowed in each job flow.
4421//
4422// If your cluster is long-running (such as a Hive data warehouse) or complex,
4423// you may require more than 256 steps to process your data. You can bypass
4424// the 256-step limitation in various ways, including using the SSH shell to
4425// connect to the master node and submitting queries directly to the software
4426// running on the master node, such as Hive and Hadoop. For more information
4427// on how to do this, see Add More than 256 Steps to a Cluster (https://docs.aws.amazon.com/emr/latest/ManagementGuide/AddMoreThan256Steps.html)
4428// in the Amazon EMR Management Guide.
4429//
4430// For long running clusters, we recommend that you periodically store your
4431// results.
4432//
4433// The instance fleets configuration is available only in Amazon EMR versions
4434// 4.8.0 and later, excluding 5.0.x versions. The RunJobFlow request can contain
4435// InstanceFleets parameters or InstanceGroups parameters, but not both.
4436//
4437// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4438// with awserr.Error's Code and Message methods to get detailed information about
4439// the error.
4440//
4441// See the AWS API reference guide for Amazon EMR's
4442// API operation RunJobFlow for usage and error information.
4443//
4444// Returned Error Types:
4445//   * InternalServerError
4446//   Indicates that an error occurred while processing the request and that the
4447//   request was not completed.
4448//
4449// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/RunJobFlow
4450func (c *EMR) RunJobFlow(input *RunJobFlowInput) (*RunJobFlowOutput, error) {
4451	req, out := c.RunJobFlowRequest(input)
4452	return out, req.Send()
4453}
4454
4455// RunJobFlowWithContext is the same as RunJobFlow with the addition of
4456// the ability to pass a context and additional request options.
4457//
4458// See RunJobFlow for details on how to use this API operation.
4459//
4460// The context must be non-nil and will be used for request cancellation. If
4461// the context is nil a panic will occur. In the future the SDK may create
4462// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4463// for more information on using Contexts.
4464func (c *EMR) RunJobFlowWithContext(ctx aws.Context, input *RunJobFlowInput, opts ...request.Option) (*RunJobFlowOutput, error) {
4465	req, out := c.RunJobFlowRequest(input)
4466	req.SetContext(ctx)
4467	req.ApplyOptions(opts...)
4468	return out, req.Send()
4469}
4470
4471const opSetTerminationProtection = "SetTerminationProtection"
4472
4473// SetTerminationProtectionRequest generates a "aws/request.Request" representing the
4474// client's request for the SetTerminationProtection operation. The "output" return
4475// value will be populated with the request's response once the request completes
4476// successfully.
4477//
4478// Use "Send" method on the returned Request to send the API call to the service.
4479// the "output" return value is not valid until after Send returns without error.
4480//
4481// See SetTerminationProtection for more information on using the SetTerminationProtection
4482// API call, and error handling.
4483//
4484// This method is useful when you want to inject custom logic or configuration
4485// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4486//
4487//
4488//    // Example sending a request using the SetTerminationProtectionRequest method.
4489//    req, resp := client.SetTerminationProtectionRequest(params)
4490//
4491//    err := req.Send()
4492//    if err == nil { // resp is now filled
4493//        fmt.Println(resp)
4494//    }
4495//
4496// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/SetTerminationProtection
4497func (c *EMR) SetTerminationProtectionRequest(input *SetTerminationProtectionInput) (req *request.Request, output *SetTerminationProtectionOutput) {
4498	op := &request.Operation{
4499		Name:       opSetTerminationProtection,
4500		HTTPMethod: "POST",
4501		HTTPPath:   "/",
4502	}
4503
4504	if input == nil {
4505		input = &SetTerminationProtectionInput{}
4506	}
4507
4508	output = &SetTerminationProtectionOutput{}
4509	req = c.newRequest(op, input, output)
4510	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4511	return
4512}
4513
4514// SetTerminationProtection API operation for Amazon EMR.
4515//
4516// SetTerminationProtection locks a cluster (job flow) so the EC2 instances
4517// in the cluster cannot be terminated by user intervention, an API call, or
4518// in the event of a job-flow error. The cluster still terminates upon successful
4519// completion of the job flow. Calling SetTerminationProtection on a cluster
4520// is similar to calling the Amazon EC2 DisableAPITermination API on all EC2
4521// instances in a cluster.
4522//
4523// SetTerminationProtection is used to prevent accidental termination of a cluster
4524// and to ensure that in the event of an error, the instances persist so that
4525// you can recover any data stored in their ephemeral instance storage.
4526//
4527// To terminate a cluster that has been locked by setting SetTerminationProtection
4528// to true, you must first unlock the job flow by a subsequent call to SetTerminationProtection
4529// in which you set the value to false.
4530//
4531// For more information, seeManaging Cluster Termination (https://docs.aws.amazon.com/emr/latest/ManagementGuide/UsingEMR_TerminationProtection.html)
4532// in the Amazon EMR Management Guide.
4533//
4534// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4535// with awserr.Error's Code and Message methods to get detailed information about
4536// the error.
4537//
4538// See the AWS API reference guide for Amazon EMR's
4539// API operation SetTerminationProtection for usage and error information.
4540//
4541// Returned Error Types:
4542//   * InternalServerError
4543//   Indicates that an error occurred while processing the request and that the
4544//   request was not completed.
4545//
4546// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/SetTerminationProtection
4547func (c *EMR) SetTerminationProtection(input *SetTerminationProtectionInput) (*SetTerminationProtectionOutput, error) {
4548	req, out := c.SetTerminationProtectionRequest(input)
4549	return out, req.Send()
4550}
4551
4552// SetTerminationProtectionWithContext is the same as SetTerminationProtection with the addition of
4553// the ability to pass a context and additional request options.
4554//
4555// See SetTerminationProtection for details on how to use this API operation.
4556//
4557// The context must be non-nil and will be used for request cancellation. If
4558// the context is nil a panic will occur. In the future the SDK may create
4559// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4560// for more information on using Contexts.
4561func (c *EMR) SetTerminationProtectionWithContext(ctx aws.Context, input *SetTerminationProtectionInput, opts ...request.Option) (*SetTerminationProtectionOutput, error) {
4562	req, out := c.SetTerminationProtectionRequest(input)
4563	req.SetContext(ctx)
4564	req.ApplyOptions(opts...)
4565	return out, req.Send()
4566}
4567
4568const opSetVisibleToAllUsers = "SetVisibleToAllUsers"
4569
4570// SetVisibleToAllUsersRequest generates a "aws/request.Request" representing the
4571// client's request for the SetVisibleToAllUsers operation. The "output" return
4572// value will be populated with the request's response once the request completes
4573// successfully.
4574//
4575// Use "Send" method on the returned Request to send the API call to the service.
4576// the "output" return value is not valid until after Send returns without error.
4577//
4578// See SetVisibleToAllUsers for more information on using the SetVisibleToAllUsers
4579// API call, and error handling.
4580//
4581// This method is useful when you want to inject custom logic or configuration
4582// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4583//
4584//
4585//    // Example sending a request using the SetVisibleToAllUsersRequest method.
4586//    req, resp := client.SetVisibleToAllUsersRequest(params)
4587//
4588//    err := req.Send()
4589//    if err == nil { // resp is now filled
4590//        fmt.Println(resp)
4591//    }
4592//
4593// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/SetVisibleToAllUsers
4594func (c *EMR) SetVisibleToAllUsersRequest(input *SetVisibleToAllUsersInput) (req *request.Request, output *SetVisibleToAllUsersOutput) {
4595	op := &request.Operation{
4596		Name:       opSetVisibleToAllUsers,
4597		HTTPMethod: "POST",
4598		HTTPPath:   "/",
4599	}
4600
4601	if input == nil {
4602		input = &SetVisibleToAllUsersInput{}
4603	}
4604
4605	output = &SetVisibleToAllUsersOutput{}
4606	req = c.newRequest(op, input, output)
4607	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4608	return
4609}
4610
4611// SetVisibleToAllUsers API operation for Amazon EMR.
4612//
4613// Sets the Cluster$VisibleToAllUsers value for an EMR cluster. When true, IAM
4614// principals in the Amazon Web Services account can perform EMR cluster actions
4615// that their IAM policies allow. When false, only the IAM principal that created
4616// the cluster and the Amazon Web Services account root user can perform EMR
4617// actions on the cluster, regardless of IAM permissions policies attached to
4618// other IAM principals.
4619//
4620// This action works on running clusters. When you create a cluster, use the
4621// RunJobFlowInput$VisibleToAllUsers parameter.
4622//
4623// For more information, see Understanding the EMR Cluster VisibleToAllUsers
4624// Setting (https://docs.aws.amazon.com/emr/latest/ManagementGuide/security_iam_emr-with-iam.html#security_set_visible_to_all_users)
4625// in the Amazon EMRManagement Guide.
4626//
4627// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4628// with awserr.Error's Code and Message methods to get detailed information about
4629// the error.
4630//
4631// See the AWS API reference guide for Amazon EMR's
4632// API operation SetVisibleToAllUsers for usage and error information.
4633//
4634// Returned Error Types:
4635//   * InternalServerError
4636//   Indicates that an error occurred while processing the request and that the
4637//   request was not completed.
4638//
4639// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/SetVisibleToAllUsers
4640func (c *EMR) SetVisibleToAllUsers(input *SetVisibleToAllUsersInput) (*SetVisibleToAllUsersOutput, error) {
4641	req, out := c.SetVisibleToAllUsersRequest(input)
4642	return out, req.Send()
4643}
4644
4645// SetVisibleToAllUsersWithContext is the same as SetVisibleToAllUsers with the addition of
4646// the ability to pass a context and additional request options.
4647//
4648// See SetVisibleToAllUsers for details on how to use this API operation.
4649//
4650// The context must be non-nil and will be used for request cancellation. If
4651// the context is nil a panic will occur. In the future the SDK may create
4652// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4653// for more information on using Contexts.
4654func (c *EMR) SetVisibleToAllUsersWithContext(ctx aws.Context, input *SetVisibleToAllUsersInput, opts ...request.Option) (*SetVisibleToAllUsersOutput, error) {
4655	req, out := c.SetVisibleToAllUsersRequest(input)
4656	req.SetContext(ctx)
4657	req.ApplyOptions(opts...)
4658	return out, req.Send()
4659}
4660
4661const opStartNotebookExecution = "StartNotebookExecution"
4662
4663// StartNotebookExecutionRequest generates a "aws/request.Request" representing the
4664// client's request for the StartNotebookExecution operation. The "output" return
4665// value will be populated with the request's response once the request completes
4666// successfully.
4667//
4668// Use "Send" method on the returned Request to send the API call to the service.
4669// the "output" return value is not valid until after Send returns without error.
4670//
4671// See StartNotebookExecution for more information on using the StartNotebookExecution
4672// API call, and error handling.
4673//
4674// This method is useful when you want to inject custom logic or configuration
4675// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4676//
4677//
4678//    // Example sending a request using the StartNotebookExecutionRequest method.
4679//    req, resp := client.StartNotebookExecutionRequest(params)
4680//
4681//    err := req.Send()
4682//    if err == nil { // resp is now filled
4683//        fmt.Println(resp)
4684//    }
4685//
4686// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/StartNotebookExecution
4687func (c *EMR) StartNotebookExecutionRequest(input *StartNotebookExecutionInput) (req *request.Request, output *StartNotebookExecutionOutput) {
4688	op := &request.Operation{
4689		Name:       opStartNotebookExecution,
4690		HTTPMethod: "POST",
4691		HTTPPath:   "/",
4692	}
4693
4694	if input == nil {
4695		input = &StartNotebookExecutionInput{}
4696	}
4697
4698	output = &StartNotebookExecutionOutput{}
4699	req = c.newRequest(op, input, output)
4700	return
4701}
4702
4703// StartNotebookExecution API operation for Amazon EMR.
4704//
4705// Starts a notebook execution.
4706//
4707// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4708// with awserr.Error's Code and Message methods to get detailed information about
4709// the error.
4710//
4711// See the AWS API reference guide for Amazon EMR's
4712// API operation StartNotebookExecution for usage and error information.
4713//
4714// Returned Error Types:
4715//   * InternalServerException
4716//   This exception occurs when there is an internal failure in the Amazon EMR
4717//   service.
4718//
4719//   * InvalidRequestException
4720//   This exception occurs when there is something wrong with user input.
4721//
4722// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/StartNotebookExecution
4723func (c *EMR) StartNotebookExecution(input *StartNotebookExecutionInput) (*StartNotebookExecutionOutput, error) {
4724	req, out := c.StartNotebookExecutionRequest(input)
4725	return out, req.Send()
4726}
4727
4728// StartNotebookExecutionWithContext is the same as StartNotebookExecution with the addition of
4729// the ability to pass a context and additional request options.
4730//
4731// See StartNotebookExecution for details on how to use this API operation.
4732//
4733// The context must be non-nil and will be used for request cancellation. If
4734// the context is nil a panic will occur. In the future the SDK may create
4735// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4736// for more information on using Contexts.
4737func (c *EMR) StartNotebookExecutionWithContext(ctx aws.Context, input *StartNotebookExecutionInput, opts ...request.Option) (*StartNotebookExecutionOutput, error) {
4738	req, out := c.StartNotebookExecutionRequest(input)
4739	req.SetContext(ctx)
4740	req.ApplyOptions(opts...)
4741	return out, req.Send()
4742}
4743
4744const opStopNotebookExecution = "StopNotebookExecution"
4745
4746// StopNotebookExecutionRequest generates a "aws/request.Request" representing the
4747// client's request for the StopNotebookExecution operation. The "output" return
4748// value will be populated with the request's response once the request completes
4749// successfully.
4750//
4751// Use "Send" method on the returned Request to send the API call to the service.
4752// the "output" return value is not valid until after Send returns without error.
4753//
4754// See StopNotebookExecution for more information on using the StopNotebookExecution
4755// API call, and error handling.
4756//
4757// This method is useful when you want to inject custom logic or configuration
4758// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4759//
4760//
4761//    // Example sending a request using the StopNotebookExecutionRequest method.
4762//    req, resp := client.StopNotebookExecutionRequest(params)
4763//
4764//    err := req.Send()
4765//    if err == nil { // resp is now filled
4766//        fmt.Println(resp)
4767//    }
4768//
4769// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/StopNotebookExecution
4770func (c *EMR) StopNotebookExecutionRequest(input *StopNotebookExecutionInput) (req *request.Request, output *StopNotebookExecutionOutput) {
4771	op := &request.Operation{
4772		Name:       opStopNotebookExecution,
4773		HTTPMethod: "POST",
4774		HTTPPath:   "/",
4775	}
4776
4777	if input == nil {
4778		input = &StopNotebookExecutionInput{}
4779	}
4780
4781	output = &StopNotebookExecutionOutput{}
4782	req = c.newRequest(op, input, output)
4783	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4784	return
4785}
4786
4787// StopNotebookExecution API operation for Amazon EMR.
4788//
4789// Stops a notebook execution.
4790//
4791// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4792// with awserr.Error's Code and Message methods to get detailed information about
4793// the error.
4794//
4795// See the AWS API reference guide for Amazon EMR's
4796// API operation StopNotebookExecution for usage and error information.
4797//
4798// Returned Error Types:
4799//   * InternalServerError
4800//   Indicates that an error occurred while processing the request and that the
4801//   request was not completed.
4802//
4803//   * InvalidRequestException
4804//   This exception occurs when there is something wrong with user input.
4805//
4806// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/StopNotebookExecution
4807func (c *EMR) StopNotebookExecution(input *StopNotebookExecutionInput) (*StopNotebookExecutionOutput, error) {
4808	req, out := c.StopNotebookExecutionRequest(input)
4809	return out, req.Send()
4810}
4811
4812// StopNotebookExecutionWithContext is the same as StopNotebookExecution with the addition of
4813// the ability to pass a context and additional request options.
4814//
4815// See StopNotebookExecution for details on how to use this API operation.
4816//
4817// The context must be non-nil and will be used for request cancellation. If
4818// the context is nil a panic will occur. In the future the SDK may create
4819// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4820// for more information on using Contexts.
4821func (c *EMR) StopNotebookExecutionWithContext(ctx aws.Context, input *StopNotebookExecutionInput, opts ...request.Option) (*StopNotebookExecutionOutput, error) {
4822	req, out := c.StopNotebookExecutionRequest(input)
4823	req.SetContext(ctx)
4824	req.ApplyOptions(opts...)
4825	return out, req.Send()
4826}
4827
4828const opTerminateJobFlows = "TerminateJobFlows"
4829
4830// TerminateJobFlowsRequest generates a "aws/request.Request" representing the
4831// client's request for the TerminateJobFlows operation. The "output" return
4832// value will be populated with the request's response once the request completes
4833// successfully.
4834//
4835// Use "Send" method on the returned Request to send the API call to the service.
4836// the "output" return value is not valid until after Send returns without error.
4837//
4838// See TerminateJobFlows for more information on using the TerminateJobFlows
4839// API call, and error handling.
4840//
4841// This method is useful when you want to inject custom logic or configuration
4842// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4843//
4844//
4845//    // Example sending a request using the TerminateJobFlowsRequest method.
4846//    req, resp := client.TerminateJobFlowsRequest(params)
4847//
4848//    err := req.Send()
4849//    if err == nil { // resp is now filled
4850//        fmt.Println(resp)
4851//    }
4852//
4853// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/TerminateJobFlows
4854func (c *EMR) TerminateJobFlowsRequest(input *TerminateJobFlowsInput) (req *request.Request, output *TerminateJobFlowsOutput) {
4855	op := &request.Operation{
4856		Name:       opTerminateJobFlows,
4857		HTTPMethod: "POST",
4858		HTTPPath:   "/",
4859	}
4860
4861	if input == nil {
4862		input = &TerminateJobFlowsInput{}
4863	}
4864
4865	output = &TerminateJobFlowsOutput{}
4866	req = c.newRequest(op, input, output)
4867	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4868	return
4869}
4870
4871// TerminateJobFlows API operation for Amazon EMR.
4872//
4873// TerminateJobFlows shuts a list of clusters (job flows) down. When a job flow
4874// is shut down, any step not yet completed is canceled and the EC2 instances
4875// on which the cluster is running are stopped. Any log files not already saved
4876// are uploaded to Amazon S3 if a LogUri was specified when the cluster was
4877// created.
4878//
4879// The maximum number of clusters allowed is 10. The call to TerminateJobFlows
4880// is asynchronous. Depending on the configuration of the cluster, it may take
4881// up to 1-5 minutes for the cluster to completely terminate and release allocated
4882// resources, such as Amazon EC2 instances.
4883//
4884// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4885// with awserr.Error's Code and Message methods to get detailed information about
4886// the error.
4887//
4888// See the AWS API reference guide for Amazon EMR's
4889// API operation TerminateJobFlows for usage and error information.
4890//
4891// Returned Error Types:
4892//   * InternalServerError
4893//   Indicates that an error occurred while processing the request and that the
4894//   request was not completed.
4895//
4896// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/TerminateJobFlows
4897func (c *EMR) TerminateJobFlows(input *TerminateJobFlowsInput) (*TerminateJobFlowsOutput, error) {
4898	req, out := c.TerminateJobFlowsRequest(input)
4899	return out, req.Send()
4900}
4901
4902// TerminateJobFlowsWithContext is the same as TerminateJobFlows with the addition of
4903// the ability to pass a context and additional request options.
4904//
4905// See TerminateJobFlows for details on how to use this API operation.
4906//
4907// The context must be non-nil and will be used for request cancellation. If
4908// the context is nil a panic will occur. In the future the SDK may create
4909// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4910// for more information on using Contexts.
4911func (c *EMR) TerminateJobFlowsWithContext(ctx aws.Context, input *TerminateJobFlowsInput, opts ...request.Option) (*TerminateJobFlowsOutput, error) {
4912	req, out := c.TerminateJobFlowsRequest(input)
4913	req.SetContext(ctx)
4914	req.ApplyOptions(opts...)
4915	return out, req.Send()
4916}
4917
4918const opUpdateStudio = "UpdateStudio"
4919
4920// UpdateStudioRequest generates a "aws/request.Request" representing the
4921// client's request for the UpdateStudio operation. The "output" return
4922// value will be populated with the request's response once the request completes
4923// successfully.
4924//
4925// Use "Send" method on the returned Request to send the API call to the service.
4926// the "output" return value is not valid until after Send returns without error.
4927//
4928// See UpdateStudio for more information on using the UpdateStudio
4929// API call, and error handling.
4930//
4931// This method is useful when you want to inject custom logic or configuration
4932// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4933//
4934//
4935//    // Example sending a request using the UpdateStudioRequest method.
4936//    req, resp := client.UpdateStudioRequest(params)
4937//
4938//    err := req.Send()
4939//    if err == nil { // resp is now filled
4940//        fmt.Println(resp)
4941//    }
4942//
4943// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/UpdateStudio
4944func (c *EMR) UpdateStudioRequest(input *UpdateStudioInput) (req *request.Request, output *UpdateStudioOutput) {
4945	op := &request.Operation{
4946		Name:       opUpdateStudio,
4947		HTTPMethod: "POST",
4948		HTTPPath:   "/",
4949	}
4950
4951	if input == nil {
4952		input = &UpdateStudioInput{}
4953	}
4954
4955	output = &UpdateStudioOutput{}
4956	req = c.newRequest(op, input, output)
4957	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4958	return
4959}
4960
4961// UpdateStudio API operation for Amazon EMR.
4962//
4963// Updates an Amazon EMR Studio configuration, including attributes such as
4964// name, description, and subnets.
4965//
4966// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4967// with awserr.Error's Code and Message methods to get detailed information about
4968// the error.
4969//
4970// See the AWS API reference guide for Amazon EMR's
4971// API operation UpdateStudio for usage and error information.
4972//
4973// Returned Error Types:
4974//   * InternalServerException
4975//   This exception occurs when there is an internal failure in the Amazon EMR
4976//   service.
4977//
4978//   * InvalidRequestException
4979//   This exception occurs when there is something wrong with user input.
4980//
4981// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/UpdateStudio
4982func (c *EMR) UpdateStudio(input *UpdateStudioInput) (*UpdateStudioOutput, error) {
4983	req, out := c.UpdateStudioRequest(input)
4984	return out, req.Send()
4985}
4986
4987// UpdateStudioWithContext is the same as UpdateStudio with the addition of
4988// the ability to pass a context and additional request options.
4989//
4990// See UpdateStudio for details on how to use this API operation.
4991//
4992// The context must be non-nil and will be used for request cancellation. If
4993// the context is nil a panic will occur. In the future the SDK may create
4994// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4995// for more information on using Contexts.
4996func (c *EMR) UpdateStudioWithContext(ctx aws.Context, input *UpdateStudioInput, opts ...request.Option) (*UpdateStudioOutput, error) {
4997	req, out := c.UpdateStudioRequest(input)
4998	req.SetContext(ctx)
4999	req.ApplyOptions(opts...)
5000	return out, req.Send()
5001}
5002
5003const opUpdateStudioSessionMapping = "UpdateStudioSessionMapping"
5004
5005// UpdateStudioSessionMappingRequest generates a "aws/request.Request" representing the
5006// client's request for the UpdateStudioSessionMapping operation. The "output" return
5007// value will be populated with the request's response once the request completes
5008// successfully.
5009//
5010// Use "Send" method on the returned Request to send the API call to the service.
5011// the "output" return value is not valid until after Send returns without error.
5012//
5013// See UpdateStudioSessionMapping for more information on using the UpdateStudioSessionMapping
5014// API call, and error handling.
5015//
5016// This method is useful when you want to inject custom logic or configuration
5017// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5018//
5019//
5020//    // Example sending a request using the UpdateStudioSessionMappingRequest method.
5021//    req, resp := client.UpdateStudioSessionMappingRequest(params)
5022//
5023//    err := req.Send()
5024//    if err == nil { // resp is now filled
5025//        fmt.Println(resp)
5026//    }
5027//
5028// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/UpdateStudioSessionMapping
5029func (c *EMR) UpdateStudioSessionMappingRequest(input *UpdateStudioSessionMappingInput) (req *request.Request, output *UpdateStudioSessionMappingOutput) {
5030	op := &request.Operation{
5031		Name:       opUpdateStudioSessionMapping,
5032		HTTPMethod: "POST",
5033		HTTPPath:   "/",
5034	}
5035
5036	if input == nil {
5037		input = &UpdateStudioSessionMappingInput{}
5038	}
5039
5040	output = &UpdateStudioSessionMappingOutput{}
5041	req = c.newRequest(op, input, output)
5042	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5043	return
5044}
5045
5046// UpdateStudioSessionMapping API operation for Amazon EMR.
5047//
5048// Updates the session policy attached to the user or group for the specified
5049// Amazon EMR Studio.
5050//
5051// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5052// with awserr.Error's Code and Message methods to get detailed information about
5053// the error.
5054//
5055// See the AWS API reference guide for Amazon EMR's
5056// API operation UpdateStudioSessionMapping for usage and error information.
5057//
5058// Returned Error Types:
5059//   * InternalServerError
5060//   Indicates that an error occurred while processing the request and that the
5061//   request was not completed.
5062//
5063//   * InvalidRequestException
5064//   This exception occurs when there is something wrong with user input.
5065//
5066// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/UpdateStudioSessionMapping
5067func (c *EMR) UpdateStudioSessionMapping(input *UpdateStudioSessionMappingInput) (*UpdateStudioSessionMappingOutput, error) {
5068	req, out := c.UpdateStudioSessionMappingRequest(input)
5069	return out, req.Send()
5070}
5071
5072// UpdateStudioSessionMappingWithContext is the same as UpdateStudioSessionMapping with the addition of
5073// the ability to pass a context and additional request options.
5074//
5075// See UpdateStudioSessionMapping for details on how to use this API operation.
5076//
5077// The context must be non-nil and will be used for request cancellation. If
5078// the context is nil a panic will occur. In the future the SDK may create
5079// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5080// for more information on using Contexts.
5081func (c *EMR) UpdateStudioSessionMappingWithContext(ctx aws.Context, input *UpdateStudioSessionMappingInput, opts ...request.Option) (*UpdateStudioSessionMappingOutput, error) {
5082	req, out := c.UpdateStudioSessionMappingRequest(input)
5083	req.SetContext(ctx)
5084	req.ApplyOptions(opts...)
5085	return out, req.Send()
5086}
5087
5088type AddInstanceFleetInput struct {
5089	_ struct{} `type:"structure"`
5090
5091	// The unique identifier of the cluster.
5092	//
5093	// ClusterId is a required field
5094	ClusterId *string `type:"string" required:"true"`
5095
5096	// Specifies the configuration of the instance fleet.
5097	//
5098	// InstanceFleet is a required field
5099	InstanceFleet *InstanceFleetConfig `type:"structure" required:"true"`
5100}
5101
5102// String returns the string representation.
5103//
5104// API parameter values that are decorated as "sensitive" in the API will not
5105// be included in the string output. The member name will be present, but the
5106// value will be replaced with "sensitive".
5107func (s AddInstanceFleetInput) String() string {
5108	return awsutil.Prettify(s)
5109}
5110
5111// GoString returns the string representation.
5112//
5113// API parameter values that are decorated as "sensitive" in the API will not
5114// be included in the string output. The member name will be present, but the
5115// value will be replaced with "sensitive".
5116func (s AddInstanceFleetInput) GoString() string {
5117	return s.String()
5118}
5119
5120// Validate inspects the fields of the type to determine if they are valid.
5121func (s *AddInstanceFleetInput) Validate() error {
5122	invalidParams := request.ErrInvalidParams{Context: "AddInstanceFleetInput"}
5123	if s.ClusterId == nil {
5124		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
5125	}
5126	if s.InstanceFleet == nil {
5127		invalidParams.Add(request.NewErrParamRequired("InstanceFleet"))
5128	}
5129	if s.InstanceFleet != nil {
5130		if err := s.InstanceFleet.Validate(); err != nil {
5131			invalidParams.AddNested("InstanceFleet", err.(request.ErrInvalidParams))
5132		}
5133	}
5134
5135	if invalidParams.Len() > 0 {
5136		return invalidParams
5137	}
5138	return nil
5139}
5140
5141// SetClusterId sets the ClusterId field's value.
5142func (s *AddInstanceFleetInput) SetClusterId(v string) *AddInstanceFleetInput {
5143	s.ClusterId = &v
5144	return s
5145}
5146
5147// SetInstanceFleet sets the InstanceFleet field's value.
5148func (s *AddInstanceFleetInput) SetInstanceFleet(v *InstanceFleetConfig) *AddInstanceFleetInput {
5149	s.InstanceFleet = v
5150	return s
5151}
5152
5153type AddInstanceFleetOutput struct {
5154	_ struct{} `type:"structure"`
5155
5156	// The Amazon Resource Name of the cluster.
5157	ClusterArn *string `min:"20" type:"string"`
5158
5159	// The unique identifier of the cluster.
5160	ClusterId *string `type:"string"`
5161
5162	// The unique identifier of the instance fleet.
5163	InstanceFleetId *string `type:"string"`
5164}
5165
5166// String returns the string representation.
5167//
5168// API parameter values that are decorated as "sensitive" in the API will not
5169// be included in the string output. The member name will be present, but the
5170// value will be replaced with "sensitive".
5171func (s AddInstanceFleetOutput) String() string {
5172	return awsutil.Prettify(s)
5173}
5174
5175// GoString returns the string representation.
5176//
5177// API parameter values that are decorated as "sensitive" in the API will not
5178// be included in the string output. The member name will be present, but the
5179// value will be replaced with "sensitive".
5180func (s AddInstanceFleetOutput) GoString() string {
5181	return s.String()
5182}
5183
5184// SetClusterArn sets the ClusterArn field's value.
5185func (s *AddInstanceFleetOutput) SetClusterArn(v string) *AddInstanceFleetOutput {
5186	s.ClusterArn = &v
5187	return s
5188}
5189
5190// SetClusterId sets the ClusterId field's value.
5191func (s *AddInstanceFleetOutput) SetClusterId(v string) *AddInstanceFleetOutput {
5192	s.ClusterId = &v
5193	return s
5194}
5195
5196// SetInstanceFleetId sets the InstanceFleetId field's value.
5197func (s *AddInstanceFleetOutput) SetInstanceFleetId(v string) *AddInstanceFleetOutput {
5198	s.InstanceFleetId = &v
5199	return s
5200}
5201
5202// Input to an AddInstanceGroups call.
5203type AddInstanceGroupsInput struct {
5204	_ struct{} `type:"structure"`
5205
5206	// Instance groups to add.
5207	//
5208	// InstanceGroups is a required field
5209	InstanceGroups []*InstanceGroupConfig `type:"list" required:"true"`
5210
5211	// Job flow in which to add the instance groups.
5212	//
5213	// JobFlowId is a required field
5214	JobFlowId *string `type:"string" required:"true"`
5215}
5216
5217// String returns the string representation.
5218//
5219// API parameter values that are decorated as "sensitive" in the API will not
5220// be included in the string output. The member name will be present, but the
5221// value will be replaced with "sensitive".
5222func (s AddInstanceGroupsInput) String() string {
5223	return awsutil.Prettify(s)
5224}
5225
5226// GoString returns the string representation.
5227//
5228// API parameter values that are decorated as "sensitive" in the API will not
5229// be included in the string output. The member name will be present, but the
5230// value will be replaced with "sensitive".
5231func (s AddInstanceGroupsInput) GoString() string {
5232	return s.String()
5233}
5234
5235// Validate inspects the fields of the type to determine if they are valid.
5236func (s *AddInstanceGroupsInput) Validate() error {
5237	invalidParams := request.ErrInvalidParams{Context: "AddInstanceGroupsInput"}
5238	if s.InstanceGroups == nil {
5239		invalidParams.Add(request.NewErrParamRequired("InstanceGroups"))
5240	}
5241	if s.JobFlowId == nil {
5242		invalidParams.Add(request.NewErrParamRequired("JobFlowId"))
5243	}
5244	if s.InstanceGroups != nil {
5245		for i, v := range s.InstanceGroups {
5246			if v == nil {
5247				continue
5248			}
5249			if err := v.Validate(); err != nil {
5250				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "InstanceGroups", i), err.(request.ErrInvalidParams))
5251			}
5252		}
5253	}
5254
5255	if invalidParams.Len() > 0 {
5256		return invalidParams
5257	}
5258	return nil
5259}
5260
5261// SetInstanceGroups sets the InstanceGroups field's value.
5262func (s *AddInstanceGroupsInput) SetInstanceGroups(v []*InstanceGroupConfig) *AddInstanceGroupsInput {
5263	s.InstanceGroups = v
5264	return s
5265}
5266
5267// SetJobFlowId sets the JobFlowId field's value.
5268func (s *AddInstanceGroupsInput) SetJobFlowId(v string) *AddInstanceGroupsInput {
5269	s.JobFlowId = &v
5270	return s
5271}
5272
5273// Output from an AddInstanceGroups call.
5274type AddInstanceGroupsOutput struct {
5275	_ struct{} `type:"structure"`
5276
5277	// The Amazon Resource Name of the cluster.
5278	ClusterArn *string `min:"20" type:"string"`
5279
5280	// Instance group IDs of the newly created instance groups.
5281	InstanceGroupIds []*string `type:"list"`
5282
5283	// The job flow ID in which the instance groups are added.
5284	JobFlowId *string `type:"string"`
5285}
5286
5287// String returns the string representation.
5288//
5289// API parameter values that are decorated as "sensitive" in the API will not
5290// be included in the string output. The member name will be present, but the
5291// value will be replaced with "sensitive".
5292func (s AddInstanceGroupsOutput) String() string {
5293	return awsutil.Prettify(s)
5294}
5295
5296// GoString returns the string representation.
5297//
5298// API parameter values that are decorated as "sensitive" in the API will not
5299// be included in the string output. The member name will be present, but the
5300// value will be replaced with "sensitive".
5301func (s AddInstanceGroupsOutput) GoString() string {
5302	return s.String()
5303}
5304
5305// SetClusterArn sets the ClusterArn field's value.
5306func (s *AddInstanceGroupsOutput) SetClusterArn(v string) *AddInstanceGroupsOutput {
5307	s.ClusterArn = &v
5308	return s
5309}
5310
5311// SetInstanceGroupIds sets the InstanceGroupIds field's value.
5312func (s *AddInstanceGroupsOutput) SetInstanceGroupIds(v []*string) *AddInstanceGroupsOutput {
5313	s.InstanceGroupIds = v
5314	return s
5315}
5316
5317// SetJobFlowId sets the JobFlowId field's value.
5318func (s *AddInstanceGroupsOutput) SetJobFlowId(v string) *AddInstanceGroupsOutput {
5319	s.JobFlowId = &v
5320	return s
5321}
5322
5323// The input argument to the AddJobFlowSteps operation.
5324type AddJobFlowStepsInput struct {
5325	_ struct{} `type:"structure"`
5326
5327	// A string that uniquely identifies the job flow. This identifier is returned
5328	// by RunJobFlow and can also be obtained from ListClusters.
5329	//
5330	// JobFlowId is a required field
5331	JobFlowId *string `type:"string" required:"true"`
5332
5333	// A list of StepConfig to be executed by the job flow.
5334	//
5335	// Steps is a required field
5336	Steps []*StepConfig `type:"list" required:"true"`
5337}
5338
5339// String returns the string representation.
5340//
5341// API parameter values that are decorated as "sensitive" in the API will not
5342// be included in the string output. The member name will be present, but the
5343// value will be replaced with "sensitive".
5344func (s AddJobFlowStepsInput) String() string {
5345	return awsutil.Prettify(s)
5346}
5347
5348// GoString returns the string representation.
5349//
5350// API parameter values that are decorated as "sensitive" in the API will not
5351// be included in the string output. The member name will be present, but the
5352// value will be replaced with "sensitive".
5353func (s AddJobFlowStepsInput) GoString() string {
5354	return s.String()
5355}
5356
5357// Validate inspects the fields of the type to determine if they are valid.
5358func (s *AddJobFlowStepsInput) Validate() error {
5359	invalidParams := request.ErrInvalidParams{Context: "AddJobFlowStepsInput"}
5360	if s.JobFlowId == nil {
5361		invalidParams.Add(request.NewErrParamRequired("JobFlowId"))
5362	}
5363	if s.Steps == nil {
5364		invalidParams.Add(request.NewErrParamRequired("Steps"))
5365	}
5366	if s.Steps != nil {
5367		for i, v := range s.Steps {
5368			if v == nil {
5369				continue
5370			}
5371			if err := v.Validate(); err != nil {
5372				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Steps", i), err.(request.ErrInvalidParams))
5373			}
5374		}
5375	}
5376
5377	if invalidParams.Len() > 0 {
5378		return invalidParams
5379	}
5380	return nil
5381}
5382
5383// SetJobFlowId sets the JobFlowId field's value.
5384func (s *AddJobFlowStepsInput) SetJobFlowId(v string) *AddJobFlowStepsInput {
5385	s.JobFlowId = &v
5386	return s
5387}
5388
5389// SetSteps sets the Steps field's value.
5390func (s *AddJobFlowStepsInput) SetSteps(v []*StepConfig) *AddJobFlowStepsInput {
5391	s.Steps = v
5392	return s
5393}
5394
5395// The output for the AddJobFlowSteps operation.
5396type AddJobFlowStepsOutput struct {
5397	_ struct{} `type:"structure"`
5398
5399	// The identifiers of the list of steps added to the job flow.
5400	StepIds []*string `type:"list"`
5401}
5402
5403// String returns the string representation.
5404//
5405// API parameter values that are decorated as "sensitive" in the API will not
5406// be included in the string output. The member name will be present, but the
5407// value will be replaced with "sensitive".
5408func (s AddJobFlowStepsOutput) String() string {
5409	return awsutil.Prettify(s)
5410}
5411
5412// GoString returns the string representation.
5413//
5414// API parameter values that are decorated as "sensitive" in the API will not
5415// be included in the string output. The member name will be present, but the
5416// value will be replaced with "sensitive".
5417func (s AddJobFlowStepsOutput) GoString() string {
5418	return s.String()
5419}
5420
5421// SetStepIds sets the StepIds field's value.
5422func (s *AddJobFlowStepsOutput) SetStepIds(v []*string) *AddJobFlowStepsOutput {
5423	s.StepIds = v
5424	return s
5425}
5426
5427// This input identifies an Amazon EMR resource and a list of tags to attach.
5428type AddTagsInput struct {
5429	_ struct{} `type:"structure"`
5430
5431	// The Amazon EMR resource identifier to which tags will be added. For example,
5432	// a cluster identifier or an Amazon EMR Studio ID.
5433	//
5434	// ResourceId is a required field
5435	ResourceId *string `type:"string" required:"true"`
5436
5437	// A list of tags to associate with a resource. Tags are user-defined key-value
5438	// pairs that consist of a required key string with a maximum of 128 characters,
5439	// and an optional value string with a maximum of 256 characters.
5440	//
5441	// Tags is a required field
5442	Tags []*Tag `type:"list" required:"true"`
5443}
5444
5445// String returns the string representation.
5446//
5447// API parameter values that are decorated as "sensitive" in the API will not
5448// be included in the string output. The member name will be present, but the
5449// value will be replaced with "sensitive".
5450func (s AddTagsInput) String() string {
5451	return awsutil.Prettify(s)
5452}
5453
5454// GoString returns the string representation.
5455//
5456// API parameter values that are decorated as "sensitive" in the API will not
5457// be included in the string output. The member name will be present, but the
5458// value will be replaced with "sensitive".
5459func (s AddTagsInput) GoString() string {
5460	return s.String()
5461}
5462
5463// Validate inspects the fields of the type to determine if they are valid.
5464func (s *AddTagsInput) Validate() error {
5465	invalidParams := request.ErrInvalidParams{Context: "AddTagsInput"}
5466	if s.ResourceId == nil {
5467		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
5468	}
5469	if s.Tags == nil {
5470		invalidParams.Add(request.NewErrParamRequired("Tags"))
5471	}
5472
5473	if invalidParams.Len() > 0 {
5474		return invalidParams
5475	}
5476	return nil
5477}
5478
5479// SetResourceId sets the ResourceId field's value.
5480func (s *AddTagsInput) SetResourceId(v string) *AddTagsInput {
5481	s.ResourceId = &v
5482	return s
5483}
5484
5485// SetTags sets the Tags field's value.
5486func (s *AddTagsInput) SetTags(v []*Tag) *AddTagsInput {
5487	s.Tags = v
5488	return s
5489}
5490
5491// This output indicates the result of adding tags to a resource.
5492type AddTagsOutput struct {
5493	_ struct{} `type:"structure"`
5494}
5495
5496// String returns the string representation.
5497//
5498// API parameter values that are decorated as "sensitive" in the API will not
5499// be included in the string output. The member name will be present, but the
5500// value will be replaced with "sensitive".
5501func (s AddTagsOutput) String() string {
5502	return awsutil.Prettify(s)
5503}
5504
5505// GoString returns the string representation.
5506//
5507// API parameter values that are decorated as "sensitive" in the API will not
5508// be included in the string output. The member name will be present, but the
5509// value will be replaced with "sensitive".
5510func (s AddTagsOutput) GoString() string {
5511	return s.String()
5512}
5513
5514// With Amazon EMR release version 4.0 and later, the only accepted parameter
5515// is the application name. To pass arguments to applications, you use configuration
5516// classifications specified using configuration JSON objects. For more information,
5517// see Configuring Applications (https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-configure-apps.html).
5518//
5519// With earlier Amazon EMR releases, the application is any Amazon or third-party
5520// software that you can add to the cluster. This structure contains a list
5521// of strings that indicates the software to use with the cluster and accepts
5522// a user argument list. Amazon EMR accepts and forwards the argument list to
5523// the corresponding installation script as bootstrap action argument.
5524type Application struct {
5525	_ struct{} `type:"structure"`
5526
5527	// This option is for advanced users only. This is meta information about third-party
5528	// applications that third-party vendors use for testing purposes.
5529	AdditionalInfo map[string]*string `type:"map"`
5530
5531	// Arguments for Amazon EMR to pass to the application.
5532	Args []*string `type:"list"`
5533
5534	// The name of the application.
5535	Name *string `type:"string"`
5536
5537	// The version of the application.
5538	Version *string `type:"string"`
5539}
5540
5541// String returns the string representation.
5542//
5543// API parameter values that are decorated as "sensitive" in the API will not
5544// be included in the string output. The member name will be present, but the
5545// value will be replaced with "sensitive".
5546func (s Application) String() string {
5547	return awsutil.Prettify(s)
5548}
5549
5550// GoString returns the string representation.
5551//
5552// API parameter values that are decorated as "sensitive" in the API will not
5553// be included in the string output. The member name will be present, but the
5554// value will be replaced with "sensitive".
5555func (s Application) GoString() string {
5556	return s.String()
5557}
5558
5559// SetAdditionalInfo sets the AdditionalInfo field's value.
5560func (s *Application) SetAdditionalInfo(v map[string]*string) *Application {
5561	s.AdditionalInfo = v
5562	return s
5563}
5564
5565// SetArgs sets the Args field's value.
5566func (s *Application) SetArgs(v []*string) *Application {
5567	s.Args = v
5568	return s
5569}
5570
5571// SetName sets the Name field's value.
5572func (s *Application) SetName(v string) *Application {
5573	s.Name = &v
5574	return s
5575}
5576
5577// SetVersion sets the Version field's value.
5578func (s *Application) SetVersion(v string) *Application {
5579	s.Version = &v
5580	return s
5581}
5582
5583// An automatic scaling policy for a core instance group or task instance group
5584// in an Amazon EMR cluster. An automatic scaling policy defines how an instance
5585// group dynamically adds and terminates EC2 instances in response to the value
5586// of a CloudWatch metric. See PutAutoScalingPolicy.
5587type AutoScalingPolicy struct {
5588	_ struct{} `type:"structure"`
5589
5590	// The upper and lower EC2 instance limits for an automatic scaling policy.
5591	// Automatic scaling activity will not cause an instance group to grow above
5592	// or below these limits.
5593	//
5594	// Constraints is a required field
5595	Constraints *ScalingConstraints `type:"structure" required:"true"`
5596
5597	// The scale-in and scale-out rules that comprise the automatic scaling policy.
5598	//
5599	// Rules is a required field
5600	Rules []*ScalingRule `type:"list" required:"true"`
5601}
5602
5603// String returns the string representation.
5604//
5605// API parameter values that are decorated as "sensitive" in the API will not
5606// be included in the string output. The member name will be present, but the
5607// value will be replaced with "sensitive".
5608func (s AutoScalingPolicy) String() string {
5609	return awsutil.Prettify(s)
5610}
5611
5612// GoString returns the string representation.
5613//
5614// API parameter values that are decorated as "sensitive" in the API will not
5615// be included in the string output. The member name will be present, but the
5616// value will be replaced with "sensitive".
5617func (s AutoScalingPolicy) GoString() string {
5618	return s.String()
5619}
5620
5621// Validate inspects the fields of the type to determine if they are valid.
5622func (s *AutoScalingPolicy) Validate() error {
5623	invalidParams := request.ErrInvalidParams{Context: "AutoScalingPolicy"}
5624	if s.Constraints == nil {
5625		invalidParams.Add(request.NewErrParamRequired("Constraints"))
5626	}
5627	if s.Rules == nil {
5628		invalidParams.Add(request.NewErrParamRequired("Rules"))
5629	}
5630	if s.Constraints != nil {
5631		if err := s.Constraints.Validate(); err != nil {
5632			invalidParams.AddNested("Constraints", err.(request.ErrInvalidParams))
5633		}
5634	}
5635	if s.Rules != nil {
5636		for i, v := range s.Rules {
5637			if v == nil {
5638				continue
5639			}
5640			if err := v.Validate(); err != nil {
5641				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Rules", i), err.(request.ErrInvalidParams))
5642			}
5643		}
5644	}
5645
5646	if invalidParams.Len() > 0 {
5647		return invalidParams
5648	}
5649	return nil
5650}
5651
5652// SetConstraints sets the Constraints field's value.
5653func (s *AutoScalingPolicy) SetConstraints(v *ScalingConstraints) *AutoScalingPolicy {
5654	s.Constraints = v
5655	return s
5656}
5657
5658// SetRules sets the Rules field's value.
5659func (s *AutoScalingPolicy) SetRules(v []*ScalingRule) *AutoScalingPolicy {
5660	s.Rules = v
5661	return s
5662}
5663
5664// An automatic scaling policy for a core instance group or task instance group
5665// in an Amazon EMR cluster. The automatic scaling policy defines how an instance
5666// group dynamically adds and terminates EC2 instances in response to the value
5667// of a CloudWatch metric. See PutAutoScalingPolicy.
5668type AutoScalingPolicyDescription struct {
5669	_ struct{} `type:"structure"`
5670
5671	// The upper and lower EC2 instance limits for an automatic scaling policy.
5672	// Automatic scaling activity will not cause an instance group to grow above
5673	// or below these limits.
5674	Constraints *ScalingConstraints `type:"structure"`
5675
5676	// The scale-in and scale-out rules that comprise the automatic scaling policy.
5677	Rules []*ScalingRule `type:"list"`
5678
5679	// The status of an automatic scaling policy.
5680	Status *AutoScalingPolicyStatus `type:"structure"`
5681}
5682
5683// String returns the string representation.
5684//
5685// API parameter values that are decorated as "sensitive" in the API will not
5686// be included in the string output. The member name will be present, but the
5687// value will be replaced with "sensitive".
5688func (s AutoScalingPolicyDescription) String() string {
5689	return awsutil.Prettify(s)
5690}
5691
5692// GoString returns the string representation.
5693//
5694// API parameter values that are decorated as "sensitive" in the API will not
5695// be included in the string output. The member name will be present, but the
5696// value will be replaced with "sensitive".
5697func (s AutoScalingPolicyDescription) GoString() string {
5698	return s.String()
5699}
5700
5701// SetConstraints sets the Constraints field's value.
5702func (s *AutoScalingPolicyDescription) SetConstraints(v *ScalingConstraints) *AutoScalingPolicyDescription {
5703	s.Constraints = v
5704	return s
5705}
5706
5707// SetRules sets the Rules field's value.
5708func (s *AutoScalingPolicyDescription) SetRules(v []*ScalingRule) *AutoScalingPolicyDescription {
5709	s.Rules = v
5710	return s
5711}
5712
5713// SetStatus sets the Status field's value.
5714func (s *AutoScalingPolicyDescription) SetStatus(v *AutoScalingPolicyStatus) *AutoScalingPolicyDescription {
5715	s.Status = v
5716	return s
5717}
5718
5719// The reason for an AutoScalingPolicyStatus change.
5720type AutoScalingPolicyStateChangeReason struct {
5721	_ struct{} `type:"structure"`
5722
5723	// The code indicating the reason for the change in status.USER_REQUEST indicates
5724	// that the scaling policy status was changed by a user. PROVISION_FAILURE indicates
5725	// that the status change was because the policy failed to provision. CLEANUP_FAILURE
5726	// indicates an error.
5727	Code *string `type:"string" enum:"AutoScalingPolicyStateChangeReasonCode"`
5728
5729	// A friendly, more verbose message that accompanies an automatic scaling policy
5730	// state change.
5731	Message *string `type:"string"`
5732}
5733
5734// String returns the string representation.
5735//
5736// API parameter values that are decorated as "sensitive" in the API will not
5737// be included in the string output. The member name will be present, but the
5738// value will be replaced with "sensitive".
5739func (s AutoScalingPolicyStateChangeReason) String() string {
5740	return awsutil.Prettify(s)
5741}
5742
5743// GoString returns the string representation.
5744//
5745// API parameter values that are decorated as "sensitive" in the API will not
5746// be included in the string output. The member name will be present, but the
5747// value will be replaced with "sensitive".
5748func (s AutoScalingPolicyStateChangeReason) GoString() string {
5749	return s.String()
5750}
5751
5752// SetCode sets the Code field's value.
5753func (s *AutoScalingPolicyStateChangeReason) SetCode(v string) *AutoScalingPolicyStateChangeReason {
5754	s.Code = &v
5755	return s
5756}
5757
5758// SetMessage sets the Message field's value.
5759func (s *AutoScalingPolicyStateChangeReason) SetMessage(v string) *AutoScalingPolicyStateChangeReason {
5760	s.Message = &v
5761	return s
5762}
5763
5764// The status of an automatic scaling policy.
5765type AutoScalingPolicyStatus struct {
5766	_ struct{} `type:"structure"`
5767
5768	// Indicates the status of the automatic scaling policy.
5769	State *string `type:"string" enum:"AutoScalingPolicyState"`
5770
5771	// The reason for a change in status.
5772	StateChangeReason *AutoScalingPolicyStateChangeReason `type:"structure"`
5773}
5774
5775// String returns the string representation.
5776//
5777// API parameter values that are decorated as "sensitive" in the API will not
5778// be included in the string output. The member name will be present, but the
5779// value will be replaced with "sensitive".
5780func (s AutoScalingPolicyStatus) String() string {
5781	return awsutil.Prettify(s)
5782}
5783
5784// GoString returns the string representation.
5785//
5786// API parameter values that are decorated as "sensitive" in the API will not
5787// be included in the string output. The member name will be present, but the
5788// value will be replaced with "sensitive".
5789func (s AutoScalingPolicyStatus) GoString() string {
5790	return s.String()
5791}
5792
5793// SetState sets the State field's value.
5794func (s *AutoScalingPolicyStatus) SetState(v string) *AutoScalingPolicyStatus {
5795	s.State = &v
5796	return s
5797}
5798
5799// SetStateChangeReason sets the StateChangeReason field's value.
5800func (s *AutoScalingPolicyStatus) SetStateChangeReason(v *AutoScalingPolicyStateChangeReason) *AutoScalingPolicyStatus {
5801	s.StateChangeReason = v
5802	return s
5803}
5804
5805// An auto-termination policy for an Amazon EMR cluster. An auto-termination
5806// policy defines the amount of idle time in seconds after which a cluster automatically
5807// terminates. For alternative cluster termination options, see Control cluster
5808// termination (https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-termination.html).
5809type AutoTerminationPolicy struct {
5810	_ struct{} `type:"structure"`
5811
5812	// Specifies the amount of idle time in seconds after which the cluster automatically
5813	// terminates. You can specify a minimum of 60 seconds and a maximum of 604800
5814	// seconds (seven days).
5815	IdleTimeout *int64 `type:"long"`
5816}
5817
5818// String returns the string representation.
5819//
5820// API parameter values that are decorated as "sensitive" in the API will not
5821// be included in the string output. The member name will be present, but the
5822// value will be replaced with "sensitive".
5823func (s AutoTerminationPolicy) String() string {
5824	return awsutil.Prettify(s)
5825}
5826
5827// GoString returns the string representation.
5828//
5829// API parameter values that are decorated as "sensitive" in the API will not
5830// be included in the string output. The member name will be present, but the
5831// value will be replaced with "sensitive".
5832func (s AutoTerminationPolicy) GoString() string {
5833	return s.String()
5834}
5835
5836// SetIdleTimeout sets the IdleTimeout field's value.
5837func (s *AutoTerminationPolicy) SetIdleTimeout(v int64) *AutoTerminationPolicy {
5838	s.IdleTimeout = &v
5839	return s
5840}
5841
5842// A configuration for Amazon EMR block public access. When BlockPublicSecurityGroupRules
5843// is set to true, Amazon EMR prevents cluster creation if one of the cluster's
5844// security groups has a rule that allows inbound traffic from 0.0.0.0/0 or
5845// ::/0 on a port, unless the port is specified as an exception using PermittedPublicSecurityGroupRuleRanges.
5846type BlockPublicAccessConfiguration struct {
5847	_ struct{} `type:"structure"`
5848
5849	// Indicates whether Amazon EMR block public access is enabled (true) or disabled
5850	// (false). By default, the value is false for accounts that have created EMR
5851	// clusters before July 2019. For accounts created after this, the default is
5852	// true.
5853	//
5854	// BlockPublicSecurityGroupRules is a required field
5855	BlockPublicSecurityGroupRules *bool `type:"boolean" required:"true"`
5856
5857	// Specifies ports and port ranges that are permitted to have security group
5858	// rules that allow inbound traffic from all public sources. For example, if
5859	// Port 23 (Telnet) is specified for PermittedPublicSecurityGroupRuleRanges,
5860	// Amazon EMR allows cluster creation if a security group associated with the
5861	// cluster has a rule that allows inbound traffic on Port 23 from IPv4 0.0.0.0/0
5862	// or IPv6 port ::/0 as the source.
5863	//
5864	// By default, Port 22, which is used for SSH access to the cluster EC2 instances,
5865	// is in the list of PermittedPublicSecurityGroupRuleRanges.
5866	PermittedPublicSecurityGroupRuleRanges []*PortRange `type:"list"`
5867}
5868
5869// String returns the string representation.
5870//
5871// API parameter values that are decorated as "sensitive" in the API will not
5872// be included in the string output. The member name will be present, but the
5873// value will be replaced with "sensitive".
5874func (s BlockPublicAccessConfiguration) String() string {
5875	return awsutil.Prettify(s)
5876}
5877
5878// GoString returns the string representation.
5879//
5880// API parameter values that are decorated as "sensitive" in the API will not
5881// be included in the string output. The member name will be present, but the
5882// value will be replaced with "sensitive".
5883func (s BlockPublicAccessConfiguration) GoString() string {
5884	return s.String()
5885}
5886
5887// Validate inspects the fields of the type to determine if they are valid.
5888func (s *BlockPublicAccessConfiguration) Validate() error {
5889	invalidParams := request.ErrInvalidParams{Context: "BlockPublicAccessConfiguration"}
5890	if s.BlockPublicSecurityGroupRules == nil {
5891		invalidParams.Add(request.NewErrParamRequired("BlockPublicSecurityGroupRules"))
5892	}
5893	if s.PermittedPublicSecurityGroupRuleRanges != nil {
5894		for i, v := range s.PermittedPublicSecurityGroupRuleRanges {
5895			if v == nil {
5896				continue
5897			}
5898			if err := v.Validate(); err != nil {
5899				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "PermittedPublicSecurityGroupRuleRanges", i), err.(request.ErrInvalidParams))
5900			}
5901		}
5902	}
5903
5904	if invalidParams.Len() > 0 {
5905		return invalidParams
5906	}
5907	return nil
5908}
5909
5910// SetBlockPublicSecurityGroupRules sets the BlockPublicSecurityGroupRules field's value.
5911func (s *BlockPublicAccessConfiguration) SetBlockPublicSecurityGroupRules(v bool) *BlockPublicAccessConfiguration {
5912	s.BlockPublicSecurityGroupRules = &v
5913	return s
5914}
5915
5916// SetPermittedPublicSecurityGroupRuleRanges sets the PermittedPublicSecurityGroupRuleRanges field's value.
5917func (s *BlockPublicAccessConfiguration) SetPermittedPublicSecurityGroupRuleRanges(v []*PortRange) *BlockPublicAccessConfiguration {
5918	s.PermittedPublicSecurityGroupRuleRanges = v
5919	return s
5920}
5921
5922// Properties that describe the Amazon Web Services principal that created the
5923// BlockPublicAccessConfiguration using the PutBlockPublicAccessConfiguration
5924// action as well as the date and time that the configuration was created. Each
5925// time a configuration for block public access is updated, Amazon EMR updates
5926// this metadata.
5927type BlockPublicAccessConfigurationMetadata struct {
5928	_ struct{} `type:"structure"`
5929
5930	// The Amazon Resource Name that created or last modified the configuration.
5931	//
5932	// CreatedByArn is a required field
5933	CreatedByArn *string `min:"20" type:"string" required:"true"`
5934
5935	// The date and time that the configuration was created.
5936	//
5937	// CreationDateTime is a required field
5938	CreationDateTime *time.Time `type:"timestamp" required:"true"`
5939}
5940
5941// String returns the string representation.
5942//
5943// API parameter values that are decorated as "sensitive" in the API will not
5944// be included in the string output. The member name will be present, but the
5945// value will be replaced with "sensitive".
5946func (s BlockPublicAccessConfigurationMetadata) String() string {
5947	return awsutil.Prettify(s)
5948}
5949
5950// GoString returns the string representation.
5951//
5952// API parameter values that are decorated as "sensitive" in the API will not
5953// be included in the string output. The member name will be present, but the
5954// value will be replaced with "sensitive".
5955func (s BlockPublicAccessConfigurationMetadata) GoString() string {
5956	return s.String()
5957}
5958
5959// SetCreatedByArn sets the CreatedByArn field's value.
5960func (s *BlockPublicAccessConfigurationMetadata) SetCreatedByArn(v string) *BlockPublicAccessConfigurationMetadata {
5961	s.CreatedByArn = &v
5962	return s
5963}
5964
5965// SetCreationDateTime sets the CreationDateTime field's value.
5966func (s *BlockPublicAccessConfigurationMetadata) SetCreationDateTime(v time.Time) *BlockPublicAccessConfigurationMetadata {
5967	s.CreationDateTime = &v
5968	return s
5969}
5970
5971// Configuration of a bootstrap action.
5972type BootstrapActionConfig struct {
5973	_ struct{} `type:"structure"`
5974
5975	// The name of the bootstrap action.
5976	//
5977	// Name is a required field
5978	Name *string `type:"string" required:"true"`
5979
5980	// The script run by the bootstrap action.
5981	//
5982	// ScriptBootstrapAction is a required field
5983	ScriptBootstrapAction *ScriptBootstrapActionConfig `type:"structure" required:"true"`
5984}
5985
5986// String returns the string representation.
5987//
5988// API parameter values that are decorated as "sensitive" in the API will not
5989// be included in the string output. The member name will be present, but the
5990// value will be replaced with "sensitive".
5991func (s BootstrapActionConfig) String() string {
5992	return awsutil.Prettify(s)
5993}
5994
5995// GoString returns the string representation.
5996//
5997// API parameter values that are decorated as "sensitive" in the API will not
5998// be included in the string output. The member name will be present, but the
5999// value will be replaced with "sensitive".
6000func (s BootstrapActionConfig) GoString() string {
6001	return s.String()
6002}
6003
6004// Validate inspects the fields of the type to determine if they are valid.
6005func (s *BootstrapActionConfig) Validate() error {
6006	invalidParams := request.ErrInvalidParams{Context: "BootstrapActionConfig"}
6007	if s.Name == nil {
6008		invalidParams.Add(request.NewErrParamRequired("Name"))
6009	}
6010	if s.ScriptBootstrapAction == nil {
6011		invalidParams.Add(request.NewErrParamRequired("ScriptBootstrapAction"))
6012	}
6013	if s.ScriptBootstrapAction != nil {
6014		if err := s.ScriptBootstrapAction.Validate(); err != nil {
6015			invalidParams.AddNested("ScriptBootstrapAction", err.(request.ErrInvalidParams))
6016		}
6017	}
6018
6019	if invalidParams.Len() > 0 {
6020		return invalidParams
6021	}
6022	return nil
6023}
6024
6025// SetName sets the Name field's value.
6026func (s *BootstrapActionConfig) SetName(v string) *BootstrapActionConfig {
6027	s.Name = &v
6028	return s
6029}
6030
6031// SetScriptBootstrapAction sets the ScriptBootstrapAction field's value.
6032func (s *BootstrapActionConfig) SetScriptBootstrapAction(v *ScriptBootstrapActionConfig) *BootstrapActionConfig {
6033	s.ScriptBootstrapAction = v
6034	return s
6035}
6036
6037// Reports the configuration of a bootstrap action in a cluster (job flow).
6038type BootstrapActionDetail struct {
6039	_ struct{} `type:"structure"`
6040
6041	// A description of the bootstrap action.
6042	BootstrapActionConfig *BootstrapActionConfig `type:"structure"`
6043}
6044
6045// String returns the string representation.
6046//
6047// API parameter values that are decorated as "sensitive" in the API will not
6048// be included in the string output. The member name will be present, but the
6049// value will be replaced with "sensitive".
6050func (s BootstrapActionDetail) String() string {
6051	return awsutil.Prettify(s)
6052}
6053
6054// GoString returns the string representation.
6055//
6056// API parameter values that are decorated as "sensitive" in the API will not
6057// be included in the string output. The member name will be present, but the
6058// value will be replaced with "sensitive".
6059func (s BootstrapActionDetail) GoString() string {
6060	return s.String()
6061}
6062
6063// SetBootstrapActionConfig sets the BootstrapActionConfig field's value.
6064func (s *BootstrapActionDetail) SetBootstrapActionConfig(v *BootstrapActionConfig) *BootstrapActionDetail {
6065	s.BootstrapActionConfig = v
6066	return s
6067}
6068
6069// Specification of the status of a CancelSteps request. Available only in Amazon
6070// EMR version 4.8.0 and later, excluding version 5.0.0.
6071type CancelStepsInfo struct {
6072	_ struct{} `type:"structure"`
6073
6074	// The reason for the failure if the CancelSteps request fails.
6075	Reason *string `type:"string"`
6076
6077	// The status of a CancelSteps Request. The value may be SUBMITTED or FAILED.
6078	Status *string `type:"string" enum:"CancelStepsRequestStatus"`
6079
6080	// The encrypted StepId of a step.
6081	StepId *string `type:"string"`
6082}
6083
6084// String returns the string representation.
6085//
6086// API parameter values that are decorated as "sensitive" in the API will not
6087// be included in the string output. The member name will be present, but the
6088// value will be replaced with "sensitive".
6089func (s CancelStepsInfo) String() string {
6090	return awsutil.Prettify(s)
6091}
6092
6093// GoString returns the string representation.
6094//
6095// API parameter values that are decorated as "sensitive" in the API will not
6096// be included in the string output. The member name will be present, but the
6097// value will be replaced with "sensitive".
6098func (s CancelStepsInfo) GoString() string {
6099	return s.String()
6100}
6101
6102// SetReason sets the Reason field's value.
6103func (s *CancelStepsInfo) SetReason(v string) *CancelStepsInfo {
6104	s.Reason = &v
6105	return s
6106}
6107
6108// SetStatus sets the Status field's value.
6109func (s *CancelStepsInfo) SetStatus(v string) *CancelStepsInfo {
6110	s.Status = &v
6111	return s
6112}
6113
6114// SetStepId sets the StepId field's value.
6115func (s *CancelStepsInfo) SetStepId(v string) *CancelStepsInfo {
6116	s.StepId = &v
6117	return s
6118}
6119
6120// The input argument to the CancelSteps operation.
6121type CancelStepsInput struct {
6122	_ struct{} `type:"structure"`
6123
6124	// The ClusterID for the specified steps that will be canceled. Use RunJobFlow
6125	// and ListClusters to get ClusterIDs.
6126	//
6127	// ClusterId is a required field
6128	ClusterId *string `type:"string" required:"true"`
6129
6130	// The option to choose to cancel RUNNING steps. By default, the value is SEND_INTERRUPT.
6131	StepCancellationOption *string `type:"string" enum:"StepCancellationOption"`
6132
6133	// The list of StepIDs to cancel. Use ListSteps to get steps and their states
6134	// for the specified cluster.
6135	//
6136	// StepIds is a required field
6137	StepIds []*string `type:"list" required:"true"`
6138}
6139
6140// String returns the string representation.
6141//
6142// API parameter values that are decorated as "sensitive" in the API will not
6143// be included in the string output. The member name will be present, but the
6144// value will be replaced with "sensitive".
6145func (s CancelStepsInput) String() string {
6146	return awsutil.Prettify(s)
6147}
6148
6149// GoString returns the string representation.
6150//
6151// API parameter values that are decorated as "sensitive" in the API will not
6152// be included in the string output. The member name will be present, but the
6153// value will be replaced with "sensitive".
6154func (s CancelStepsInput) GoString() string {
6155	return s.String()
6156}
6157
6158// Validate inspects the fields of the type to determine if they are valid.
6159func (s *CancelStepsInput) Validate() error {
6160	invalidParams := request.ErrInvalidParams{Context: "CancelStepsInput"}
6161	if s.ClusterId == nil {
6162		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
6163	}
6164	if s.StepIds == nil {
6165		invalidParams.Add(request.NewErrParamRequired("StepIds"))
6166	}
6167
6168	if invalidParams.Len() > 0 {
6169		return invalidParams
6170	}
6171	return nil
6172}
6173
6174// SetClusterId sets the ClusterId field's value.
6175func (s *CancelStepsInput) SetClusterId(v string) *CancelStepsInput {
6176	s.ClusterId = &v
6177	return s
6178}
6179
6180// SetStepCancellationOption sets the StepCancellationOption field's value.
6181func (s *CancelStepsInput) SetStepCancellationOption(v string) *CancelStepsInput {
6182	s.StepCancellationOption = &v
6183	return s
6184}
6185
6186// SetStepIds sets the StepIds field's value.
6187func (s *CancelStepsInput) SetStepIds(v []*string) *CancelStepsInput {
6188	s.StepIds = v
6189	return s
6190}
6191
6192// The output for the CancelSteps operation.
6193type CancelStepsOutput struct {
6194	_ struct{} `type:"structure"`
6195
6196	// A list of CancelStepsInfo, which shows the status of specified cancel requests
6197	// for each StepID specified.
6198	CancelStepsInfoList []*CancelStepsInfo `type:"list"`
6199}
6200
6201// String returns the string representation.
6202//
6203// API parameter values that are decorated as "sensitive" in the API will not
6204// be included in the string output. The member name will be present, but the
6205// value will be replaced with "sensitive".
6206func (s CancelStepsOutput) String() string {
6207	return awsutil.Prettify(s)
6208}
6209
6210// GoString returns the string representation.
6211//
6212// API parameter values that are decorated as "sensitive" in the API will not
6213// be included in the string output. The member name will be present, but the
6214// value will be replaced with "sensitive".
6215func (s CancelStepsOutput) GoString() string {
6216	return s.String()
6217}
6218
6219// SetCancelStepsInfoList sets the CancelStepsInfoList field's value.
6220func (s *CancelStepsOutput) SetCancelStepsInfoList(v []*CancelStepsInfo) *CancelStepsOutput {
6221	s.CancelStepsInfoList = v
6222	return s
6223}
6224
6225// The definition of a CloudWatch metric alarm, which determines when an automatic
6226// scaling activity is triggered. When the defined alarm conditions are satisfied,
6227// scaling activity begins.
6228type CloudWatchAlarmDefinition struct {
6229	_ struct{} `type:"structure"`
6230
6231	// Determines how the metric specified by MetricName is compared to the value
6232	// specified by Threshold.
6233	//
6234	// ComparisonOperator is a required field
6235	ComparisonOperator *string `type:"string" required:"true" enum:"ComparisonOperator"`
6236
6237	// A CloudWatch metric dimension.
6238	Dimensions []*MetricDimension `type:"list"`
6239
6240	// The number of periods, in five-minute increments, during which the alarm
6241	// condition must exist before the alarm triggers automatic scaling activity.
6242	// The default value is 1.
6243	EvaluationPeriods *int64 `type:"integer"`
6244
6245	// The name of the CloudWatch metric that is watched to determine an alarm condition.
6246	//
6247	// MetricName is a required field
6248	MetricName *string `type:"string" required:"true"`
6249
6250	// The namespace for the CloudWatch metric. The default is AWS/ElasticMapReduce.
6251	Namespace *string `type:"string"`
6252
6253	// The period, in seconds, over which the statistic is applied. EMR CloudWatch
6254	// metrics are emitted every five minutes (300 seconds), so if an EMR CloudWatch
6255	// metric is specified, specify 300.
6256	//
6257	// Period is a required field
6258	Period *int64 `type:"integer" required:"true"`
6259
6260	// The statistic to apply to the metric associated with the alarm. The default
6261	// is AVERAGE.
6262	Statistic *string `type:"string" enum:"Statistic"`
6263
6264	// The value against which the specified statistic is compared.
6265	//
6266	// Threshold is a required field
6267	Threshold *float64 `type:"double" required:"true"`
6268
6269	// The unit of measure associated with the CloudWatch metric being watched.
6270	// The value specified for Unit must correspond to the units specified in the
6271	// CloudWatch metric.
6272	Unit *string `type:"string" enum:"Unit"`
6273}
6274
6275// String returns the string representation.
6276//
6277// API parameter values that are decorated as "sensitive" in the API will not
6278// be included in the string output. The member name will be present, but the
6279// value will be replaced with "sensitive".
6280func (s CloudWatchAlarmDefinition) String() string {
6281	return awsutil.Prettify(s)
6282}
6283
6284// GoString returns the string representation.
6285//
6286// API parameter values that are decorated as "sensitive" in the API will not
6287// be included in the string output. The member name will be present, but the
6288// value will be replaced with "sensitive".
6289func (s CloudWatchAlarmDefinition) GoString() string {
6290	return s.String()
6291}
6292
6293// Validate inspects the fields of the type to determine if they are valid.
6294func (s *CloudWatchAlarmDefinition) Validate() error {
6295	invalidParams := request.ErrInvalidParams{Context: "CloudWatchAlarmDefinition"}
6296	if s.ComparisonOperator == nil {
6297		invalidParams.Add(request.NewErrParamRequired("ComparisonOperator"))
6298	}
6299	if s.MetricName == nil {
6300		invalidParams.Add(request.NewErrParamRequired("MetricName"))
6301	}
6302	if s.Period == nil {
6303		invalidParams.Add(request.NewErrParamRequired("Period"))
6304	}
6305	if s.Threshold == nil {
6306		invalidParams.Add(request.NewErrParamRequired("Threshold"))
6307	}
6308
6309	if invalidParams.Len() > 0 {
6310		return invalidParams
6311	}
6312	return nil
6313}
6314
6315// SetComparisonOperator sets the ComparisonOperator field's value.
6316func (s *CloudWatchAlarmDefinition) SetComparisonOperator(v string) *CloudWatchAlarmDefinition {
6317	s.ComparisonOperator = &v
6318	return s
6319}
6320
6321// SetDimensions sets the Dimensions field's value.
6322func (s *CloudWatchAlarmDefinition) SetDimensions(v []*MetricDimension) *CloudWatchAlarmDefinition {
6323	s.Dimensions = v
6324	return s
6325}
6326
6327// SetEvaluationPeriods sets the EvaluationPeriods field's value.
6328func (s *CloudWatchAlarmDefinition) SetEvaluationPeriods(v int64) *CloudWatchAlarmDefinition {
6329	s.EvaluationPeriods = &v
6330	return s
6331}
6332
6333// SetMetricName sets the MetricName field's value.
6334func (s *CloudWatchAlarmDefinition) SetMetricName(v string) *CloudWatchAlarmDefinition {
6335	s.MetricName = &v
6336	return s
6337}
6338
6339// SetNamespace sets the Namespace field's value.
6340func (s *CloudWatchAlarmDefinition) SetNamespace(v string) *CloudWatchAlarmDefinition {
6341	s.Namespace = &v
6342	return s
6343}
6344
6345// SetPeriod sets the Period field's value.
6346func (s *CloudWatchAlarmDefinition) SetPeriod(v int64) *CloudWatchAlarmDefinition {
6347	s.Period = &v
6348	return s
6349}
6350
6351// SetStatistic sets the Statistic field's value.
6352func (s *CloudWatchAlarmDefinition) SetStatistic(v string) *CloudWatchAlarmDefinition {
6353	s.Statistic = &v
6354	return s
6355}
6356
6357// SetThreshold sets the Threshold field's value.
6358func (s *CloudWatchAlarmDefinition) SetThreshold(v float64) *CloudWatchAlarmDefinition {
6359	s.Threshold = &v
6360	return s
6361}
6362
6363// SetUnit sets the Unit field's value.
6364func (s *CloudWatchAlarmDefinition) SetUnit(v string) *CloudWatchAlarmDefinition {
6365	s.Unit = &v
6366	return s
6367}
6368
6369// The detailed description of the cluster.
6370type Cluster struct {
6371	_ struct{} `type:"structure"`
6372
6373	// The applications installed on this cluster.
6374	Applications []*Application `type:"list"`
6375
6376	// An IAM role for automatic scaling policies. The default role is EMR_AutoScaling_DefaultRole.
6377	// The IAM role provides permissions that the automatic scaling feature requires
6378	// to launch and terminate EC2 instances in an instance group.
6379	AutoScalingRole *string `type:"string"`
6380
6381	// Specifies whether the cluster should terminate after completing all steps.
6382	AutoTerminate *bool `type:"boolean"`
6383
6384	// The Amazon Resource Name of the cluster.
6385	ClusterArn *string `min:"20" type:"string"`
6386
6387	// Applies only to Amazon EMR releases 4.x and later. The list of Configurations
6388	// supplied to the EMR cluster.
6389	Configurations []*Configuration `type:"list"`
6390
6391	// Available only in Amazon EMR version 5.7.0 and later. The ID of a custom
6392	// Amazon EBS-backed Linux AMI if the cluster uses a custom AMI.
6393	CustomAmiId *string `type:"string"`
6394
6395	// The size, in GiB, of the Amazon EBS root device volume of the Linux AMI that
6396	// is used for each EC2 instance. Available in Amazon EMR version 4.x and later.
6397	EbsRootVolumeSize *int64 `type:"integer"`
6398
6399	// Provides information about the EC2 instances in a cluster grouped by category.
6400	// For example, key name, subnet ID, IAM instance profile, and so on.
6401	Ec2InstanceAttributes *Ec2InstanceAttributes `type:"structure"`
6402
6403	// The unique identifier for the cluster.
6404	Id *string `type:"string"`
6405
6406	//
6407	// The instance fleet configuration is available only in Amazon EMR versions
6408	// 4.8.0 and later, excluding 5.0.x versions.
6409	//
6410	// The instance group configuration of the cluster. A value of INSTANCE_GROUP
6411	// indicates a uniform instance group configuration. A value of INSTANCE_FLEET
6412	// indicates an instance fleets configuration.
6413	InstanceCollectionType *string `type:"string" enum:"InstanceCollectionType"`
6414
6415	// Attributes for Kerberos configuration when Kerberos authentication is enabled
6416	// using a security configuration. For more information see Use Kerberos Authentication
6417	// (https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-kerberos.html)
6418	// in the Amazon EMR Management Guide.
6419	KerberosAttributes *KerberosAttributes `type:"structure"`
6420
6421	// The KMS key used for encrypting log files. This attribute is only available
6422	// with EMR version 5.30.0 and later, excluding EMR 6.0.0.
6423	LogEncryptionKmsKeyId *string `type:"string"`
6424
6425	// The path to the Amazon S3 location where logs for this cluster are stored.
6426	LogUri *string `type:"string"`
6427
6428	// The DNS name of the master node. If the cluster is on a private subnet, this
6429	// is the private DNS name. On a public subnet, this is the public DNS name.
6430	MasterPublicDnsName *string `type:"string"`
6431
6432	// The name of the cluster.
6433	Name *string `type:"string"`
6434
6435	// An approximation of the cost of the cluster, represented in m1.small/hours.
6436	// This value is incremented one time for every hour an m1.small instance runs.
6437	// Larger instances are weighted more, so an EC2 instance that is roughly four
6438	// times more expensive would result in the normalized instance hours being
6439	// incremented by four. This result is only an approximation and does not reflect
6440	// the actual billing rate.
6441	NormalizedInstanceHours *int64 `type:"integer"`
6442
6443	// The Amazon Resource Name (ARN) of the Outpost where the cluster is launched.
6444	OutpostArn *string `type:"string"`
6445
6446	// Placement group configured for an Amazon EMR cluster.
6447	PlacementGroups []*PlacementGroupConfig `type:"list"`
6448
6449	// The Amazon EMR release label, which determines the version of open-source
6450	// application packages installed on the cluster. Release labels are in the
6451	// form emr-x.x.x, where x.x.x is an Amazon EMR release version such as emr-5.14.0.
6452	// For more information about Amazon EMR release versions and included application
6453	// versions and features, see https://docs.aws.amazon.com/emr/latest/ReleaseGuide/
6454	// (https://docs.aws.amazon.com/emr/latest/ReleaseGuide/). The release label
6455	// applies only to Amazon EMR releases version 4.0 and later. Earlier versions
6456	// use AmiVersion.
6457	ReleaseLabel *string `type:"string"`
6458
6459	// Applies only when CustomAmiID is used. Specifies the type of updates that
6460	// are applied from the Amazon Linux AMI package repositories when an instance
6461	// boots using the AMI.
6462	RepoUpgradeOnBoot *string `type:"string" enum:"RepoUpgradeOnBoot"`
6463
6464	// The AMI version requested for this cluster.
6465	RequestedAmiVersion *string `type:"string"`
6466
6467	// The AMI version running on this cluster.
6468	RunningAmiVersion *string `type:"string"`
6469
6470	// The way that individual Amazon EC2 instances terminate when an automatic
6471	// scale-in activity occurs or an instance group is resized. TERMINATE_AT_INSTANCE_HOUR
6472	// indicates that Amazon EMR terminates nodes at the instance-hour boundary,
6473	// regardless of when the request to terminate the instance was submitted. This
6474	// option is only available with Amazon EMR 5.1.0 and later and is the default
6475	// for clusters created using that version. TERMINATE_AT_TASK_COMPLETION indicates
6476	// that Amazon EMR adds nodes to a deny list and drains tasks from nodes before
6477	// terminating the Amazon EC2 instances, regardless of the instance-hour boundary.
6478	// With either behavior, Amazon EMR removes the least active nodes first and
6479	// blocks instance termination if it could lead to HDFS corruption. TERMINATE_AT_TASK_COMPLETION
6480	// is available only in Amazon EMR version 4.1.0 and later, and is the default
6481	// for versions of Amazon EMR earlier than 5.1.0.
6482	ScaleDownBehavior *string `type:"string" enum:"ScaleDownBehavior"`
6483
6484	// The name of the security configuration applied to the cluster.
6485	SecurityConfiguration *string `type:"string"`
6486
6487	// The IAM role that Amazon EMR assumes in order to access Amazon Web Services
6488	// resources on your behalf.
6489	ServiceRole *string `type:"string"`
6490
6491	// The current status details about the cluster.
6492	Status *ClusterStatus `type:"structure"`
6493
6494	// Specifies the number of steps that can be executed concurrently.
6495	StepConcurrencyLevel *int64 `type:"integer"`
6496
6497	// A list of tags associated with a cluster.
6498	Tags []*Tag `type:"list"`
6499
6500	// Indicates whether Amazon EMR will lock the cluster to prevent the EC2 instances
6501	// from being terminated by an API call or user intervention, or in the event
6502	// of a cluster error.
6503	TerminationProtected *bool `type:"boolean"`
6504
6505	// Indicates whether the cluster is visible to IAM principals in the Amazon
6506	// Web Services account associated with the cluster. When true, IAM principals
6507	// in the Amazon Web Services account can perform EMR cluster actions on the
6508	// cluster that their IAM policies allow. When false, only the IAM principal
6509	// that created the cluster and the Amazon Web Services account root user can
6510	// perform EMR actions, regardless of IAM permissions policies attached to other
6511	// IAM principals.
6512	//
6513	// The default value is true if a value is not provided when creating a cluster
6514	// using the EMR API RunJobFlow command, the CLI create-cluster (https://docs.aws.amazon.com/cli/latest/reference/emr/create-cluster.html)
6515	// command, or the Amazon Web Services Management Console. IAM principals that
6516	// are allowed to perform actions on the cluster can use the SetVisibleToAllUsers
6517	// action to change the value on a running cluster. For more information, see
6518	// 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)
6519	// in the Amazon EMRManagement Guide.
6520	VisibleToAllUsers *bool `type:"boolean"`
6521}
6522
6523// String returns the string representation.
6524//
6525// API parameter values that are decorated as "sensitive" in the API will not
6526// be included in the string output. The member name will be present, but the
6527// value will be replaced with "sensitive".
6528func (s Cluster) String() string {
6529	return awsutil.Prettify(s)
6530}
6531
6532// GoString returns the string representation.
6533//
6534// API parameter values that are decorated as "sensitive" in the API will not
6535// be included in the string output. The member name will be present, but the
6536// value will be replaced with "sensitive".
6537func (s Cluster) GoString() string {
6538	return s.String()
6539}
6540
6541// SetApplications sets the Applications field's value.
6542func (s *Cluster) SetApplications(v []*Application) *Cluster {
6543	s.Applications = v
6544	return s
6545}
6546
6547// SetAutoScalingRole sets the AutoScalingRole field's value.
6548func (s *Cluster) SetAutoScalingRole(v string) *Cluster {
6549	s.AutoScalingRole = &v
6550	return s
6551}
6552
6553// SetAutoTerminate sets the AutoTerminate field's value.
6554func (s *Cluster) SetAutoTerminate(v bool) *Cluster {
6555	s.AutoTerminate = &v
6556	return s
6557}
6558
6559// SetClusterArn sets the ClusterArn field's value.
6560func (s *Cluster) SetClusterArn(v string) *Cluster {
6561	s.ClusterArn = &v
6562	return s
6563}
6564
6565// SetConfigurations sets the Configurations field's value.
6566func (s *Cluster) SetConfigurations(v []*Configuration) *Cluster {
6567	s.Configurations = v
6568	return s
6569}
6570
6571// SetCustomAmiId sets the CustomAmiId field's value.
6572func (s *Cluster) SetCustomAmiId(v string) *Cluster {
6573	s.CustomAmiId = &v
6574	return s
6575}
6576
6577// SetEbsRootVolumeSize sets the EbsRootVolumeSize field's value.
6578func (s *Cluster) SetEbsRootVolumeSize(v int64) *Cluster {
6579	s.EbsRootVolumeSize = &v
6580	return s
6581}
6582
6583// SetEc2InstanceAttributes sets the Ec2InstanceAttributes field's value.
6584func (s *Cluster) SetEc2InstanceAttributes(v *Ec2InstanceAttributes) *Cluster {
6585	s.Ec2InstanceAttributes = v
6586	return s
6587}
6588
6589// SetId sets the Id field's value.
6590func (s *Cluster) SetId(v string) *Cluster {
6591	s.Id = &v
6592	return s
6593}
6594
6595// SetInstanceCollectionType sets the InstanceCollectionType field's value.
6596func (s *Cluster) SetInstanceCollectionType(v string) *Cluster {
6597	s.InstanceCollectionType = &v
6598	return s
6599}
6600
6601// SetKerberosAttributes sets the KerberosAttributes field's value.
6602func (s *Cluster) SetKerberosAttributes(v *KerberosAttributes) *Cluster {
6603	s.KerberosAttributes = v
6604	return s
6605}
6606
6607// SetLogEncryptionKmsKeyId sets the LogEncryptionKmsKeyId field's value.
6608func (s *Cluster) SetLogEncryptionKmsKeyId(v string) *Cluster {
6609	s.LogEncryptionKmsKeyId = &v
6610	return s
6611}
6612
6613// SetLogUri sets the LogUri field's value.
6614func (s *Cluster) SetLogUri(v string) *Cluster {
6615	s.LogUri = &v
6616	return s
6617}
6618
6619// SetMasterPublicDnsName sets the MasterPublicDnsName field's value.
6620func (s *Cluster) SetMasterPublicDnsName(v string) *Cluster {
6621	s.MasterPublicDnsName = &v
6622	return s
6623}
6624
6625// SetName sets the Name field's value.
6626func (s *Cluster) SetName(v string) *Cluster {
6627	s.Name = &v
6628	return s
6629}
6630
6631// SetNormalizedInstanceHours sets the NormalizedInstanceHours field's value.
6632func (s *Cluster) SetNormalizedInstanceHours(v int64) *Cluster {
6633	s.NormalizedInstanceHours = &v
6634	return s
6635}
6636
6637// SetOutpostArn sets the OutpostArn field's value.
6638func (s *Cluster) SetOutpostArn(v string) *Cluster {
6639	s.OutpostArn = &v
6640	return s
6641}
6642
6643// SetPlacementGroups sets the PlacementGroups field's value.
6644func (s *Cluster) SetPlacementGroups(v []*PlacementGroupConfig) *Cluster {
6645	s.PlacementGroups = v
6646	return s
6647}
6648
6649// SetReleaseLabel sets the ReleaseLabel field's value.
6650func (s *Cluster) SetReleaseLabel(v string) *Cluster {
6651	s.ReleaseLabel = &v
6652	return s
6653}
6654
6655// SetRepoUpgradeOnBoot sets the RepoUpgradeOnBoot field's value.
6656func (s *Cluster) SetRepoUpgradeOnBoot(v string) *Cluster {
6657	s.RepoUpgradeOnBoot = &v
6658	return s
6659}
6660
6661// SetRequestedAmiVersion sets the RequestedAmiVersion field's value.
6662func (s *Cluster) SetRequestedAmiVersion(v string) *Cluster {
6663	s.RequestedAmiVersion = &v
6664	return s
6665}
6666
6667// SetRunningAmiVersion sets the RunningAmiVersion field's value.
6668func (s *Cluster) SetRunningAmiVersion(v string) *Cluster {
6669	s.RunningAmiVersion = &v
6670	return s
6671}
6672
6673// SetScaleDownBehavior sets the ScaleDownBehavior field's value.
6674func (s *Cluster) SetScaleDownBehavior(v string) *Cluster {
6675	s.ScaleDownBehavior = &v
6676	return s
6677}
6678
6679// SetSecurityConfiguration sets the SecurityConfiguration field's value.
6680func (s *Cluster) SetSecurityConfiguration(v string) *Cluster {
6681	s.SecurityConfiguration = &v
6682	return s
6683}
6684
6685// SetServiceRole sets the ServiceRole field's value.
6686func (s *Cluster) SetServiceRole(v string) *Cluster {
6687	s.ServiceRole = &v
6688	return s
6689}
6690
6691// SetStatus sets the Status field's value.
6692func (s *Cluster) SetStatus(v *ClusterStatus) *Cluster {
6693	s.Status = v
6694	return s
6695}
6696
6697// SetStepConcurrencyLevel sets the StepConcurrencyLevel field's value.
6698func (s *Cluster) SetStepConcurrencyLevel(v int64) *Cluster {
6699	s.StepConcurrencyLevel = &v
6700	return s
6701}
6702
6703// SetTags sets the Tags field's value.
6704func (s *Cluster) SetTags(v []*Tag) *Cluster {
6705	s.Tags = v
6706	return s
6707}
6708
6709// SetTerminationProtected sets the TerminationProtected field's value.
6710func (s *Cluster) SetTerminationProtected(v bool) *Cluster {
6711	s.TerminationProtected = &v
6712	return s
6713}
6714
6715// SetVisibleToAllUsers sets the VisibleToAllUsers field's value.
6716func (s *Cluster) SetVisibleToAllUsers(v bool) *Cluster {
6717	s.VisibleToAllUsers = &v
6718	return s
6719}
6720
6721// The reason that the cluster changed to its current state.
6722type ClusterStateChangeReason struct {
6723	_ struct{} `type:"structure"`
6724
6725	// The programmatic code for the state change reason.
6726	Code *string `type:"string" enum:"ClusterStateChangeReasonCode"`
6727
6728	// The descriptive message for the state change reason.
6729	Message *string `type:"string"`
6730}
6731
6732// String returns the string representation.
6733//
6734// API parameter values that are decorated as "sensitive" in the API will not
6735// be included in the string output. The member name will be present, but the
6736// value will be replaced with "sensitive".
6737func (s ClusterStateChangeReason) String() string {
6738	return awsutil.Prettify(s)
6739}
6740
6741// GoString returns the string representation.
6742//
6743// API parameter values that are decorated as "sensitive" in the API will not
6744// be included in the string output. The member name will be present, but the
6745// value will be replaced with "sensitive".
6746func (s ClusterStateChangeReason) GoString() string {
6747	return s.String()
6748}
6749
6750// SetCode sets the Code field's value.
6751func (s *ClusterStateChangeReason) SetCode(v string) *ClusterStateChangeReason {
6752	s.Code = &v
6753	return s
6754}
6755
6756// SetMessage sets the Message field's value.
6757func (s *ClusterStateChangeReason) SetMessage(v string) *ClusterStateChangeReason {
6758	s.Message = &v
6759	return s
6760}
6761
6762// The detailed status of the cluster.
6763type ClusterStatus struct {
6764	_ struct{} `type:"structure"`
6765
6766	// The current state of the cluster.
6767	State *string `type:"string" enum:"ClusterState"`
6768
6769	// The reason for the cluster status change.
6770	StateChangeReason *ClusterStateChangeReason `type:"structure"`
6771
6772	// A timeline that represents the status of a cluster over the lifetime of the
6773	// cluster.
6774	Timeline *ClusterTimeline `type:"structure"`
6775}
6776
6777// String returns the string representation.
6778//
6779// API parameter values that are decorated as "sensitive" in the API will not
6780// be included in the string output. The member name will be present, but the
6781// value will be replaced with "sensitive".
6782func (s ClusterStatus) String() string {
6783	return awsutil.Prettify(s)
6784}
6785
6786// GoString returns the string representation.
6787//
6788// API parameter values that are decorated as "sensitive" in the API will not
6789// be included in the string output. The member name will be present, but the
6790// value will be replaced with "sensitive".
6791func (s ClusterStatus) GoString() string {
6792	return s.String()
6793}
6794
6795// SetState sets the State field's value.
6796func (s *ClusterStatus) SetState(v string) *ClusterStatus {
6797	s.State = &v
6798	return s
6799}
6800
6801// SetStateChangeReason sets the StateChangeReason field's value.
6802func (s *ClusterStatus) SetStateChangeReason(v *ClusterStateChangeReason) *ClusterStatus {
6803	s.StateChangeReason = v
6804	return s
6805}
6806
6807// SetTimeline sets the Timeline field's value.
6808func (s *ClusterStatus) SetTimeline(v *ClusterTimeline) *ClusterStatus {
6809	s.Timeline = v
6810	return s
6811}
6812
6813// The summary description of the cluster.
6814type ClusterSummary struct {
6815	_ struct{} `type:"structure"`
6816
6817	// The Amazon Resource Name of the cluster.
6818	ClusterArn *string `min:"20" type:"string"`
6819
6820	// The unique identifier for the cluster.
6821	Id *string `type:"string"`
6822
6823	// The name of the cluster.
6824	Name *string `type:"string"`
6825
6826	// An approximation of the cost of the cluster, represented in m1.small/hours.
6827	// This value is incremented one time for every hour an m1.small instance runs.
6828	// Larger instances are weighted more, so an EC2 instance that is roughly four
6829	// times more expensive would result in the normalized instance hours being
6830	// incremented by four. This result is only an approximation and does not reflect
6831	// the actual billing rate.
6832	NormalizedInstanceHours *int64 `type:"integer"`
6833
6834	// The Amazon Resource Name (ARN) of the Outpost where the cluster is launched.
6835	OutpostArn *string `type:"string"`
6836
6837	// The details about the current status of the cluster.
6838	Status *ClusterStatus `type:"structure"`
6839}
6840
6841// String returns the string representation.
6842//
6843// API parameter values that are decorated as "sensitive" in the API will not
6844// be included in the string output. The member name will be present, but the
6845// value will be replaced with "sensitive".
6846func (s ClusterSummary) String() string {
6847	return awsutil.Prettify(s)
6848}
6849
6850// GoString returns the string representation.
6851//
6852// API parameter values that are decorated as "sensitive" in the API will not
6853// be included in the string output. The member name will be present, but the
6854// value will be replaced with "sensitive".
6855func (s ClusterSummary) GoString() string {
6856	return s.String()
6857}
6858
6859// SetClusterArn sets the ClusterArn field's value.
6860func (s *ClusterSummary) SetClusterArn(v string) *ClusterSummary {
6861	s.ClusterArn = &v
6862	return s
6863}
6864
6865// SetId sets the Id field's value.
6866func (s *ClusterSummary) SetId(v string) *ClusterSummary {
6867	s.Id = &v
6868	return s
6869}
6870
6871// SetName sets the Name field's value.
6872func (s *ClusterSummary) SetName(v string) *ClusterSummary {
6873	s.Name = &v
6874	return s
6875}
6876
6877// SetNormalizedInstanceHours sets the NormalizedInstanceHours field's value.
6878func (s *ClusterSummary) SetNormalizedInstanceHours(v int64) *ClusterSummary {
6879	s.NormalizedInstanceHours = &v
6880	return s
6881}
6882
6883// SetOutpostArn sets the OutpostArn field's value.
6884func (s *ClusterSummary) SetOutpostArn(v string) *ClusterSummary {
6885	s.OutpostArn = &v
6886	return s
6887}
6888
6889// SetStatus sets the Status field's value.
6890func (s *ClusterSummary) SetStatus(v *ClusterStatus) *ClusterSummary {
6891	s.Status = v
6892	return s
6893}
6894
6895// Represents the timeline of the cluster's lifecycle.
6896type ClusterTimeline struct {
6897	_ struct{} `type:"structure"`
6898
6899	// The creation date and time of the cluster.
6900	CreationDateTime *time.Time `type:"timestamp"`
6901
6902	// The date and time when the cluster was terminated.
6903	EndDateTime *time.Time `type:"timestamp"`
6904
6905	// The date and time when the cluster was ready to run steps.
6906	ReadyDateTime *time.Time `type:"timestamp"`
6907}
6908
6909// String returns the string representation.
6910//
6911// API parameter values that are decorated as "sensitive" in the API will not
6912// be included in the string output. The member name will be present, but the
6913// value will be replaced with "sensitive".
6914func (s ClusterTimeline) String() string {
6915	return awsutil.Prettify(s)
6916}
6917
6918// GoString returns the string representation.
6919//
6920// API parameter values that are decorated as "sensitive" in the API will not
6921// be included in the string output. The member name will be present, but the
6922// value will be replaced with "sensitive".
6923func (s ClusterTimeline) GoString() string {
6924	return s.String()
6925}
6926
6927// SetCreationDateTime sets the CreationDateTime field's value.
6928func (s *ClusterTimeline) SetCreationDateTime(v time.Time) *ClusterTimeline {
6929	s.CreationDateTime = &v
6930	return s
6931}
6932
6933// SetEndDateTime sets the EndDateTime field's value.
6934func (s *ClusterTimeline) SetEndDateTime(v time.Time) *ClusterTimeline {
6935	s.EndDateTime = &v
6936	return s
6937}
6938
6939// SetReadyDateTime sets the ReadyDateTime field's value.
6940func (s *ClusterTimeline) SetReadyDateTime(v time.Time) *ClusterTimeline {
6941	s.ReadyDateTime = &v
6942	return s
6943}
6944
6945// An entity describing an executable that runs on a cluster.
6946type Command struct {
6947	_ struct{} `type:"structure"`
6948
6949	// Arguments for Amazon EMR to pass to the command for execution.
6950	Args []*string `type:"list"`
6951
6952	// The name of the command.
6953	Name *string `type:"string"`
6954
6955	// The Amazon S3 location of the command script.
6956	ScriptPath *string `type:"string"`
6957}
6958
6959// String returns the string representation.
6960//
6961// API parameter values that are decorated as "sensitive" in the API will not
6962// be included in the string output. The member name will be present, but the
6963// value will be replaced with "sensitive".
6964func (s Command) String() string {
6965	return awsutil.Prettify(s)
6966}
6967
6968// GoString returns the string representation.
6969//
6970// API parameter values that are decorated as "sensitive" in the API will not
6971// be included in the string output. The member name will be present, but the
6972// value will be replaced with "sensitive".
6973func (s Command) GoString() string {
6974	return s.String()
6975}
6976
6977// SetArgs sets the Args field's value.
6978func (s *Command) SetArgs(v []*string) *Command {
6979	s.Args = v
6980	return s
6981}
6982
6983// SetName sets the Name field's value.
6984func (s *Command) SetName(v string) *Command {
6985	s.Name = &v
6986	return s
6987}
6988
6989// SetScriptPath sets the ScriptPath field's value.
6990func (s *Command) SetScriptPath(v string) *Command {
6991	s.ScriptPath = &v
6992	return s
6993}
6994
6995// The EC2 unit limits for a managed scaling policy. The managed scaling activity
6996// of a cluster can not be above or below these limits. The limit only applies
6997// to the core and task nodes. The master node cannot be scaled after initial
6998// configuration.
6999type ComputeLimits struct {
7000	_ struct{} `type:"structure"`
7001
7002	// The upper boundary of EC2 units. It is measured through vCPU cores or instances
7003	// for instance groups and measured through units for instance fleets. Managed
7004	// scaling activities are not allowed beyond this boundary. The limit only applies
7005	// to the core and task nodes. The master node cannot be scaled after initial
7006	// configuration.
7007	//
7008	// MaximumCapacityUnits is a required field
7009	MaximumCapacityUnits *int64 `type:"integer" required:"true"`
7010
7011	// The upper boundary of EC2 units for core node type in a cluster. It is measured
7012	// through vCPU cores or instances for instance groups and measured through
7013	// units for instance fleets. The core units are not allowed to scale beyond
7014	// this boundary. The parameter is used to split capacity allocation between
7015	// core and task nodes.
7016	MaximumCoreCapacityUnits *int64 `type:"integer"`
7017
7018	// The upper boundary of On-Demand EC2 units. It is measured through vCPU cores
7019	// or instances for instance groups and measured through units for instance
7020	// fleets. The On-Demand units are not allowed to scale beyond this boundary.
7021	// The parameter is used to split capacity allocation between On-Demand and
7022	// Spot Instances.
7023	MaximumOnDemandCapacityUnits *int64 `type:"integer"`
7024
7025	// The lower boundary of EC2 units. It is measured through vCPU cores or instances
7026	// for instance groups and measured through units for instance fleets. Managed
7027	// scaling activities are not allowed beyond this boundary. The limit only applies
7028	// to the core and task nodes. The master node cannot be scaled after initial
7029	// configuration.
7030	//
7031	// MinimumCapacityUnits is a required field
7032	MinimumCapacityUnits *int64 `type:"integer" required:"true"`
7033
7034	// The unit type used for specifying a managed scaling policy.
7035	//
7036	// UnitType is a required field
7037	UnitType *string `type:"string" required:"true" enum:"ComputeLimitsUnitType"`
7038}
7039
7040// String returns the string representation.
7041//
7042// API parameter values that are decorated as "sensitive" in the API will not
7043// be included in the string output. The member name will be present, but the
7044// value will be replaced with "sensitive".
7045func (s ComputeLimits) String() string {
7046	return awsutil.Prettify(s)
7047}
7048
7049// GoString returns the string representation.
7050//
7051// API parameter values that are decorated as "sensitive" in the API will not
7052// be included in the string output. The member name will be present, but the
7053// value will be replaced with "sensitive".
7054func (s ComputeLimits) GoString() string {
7055	return s.String()
7056}
7057
7058// Validate inspects the fields of the type to determine if they are valid.
7059func (s *ComputeLimits) Validate() error {
7060	invalidParams := request.ErrInvalidParams{Context: "ComputeLimits"}
7061	if s.MaximumCapacityUnits == nil {
7062		invalidParams.Add(request.NewErrParamRequired("MaximumCapacityUnits"))
7063	}
7064	if s.MinimumCapacityUnits == nil {
7065		invalidParams.Add(request.NewErrParamRequired("MinimumCapacityUnits"))
7066	}
7067	if s.UnitType == nil {
7068		invalidParams.Add(request.NewErrParamRequired("UnitType"))
7069	}
7070
7071	if invalidParams.Len() > 0 {
7072		return invalidParams
7073	}
7074	return nil
7075}
7076
7077// SetMaximumCapacityUnits sets the MaximumCapacityUnits field's value.
7078func (s *ComputeLimits) SetMaximumCapacityUnits(v int64) *ComputeLimits {
7079	s.MaximumCapacityUnits = &v
7080	return s
7081}
7082
7083// SetMaximumCoreCapacityUnits sets the MaximumCoreCapacityUnits field's value.
7084func (s *ComputeLimits) SetMaximumCoreCapacityUnits(v int64) *ComputeLimits {
7085	s.MaximumCoreCapacityUnits = &v
7086	return s
7087}
7088
7089// SetMaximumOnDemandCapacityUnits sets the MaximumOnDemandCapacityUnits field's value.
7090func (s *ComputeLimits) SetMaximumOnDemandCapacityUnits(v int64) *ComputeLimits {
7091	s.MaximumOnDemandCapacityUnits = &v
7092	return s
7093}
7094
7095// SetMinimumCapacityUnits sets the MinimumCapacityUnits field's value.
7096func (s *ComputeLimits) SetMinimumCapacityUnits(v int64) *ComputeLimits {
7097	s.MinimumCapacityUnits = &v
7098	return s
7099}
7100
7101// SetUnitType sets the UnitType field's value.
7102func (s *ComputeLimits) SetUnitType(v string) *ComputeLimits {
7103	s.UnitType = &v
7104	return s
7105}
7106
7107//
7108// Amazon EMR releases 4.x or later.
7109//
7110// An optional configuration specification to be used when provisioning cluster
7111// instances, which can include configurations for applications and software
7112// bundled with Amazon EMR. A configuration consists of a classification, properties,
7113// and optional nested configurations. A classification refers to an application-specific
7114// configuration file. Properties are the settings you want to change in that
7115// file. For more information, see Configuring Applications (https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-configure-apps.html).
7116type Configuration struct {
7117	_ struct{} `type:"structure"`
7118
7119	// The classification within a configuration.
7120	Classification *string `type:"string"`
7121
7122	// A list of additional configurations to apply within a configuration object.
7123	Configurations []*Configuration `type:"list"`
7124
7125	// A set of properties specified within a configuration classification.
7126	Properties map[string]*string `type:"map"`
7127}
7128
7129// String returns the string representation.
7130//
7131// API parameter values that are decorated as "sensitive" in the API will not
7132// be included in the string output. The member name will be present, but the
7133// value will be replaced with "sensitive".
7134func (s Configuration) String() string {
7135	return awsutil.Prettify(s)
7136}
7137
7138// GoString returns the string representation.
7139//
7140// API parameter values that are decorated as "sensitive" in the API will not
7141// be included in the string output. The member name will be present, but the
7142// value will be replaced with "sensitive".
7143func (s Configuration) GoString() string {
7144	return s.String()
7145}
7146
7147// SetClassification sets the Classification field's value.
7148func (s *Configuration) SetClassification(v string) *Configuration {
7149	s.Classification = &v
7150	return s
7151}
7152
7153// SetConfigurations sets the Configurations field's value.
7154func (s *Configuration) SetConfigurations(v []*Configuration) *Configuration {
7155	s.Configurations = v
7156	return s
7157}
7158
7159// SetProperties sets the Properties field's value.
7160func (s *Configuration) SetProperties(v map[string]*string) *Configuration {
7161	s.Properties = v
7162	return s
7163}
7164
7165type CreateSecurityConfigurationInput struct {
7166	_ struct{} `type:"structure"`
7167
7168	// The name of the security configuration.
7169	//
7170	// Name is a required field
7171	Name *string `type:"string" required:"true"`
7172
7173	// The security configuration details in JSON format. For JSON parameters and
7174	// examples, see Use Security Configurations to Set Up Cluster Security (https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-security-configurations.html)
7175	// in the Amazon EMR Management Guide.
7176	//
7177	// SecurityConfiguration is a required field
7178	SecurityConfiguration *string `type:"string" required:"true"`
7179}
7180
7181// String returns the string representation.
7182//
7183// API parameter values that are decorated as "sensitive" in the API will not
7184// be included in the string output. The member name will be present, but the
7185// value will be replaced with "sensitive".
7186func (s CreateSecurityConfigurationInput) String() string {
7187	return awsutil.Prettify(s)
7188}
7189
7190// GoString returns the string representation.
7191//
7192// API parameter values that are decorated as "sensitive" in the API will not
7193// be included in the string output. The member name will be present, but the
7194// value will be replaced with "sensitive".
7195func (s CreateSecurityConfigurationInput) GoString() string {
7196	return s.String()
7197}
7198
7199// Validate inspects the fields of the type to determine if they are valid.
7200func (s *CreateSecurityConfigurationInput) Validate() error {
7201	invalidParams := request.ErrInvalidParams{Context: "CreateSecurityConfigurationInput"}
7202	if s.Name == nil {
7203		invalidParams.Add(request.NewErrParamRequired("Name"))
7204	}
7205	if s.SecurityConfiguration == nil {
7206		invalidParams.Add(request.NewErrParamRequired("SecurityConfiguration"))
7207	}
7208
7209	if invalidParams.Len() > 0 {
7210		return invalidParams
7211	}
7212	return nil
7213}
7214
7215// SetName sets the Name field's value.
7216func (s *CreateSecurityConfigurationInput) SetName(v string) *CreateSecurityConfigurationInput {
7217	s.Name = &v
7218	return s
7219}
7220
7221// SetSecurityConfiguration sets the SecurityConfiguration field's value.
7222func (s *CreateSecurityConfigurationInput) SetSecurityConfiguration(v string) *CreateSecurityConfigurationInput {
7223	s.SecurityConfiguration = &v
7224	return s
7225}
7226
7227type CreateSecurityConfigurationOutput struct {
7228	_ struct{} `type:"structure"`
7229
7230	// The date and time the security configuration was created.
7231	//
7232	// CreationDateTime is a required field
7233	CreationDateTime *time.Time `type:"timestamp" required:"true"`
7234
7235	// The name of the security configuration.
7236	//
7237	// Name is a required field
7238	Name *string `type:"string" required:"true"`
7239}
7240
7241// String returns the string representation.
7242//
7243// API parameter values that are decorated as "sensitive" in the API will not
7244// be included in the string output. The member name will be present, but the
7245// value will be replaced with "sensitive".
7246func (s CreateSecurityConfigurationOutput) String() string {
7247	return awsutil.Prettify(s)
7248}
7249
7250// GoString returns the string representation.
7251//
7252// API parameter values that are decorated as "sensitive" in the API will not
7253// be included in the string output. The member name will be present, but the
7254// value will be replaced with "sensitive".
7255func (s CreateSecurityConfigurationOutput) GoString() string {
7256	return s.String()
7257}
7258
7259// SetCreationDateTime sets the CreationDateTime field's value.
7260func (s *CreateSecurityConfigurationOutput) SetCreationDateTime(v time.Time) *CreateSecurityConfigurationOutput {
7261	s.CreationDateTime = &v
7262	return s
7263}
7264
7265// SetName sets the Name field's value.
7266func (s *CreateSecurityConfigurationOutput) SetName(v string) *CreateSecurityConfigurationOutput {
7267	s.Name = &v
7268	return s
7269}
7270
7271type CreateStudioInput struct {
7272	_ struct{} `type:"structure"`
7273
7274	// Specifies whether the Studio authenticates users using IAM or Amazon Web
7275	// Services SSO.
7276	//
7277	// AuthMode is a required field
7278	AuthMode *string `type:"string" required:"true" enum:"AuthMode"`
7279
7280	// The Amazon S3 location to back up Amazon EMR Studio Workspaces and notebook
7281	// files.
7282	//
7283	// DefaultS3Location is a required field
7284	DefaultS3Location *string `type:"string" required:"true"`
7285
7286	// A detailed description of the Amazon EMR Studio.
7287	Description *string `type:"string"`
7288
7289	// The ID of the Amazon EMR Studio Engine security group. The Engine security
7290	// group allows inbound network traffic from the Workspace security group, and
7291	// it must be in the same VPC specified by VpcId.
7292	//
7293	// EngineSecurityGroupId is a required field
7294	EngineSecurityGroupId *string `type:"string" required:"true"`
7295
7296	// The authentication endpoint of your identity provider (IdP). Specify this
7297	// value when you use IAM authentication and want to let federated users log
7298	// in to a Studio with the Studio URL and credentials from your IdP. Amazon
7299	// EMR Studio redirects users to this endpoint to enter credentials.
7300	IdpAuthUrl *string `type:"string"`
7301
7302	// The name that your identity provider (IdP) uses for its RelayState parameter.
7303	// For example, RelayState or TargetSource. Specify this value when you use
7304	// IAM authentication and want to let federated users log in to a Studio using
7305	// the Studio URL. The RelayState parameter differs by IdP.
7306	IdpRelayStateParameterName *string `type:"string"`
7307
7308	// A descriptive name for the Amazon EMR Studio.
7309	//
7310	// Name is a required field
7311	Name *string `type:"string" required:"true"`
7312
7313	// The IAM role that the Amazon EMR Studio assumes. The service role provides
7314	// a way for Amazon EMR Studio to interoperate with other Amazon Web Services
7315	// services.
7316	//
7317	// ServiceRole is a required field
7318	ServiceRole *string `type:"string" required:"true"`
7319
7320	// A list of subnet IDs to associate with the Amazon EMR Studio. A Studio can
7321	// have a maximum of 5 subnets. The subnets must belong to the VPC specified
7322	// by VpcId. Studio users can create a Workspace in any of the specified subnets.
7323	//
7324	// SubnetIds is a required field
7325	SubnetIds []*string `type:"list" required:"true"`
7326
7327	// A list of tags to associate with the Amazon EMR Studio. Tags are user-defined
7328	// key-value pairs that consist of a required key string with a maximum of 128
7329	// characters, and an optional value string with a maximum of 256 characters.
7330	Tags []*Tag `type:"list"`
7331
7332	// The IAM user role that users and groups assume when logged in to an Amazon
7333	// EMR Studio. Only specify a UserRole when you use Amazon Web Services SSO
7334	// authentication. The permissions attached to the UserRole can be scoped down
7335	// for each user or group using session policies.
7336	UserRole *string `type:"string"`
7337
7338	// The ID of the Amazon Virtual Private Cloud (Amazon VPC) to associate with
7339	// the Studio.
7340	//
7341	// VpcId is a required field
7342	VpcId *string `type:"string" required:"true"`
7343
7344	// The ID of the Amazon EMR Studio Workspace security group. The Workspace security
7345	// group allows outbound network traffic to resources in the Engine security
7346	// group, and it must be in the same VPC specified by VpcId.
7347	//
7348	// WorkspaceSecurityGroupId is a required field
7349	WorkspaceSecurityGroupId *string `type:"string" required:"true"`
7350}
7351
7352// String returns the string representation.
7353//
7354// API parameter values that are decorated as "sensitive" in the API will not
7355// be included in the string output. The member name will be present, but the
7356// value will be replaced with "sensitive".
7357func (s CreateStudioInput) String() string {
7358	return awsutil.Prettify(s)
7359}
7360
7361// GoString returns the string representation.
7362//
7363// API parameter values that are decorated as "sensitive" in the API will not
7364// be included in the string output. The member name will be present, but the
7365// value will be replaced with "sensitive".
7366func (s CreateStudioInput) GoString() string {
7367	return s.String()
7368}
7369
7370// Validate inspects the fields of the type to determine if they are valid.
7371func (s *CreateStudioInput) Validate() error {
7372	invalidParams := request.ErrInvalidParams{Context: "CreateStudioInput"}
7373	if s.AuthMode == nil {
7374		invalidParams.Add(request.NewErrParamRequired("AuthMode"))
7375	}
7376	if s.DefaultS3Location == nil {
7377		invalidParams.Add(request.NewErrParamRequired("DefaultS3Location"))
7378	}
7379	if s.EngineSecurityGroupId == nil {
7380		invalidParams.Add(request.NewErrParamRequired("EngineSecurityGroupId"))
7381	}
7382	if s.Name == nil {
7383		invalidParams.Add(request.NewErrParamRequired("Name"))
7384	}
7385	if s.ServiceRole == nil {
7386		invalidParams.Add(request.NewErrParamRequired("ServiceRole"))
7387	}
7388	if s.SubnetIds == nil {
7389		invalidParams.Add(request.NewErrParamRequired("SubnetIds"))
7390	}
7391	if s.VpcId == nil {
7392		invalidParams.Add(request.NewErrParamRequired("VpcId"))
7393	}
7394	if s.WorkspaceSecurityGroupId == nil {
7395		invalidParams.Add(request.NewErrParamRequired("WorkspaceSecurityGroupId"))
7396	}
7397
7398	if invalidParams.Len() > 0 {
7399		return invalidParams
7400	}
7401	return nil
7402}
7403
7404// SetAuthMode sets the AuthMode field's value.
7405func (s *CreateStudioInput) SetAuthMode(v string) *CreateStudioInput {
7406	s.AuthMode = &v
7407	return s
7408}
7409
7410// SetDefaultS3Location sets the DefaultS3Location field's value.
7411func (s *CreateStudioInput) SetDefaultS3Location(v string) *CreateStudioInput {
7412	s.DefaultS3Location = &v
7413	return s
7414}
7415
7416// SetDescription sets the Description field's value.
7417func (s *CreateStudioInput) SetDescription(v string) *CreateStudioInput {
7418	s.Description = &v
7419	return s
7420}
7421
7422// SetEngineSecurityGroupId sets the EngineSecurityGroupId field's value.
7423func (s *CreateStudioInput) SetEngineSecurityGroupId(v string) *CreateStudioInput {
7424	s.EngineSecurityGroupId = &v
7425	return s
7426}
7427
7428// SetIdpAuthUrl sets the IdpAuthUrl field's value.
7429func (s *CreateStudioInput) SetIdpAuthUrl(v string) *CreateStudioInput {
7430	s.IdpAuthUrl = &v
7431	return s
7432}
7433
7434// SetIdpRelayStateParameterName sets the IdpRelayStateParameterName field's value.
7435func (s *CreateStudioInput) SetIdpRelayStateParameterName(v string) *CreateStudioInput {
7436	s.IdpRelayStateParameterName = &v
7437	return s
7438}
7439
7440// SetName sets the Name field's value.
7441func (s *CreateStudioInput) SetName(v string) *CreateStudioInput {
7442	s.Name = &v
7443	return s
7444}
7445
7446// SetServiceRole sets the ServiceRole field's value.
7447func (s *CreateStudioInput) SetServiceRole(v string) *CreateStudioInput {
7448	s.ServiceRole = &v
7449	return s
7450}
7451
7452// SetSubnetIds sets the SubnetIds field's value.
7453func (s *CreateStudioInput) SetSubnetIds(v []*string) *CreateStudioInput {
7454	s.SubnetIds = v
7455	return s
7456}
7457
7458// SetTags sets the Tags field's value.
7459func (s *CreateStudioInput) SetTags(v []*Tag) *CreateStudioInput {
7460	s.Tags = v
7461	return s
7462}
7463
7464// SetUserRole sets the UserRole field's value.
7465func (s *CreateStudioInput) SetUserRole(v string) *CreateStudioInput {
7466	s.UserRole = &v
7467	return s
7468}
7469
7470// SetVpcId sets the VpcId field's value.
7471func (s *CreateStudioInput) SetVpcId(v string) *CreateStudioInput {
7472	s.VpcId = &v
7473	return s
7474}
7475
7476// SetWorkspaceSecurityGroupId sets the WorkspaceSecurityGroupId field's value.
7477func (s *CreateStudioInput) SetWorkspaceSecurityGroupId(v string) *CreateStudioInput {
7478	s.WorkspaceSecurityGroupId = &v
7479	return s
7480}
7481
7482type CreateStudioOutput struct {
7483	_ struct{} `type:"structure"`
7484
7485	// The ID of the Amazon EMR Studio.
7486	StudioId *string `type:"string"`
7487
7488	// The unique Studio access URL.
7489	Url *string `type:"string"`
7490}
7491
7492// String returns the string representation.
7493//
7494// API parameter values that are decorated as "sensitive" in the API will not
7495// be included in the string output. The member name will be present, but the
7496// value will be replaced with "sensitive".
7497func (s CreateStudioOutput) String() string {
7498	return awsutil.Prettify(s)
7499}
7500
7501// GoString returns the string representation.
7502//
7503// API parameter values that are decorated as "sensitive" in the API will not
7504// be included in the string output. The member name will be present, but the
7505// value will be replaced with "sensitive".
7506func (s CreateStudioOutput) GoString() string {
7507	return s.String()
7508}
7509
7510// SetStudioId sets the StudioId field's value.
7511func (s *CreateStudioOutput) SetStudioId(v string) *CreateStudioOutput {
7512	s.StudioId = &v
7513	return s
7514}
7515
7516// SetUrl sets the Url field's value.
7517func (s *CreateStudioOutput) SetUrl(v string) *CreateStudioOutput {
7518	s.Url = &v
7519	return s
7520}
7521
7522type CreateStudioSessionMappingInput struct {
7523	_ struct{} `type:"structure"`
7524
7525	// The globally unique identifier (GUID) of the user or group from the Amazon
7526	// 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)
7527	// and GroupId (https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_Group.html#singlesignon-Type-Group-GroupId)
7528	// in the Amazon Web Services SSO Identity Store API Reference. Either IdentityName
7529	// or IdentityId must be specified, but not both.
7530	IdentityId *string `type:"string"`
7531
7532	// 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)
7533	// and DisplayName (https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_Group.html#singlesignon-Type-Group-DisplayName)
7534	// in the Amazon Web Services SSO Identity Store API Reference. Either IdentityName
7535	// or IdentityId must be specified, but not both.
7536	IdentityName *string `type:"string"`
7537
7538	// Specifies whether the identity to map to the Amazon EMR Studio is a user
7539	// or a group.
7540	//
7541	// IdentityType is a required field
7542	IdentityType *string `type:"string" required:"true" enum:"IdentityType"`
7543
7544	// The Amazon Resource Name (ARN) for the session policy that will be applied
7545	// to the user or group. You should specify the ARN for the session policy that
7546	// you want to apply, not the ARN of your user role. For more information, see
7547	// Create an EMR Studio User Role with Session Policies (https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-studio-user-role.html).
7548	//
7549	// SessionPolicyArn is a required field
7550	SessionPolicyArn *string `type:"string" required:"true"`
7551
7552	// The ID of the Amazon EMR Studio to which the user or group will be mapped.
7553	//
7554	// StudioId is a required field
7555	StudioId *string `type:"string" required:"true"`
7556}
7557
7558// String returns the string representation.
7559//
7560// API parameter values that are decorated as "sensitive" in the API will not
7561// be included in the string output. The member name will be present, but the
7562// value will be replaced with "sensitive".
7563func (s CreateStudioSessionMappingInput) String() string {
7564	return awsutil.Prettify(s)
7565}
7566
7567// GoString returns the string representation.
7568//
7569// API parameter values that are decorated as "sensitive" in the API will not
7570// be included in the string output. The member name will be present, but the
7571// value will be replaced with "sensitive".
7572func (s CreateStudioSessionMappingInput) GoString() string {
7573	return s.String()
7574}
7575
7576// Validate inspects the fields of the type to determine if they are valid.
7577func (s *CreateStudioSessionMappingInput) Validate() error {
7578	invalidParams := request.ErrInvalidParams{Context: "CreateStudioSessionMappingInput"}
7579	if s.IdentityType == nil {
7580		invalidParams.Add(request.NewErrParamRequired("IdentityType"))
7581	}
7582	if s.SessionPolicyArn == nil {
7583		invalidParams.Add(request.NewErrParamRequired("SessionPolicyArn"))
7584	}
7585	if s.StudioId == nil {
7586		invalidParams.Add(request.NewErrParamRequired("StudioId"))
7587	}
7588
7589	if invalidParams.Len() > 0 {
7590		return invalidParams
7591	}
7592	return nil
7593}
7594
7595// SetIdentityId sets the IdentityId field's value.
7596func (s *CreateStudioSessionMappingInput) SetIdentityId(v string) *CreateStudioSessionMappingInput {
7597	s.IdentityId = &v
7598	return s
7599}
7600
7601// SetIdentityName sets the IdentityName field's value.
7602func (s *CreateStudioSessionMappingInput) SetIdentityName(v string) *CreateStudioSessionMappingInput {
7603	s.IdentityName = &v
7604	return s
7605}
7606
7607// SetIdentityType sets the IdentityType field's value.
7608func (s *CreateStudioSessionMappingInput) SetIdentityType(v string) *CreateStudioSessionMappingInput {
7609	s.IdentityType = &v
7610	return s
7611}
7612
7613// SetSessionPolicyArn sets the SessionPolicyArn field's value.
7614func (s *CreateStudioSessionMappingInput) SetSessionPolicyArn(v string) *CreateStudioSessionMappingInput {
7615	s.SessionPolicyArn = &v
7616	return s
7617}
7618
7619// SetStudioId sets the StudioId field's value.
7620func (s *CreateStudioSessionMappingInput) SetStudioId(v string) *CreateStudioSessionMappingInput {
7621	s.StudioId = &v
7622	return s
7623}
7624
7625type CreateStudioSessionMappingOutput struct {
7626	_ struct{} `type:"structure"`
7627}
7628
7629// String returns the string representation.
7630//
7631// API parameter values that are decorated as "sensitive" in the API will not
7632// be included in the string output. The member name will be present, but the
7633// value will be replaced with "sensitive".
7634func (s CreateStudioSessionMappingOutput) String() string {
7635	return awsutil.Prettify(s)
7636}
7637
7638// GoString returns the string representation.
7639//
7640// API parameter values that are decorated as "sensitive" in the API will not
7641// be included in the string output. The member name will be present, but the
7642// value will be replaced with "sensitive".
7643func (s CreateStudioSessionMappingOutput) GoString() string {
7644	return s.String()
7645}
7646
7647type DeleteSecurityConfigurationInput struct {
7648	_ struct{} `type:"structure"`
7649
7650	// The name of the security configuration.
7651	//
7652	// Name is a required field
7653	Name *string `type:"string" required:"true"`
7654}
7655
7656// String returns the string representation.
7657//
7658// API parameter values that are decorated as "sensitive" in the API will not
7659// be included in the string output. The member name will be present, but the
7660// value will be replaced with "sensitive".
7661func (s DeleteSecurityConfigurationInput) String() string {
7662	return awsutil.Prettify(s)
7663}
7664
7665// GoString returns the string representation.
7666//
7667// API parameter values that are decorated as "sensitive" in the API will not
7668// be included in the string output. The member name will be present, but the
7669// value will be replaced with "sensitive".
7670func (s DeleteSecurityConfigurationInput) GoString() string {
7671	return s.String()
7672}
7673
7674// Validate inspects the fields of the type to determine if they are valid.
7675func (s *DeleteSecurityConfigurationInput) Validate() error {
7676	invalidParams := request.ErrInvalidParams{Context: "DeleteSecurityConfigurationInput"}
7677	if s.Name == nil {
7678		invalidParams.Add(request.NewErrParamRequired("Name"))
7679	}
7680
7681	if invalidParams.Len() > 0 {
7682		return invalidParams
7683	}
7684	return nil
7685}
7686
7687// SetName sets the Name field's value.
7688func (s *DeleteSecurityConfigurationInput) SetName(v string) *DeleteSecurityConfigurationInput {
7689	s.Name = &v
7690	return s
7691}
7692
7693type DeleteSecurityConfigurationOutput struct {
7694	_ struct{} `type:"structure"`
7695}
7696
7697// String returns the string representation.
7698//
7699// API parameter values that are decorated as "sensitive" in the API will not
7700// be included in the string output. The member name will be present, but the
7701// value will be replaced with "sensitive".
7702func (s DeleteSecurityConfigurationOutput) String() string {
7703	return awsutil.Prettify(s)
7704}
7705
7706// GoString returns the string representation.
7707//
7708// API parameter values that are decorated as "sensitive" in the API will not
7709// be included in the string output. The member name will be present, but the
7710// value will be replaced with "sensitive".
7711func (s DeleteSecurityConfigurationOutput) GoString() string {
7712	return s.String()
7713}
7714
7715type DeleteStudioInput struct {
7716	_ struct{} `type:"structure"`
7717
7718	// The ID of the Amazon EMR Studio.
7719	//
7720	// StudioId is a required field
7721	StudioId *string `type:"string" required:"true"`
7722}
7723
7724// String returns the string representation.
7725//
7726// API parameter values that are decorated as "sensitive" in the API will not
7727// be included in the string output. The member name will be present, but the
7728// value will be replaced with "sensitive".
7729func (s DeleteStudioInput) String() string {
7730	return awsutil.Prettify(s)
7731}
7732
7733// GoString returns the string representation.
7734//
7735// API parameter values that are decorated as "sensitive" in the API will not
7736// be included in the string output. The member name will be present, but the
7737// value will be replaced with "sensitive".
7738func (s DeleteStudioInput) GoString() string {
7739	return s.String()
7740}
7741
7742// Validate inspects the fields of the type to determine if they are valid.
7743func (s *DeleteStudioInput) Validate() error {
7744	invalidParams := request.ErrInvalidParams{Context: "DeleteStudioInput"}
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 *DeleteStudioInput) SetStudioId(v string) *DeleteStudioInput {
7757	s.StudioId = &v
7758	return s
7759}
7760
7761type DeleteStudioOutput struct {
7762	_ struct{} `type:"structure"`
7763}
7764
7765// String returns the string representation.
7766//
7767// API parameter values that are decorated as "sensitive" in the API will not
7768// be included in the string output. The member name will be present, but the
7769// value will be replaced with "sensitive".
7770func (s DeleteStudioOutput) String() string {
7771	return awsutil.Prettify(s)
7772}
7773
7774// GoString returns the string representation.
7775//
7776// API parameter values that are decorated as "sensitive" in the API will not
7777// be included in the string output. The member name will be present, but the
7778// value will be replaced with "sensitive".
7779func (s DeleteStudioOutput) GoString() string {
7780	return s.String()
7781}
7782
7783type DeleteStudioSessionMappingInput struct {
7784	_ struct{} `type:"structure"`
7785
7786	// The globally unique identifier (GUID) of the user or group to remove from
7787	// the Amazon EMR Studio. For more information, see UserId (https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_User.html#singlesignon-Type-User-UserId)
7788	// and GroupId (https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_Group.html#singlesignon-Type-Group-GroupId)
7789	// in the Amazon Web Services SSO Identity Store API Reference. Either IdentityName
7790	// or IdentityId must be specified.
7791	IdentityId *string `type:"string"`
7792
7793	// The name of the user name or group to remove from the Amazon EMR Studio.
7794	// For more information, see UserName (https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_User.html#singlesignon-Type-User-UserName)
7795	// and DisplayName (https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_Group.html#singlesignon-Type-Group-DisplayName)
7796	// in the Amazon Web Services SSO Store API Reference. Either IdentityName or
7797	// IdentityId must be specified.
7798	IdentityName *string `type:"string"`
7799
7800	// Specifies whether the identity to delete from the Amazon EMR Studio is a
7801	// user or a group.
7802	//
7803	// IdentityType is a required field
7804	IdentityType *string `type:"string" required:"true" enum:"IdentityType"`
7805
7806	// The ID of the Amazon EMR Studio.
7807	//
7808	// StudioId is a required field
7809	StudioId *string `type:"string" required:"true"`
7810}
7811
7812// String returns the string representation.
7813//
7814// API parameter values that are decorated as "sensitive" in the API will not
7815// be included in the string output. The member name will be present, but the
7816// value will be replaced with "sensitive".
7817func (s DeleteStudioSessionMappingInput) String() string {
7818	return awsutil.Prettify(s)
7819}
7820
7821// GoString returns the string representation.
7822//
7823// API parameter values that are decorated as "sensitive" in the API will not
7824// be included in the string output. The member name will be present, but the
7825// value will be replaced with "sensitive".
7826func (s DeleteStudioSessionMappingInput) GoString() string {
7827	return s.String()
7828}
7829
7830// Validate inspects the fields of the type to determine if they are valid.
7831func (s *DeleteStudioSessionMappingInput) Validate() error {
7832	invalidParams := request.ErrInvalidParams{Context: "DeleteStudioSessionMappingInput"}
7833	if s.IdentityType == nil {
7834		invalidParams.Add(request.NewErrParamRequired("IdentityType"))
7835	}
7836	if s.StudioId == nil {
7837		invalidParams.Add(request.NewErrParamRequired("StudioId"))
7838	}
7839
7840	if invalidParams.Len() > 0 {
7841		return invalidParams
7842	}
7843	return nil
7844}
7845
7846// SetIdentityId sets the IdentityId field's value.
7847func (s *DeleteStudioSessionMappingInput) SetIdentityId(v string) *DeleteStudioSessionMappingInput {
7848	s.IdentityId = &v
7849	return s
7850}
7851
7852// SetIdentityName sets the IdentityName field's value.
7853func (s *DeleteStudioSessionMappingInput) SetIdentityName(v string) *DeleteStudioSessionMappingInput {
7854	s.IdentityName = &v
7855	return s
7856}
7857
7858// SetIdentityType sets the IdentityType field's value.
7859func (s *DeleteStudioSessionMappingInput) SetIdentityType(v string) *DeleteStudioSessionMappingInput {
7860	s.IdentityType = &v
7861	return s
7862}
7863
7864// SetStudioId sets the StudioId field's value.
7865func (s *DeleteStudioSessionMappingInput) SetStudioId(v string) *DeleteStudioSessionMappingInput {
7866	s.StudioId = &v
7867	return s
7868}
7869
7870type DeleteStudioSessionMappingOutput struct {
7871	_ struct{} `type:"structure"`
7872}
7873
7874// String returns the string representation.
7875//
7876// API parameter values that are decorated as "sensitive" in the API will not
7877// be included in the string output. The member name will be present, but the
7878// value will be replaced with "sensitive".
7879func (s DeleteStudioSessionMappingOutput) String() string {
7880	return awsutil.Prettify(s)
7881}
7882
7883// GoString returns the string representation.
7884//
7885// API parameter values that are decorated as "sensitive" in the API will not
7886// be included in the string output. The member name will be present, but the
7887// value will be replaced with "sensitive".
7888func (s DeleteStudioSessionMappingOutput) GoString() string {
7889	return s.String()
7890}
7891
7892// This input determines which cluster to describe.
7893type DescribeClusterInput struct {
7894	_ struct{} `type:"structure"`
7895
7896	// The identifier of the cluster to describe.
7897	//
7898	// ClusterId is a required field
7899	ClusterId *string `type:"string" required:"true"`
7900}
7901
7902// String returns the string representation.
7903//
7904// API parameter values that are decorated as "sensitive" in the API will not
7905// be included in the string output. The member name will be present, but the
7906// value will be replaced with "sensitive".
7907func (s DescribeClusterInput) String() string {
7908	return awsutil.Prettify(s)
7909}
7910
7911// GoString returns the string representation.
7912//
7913// API parameter values that are decorated as "sensitive" in the API will not
7914// be included in the string output. The member name will be present, but the
7915// value will be replaced with "sensitive".
7916func (s DescribeClusterInput) GoString() string {
7917	return s.String()
7918}
7919
7920// Validate inspects the fields of the type to determine if they are valid.
7921func (s *DescribeClusterInput) Validate() error {
7922	invalidParams := request.ErrInvalidParams{Context: "DescribeClusterInput"}
7923	if s.ClusterId == nil {
7924		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
7925	}
7926
7927	if invalidParams.Len() > 0 {
7928		return invalidParams
7929	}
7930	return nil
7931}
7932
7933// SetClusterId sets the ClusterId field's value.
7934func (s *DescribeClusterInput) SetClusterId(v string) *DescribeClusterInput {
7935	s.ClusterId = &v
7936	return s
7937}
7938
7939// This output contains the description of the cluster.
7940type DescribeClusterOutput struct {
7941	_ struct{} `type:"structure"`
7942
7943	// This output contains the details for the requested cluster.
7944	Cluster *Cluster `type:"structure"`
7945}
7946
7947// String returns the string representation.
7948//
7949// API parameter values that are decorated as "sensitive" in the API will not
7950// be included in the string output. The member name will be present, but the
7951// value will be replaced with "sensitive".
7952func (s DescribeClusterOutput) String() string {
7953	return awsutil.Prettify(s)
7954}
7955
7956// GoString returns the string representation.
7957//
7958// API parameter values that are decorated as "sensitive" in the API will not
7959// be included in the string output. The member name will be present, but the
7960// value will be replaced with "sensitive".
7961func (s DescribeClusterOutput) GoString() string {
7962	return s.String()
7963}
7964
7965// SetCluster sets the Cluster field's value.
7966func (s *DescribeClusterOutput) SetCluster(v *Cluster) *DescribeClusterOutput {
7967	s.Cluster = v
7968	return s
7969}
7970
7971// The input for the DescribeJobFlows operation.
7972type DescribeJobFlowsInput struct {
7973	_ struct{} `type:"structure"`
7974
7975	// Return only job flows created after this date and time.
7976	CreatedAfter *time.Time `type:"timestamp"`
7977
7978	// Return only job flows created before this date and time.
7979	CreatedBefore *time.Time `type:"timestamp"`
7980
7981	// Return only job flows whose job flow ID is contained in this list.
7982	JobFlowIds []*string `type:"list"`
7983
7984	// Return only job flows whose state is contained in this list.
7985	JobFlowStates []*string `type:"list"`
7986}
7987
7988// String returns the string representation.
7989//
7990// API parameter values that are decorated as "sensitive" in the API will not
7991// be included in the string output. The member name will be present, but the
7992// value will be replaced with "sensitive".
7993func (s DescribeJobFlowsInput) String() string {
7994	return awsutil.Prettify(s)
7995}
7996
7997// GoString returns the string representation.
7998//
7999// API parameter values that are decorated as "sensitive" in the API will not
8000// be included in the string output. The member name will be present, but the
8001// value will be replaced with "sensitive".
8002func (s DescribeJobFlowsInput) GoString() string {
8003	return s.String()
8004}
8005
8006// SetCreatedAfter sets the CreatedAfter field's value.
8007func (s *DescribeJobFlowsInput) SetCreatedAfter(v time.Time) *DescribeJobFlowsInput {
8008	s.CreatedAfter = &v
8009	return s
8010}
8011
8012// SetCreatedBefore sets the CreatedBefore field's value.
8013func (s *DescribeJobFlowsInput) SetCreatedBefore(v time.Time) *DescribeJobFlowsInput {
8014	s.CreatedBefore = &v
8015	return s
8016}
8017
8018// SetJobFlowIds sets the JobFlowIds field's value.
8019func (s *DescribeJobFlowsInput) SetJobFlowIds(v []*string) *DescribeJobFlowsInput {
8020	s.JobFlowIds = v
8021	return s
8022}
8023
8024// SetJobFlowStates sets the JobFlowStates field's value.
8025func (s *DescribeJobFlowsInput) SetJobFlowStates(v []*string) *DescribeJobFlowsInput {
8026	s.JobFlowStates = v
8027	return s
8028}
8029
8030// The output for the DescribeJobFlows operation.
8031type DescribeJobFlowsOutput struct {
8032	_ struct{} `type:"structure"`
8033
8034	// A list of job flows matching the parameters supplied.
8035	JobFlows []*JobFlowDetail `type:"list"`
8036}
8037
8038// String returns the string representation.
8039//
8040// API parameter values that are decorated as "sensitive" in the API will not
8041// be included in the string output. The member name will be present, but the
8042// value will be replaced with "sensitive".
8043func (s DescribeJobFlowsOutput) String() string {
8044	return awsutil.Prettify(s)
8045}
8046
8047// GoString returns the string representation.
8048//
8049// API parameter values that are decorated as "sensitive" in the API will not
8050// be included in the string output. The member name will be present, but the
8051// value will be replaced with "sensitive".
8052func (s DescribeJobFlowsOutput) GoString() string {
8053	return s.String()
8054}
8055
8056// SetJobFlows sets the JobFlows field's value.
8057func (s *DescribeJobFlowsOutput) SetJobFlows(v []*JobFlowDetail) *DescribeJobFlowsOutput {
8058	s.JobFlows = v
8059	return s
8060}
8061
8062type DescribeNotebookExecutionInput struct {
8063	_ struct{} `type:"structure"`
8064
8065	// The unique identifier of the notebook execution.
8066	//
8067	// NotebookExecutionId is a required field
8068	NotebookExecutionId *string `type:"string" required:"true"`
8069}
8070
8071// String returns the string representation.
8072//
8073// API parameter values that are decorated as "sensitive" in the API will not
8074// be included in the string output. The member name will be present, but the
8075// value will be replaced with "sensitive".
8076func (s DescribeNotebookExecutionInput) String() string {
8077	return awsutil.Prettify(s)
8078}
8079
8080// GoString returns the string representation.
8081//
8082// API parameter values that are decorated as "sensitive" in the API will not
8083// be included in the string output. The member name will be present, but the
8084// value will be replaced with "sensitive".
8085func (s DescribeNotebookExecutionInput) GoString() string {
8086	return s.String()
8087}
8088
8089// Validate inspects the fields of the type to determine if they are valid.
8090func (s *DescribeNotebookExecutionInput) Validate() error {
8091	invalidParams := request.ErrInvalidParams{Context: "DescribeNotebookExecutionInput"}
8092	if s.NotebookExecutionId == nil {
8093		invalidParams.Add(request.NewErrParamRequired("NotebookExecutionId"))
8094	}
8095
8096	if invalidParams.Len() > 0 {
8097		return invalidParams
8098	}
8099	return nil
8100}
8101
8102// SetNotebookExecutionId sets the NotebookExecutionId field's value.
8103func (s *DescribeNotebookExecutionInput) SetNotebookExecutionId(v string) *DescribeNotebookExecutionInput {
8104	s.NotebookExecutionId = &v
8105	return s
8106}
8107
8108type DescribeNotebookExecutionOutput struct {
8109	_ struct{} `type:"structure"`
8110
8111	// Properties of the notebook execution.
8112	NotebookExecution *NotebookExecution `type:"structure"`
8113}
8114
8115// String returns the string representation.
8116//
8117// API parameter values that are decorated as "sensitive" in the API will not
8118// be included in the string output. The member name will be present, but the
8119// value will be replaced with "sensitive".
8120func (s DescribeNotebookExecutionOutput) String() string {
8121	return awsutil.Prettify(s)
8122}
8123
8124// GoString returns the string representation.
8125//
8126// API parameter values that are decorated as "sensitive" in the API will not
8127// be included in the string output. The member name will be present, but the
8128// value will be replaced with "sensitive".
8129func (s DescribeNotebookExecutionOutput) GoString() string {
8130	return s.String()
8131}
8132
8133// SetNotebookExecution sets the NotebookExecution field's value.
8134func (s *DescribeNotebookExecutionOutput) SetNotebookExecution(v *NotebookExecution) *DescribeNotebookExecutionOutput {
8135	s.NotebookExecution = v
8136	return s
8137}
8138
8139type DescribeReleaseLabelInput struct {
8140	_ struct{} `type:"structure"`
8141
8142	// Reserved for future use. Currently set to null.
8143	MaxResults *int64 `min:"1" type:"integer"`
8144
8145	// The pagination token. Reserved for future use. Currently set to null.
8146	NextToken *string `type:"string"`
8147
8148	// The target release label to be described.
8149	ReleaseLabel *string `type:"string"`
8150}
8151
8152// String returns the string representation.
8153//
8154// API parameter values that are decorated as "sensitive" in the API will not
8155// be included in the string output. The member name will be present, but the
8156// value will be replaced with "sensitive".
8157func (s DescribeReleaseLabelInput) String() string {
8158	return awsutil.Prettify(s)
8159}
8160
8161// GoString returns the string representation.
8162//
8163// API parameter values that are decorated as "sensitive" in the API will not
8164// be included in the string output. The member name will be present, but the
8165// value will be replaced with "sensitive".
8166func (s DescribeReleaseLabelInput) GoString() string {
8167	return s.String()
8168}
8169
8170// Validate inspects the fields of the type to determine if they are valid.
8171func (s *DescribeReleaseLabelInput) Validate() error {
8172	invalidParams := request.ErrInvalidParams{Context: "DescribeReleaseLabelInput"}
8173	if s.MaxResults != nil && *s.MaxResults < 1 {
8174		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
8175	}
8176
8177	if invalidParams.Len() > 0 {
8178		return invalidParams
8179	}
8180	return nil
8181}
8182
8183// SetMaxResults sets the MaxResults field's value.
8184func (s *DescribeReleaseLabelInput) SetMaxResults(v int64) *DescribeReleaseLabelInput {
8185	s.MaxResults = &v
8186	return s
8187}
8188
8189// SetNextToken sets the NextToken field's value.
8190func (s *DescribeReleaseLabelInput) SetNextToken(v string) *DescribeReleaseLabelInput {
8191	s.NextToken = &v
8192	return s
8193}
8194
8195// SetReleaseLabel sets the ReleaseLabel field's value.
8196func (s *DescribeReleaseLabelInput) SetReleaseLabel(v string) *DescribeReleaseLabelInput {
8197	s.ReleaseLabel = &v
8198	return s
8199}
8200
8201type DescribeReleaseLabelOutput struct {
8202	_ struct{} `type:"structure"`
8203
8204	// The list of applications available for the target release label. Name is
8205	// the name of the application. Version is the concise version of the application.
8206	Applications []*SimplifiedApplication `type:"list"`
8207
8208	// The pagination token. Reserved for future use. Currently set to null.
8209	NextToken *string `type:"string"`
8210
8211	// The target release label described in the response.
8212	ReleaseLabel *string `type:"string"`
8213}
8214
8215// String returns the string representation.
8216//
8217// API parameter values that are decorated as "sensitive" in the API will not
8218// be included in the string output. The member name will be present, but the
8219// value will be replaced with "sensitive".
8220func (s DescribeReleaseLabelOutput) String() string {
8221	return awsutil.Prettify(s)
8222}
8223
8224// GoString returns the string representation.
8225//
8226// API parameter values that are decorated as "sensitive" in the API will not
8227// be included in the string output. The member name will be present, but the
8228// value will be replaced with "sensitive".
8229func (s DescribeReleaseLabelOutput) GoString() string {
8230	return s.String()
8231}
8232
8233// SetApplications sets the Applications field's value.
8234func (s *DescribeReleaseLabelOutput) SetApplications(v []*SimplifiedApplication) *DescribeReleaseLabelOutput {
8235	s.Applications = v
8236	return s
8237}
8238
8239// SetNextToken sets the NextToken field's value.
8240func (s *DescribeReleaseLabelOutput) SetNextToken(v string) *DescribeReleaseLabelOutput {
8241	s.NextToken = &v
8242	return s
8243}
8244
8245// SetReleaseLabel sets the ReleaseLabel field's value.
8246func (s *DescribeReleaseLabelOutput) SetReleaseLabel(v string) *DescribeReleaseLabelOutput {
8247	s.ReleaseLabel = &v
8248	return s
8249}
8250
8251type DescribeSecurityConfigurationInput struct {
8252	_ struct{} `type:"structure"`
8253
8254	// The name of the security configuration.
8255	//
8256	// Name is a required field
8257	Name *string `type:"string" required:"true"`
8258}
8259
8260// String returns the string representation.
8261//
8262// API parameter values that are decorated as "sensitive" in the API will not
8263// be included in the string output. The member name will be present, but the
8264// value will be replaced with "sensitive".
8265func (s DescribeSecurityConfigurationInput) String() string {
8266	return awsutil.Prettify(s)
8267}
8268
8269// GoString returns the string representation.
8270//
8271// API parameter values that are decorated as "sensitive" in the API will not
8272// be included in the string output. The member name will be present, but the
8273// value will be replaced with "sensitive".
8274func (s DescribeSecurityConfigurationInput) GoString() string {
8275	return s.String()
8276}
8277
8278// Validate inspects the fields of the type to determine if they are valid.
8279func (s *DescribeSecurityConfigurationInput) Validate() error {
8280	invalidParams := request.ErrInvalidParams{Context: "DescribeSecurityConfigurationInput"}
8281	if s.Name == nil {
8282		invalidParams.Add(request.NewErrParamRequired("Name"))
8283	}
8284
8285	if invalidParams.Len() > 0 {
8286		return invalidParams
8287	}
8288	return nil
8289}
8290
8291// SetName sets the Name field's value.
8292func (s *DescribeSecurityConfigurationInput) SetName(v string) *DescribeSecurityConfigurationInput {
8293	s.Name = &v
8294	return s
8295}
8296
8297type DescribeSecurityConfigurationOutput struct {
8298	_ struct{} `type:"structure"`
8299
8300	// The date and time the security configuration was created
8301	CreationDateTime *time.Time `type:"timestamp"`
8302
8303	// The name of the security configuration.
8304	Name *string `type:"string"`
8305
8306	// The security configuration details in JSON format.
8307	SecurityConfiguration *string `type:"string"`
8308}
8309
8310// String returns the string representation.
8311//
8312// API parameter values that are decorated as "sensitive" in the API will not
8313// be included in the string output. The member name will be present, but the
8314// value will be replaced with "sensitive".
8315func (s DescribeSecurityConfigurationOutput) String() string {
8316	return awsutil.Prettify(s)
8317}
8318
8319// GoString returns the string representation.
8320//
8321// API parameter values that are decorated as "sensitive" in the API will not
8322// be included in the string output. The member name will be present, but the
8323// value will be replaced with "sensitive".
8324func (s DescribeSecurityConfigurationOutput) GoString() string {
8325	return s.String()
8326}
8327
8328// SetCreationDateTime sets the CreationDateTime field's value.
8329func (s *DescribeSecurityConfigurationOutput) SetCreationDateTime(v time.Time) *DescribeSecurityConfigurationOutput {
8330	s.CreationDateTime = &v
8331	return s
8332}
8333
8334// SetName sets the Name field's value.
8335func (s *DescribeSecurityConfigurationOutput) SetName(v string) *DescribeSecurityConfigurationOutput {
8336	s.Name = &v
8337	return s
8338}
8339
8340// SetSecurityConfiguration sets the SecurityConfiguration field's value.
8341func (s *DescribeSecurityConfigurationOutput) SetSecurityConfiguration(v string) *DescribeSecurityConfigurationOutput {
8342	s.SecurityConfiguration = &v
8343	return s
8344}
8345
8346// This input determines which step to describe.
8347type DescribeStepInput struct {
8348	_ struct{} `type:"structure"`
8349
8350	// The identifier of the cluster with steps to describe.
8351	//
8352	// ClusterId is a required field
8353	ClusterId *string `type:"string" required:"true"`
8354
8355	// The identifier of the step to describe.
8356	//
8357	// StepId is a required field
8358	StepId *string `type:"string" required:"true"`
8359}
8360
8361// String returns the string representation.
8362//
8363// API parameter values that are decorated as "sensitive" in the API will not
8364// be included in the string output. The member name will be present, but the
8365// value will be replaced with "sensitive".
8366func (s DescribeStepInput) String() string {
8367	return awsutil.Prettify(s)
8368}
8369
8370// GoString returns the string representation.
8371//
8372// API parameter values that are decorated as "sensitive" in the API will not
8373// be included in the string output. The member name will be present, but the
8374// value will be replaced with "sensitive".
8375func (s DescribeStepInput) GoString() string {
8376	return s.String()
8377}
8378
8379// Validate inspects the fields of the type to determine if they are valid.
8380func (s *DescribeStepInput) Validate() error {
8381	invalidParams := request.ErrInvalidParams{Context: "DescribeStepInput"}
8382	if s.ClusterId == nil {
8383		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
8384	}
8385	if s.StepId == nil {
8386		invalidParams.Add(request.NewErrParamRequired("StepId"))
8387	}
8388
8389	if invalidParams.Len() > 0 {
8390		return invalidParams
8391	}
8392	return nil
8393}
8394
8395// SetClusterId sets the ClusterId field's value.
8396func (s *DescribeStepInput) SetClusterId(v string) *DescribeStepInput {
8397	s.ClusterId = &v
8398	return s
8399}
8400
8401// SetStepId sets the StepId field's value.
8402func (s *DescribeStepInput) SetStepId(v string) *DescribeStepInput {
8403	s.StepId = &v
8404	return s
8405}
8406
8407// This output contains the description of the cluster step.
8408type DescribeStepOutput struct {
8409	_ struct{} `type:"structure"`
8410
8411	// The step details for the requested step identifier.
8412	Step *Step `type:"structure"`
8413}
8414
8415// String returns the string representation.
8416//
8417// API parameter values that are decorated as "sensitive" in the API will not
8418// be included in the string output. The member name will be present, but the
8419// value will be replaced with "sensitive".
8420func (s DescribeStepOutput) String() string {
8421	return awsutil.Prettify(s)
8422}
8423
8424// GoString returns the string representation.
8425//
8426// API parameter values that are decorated as "sensitive" in the API will not
8427// be included in the string output. The member name will be present, but the
8428// value will be replaced with "sensitive".
8429func (s DescribeStepOutput) GoString() string {
8430	return s.String()
8431}
8432
8433// SetStep sets the Step field's value.
8434func (s *DescribeStepOutput) SetStep(v *Step) *DescribeStepOutput {
8435	s.Step = v
8436	return s
8437}
8438
8439type DescribeStudioInput struct {
8440	_ struct{} `type:"structure"`
8441
8442	// The Amazon EMR Studio ID.
8443	//
8444	// StudioId is a required field
8445	StudioId *string `type:"string" required:"true"`
8446}
8447
8448// String returns the string representation.
8449//
8450// API parameter values that are decorated as "sensitive" in the API will not
8451// be included in the string output. The member name will be present, but the
8452// value will be replaced with "sensitive".
8453func (s DescribeStudioInput) String() string {
8454	return awsutil.Prettify(s)
8455}
8456
8457// GoString returns the string representation.
8458//
8459// API parameter values that are decorated as "sensitive" in the API will not
8460// be included in the string output. The member name will be present, but the
8461// value will be replaced with "sensitive".
8462func (s DescribeStudioInput) GoString() string {
8463	return s.String()
8464}
8465
8466// Validate inspects the fields of the type to determine if they are valid.
8467func (s *DescribeStudioInput) Validate() error {
8468	invalidParams := request.ErrInvalidParams{Context: "DescribeStudioInput"}
8469	if s.StudioId == nil {
8470		invalidParams.Add(request.NewErrParamRequired("StudioId"))
8471	}
8472
8473	if invalidParams.Len() > 0 {
8474		return invalidParams
8475	}
8476	return nil
8477}
8478
8479// SetStudioId sets the StudioId field's value.
8480func (s *DescribeStudioInput) SetStudioId(v string) *DescribeStudioInput {
8481	s.StudioId = &v
8482	return s
8483}
8484
8485type DescribeStudioOutput struct {
8486	_ struct{} `type:"structure"`
8487
8488	// The Amazon EMR Studio details.
8489	Studio *Studio `type:"structure"`
8490}
8491
8492// String returns the string representation.
8493//
8494// API parameter values that are decorated as "sensitive" in the API will not
8495// be included in the string output. The member name will be present, but the
8496// value will be replaced with "sensitive".
8497func (s DescribeStudioOutput) String() string {
8498	return awsutil.Prettify(s)
8499}
8500
8501// GoString returns the string representation.
8502//
8503// API parameter values that are decorated as "sensitive" in the API will not
8504// be included in the string output. The member name will be present, but the
8505// value will be replaced with "sensitive".
8506func (s DescribeStudioOutput) GoString() string {
8507	return s.String()
8508}
8509
8510// SetStudio sets the Studio field's value.
8511func (s *DescribeStudioOutput) SetStudio(v *Studio) *DescribeStudioOutput {
8512	s.Studio = v
8513	return s
8514}
8515
8516// Configuration of requested EBS block device associated with the instance
8517// group.
8518type EbsBlockDevice struct {
8519	_ struct{} `type:"structure"`
8520
8521	// The device name that is exposed to the instance, such as /dev/sdh.
8522	Device *string `type:"string"`
8523
8524	// EBS volume specifications such as volume type, IOPS, and size (GiB) that
8525	// will be requested for the EBS volume attached to an EC2 instance in the cluster.
8526	VolumeSpecification *VolumeSpecification `type:"structure"`
8527}
8528
8529// String returns the string representation.
8530//
8531// API parameter values that are decorated as "sensitive" in the API will not
8532// be included in the string output. The member name will be present, but the
8533// value will be replaced with "sensitive".
8534func (s EbsBlockDevice) String() string {
8535	return awsutil.Prettify(s)
8536}
8537
8538// GoString returns the string representation.
8539//
8540// API parameter values that are decorated as "sensitive" in the API will not
8541// be included in the string output. The member name will be present, but the
8542// value will be replaced with "sensitive".
8543func (s EbsBlockDevice) GoString() string {
8544	return s.String()
8545}
8546
8547// SetDevice sets the Device field's value.
8548func (s *EbsBlockDevice) SetDevice(v string) *EbsBlockDevice {
8549	s.Device = &v
8550	return s
8551}
8552
8553// SetVolumeSpecification sets the VolumeSpecification field's value.
8554func (s *EbsBlockDevice) SetVolumeSpecification(v *VolumeSpecification) *EbsBlockDevice {
8555	s.VolumeSpecification = v
8556	return s
8557}
8558
8559// Configuration of requested EBS block device associated with the instance
8560// group with count of volumes that will be associated to every instance.
8561type EbsBlockDeviceConfig struct {
8562	_ struct{} `type:"structure"`
8563
8564	// EBS volume specifications such as volume type, IOPS, and size (GiB) that
8565	// will be requested for the EBS volume attached to an EC2 instance in the cluster.
8566	//
8567	// VolumeSpecification is a required field
8568	VolumeSpecification *VolumeSpecification `type:"structure" required:"true"`
8569
8570	// Number of EBS volumes with a specific volume configuration that will be associated
8571	// with every instance in the instance group
8572	VolumesPerInstance *int64 `type:"integer"`
8573}
8574
8575// String returns the string representation.
8576//
8577// API parameter values that are decorated as "sensitive" in the API will not
8578// be included in the string output. The member name will be present, but the
8579// value will be replaced with "sensitive".
8580func (s EbsBlockDeviceConfig) String() string {
8581	return awsutil.Prettify(s)
8582}
8583
8584// GoString returns the string representation.
8585//
8586// API parameter values that are decorated as "sensitive" in the API will not
8587// be included in the string output. The member name will be present, but the
8588// value will be replaced with "sensitive".
8589func (s EbsBlockDeviceConfig) GoString() string {
8590	return s.String()
8591}
8592
8593// Validate inspects the fields of the type to determine if they are valid.
8594func (s *EbsBlockDeviceConfig) Validate() error {
8595	invalidParams := request.ErrInvalidParams{Context: "EbsBlockDeviceConfig"}
8596	if s.VolumeSpecification == nil {
8597		invalidParams.Add(request.NewErrParamRequired("VolumeSpecification"))
8598	}
8599	if s.VolumeSpecification != nil {
8600		if err := s.VolumeSpecification.Validate(); err != nil {
8601			invalidParams.AddNested("VolumeSpecification", err.(request.ErrInvalidParams))
8602		}
8603	}
8604
8605	if invalidParams.Len() > 0 {
8606		return invalidParams
8607	}
8608	return nil
8609}
8610
8611// SetVolumeSpecification sets the VolumeSpecification field's value.
8612func (s *EbsBlockDeviceConfig) SetVolumeSpecification(v *VolumeSpecification) *EbsBlockDeviceConfig {
8613	s.VolumeSpecification = v
8614	return s
8615}
8616
8617// SetVolumesPerInstance sets the VolumesPerInstance field's value.
8618func (s *EbsBlockDeviceConfig) SetVolumesPerInstance(v int64) *EbsBlockDeviceConfig {
8619	s.VolumesPerInstance = &v
8620	return s
8621}
8622
8623// The Amazon EBS configuration of a cluster instance.
8624type EbsConfiguration struct {
8625	_ struct{} `type:"structure"`
8626
8627	// An array of Amazon EBS volume specifications attached to a cluster instance.
8628	EbsBlockDeviceConfigs []*EbsBlockDeviceConfig `type:"list"`
8629
8630	// Indicates whether an Amazon EBS volume is EBS-optimized.
8631	EbsOptimized *bool `type:"boolean"`
8632}
8633
8634// String returns the string representation.
8635//
8636// API parameter values that are decorated as "sensitive" in the API will not
8637// be included in the string output. The member name will be present, but the
8638// value will be replaced with "sensitive".
8639func (s EbsConfiguration) String() string {
8640	return awsutil.Prettify(s)
8641}
8642
8643// GoString returns the string representation.
8644//
8645// API parameter values that are decorated as "sensitive" in the API will not
8646// be included in the string output. The member name will be present, but the
8647// value will be replaced with "sensitive".
8648func (s EbsConfiguration) GoString() string {
8649	return s.String()
8650}
8651
8652// Validate inspects the fields of the type to determine if they are valid.
8653func (s *EbsConfiguration) Validate() error {
8654	invalidParams := request.ErrInvalidParams{Context: "EbsConfiguration"}
8655	if s.EbsBlockDeviceConfigs != nil {
8656		for i, v := range s.EbsBlockDeviceConfigs {
8657			if v == nil {
8658				continue
8659			}
8660			if err := v.Validate(); err != nil {
8661				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "EbsBlockDeviceConfigs", i), err.(request.ErrInvalidParams))
8662			}
8663		}
8664	}
8665
8666	if invalidParams.Len() > 0 {
8667		return invalidParams
8668	}
8669	return nil
8670}
8671
8672// SetEbsBlockDeviceConfigs sets the EbsBlockDeviceConfigs field's value.
8673func (s *EbsConfiguration) SetEbsBlockDeviceConfigs(v []*EbsBlockDeviceConfig) *EbsConfiguration {
8674	s.EbsBlockDeviceConfigs = v
8675	return s
8676}
8677
8678// SetEbsOptimized sets the EbsOptimized field's value.
8679func (s *EbsConfiguration) SetEbsOptimized(v bool) *EbsConfiguration {
8680	s.EbsOptimized = &v
8681	return s
8682}
8683
8684// EBS block device that's attached to an EC2 instance.
8685type EbsVolume struct {
8686	_ struct{} `type:"structure"`
8687
8688	// The device name that is exposed to the instance, such as /dev/sdh.
8689	Device *string `type:"string"`
8690
8691	// The volume identifier of the EBS volume.
8692	VolumeId *string `type:"string"`
8693}
8694
8695// String returns the string representation.
8696//
8697// API parameter values that are decorated as "sensitive" in the API will not
8698// be included in the string output. The member name will be present, but the
8699// value will be replaced with "sensitive".
8700func (s EbsVolume) String() string {
8701	return awsutil.Prettify(s)
8702}
8703
8704// GoString returns the string representation.
8705//
8706// API parameter values that are decorated as "sensitive" in the API will not
8707// be included in the string output. The member name will be present, but the
8708// value will be replaced with "sensitive".
8709func (s EbsVolume) GoString() string {
8710	return s.String()
8711}
8712
8713// SetDevice sets the Device field's value.
8714func (s *EbsVolume) SetDevice(v string) *EbsVolume {
8715	s.Device = &v
8716	return s
8717}
8718
8719// SetVolumeId sets the VolumeId field's value.
8720func (s *EbsVolume) SetVolumeId(v string) *EbsVolume {
8721	s.VolumeId = &v
8722	return s
8723}
8724
8725// Provides information about the EC2 instances in a cluster grouped by category.
8726// For example, key name, subnet ID, IAM instance profile, and so on.
8727type Ec2InstanceAttributes struct {
8728	_ struct{} `type:"structure"`
8729
8730	// A list of additional Amazon EC2 security group IDs for the master node.
8731	AdditionalMasterSecurityGroups []*string `type:"list"`
8732
8733	// A list of additional Amazon EC2 security group IDs for the core and task
8734	// nodes.
8735	AdditionalSlaveSecurityGroups []*string `type:"list"`
8736
8737	// The Availability Zone in which the cluster will run.
8738	Ec2AvailabilityZone *string `type:"string"`
8739
8740	// The name of the Amazon EC2 key pair to use when connecting with SSH into
8741	// the master node as a user named "hadoop".
8742	Ec2KeyName *string `type:"string"`
8743
8744	// Set this parameter to the identifier of the Amazon VPC subnet where you want
8745	// the cluster to launch. If you do not specify this value, and your account
8746	// supports EC2-Classic, the cluster launches in EC2-Classic.
8747	Ec2SubnetId *string `type:"string"`
8748
8749	// The identifier of the Amazon EC2 security group for the master node.
8750	EmrManagedMasterSecurityGroup *string `type:"string"`
8751
8752	// The identifier of the Amazon EC2 security group for the core and task nodes.
8753	EmrManagedSlaveSecurityGroup *string `type:"string"`
8754
8755	// The IAM role that was specified when the cluster was launched. The EC2 instances
8756	// of the cluster assume this role.
8757	IamInstanceProfile *string `type:"string"`
8758
8759	// Applies to clusters configured with the instance fleets option. Specifies
8760	// one or more Availability Zones in which to launch EC2 cluster instances when
8761	// the EC2-Classic network configuration is supported. Amazon EMR chooses the
8762	// Availability Zone with the best fit from among the list of RequestedEc2AvailabilityZones,
8763	// and then launches all cluster instances within that Availability Zone. If
8764	// you do not specify this value, Amazon EMR chooses the Availability Zone for
8765	// you. RequestedEc2SubnetIDs and RequestedEc2AvailabilityZones cannot be specified
8766	// together.
8767	RequestedEc2AvailabilityZones []*string `type:"list"`
8768
8769	// Applies to clusters configured with the instance fleets option. Specifies
8770	// the unique identifier of one or more Amazon EC2 subnets in which to launch
8771	// EC2 cluster instances. Subnets must exist within the same VPC. Amazon EMR
8772	// chooses the EC2 subnet with the best fit from among the list of RequestedEc2SubnetIds,
8773	// and then launches all cluster instances within that Subnet. If this value
8774	// is not specified, and the account and Region support EC2-Classic networks,
8775	// the cluster launches instances in the EC2-Classic network and uses RequestedEc2AvailabilityZones
8776	// instead of this setting. If EC2-Classic is not supported, and no Subnet is
8777	// specified, Amazon EMR chooses the subnet for you. RequestedEc2SubnetIDs and
8778	// RequestedEc2AvailabilityZones cannot be specified together.
8779	RequestedEc2SubnetIds []*string `type:"list"`
8780
8781	// The identifier of the Amazon EC2 security group for the Amazon EMR service
8782	// to access clusters in VPC private subnets.
8783	ServiceAccessSecurityGroup *string `type:"string"`
8784}
8785
8786// String returns the string representation.
8787//
8788// API parameter values that are decorated as "sensitive" in the API will not
8789// be included in the string output. The member name will be present, but the
8790// value will be replaced with "sensitive".
8791func (s Ec2InstanceAttributes) String() string {
8792	return awsutil.Prettify(s)
8793}
8794
8795// GoString returns the string representation.
8796//
8797// API parameter values that are decorated as "sensitive" in the API will not
8798// be included in the string output. The member name will be present, but the
8799// value will be replaced with "sensitive".
8800func (s Ec2InstanceAttributes) GoString() string {
8801	return s.String()
8802}
8803
8804// SetAdditionalMasterSecurityGroups sets the AdditionalMasterSecurityGroups field's value.
8805func (s *Ec2InstanceAttributes) SetAdditionalMasterSecurityGroups(v []*string) *Ec2InstanceAttributes {
8806	s.AdditionalMasterSecurityGroups = v
8807	return s
8808}
8809
8810// SetAdditionalSlaveSecurityGroups sets the AdditionalSlaveSecurityGroups field's value.
8811func (s *Ec2InstanceAttributes) SetAdditionalSlaveSecurityGroups(v []*string) *Ec2InstanceAttributes {
8812	s.AdditionalSlaveSecurityGroups = v
8813	return s
8814}
8815
8816// SetEc2AvailabilityZone sets the Ec2AvailabilityZone field's value.
8817func (s *Ec2InstanceAttributes) SetEc2AvailabilityZone(v string) *Ec2InstanceAttributes {
8818	s.Ec2AvailabilityZone = &v
8819	return s
8820}
8821
8822// SetEc2KeyName sets the Ec2KeyName field's value.
8823func (s *Ec2InstanceAttributes) SetEc2KeyName(v string) *Ec2InstanceAttributes {
8824	s.Ec2KeyName = &v
8825	return s
8826}
8827
8828// SetEc2SubnetId sets the Ec2SubnetId field's value.
8829func (s *Ec2InstanceAttributes) SetEc2SubnetId(v string) *Ec2InstanceAttributes {
8830	s.Ec2SubnetId = &v
8831	return s
8832}
8833
8834// SetEmrManagedMasterSecurityGroup sets the EmrManagedMasterSecurityGroup field's value.
8835func (s *Ec2InstanceAttributes) SetEmrManagedMasterSecurityGroup(v string) *Ec2InstanceAttributes {
8836	s.EmrManagedMasterSecurityGroup = &v
8837	return s
8838}
8839
8840// SetEmrManagedSlaveSecurityGroup sets the EmrManagedSlaveSecurityGroup field's value.
8841func (s *Ec2InstanceAttributes) SetEmrManagedSlaveSecurityGroup(v string) *Ec2InstanceAttributes {
8842	s.EmrManagedSlaveSecurityGroup = &v
8843	return s
8844}
8845
8846// SetIamInstanceProfile sets the IamInstanceProfile field's value.
8847func (s *Ec2InstanceAttributes) SetIamInstanceProfile(v string) *Ec2InstanceAttributes {
8848	s.IamInstanceProfile = &v
8849	return s
8850}
8851
8852// SetRequestedEc2AvailabilityZones sets the RequestedEc2AvailabilityZones field's value.
8853func (s *Ec2InstanceAttributes) SetRequestedEc2AvailabilityZones(v []*string) *Ec2InstanceAttributes {
8854	s.RequestedEc2AvailabilityZones = v
8855	return s
8856}
8857
8858// SetRequestedEc2SubnetIds sets the RequestedEc2SubnetIds field's value.
8859func (s *Ec2InstanceAttributes) SetRequestedEc2SubnetIds(v []*string) *Ec2InstanceAttributes {
8860	s.RequestedEc2SubnetIds = v
8861	return s
8862}
8863
8864// SetServiceAccessSecurityGroup sets the ServiceAccessSecurityGroup field's value.
8865func (s *Ec2InstanceAttributes) SetServiceAccessSecurityGroup(v string) *Ec2InstanceAttributes {
8866	s.ServiceAccessSecurityGroup = &v
8867	return s
8868}
8869
8870// Specifies the execution engine (cluster) to run the notebook and perform
8871// the notebook execution, for example, an EMR cluster.
8872type ExecutionEngineConfig struct {
8873	_ struct{} `type:"structure"`
8874
8875	// The unique identifier of the execution engine. For an EMR cluster, this is
8876	// the cluster ID.
8877	//
8878	// Id is a required field
8879	Id *string `type:"string" required:"true"`
8880
8881	// An optional unique ID of an EC2 security group to associate with the master
8882	// instance of the EMR cluster for this notebook execution. For more information
8883	// see Specifying EC2 Security Groups for EMR Notebooks (https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-managed-notebooks-security-groups.html)
8884	// in the EMR Management Guide.
8885	MasterInstanceSecurityGroupId *string `type:"string"`
8886
8887	// The type of execution engine. A value of EMR specifies an EMR cluster.
8888	Type *string `type:"string" enum:"ExecutionEngineType"`
8889}
8890
8891// String returns the string representation.
8892//
8893// API parameter values that are decorated as "sensitive" in the API will not
8894// be included in the string output. The member name will be present, but the
8895// value will be replaced with "sensitive".
8896func (s ExecutionEngineConfig) String() string {
8897	return awsutil.Prettify(s)
8898}
8899
8900// GoString returns the string representation.
8901//
8902// API parameter values that are decorated as "sensitive" in the API will not
8903// be included in the string output. The member name will be present, but the
8904// value will be replaced with "sensitive".
8905func (s ExecutionEngineConfig) GoString() string {
8906	return s.String()
8907}
8908
8909// Validate inspects the fields of the type to determine if they are valid.
8910func (s *ExecutionEngineConfig) Validate() error {
8911	invalidParams := request.ErrInvalidParams{Context: "ExecutionEngineConfig"}
8912	if s.Id == nil {
8913		invalidParams.Add(request.NewErrParamRequired("Id"))
8914	}
8915
8916	if invalidParams.Len() > 0 {
8917		return invalidParams
8918	}
8919	return nil
8920}
8921
8922// SetId sets the Id field's value.
8923func (s *ExecutionEngineConfig) SetId(v string) *ExecutionEngineConfig {
8924	s.Id = &v
8925	return s
8926}
8927
8928// SetMasterInstanceSecurityGroupId sets the MasterInstanceSecurityGroupId field's value.
8929func (s *ExecutionEngineConfig) SetMasterInstanceSecurityGroupId(v string) *ExecutionEngineConfig {
8930	s.MasterInstanceSecurityGroupId = &v
8931	return s
8932}
8933
8934// SetType sets the Type field's value.
8935func (s *ExecutionEngineConfig) SetType(v string) *ExecutionEngineConfig {
8936	s.Type = &v
8937	return s
8938}
8939
8940// The details of the step failure. The service attempts to detect the root
8941// cause for many common failures.
8942type FailureDetails struct {
8943	_ struct{} `type:"structure"`
8944
8945	// The path to the log file where the step failure root cause was originally
8946	// recorded.
8947	LogFile *string `type:"string"`
8948
8949	// The descriptive message including the error the Amazon EMR service has identified
8950	// as the cause of step failure. This is text from an error log that describes
8951	// the root cause of the failure.
8952	Message *string `type:"string"`
8953
8954	// The reason for the step failure. In the case where the service cannot successfully
8955	// determine the root cause of the failure, it returns "Unknown Error" as a
8956	// reason.
8957	Reason *string `type:"string"`
8958}
8959
8960// String returns the string representation.
8961//
8962// API parameter values that are decorated as "sensitive" in the API will not
8963// be included in the string output. The member name will be present, but the
8964// value will be replaced with "sensitive".
8965func (s FailureDetails) String() string {
8966	return awsutil.Prettify(s)
8967}
8968
8969// GoString returns the string representation.
8970//
8971// API parameter values that are decorated as "sensitive" in the API will not
8972// be included in the string output. The member name will be present, but the
8973// value will be replaced with "sensitive".
8974func (s FailureDetails) GoString() string {
8975	return s.String()
8976}
8977
8978// SetLogFile sets the LogFile field's value.
8979func (s *FailureDetails) SetLogFile(v string) *FailureDetails {
8980	s.LogFile = &v
8981	return s
8982}
8983
8984// SetMessage sets the Message field's value.
8985func (s *FailureDetails) SetMessage(v string) *FailureDetails {
8986	s.Message = &v
8987	return s
8988}
8989
8990// SetReason sets the Reason field's value.
8991func (s *FailureDetails) SetReason(v string) *FailureDetails {
8992	s.Reason = &v
8993	return s
8994}
8995
8996type GetAutoTerminationPolicyInput struct {
8997	_ struct{} `type:"structure"`
8998
8999	// Specifies the ID of the Amazon EMR cluster for which the auto-termination
9000	// policy will be fetched.
9001	//
9002	// ClusterId is a required field
9003	ClusterId *string `type:"string" required:"true"`
9004}
9005
9006// String returns the string representation.
9007//
9008// API parameter values that are decorated as "sensitive" in the API will not
9009// be included in the string output. The member name will be present, but the
9010// value will be replaced with "sensitive".
9011func (s GetAutoTerminationPolicyInput) String() string {
9012	return awsutil.Prettify(s)
9013}
9014
9015// GoString returns the string representation.
9016//
9017// API parameter values that are decorated as "sensitive" in the API will not
9018// be included in the string output. The member name will be present, but the
9019// value will be replaced with "sensitive".
9020func (s GetAutoTerminationPolicyInput) GoString() string {
9021	return s.String()
9022}
9023
9024// Validate inspects the fields of the type to determine if they are valid.
9025func (s *GetAutoTerminationPolicyInput) Validate() error {
9026	invalidParams := request.ErrInvalidParams{Context: "GetAutoTerminationPolicyInput"}
9027	if s.ClusterId == nil {
9028		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
9029	}
9030
9031	if invalidParams.Len() > 0 {
9032		return invalidParams
9033	}
9034	return nil
9035}
9036
9037// SetClusterId sets the ClusterId field's value.
9038func (s *GetAutoTerminationPolicyInput) SetClusterId(v string) *GetAutoTerminationPolicyInput {
9039	s.ClusterId = &v
9040	return s
9041}
9042
9043type GetAutoTerminationPolicyOutput struct {
9044	_ struct{} `type:"structure"`
9045
9046	// Specifies the auto-termination policy that is attached to an Amazon EMR cluster.
9047	AutoTerminationPolicy *AutoTerminationPolicy `type:"structure"`
9048}
9049
9050// String returns the string representation.
9051//
9052// API parameter values that are decorated as "sensitive" in the API will not
9053// be included in the string output. The member name will be present, but the
9054// value will be replaced with "sensitive".
9055func (s GetAutoTerminationPolicyOutput) String() string {
9056	return awsutil.Prettify(s)
9057}
9058
9059// GoString returns the string representation.
9060//
9061// API parameter values that are decorated as "sensitive" in the API will not
9062// be included in the string output. The member name will be present, but the
9063// value will be replaced with "sensitive".
9064func (s GetAutoTerminationPolicyOutput) GoString() string {
9065	return s.String()
9066}
9067
9068// SetAutoTerminationPolicy sets the AutoTerminationPolicy field's value.
9069func (s *GetAutoTerminationPolicyOutput) SetAutoTerminationPolicy(v *AutoTerminationPolicy) *GetAutoTerminationPolicyOutput {
9070	s.AutoTerminationPolicy = v
9071	return s
9072}
9073
9074type GetBlockPublicAccessConfigurationInput struct {
9075	_ struct{} `type:"structure"`
9076}
9077
9078// String returns the string representation.
9079//
9080// API parameter values that are decorated as "sensitive" in the API will not
9081// be included in the string output. The member name will be present, but the
9082// value will be replaced with "sensitive".
9083func (s GetBlockPublicAccessConfigurationInput) String() string {
9084	return awsutil.Prettify(s)
9085}
9086
9087// GoString returns the string representation.
9088//
9089// API parameter values that are decorated as "sensitive" in the API will not
9090// be included in the string output. The member name will be present, but the
9091// value will be replaced with "sensitive".
9092func (s GetBlockPublicAccessConfigurationInput) GoString() string {
9093	return s.String()
9094}
9095
9096type GetBlockPublicAccessConfigurationOutput struct {
9097	_ struct{} `type:"structure"`
9098
9099	// A configuration for Amazon EMR block public access. The configuration applies
9100	// to all clusters created in your account for the current Region. The configuration
9101	// specifies whether block public access is enabled. If block public access
9102	// is enabled, security groups associated with the cluster cannot have rules
9103	// that allow inbound traffic from 0.0.0.0/0 or ::/0 on a port, unless the port
9104	// is specified as an exception using PermittedPublicSecurityGroupRuleRanges
9105	// in the BlockPublicAccessConfiguration. By default, Port 22 (SSH) is an exception,
9106	// and public access is allowed on this port. You can change this by updating
9107	// the block public access configuration to remove the exception.
9108	//
9109	// For accounts that created clusters in a Region before November 25, 2019,
9110	// block public access is disabled by default in that Region. To use this feature,
9111	// you must manually enable and configure it. For accounts that did not create
9112	// an EMR cluster in a Region before this date, block public access is enabled
9113	// by default in that Region.
9114	//
9115	// BlockPublicAccessConfiguration is a required field
9116	BlockPublicAccessConfiguration *BlockPublicAccessConfiguration `type:"structure" required:"true"`
9117
9118	// Properties that describe the Amazon Web Services principal that created the
9119	// BlockPublicAccessConfiguration using the PutBlockPublicAccessConfiguration
9120	// action as well as the date and time that the configuration was created. Each
9121	// time a configuration for block public access is updated, Amazon EMR updates
9122	// this metadata.
9123	//
9124	// BlockPublicAccessConfigurationMetadata is a required field
9125	BlockPublicAccessConfigurationMetadata *BlockPublicAccessConfigurationMetadata `type:"structure" required:"true"`
9126}
9127
9128// String returns the string representation.
9129//
9130// API parameter values that are decorated as "sensitive" in the API will not
9131// be included in the string output. The member name will be present, but the
9132// value will be replaced with "sensitive".
9133func (s GetBlockPublicAccessConfigurationOutput) String() string {
9134	return awsutil.Prettify(s)
9135}
9136
9137// GoString returns the string representation.
9138//
9139// API parameter values that are decorated as "sensitive" in the API will not
9140// be included in the string output. The member name will be present, but the
9141// value will be replaced with "sensitive".
9142func (s GetBlockPublicAccessConfigurationOutput) GoString() string {
9143	return s.String()
9144}
9145
9146// SetBlockPublicAccessConfiguration sets the BlockPublicAccessConfiguration field's value.
9147func (s *GetBlockPublicAccessConfigurationOutput) SetBlockPublicAccessConfiguration(v *BlockPublicAccessConfiguration) *GetBlockPublicAccessConfigurationOutput {
9148	s.BlockPublicAccessConfiguration = v
9149	return s
9150}
9151
9152// SetBlockPublicAccessConfigurationMetadata sets the BlockPublicAccessConfigurationMetadata field's value.
9153func (s *GetBlockPublicAccessConfigurationOutput) SetBlockPublicAccessConfigurationMetadata(v *BlockPublicAccessConfigurationMetadata) *GetBlockPublicAccessConfigurationOutput {
9154	s.BlockPublicAccessConfigurationMetadata = v
9155	return s
9156}
9157
9158type GetManagedScalingPolicyInput struct {
9159	_ struct{} `type:"structure"`
9160
9161	// Specifies the ID of the cluster for which the managed scaling policy will
9162	// be fetched.
9163	//
9164	// ClusterId is a required field
9165	ClusterId *string `type:"string" required:"true"`
9166}
9167
9168// String returns the string representation.
9169//
9170// API parameter values that are decorated as "sensitive" in the API will not
9171// be included in the string output. The member name will be present, but the
9172// value will be replaced with "sensitive".
9173func (s GetManagedScalingPolicyInput) String() string {
9174	return awsutil.Prettify(s)
9175}
9176
9177// GoString returns the string representation.
9178//
9179// API parameter values that are decorated as "sensitive" in the API will not
9180// be included in the string output. The member name will be present, but the
9181// value will be replaced with "sensitive".
9182func (s GetManagedScalingPolicyInput) GoString() string {
9183	return s.String()
9184}
9185
9186// Validate inspects the fields of the type to determine if they are valid.
9187func (s *GetManagedScalingPolicyInput) Validate() error {
9188	invalidParams := request.ErrInvalidParams{Context: "GetManagedScalingPolicyInput"}
9189	if s.ClusterId == nil {
9190		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
9191	}
9192
9193	if invalidParams.Len() > 0 {
9194		return invalidParams
9195	}
9196	return nil
9197}
9198
9199// SetClusterId sets the ClusterId field's value.
9200func (s *GetManagedScalingPolicyInput) SetClusterId(v string) *GetManagedScalingPolicyInput {
9201	s.ClusterId = &v
9202	return s
9203}
9204
9205type GetManagedScalingPolicyOutput struct {
9206	_ struct{} `type:"structure"`
9207
9208	// Specifies the managed scaling policy that is attached to an Amazon EMR cluster.
9209	ManagedScalingPolicy *ManagedScalingPolicy `type:"structure"`
9210}
9211
9212// String returns the string representation.
9213//
9214// API parameter values that are decorated as "sensitive" in the API will not
9215// be included in the string output. The member name will be present, but the
9216// value will be replaced with "sensitive".
9217func (s GetManagedScalingPolicyOutput) String() string {
9218	return awsutil.Prettify(s)
9219}
9220
9221// GoString returns the string representation.
9222//
9223// API parameter values that are decorated as "sensitive" in the API will not
9224// be included in the string output. The member name will be present, but the
9225// value will be replaced with "sensitive".
9226func (s GetManagedScalingPolicyOutput) GoString() string {
9227	return s.String()
9228}
9229
9230// SetManagedScalingPolicy sets the ManagedScalingPolicy field's value.
9231func (s *GetManagedScalingPolicyOutput) SetManagedScalingPolicy(v *ManagedScalingPolicy) *GetManagedScalingPolicyOutput {
9232	s.ManagedScalingPolicy = v
9233	return s
9234}
9235
9236type GetStudioSessionMappingInput struct {
9237	_ struct{} `type:"structure"`
9238
9239	// The globally unique identifier (GUID) of the user or group. For more information,
9240	// see UserId (https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_User.html#singlesignon-Type-User-UserId)
9241	// and GroupId (https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_Group.html#singlesignon-Type-Group-GroupId)
9242	// in the Amazon Web Services SSO Identity Store API Reference. Either IdentityName
9243	// or IdentityId must be specified.
9244	IdentityId *string `type:"string"`
9245
9246	// The name of the user or group to fetch. For more information, see UserName
9247	// (https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_User.html#singlesignon-Type-User-UserName)
9248	// and DisplayName (https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_Group.html#singlesignon-Type-Group-DisplayName)
9249	// in the Amazon Web Services SSO Identity Store API Reference. Either IdentityName
9250	// or IdentityId must be specified.
9251	IdentityName *string `type:"string"`
9252
9253	// Specifies whether the identity to fetch is a user or a group.
9254	//
9255	// IdentityType is a required field
9256	IdentityType *string `type:"string" required:"true" enum:"IdentityType"`
9257
9258	// The ID of the Amazon EMR Studio.
9259	//
9260	// StudioId is a required field
9261	StudioId *string `type:"string" required:"true"`
9262}
9263
9264// String returns the string representation.
9265//
9266// API parameter values that are decorated as "sensitive" in the API will not
9267// be included in the string output. The member name will be present, but the
9268// value will be replaced with "sensitive".
9269func (s GetStudioSessionMappingInput) String() string {
9270	return awsutil.Prettify(s)
9271}
9272
9273// GoString returns the string representation.
9274//
9275// API parameter values that are decorated as "sensitive" in the API will not
9276// be included in the string output. The member name will be present, but the
9277// value will be replaced with "sensitive".
9278func (s GetStudioSessionMappingInput) GoString() string {
9279	return s.String()
9280}
9281
9282// Validate inspects the fields of the type to determine if they are valid.
9283func (s *GetStudioSessionMappingInput) Validate() error {
9284	invalidParams := request.ErrInvalidParams{Context: "GetStudioSessionMappingInput"}
9285	if s.IdentityType == nil {
9286		invalidParams.Add(request.NewErrParamRequired("IdentityType"))
9287	}
9288	if s.StudioId == nil {
9289		invalidParams.Add(request.NewErrParamRequired("StudioId"))
9290	}
9291
9292	if invalidParams.Len() > 0 {
9293		return invalidParams
9294	}
9295	return nil
9296}
9297
9298// SetIdentityId sets the IdentityId field's value.
9299func (s *GetStudioSessionMappingInput) SetIdentityId(v string) *GetStudioSessionMappingInput {
9300	s.IdentityId = &v
9301	return s
9302}
9303
9304// SetIdentityName sets the IdentityName field's value.
9305func (s *GetStudioSessionMappingInput) SetIdentityName(v string) *GetStudioSessionMappingInput {
9306	s.IdentityName = &v
9307	return s
9308}
9309
9310// SetIdentityType sets the IdentityType field's value.
9311func (s *GetStudioSessionMappingInput) SetIdentityType(v string) *GetStudioSessionMappingInput {
9312	s.IdentityType = &v
9313	return s
9314}
9315
9316// SetStudioId sets the StudioId field's value.
9317func (s *GetStudioSessionMappingInput) SetStudioId(v string) *GetStudioSessionMappingInput {
9318	s.StudioId = &v
9319	return s
9320}
9321
9322type GetStudioSessionMappingOutput struct {
9323	_ struct{} `type:"structure"`
9324
9325	// The session mapping details for the specified Amazon EMR Studio and identity,
9326	// including session policy ARN and creation time.
9327	SessionMapping *SessionMappingDetail `type:"structure"`
9328}
9329
9330// String returns the string representation.
9331//
9332// API parameter values that are decorated as "sensitive" in the API will not
9333// be included in the string output. The member name will be present, but the
9334// value will be replaced with "sensitive".
9335func (s GetStudioSessionMappingOutput) String() string {
9336	return awsutil.Prettify(s)
9337}
9338
9339// GoString returns the string representation.
9340//
9341// API parameter values that are decorated as "sensitive" in the API will not
9342// be included in the string output. The member name will be present, but the
9343// value will be replaced with "sensitive".
9344func (s GetStudioSessionMappingOutput) GoString() string {
9345	return s.String()
9346}
9347
9348// SetSessionMapping sets the SessionMapping field's value.
9349func (s *GetStudioSessionMappingOutput) SetSessionMapping(v *SessionMappingDetail) *GetStudioSessionMappingOutput {
9350	s.SessionMapping = v
9351	return s
9352}
9353
9354// A job flow step consisting of a JAR file whose main function will be executed.
9355// The main function submits a job for Hadoop to execute and waits for the job
9356// to finish or fail.
9357type HadoopJarStepConfig struct {
9358	_ struct{} `type:"structure"`
9359
9360	// A list of command line arguments passed to the JAR file's main function when
9361	// executed.
9362	Args []*string `type:"list"`
9363
9364	// A path to a JAR file run during the step.
9365	//
9366	// Jar is a required field
9367	Jar *string `type:"string" required:"true"`
9368
9369	// The name of the main class in the specified Java file. If not specified,
9370	// the JAR file should specify a Main-Class in its manifest file.
9371	MainClass *string `type:"string"`
9372
9373	// A list of Java properties that are set when the step runs. You can use these
9374	// properties to pass key-value pairs to your main function.
9375	Properties []*KeyValue `type:"list"`
9376}
9377
9378// String returns the string representation.
9379//
9380// API parameter values that are decorated as "sensitive" in the API will not
9381// be included in the string output. The member name will be present, but the
9382// value will be replaced with "sensitive".
9383func (s HadoopJarStepConfig) String() string {
9384	return awsutil.Prettify(s)
9385}
9386
9387// GoString returns the string representation.
9388//
9389// API parameter values that are decorated as "sensitive" in the API will not
9390// be included in the string output. The member name will be present, but the
9391// value will be replaced with "sensitive".
9392func (s HadoopJarStepConfig) GoString() string {
9393	return s.String()
9394}
9395
9396// Validate inspects the fields of the type to determine if they are valid.
9397func (s *HadoopJarStepConfig) Validate() error {
9398	invalidParams := request.ErrInvalidParams{Context: "HadoopJarStepConfig"}
9399	if s.Jar == nil {
9400		invalidParams.Add(request.NewErrParamRequired("Jar"))
9401	}
9402
9403	if invalidParams.Len() > 0 {
9404		return invalidParams
9405	}
9406	return nil
9407}
9408
9409// SetArgs sets the Args field's value.
9410func (s *HadoopJarStepConfig) SetArgs(v []*string) *HadoopJarStepConfig {
9411	s.Args = v
9412	return s
9413}
9414
9415// SetJar sets the Jar field's value.
9416func (s *HadoopJarStepConfig) SetJar(v string) *HadoopJarStepConfig {
9417	s.Jar = &v
9418	return s
9419}
9420
9421// SetMainClass sets the MainClass field's value.
9422func (s *HadoopJarStepConfig) SetMainClass(v string) *HadoopJarStepConfig {
9423	s.MainClass = &v
9424	return s
9425}
9426
9427// SetProperties sets the Properties field's value.
9428func (s *HadoopJarStepConfig) SetProperties(v []*KeyValue) *HadoopJarStepConfig {
9429	s.Properties = v
9430	return s
9431}
9432
9433// A cluster step consisting of a JAR file whose main function will be executed.
9434// The main function submits a job for Hadoop to execute and waits for the job
9435// to finish or fail.
9436type HadoopStepConfig struct {
9437	_ struct{} `type:"structure"`
9438
9439	// The list of command line arguments to pass to the JAR file's main function
9440	// for execution.
9441	Args []*string `type:"list"`
9442
9443	// The path to the JAR file that runs during the step.
9444	Jar *string `type:"string"`
9445
9446	// The name of the main class in the specified Java file. If not specified,
9447	// the JAR file should specify a main class in its manifest file.
9448	MainClass *string `type:"string"`
9449
9450	// The list of Java properties that are set when the step runs. You can use
9451	// these properties to pass key-value pairs to your main function.
9452	Properties map[string]*string `type:"map"`
9453}
9454
9455// String returns the string representation.
9456//
9457// API parameter values that are decorated as "sensitive" in the API will not
9458// be included in the string output. The member name will be present, but the
9459// value will be replaced with "sensitive".
9460func (s HadoopStepConfig) String() string {
9461	return awsutil.Prettify(s)
9462}
9463
9464// GoString returns the string representation.
9465//
9466// API parameter values that are decorated as "sensitive" in the API will not
9467// be included in the string output. The member name will be present, but the
9468// value will be replaced with "sensitive".
9469func (s HadoopStepConfig) GoString() string {
9470	return s.String()
9471}
9472
9473// SetArgs sets the Args field's value.
9474func (s *HadoopStepConfig) SetArgs(v []*string) *HadoopStepConfig {
9475	s.Args = v
9476	return s
9477}
9478
9479// SetJar sets the Jar field's value.
9480func (s *HadoopStepConfig) SetJar(v string) *HadoopStepConfig {
9481	s.Jar = &v
9482	return s
9483}
9484
9485// SetMainClass sets the MainClass field's value.
9486func (s *HadoopStepConfig) SetMainClass(v string) *HadoopStepConfig {
9487	s.MainClass = &v
9488	return s
9489}
9490
9491// SetProperties sets the Properties field's value.
9492func (s *HadoopStepConfig) SetProperties(v map[string]*string) *HadoopStepConfig {
9493	s.Properties = v
9494	return s
9495}
9496
9497// Represents an EC2 instance provisioned as part of cluster.
9498type Instance struct {
9499	_ struct{} `type:"structure"`
9500
9501	// The list of Amazon EBS volumes that are attached to this instance.
9502	EbsVolumes []*EbsVolume `type:"list"`
9503
9504	// The unique identifier of the instance in Amazon EC2.
9505	Ec2InstanceId *string `type:"string"`
9506
9507	// The unique identifier for the instance in Amazon EMR.
9508	Id *string `type:"string"`
9509
9510	// The unique identifier of the instance fleet to which an EC2 instance belongs.
9511	InstanceFleetId *string `type:"string"`
9512
9513	// The identifier of the instance group to which this instance belongs.
9514	InstanceGroupId *string `type:"string"`
9515
9516	// The EC2 instance type, for example m3.xlarge.
9517	InstanceType *string `min:"1" type:"string"`
9518
9519	// The instance purchasing option. Valid values are ON_DEMAND or SPOT.
9520	Market *string `type:"string" enum:"MarketType"`
9521
9522	// The private DNS name of the instance.
9523	PrivateDnsName *string `type:"string"`
9524
9525	// The private IP address of the instance.
9526	PrivateIpAddress *string `type:"string"`
9527
9528	// The public DNS name of the instance.
9529	PublicDnsName *string `type:"string"`
9530
9531	// The public IP address of the instance.
9532	PublicIpAddress *string `type:"string"`
9533
9534	// The current status of the instance.
9535	Status *InstanceStatus `type:"structure"`
9536}
9537
9538// String returns the string representation.
9539//
9540// API parameter values that are decorated as "sensitive" in the API will not
9541// be included in the string output. The member name will be present, but the
9542// value will be replaced with "sensitive".
9543func (s Instance) String() string {
9544	return awsutil.Prettify(s)
9545}
9546
9547// GoString returns the string representation.
9548//
9549// API parameter values that are decorated as "sensitive" in the API will not
9550// be included in the string output. The member name will be present, but the
9551// value will be replaced with "sensitive".
9552func (s Instance) GoString() string {
9553	return s.String()
9554}
9555
9556// SetEbsVolumes sets the EbsVolumes field's value.
9557func (s *Instance) SetEbsVolumes(v []*EbsVolume) *Instance {
9558	s.EbsVolumes = v
9559	return s
9560}
9561
9562// SetEc2InstanceId sets the Ec2InstanceId field's value.
9563func (s *Instance) SetEc2InstanceId(v string) *Instance {
9564	s.Ec2InstanceId = &v
9565	return s
9566}
9567
9568// SetId sets the Id field's value.
9569func (s *Instance) SetId(v string) *Instance {
9570	s.Id = &v
9571	return s
9572}
9573
9574// SetInstanceFleetId sets the InstanceFleetId field's value.
9575func (s *Instance) SetInstanceFleetId(v string) *Instance {
9576	s.InstanceFleetId = &v
9577	return s
9578}
9579
9580// SetInstanceGroupId sets the InstanceGroupId field's value.
9581func (s *Instance) SetInstanceGroupId(v string) *Instance {
9582	s.InstanceGroupId = &v
9583	return s
9584}
9585
9586// SetInstanceType sets the InstanceType field's value.
9587func (s *Instance) SetInstanceType(v string) *Instance {
9588	s.InstanceType = &v
9589	return s
9590}
9591
9592// SetMarket sets the Market field's value.
9593func (s *Instance) SetMarket(v string) *Instance {
9594	s.Market = &v
9595	return s
9596}
9597
9598// SetPrivateDnsName sets the PrivateDnsName field's value.
9599func (s *Instance) SetPrivateDnsName(v string) *Instance {
9600	s.PrivateDnsName = &v
9601	return s
9602}
9603
9604// SetPrivateIpAddress sets the PrivateIpAddress field's value.
9605func (s *Instance) SetPrivateIpAddress(v string) *Instance {
9606	s.PrivateIpAddress = &v
9607	return s
9608}
9609
9610// SetPublicDnsName sets the PublicDnsName field's value.
9611func (s *Instance) SetPublicDnsName(v string) *Instance {
9612	s.PublicDnsName = &v
9613	return s
9614}
9615
9616// SetPublicIpAddress sets the PublicIpAddress field's value.
9617func (s *Instance) SetPublicIpAddress(v string) *Instance {
9618	s.PublicIpAddress = &v
9619	return s
9620}
9621
9622// SetStatus sets the Status field's value.
9623func (s *Instance) SetStatus(v *InstanceStatus) *Instance {
9624	s.Status = v
9625	return s
9626}
9627
9628// Describes an instance fleet, which is a group of EC2 instances that host
9629// a particular node type (master, core, or task) in an Amazon EMR cluster.
9630// Instance fleets can consist of a mix of instance types and On-Demand and
9631// Spot Instances, which are provisioned to meet a defined target capacity.
9632//
9633// The instance fleet configuration is available only in Amazon EMR versions
9634// 4.8.0 and later, excluding 5.0.x versions.
9635type InstanceFleet struct {
9636	_ struct{} `type:"structure"`
9637
9638	// The unique identifier of the instance fleet.
9639	Id *string `type:"string"`
9640
9641	// The node type that the instance fleet hosts. Valid values are MASTER, CORE,
9642	// or TASK.
9643	InstanceFleetType *string `type:"string" enum:"InstanceFleetType"`
9644
9645	// An array of specifications for the instance types that comprise an instance
9646	// fleet.
9647	InstanceTypeSpecifications []*InstanceTypeSpecification `type:"list"`
9648
9649	// Describes the launch specification for an instance fleet.
9650	LaunchSpecifications *InstanceFleetProvisioningSpecifications `type:"structure"`
9651
9652	// A friendly name for the instance fleet.
9653	Name *string `type:"string"`
9654
9655	// The number of On-Demand units that have been provisioned for the instance
9656	// fleet to fulfill TargetOnDemandCapacity. This provisioned capacity might
9657	// be less than or greater than TargetOnDemandCapacity.
9658	ProvisionedOnDemandCapacity *int64 `type:"integer"`
9659
9660	// The number of Spot units that have been provisioned for this instance fleet
9661	// to fulfill TargetSpotCapacity. This provisioned capacity might be less than
9662	// or greater than TargetSpotCapacity.
9663	ProvisionedSpotCapacity *int64 `type:"integer"`
9664
9665	// The current status of the instance fleet.
9666	Status *InstanceFleetStatus `type:"structure"`
9667
9668	// The target capacity of On-Demand units for the instance fleet, which determines
9669	// how many On-Demand Instances to provision. When the instance fleet launches,
9670	// Amazon EMR tries to provision On-Demand Instances as specified by InstanceTypeConfig.
9671	// Each instance configuration has a specified WeightedCapacity. When an On-Demand
9672	// Instance is provisioned, the WeightedCapacity units count toward the target
9673	// capacity. Amazon EMR provisions instances until the target capacity is totally
9674	// fulfilled, even if this results in an overage. For example, if there are
9675	// 2 units remaining to fulfill capacity, and Amazon EMR can only provision
9676	// an instance with a WeightedCapacity of 5 units, the instance is provisioned,
9677	// and the target capacity is exceeded by 3 units. You can use InstanceFleet$ProvisionedOnDemandCapacity
9678	// to determine the Spot capacity units that have been provisioned for the instance
9679	// fleet.
9680	//
9681	// If not specified or set to 0, only Spot Instances are provisioned for the
9682	// instance fleet using TargetSpotCapacity. At least one of TargetSpotCapacity
9683	// and TargetOnDemandCapacity should be greater than 0. For a master instance
9684	// fleet, only one of TargetSpotCapacity and TargetOnDemandCapacity can be specified,
9685	// and its value must be 1.
9686	TargetOnDemandCapacity *int64 `type:"integer"`
9687
9688	// The target capacity of Spot units for the instance fleet, which determines
9689	// how many Spot Instances to provision. When the instance fleet launches, Amazon
9690	// EMR tries to provision Spot Instances as specified by InstanceTypeConfig.
9691	// Each instance configuration has a specified WeightedCapacity. When a Spot
9692	// instance is provisioned, the WeightedCapacity units count toward the target
9693	// capacity. Amazon EMR provisions instances until the target capacity is totally
9694	// fulfilled, even if this results in an overage. For example, if there are
9695	// 2 units remaining to fulfill capacity, and Amazon EMR can only provision
9696	// an instance with a WeightedCapacity of 5 units, the instance is provisioned,
9697	// and the target capacity is exceeded by 3 units. You can use InstanceFleet$ProvisionedSpotCapacity
9698	// to determine the Spot capacity units that have been provisioned for the instance
9699	// fleet.
9700	//
9701	// If not specified or set to 0, only On-Demand Instances are provisioned for
9702	// the instance fleet. At least one of TargetSpotCapacity and TargetOnDemandCapacity
9703	// should be greater than 0. For a master instance fleet, only one of TargetSpotCapacity
9704	// and TargetOnDemandCapacity can be specified, and its value must be 1.
9705	TargetSpotCapacity *int64 `type:"integer"`
9706}
9707
9708// String returns the string representation.
9709//
9710// API parameter values that are decorated as "sensitive" in the API will not
9711// be included in the string output. The member name will be present, but the
9712// value will be replaced with "sensitive".
9713func (s InstanceFleet) String() string {
9714	return awsutil.Prettify(s)
9715}
9716
9717// GoString returns the string representation.
9718//
9719// API parameter values that are decorated as "sensitive" in the API will not
9720// be included in the string output. The member name will be present, but the
9721// value will be replaced with "sensitive".
9722func (s InstanceFleet) GoString() string {
9723	return s.String()
9724}
9725
9726// SetId sets the Id field's value.
9727func (s *InstanceFleet) SetId(v string) *InstanceFleet {
9728	s.Id = &v
9729	return s
9730}
9731
9732// SetInstanceFleetType sets the InstanceFleetType field's value.
9733func (s *InstanceFleet) SetInstanceFleetType(v string) *InstanceFleet {
9734	s.InstanceFleetType = &v
9735	return s
9736}
9737
9738// SetInstanceTypeSpecifications sets the InstanceTypeSpecifications field's value.
9739func (s *InstanceFleet) SetInstanceTypeSpecifications(v []*InstanceTypeSpecification) *InstanceFleet {
9740	s.InstanceTypeSpecifications = v
9741	return s
9742}
9743
9744// SetLaunchSpecifications sets the LaunchSpecifications field's value.
9745func (s *InstanceFleet) SetLaunchSpecifications(v *InstanceFleetProvisioningSpecifications) *InstanceFleet {
9746	s.LaunchSpecifications = v
9747	return s
9748}
9749
9750// SetName sets the Name field's value.
9751func (s *InstanceFleet) SetName(v string) *InstanceFleet {
9752	s.Name = &v
9753	return s
9754}
9755
9756// SetProvisionedOnDemandCapacity sets the ProvisionedOnDemandCapacity field's value.
9757func (s *InstanceFleet) SetProvisionedOnDemandCapacity(v int64) *InstanceFleet {
9758	s.ProvisionedOnDemandCapacity = &v
9759	return s
9760}
9761
9762// SetProvisionedSpotCapacity sets the ProvisionedSpotCapacity field's value.
9763func (s *InstanceFleet) SetProvisionedSpotCapacity(v int64) *InstanceFleet {
9764	s.ProvisionedSpotCapacity = &v
9765	return s
9766}
9767
9768// SetStatus sets the Status field's value.
9769func (s *InstanceFleet) SetStatus(v *InstanceFleetStatus) *InstanceFleet {
9770	s.Status = v
9771	return s
9772}
9773
9774// SetTargetOnDemandCapacity sets the TargetOnDemandCapacity field's value.
9775func (s *InstanceFleet) SetTargetOnDemandCapacity(v int64) *InstanceFleet {
9776	s.TargetOnDemandCapacity = &v
9777	return s
9778}
9779
9780// SetTargetSpotCapacity sets the TargetSpotCapacity field's value.
9781func (s *InstanceFleet) SetTargetSpotCapacity(v int64) *InstanceFleet {
9782	s.TargetSpotCapacity = &v
9783	return s
9784}
9785
9786// The configuration that defines an instance fleet.
9787//
9788// The instance fleet configuration is available only in Amazon EMR versions
9789// 4.8.0 and later, excluding 5.0.x versions.
9790type InstanceFleetConfig struct {
9791	_ struct{} `type:"structure"`
9792
9793	// The node type that the instance fleet hosts. Valid values are MASTER, CORE,
9794	// and TASK.
9795	//
9796	// InstanceFleetType is a required field
9797	InstanceFleetType *string `type:"string" required:"true" enum:"InstanceFleetType"`
9798
9799	// The instance type configurations that define the EC2 instances in the instance
9800	// fleet.
9801	InstanceTypeConfigs []*InstanceTypeConfig `type:"list"`
9802
9803	// The launch specification for the instance fleet.
9804	LaunchSpecifications *InstanceFleetProvisioningSpecifications `type:"structure"`
9805
9806	// The friendly name of the instance fleet.
9807	Name *string `type:"string"`
9808
9809	// The target capacity of On-Demand units for the instance fleet, which determines
9810	// how many On-Demand Instances to provision. When the instance fleet launches,
9811	// Amazon EMR tries to provision On-Demand Instances as specified by InstanceTypeConfig.
9812	// Each instance configuration has a specified WeightedCapacity. When an On-Demand
9813	// Instance is provisioned, the WeightedCapacity units count toward the target
9814	// capacity. Amazon EMR provisions instances until the target capacity is totally
9815	// fulfilled, even if this results in an overage. For example, if there are
9816	// 2 units remaining to fulfill capacity, and Amazon EMR can only provision
9817	// an instance with a WeightedCapacity of 5 units, the instance is provisioned,
9818	// and the target capacity is exceeded by 3 units.
9819	//
9820	// If not specified or set to 0, only Spot Instances are provisioned for the
9821	// instance fleet using TargetSpotCapacity. At least one of TargetSpotCapacity
9822	// and TargetOnDemandCapacity should be greater than 0. For a master instance
9823	// fleet, only one of TargetSpotCapacity and TargetOnDemandCapacity can be specified,
9824	// and its value must be 1.
9825	TargetOnDemandCapacity *int64 `type:"integer"`
9826
9827	// The target capacity of Spot units for the instance fleet, which determines
9828	// how many Spot Instances to provision. When the instance fleet launches, Amazon
9829	// EMR tries to provision Spot Instances as specified by InstanceTypeConfig.
9830	// Each instance configuration has a specified WeightedCapacity. When a Spot
9831	// Instance is provisioned, the WeightedCapacity units count toward the target
9832	// capacity. Amazon EMR provisions instances until the target capacity is totally
9833	// fulfilled, even if this results in an overage. For example, if there are
9834	// 2 units remaining to fulfill capacity, and Amazon EMR can only provision
9835	// an instance with a WeightedCapacity of 5 units, the instance is provisioned,
9836	// and the target capacity is exceeded by 3 units.
9837	//
9838	// If not specified or set to 0, only On-Demand Instances are provisioned for
9839	// the instance fleet. At least one of TargetSpotCapacity and TargetOnDemandCapacity
9840	// should be greater than 0. For a master instance fleet, only one of TargetSpotCapacity
9841	// and TargetOnDemandCapacity can be specified, and its value must be 1.
9842	TargetSpotCapacity *int64 `type:"integer"`
9843}
9844
9845// String returns the string representation.
9846//
9847// API parameter values that are decorated as "sensitive" in the API will not
9848// be included in the string output. The member name will be present, but the
9849// value will be replaced with "sensitive".
9850func (s InstanceFleetConfig) String() string {
9851	return awsutil.Prettify(s)
9852}
9853
9854// GoString returns the string representation.
9855//
9856// API parameter values that are decorated as "sensitive" in the API will not
9857// be included in the string output. The member name will be present, but the
9858// value will be replaced with "sensitive".
9859func (s InstanceFleetConfig) GoString() string {
9860	return s.String()
9861}
9862
9863// Validate inspects the fields of the type to determine if they are valid.
9864func (s *InstanceFleetConfig) Validate() error {
9865	invalidParams := request.ErrInvalidParams{Context: "InstanceFleetConfig"}
9866	if s.InstanceFleetType == nil {
9867		invalidParams.Add(request.NewErrParamRequired("InstanceFleetType"))
9868	}
9869	if s.InstanceTypeConfigs != nil {
9870		for i, v := range s.InstanceTypeConfigs {
9871			if v == nil {
9872				continue
9873			}
9874			if err := v.Validate(); err != nil {
9875				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "InstanceTypeConfigs", i), err.(request.ErrInvalidParams))
9876			}
9877		}
9878	}
9879	if s.LaunchSpecifications != nil {
9880		if err := s.LaunchSpecifications.Validate(); err != nil {
9881			invalidParams.AddNested("LaunchSpecifications", err.(request.ErrInvalidParams))
9882		}
9883	}
9884
9885	if invalidParams.Len() > 0 {
9886		return invalidParams
9887	}
9888	return nil
9889}
9890
9891// SetInstanceFleetType sets the InstanceFleetType field's value.
9892func (s *InstanceFleetConfig) SetInstanceFleetType(v string) *InstanceFleetConfig {
9893	s.InstanceFleetType = &v
9894	return s
9895}
9896
9897// SetInstanceTypeConfigs sets the InstanceTypeConfigs field's value.
9898func (s *InstanceFleetConfig) SetInstanceTypeConfigs(v []*InstanceTypeConfig) *InstanceFleetConfig {
9899	s.InstanceTypeConfigs = v
9900	return s
9901}
9902
9903// SetLaunchSpecifications sets the LaunchSpecifications field's value.
9904func (s *InstanceFleetConfig) SetLaunchSpecifications(v *InstanceFleetProvisioningSpecifications) *InstanceFleetConfig {
9905	s.LaunchSpecifications = v
9906	return s
9907}
9908
9909// SetName sets the Name field's value.
9910func (s *InstanceFleetConfig) SetName(v string) *InstanceFleetConfig {
9911	s.Name = &v
9912	return s
9913}
9914
9915// SetTargetOnDemandCapacity sets the TargetOnDemandCapacity field's value.
9916func (s *InstanceFleetConfig) SetTargetOnDemandCapacity(v int64) *InstanceFleetConfig {
9917	s.TargetOnDemandCapacity = &v
9918	return s
9919}
9920
9921// SetTargetSpotCapacity sets the TargetSpotCapacity field's value.
9922func (s *InstanceFleetConfig) SetTargetSpotCapacity(v int64) *InstanceFleetConfig {
9923	s.TargetSpotCapacity = &v
9924	return s
9925}
9926
9927// Configuration parameters for an instance fleet modification request.
9928//
9929// The instance fleet configuration is available only in Amazon EMR versions
9930// 4.8.0 and later, excluding 5.0.x versions.
9931type InstanceFleetModifyConfig struct {
9932	_ struct{} `type:"structure"`
9933
9934	// A unique identifier for the instance fleet.
9935	//
9936	// InstanceFleetId is a required field
9937	InstanceFleetId *string `type:"string" required:"true"`
9938
9939	// The target capacity of On-Demand units for the instance fleet. For more information
9940	// see InstanceFleetConfig$TargetOnDemandCapacity.
9941	TargetOnDemandCapacity *int64 `type:"integer"`
9942
9943	// The target capacity of Spot units for the instance fleet. For more information,
9944	// see InstanceFleetConfig$TargetSpotCapacity.
9945	TargetSpotCapacity *int64 `type:"integer"`
9946}
9947
9948// String returns the string representation.
9949//
9950// API parameter values that are decorated as "sensitive" in the API will not
9951// be included in the string output. The member name will be present, but the
9952// value will be replaced with "sensitive".
9953func (s InstanceFleetModifyConfig) String() string {
9954	return awsutil.Prettify(s)
9955}
9956
9957// GoString returns the string representation.
9958//
9959// API parameter values that are decorated as "sensitive" in the API will not
9960// be included in the string output. The member name will be present, but the
9961// value will be replaced with "sensitive".
9962func (s InstanceFleetModifyConfig) GoString() string {
9963	return s.String()
9964}
9965
9966// Validate inspects the fields of the type to determine if they are valid.
9967func (s *InstanceFleetModifyConfig) Validate() error {
9968	invalidParams := request.ErrInvalidParams{Context: "InstanceFleetModifyConfig"}
9969	if s.InstanceFleetId == nil {
9970		invalidParams.Add(request.NewErrParamRequired("InstanceFleetId"))
9971	}
9972
9973	if invalidParams.Len() > 0 {
9974		return invalidParams
9975	}
9976	return nil
9977}
9978
9979// SetInstanceFleetId sets the InstanceFleetId field's value.
9980func (s *InstanceFleetModifyConfig) SetInstanceFleetId(v string) *InstanceFleetModifyConfig {
9981	s.InstanceFleetId = &v
9982	return s
9983}
9984
9985// SetTargetOnDemandCapacity sets the TargetOnDemandCapacity field's value.
9986func (s *InstanceFleetModifyConfig) SetTargetOnDemandCapacity(v int64) *InstanceFleetModifyConfig {
9987	s.TargetOnDemandCapacity = &v
9988	return s
9989}
9990
9991// SetTargetSpotCapacity sets the TargetSpotCapacity field's value.
9992func (s *InstanceFleetModifyConfig) SetTargetSpotCapacity(v int64) *InstanceFleetModifyConfig {
9993	s.TargetSpotCapacity = &v
9994	return s
9995}
9996
9997// The launch specification for Spot Instances in the fleet, which determines
9998// the defined duration, provisioning timeout behavior, and allocation strategy.
9999//
10000// The instance fleet configuration is available only in Amazon EMR versions
10001// 4.8.0 and later, excluding 5.0.x versions. On-Demand and Spot Instance allocation
10002// strategies are available in Amazon EMR version 5.12.1 and later.
10003type InstanceFleetProvisioningSpecifications struct {
10004	_ struct{} `type:"structure"`
10005
10006	// The launch specification for On-Demand Instances in the instance fleet, which
10007	// determines the allocation strategy.
10008	//
10009	// The instance fleet configuration is available only in Amazon EMR versions
10010	// 4.8.0 and later, excluding 5.0.x versions. On-Demand Instances allocation
10011	// strategy is available in Amazon EMR version 5.12.1 and later.
10012	OnDemandSpecification *OnDemandProvisioningSpecification `type:"structure"`
10013
10014	// The launch specification for Spot Instances in the fleet, which determines
10015	// the defined duration, provisioning timeout behavior, and allocation strategy.
10016	SpotSpecification *SpotProvisioningSpecification `type:"structure"`
10017}
10018
10019// String returns the string representation.
10020//
10021// API parameter values that are decorated as "sensitive" in the API will not
10022// be included in the string output. The member name will be present, but the
10023// value will be replaced with "sensitive".
10024func (s InstanceFleetProvisioningSpecifications) String() string {
10025	return awsutil.Prettify(s)
10026}
10027
10028// GoString returns the string representation.
10029//
10030// API parameter values that are decorated as "sensitive" in the API will not
10031// be included in the string output. The member name will be present, but the
10032// value will be replaced with "sensitive".
10033func (s InstanceFleetProvisioningSpecifications) GoString() string {
10034	return s.String()
10035}
10036
10037// Validate inspects the fields of the type to determine if they are valid.
10038func (s *InstanceFleetProvisioningSpecifications) Validate() error {
10039	invalidParams := request.ErrInvalidParams{Context: "InstanceFleetProvisioningSpecifications"}
10040	if s.OnDemandSpecification != nil {
10041		if err := s.OnDemandSpecification.Validate(); err != nil {
10042			invalidParams.AddNested("OnDemandSpecification", err.(request.ErrInvalidParams))
10043		}
10044	}
10045	if s.SpotSpecification != nil {
10046		if err := s.SpotSpecification.Validate(); err != nil {
10047			invalidParams.AddNested("SpotSpecification", err.(request.ErrInvalidParams))
10048		}
10049	}
10050
10051	if invalidParams.Len() > 0 {
10052		return invalidParams
10053	}
10054	return nil
10055}
10056
10057// SetOnDemandSpecification sets the OnDemandSpecification field's value.
10058func (s *InstanceFleetProvisioningSpecifications) SetOnDemandSpecification(v *OnDemandProvisioningSpecification) *InstanceFleetProvisioningSpecifications {
10059	s.OnDemandSpecification = v
10060	return s
10061}
10062
10063// SetSpotSpecification sets the SpotSpecification field's value.
10064func (s *InstanceFleetProvisioningSpecifications) SetSpotSpecification(v *SpotProvisioningSpecification) *InstanceFleetProvisioningSpecifications {
10065	s.SpotSpecification = v
10066	return s
10067}
10068
10069// Provides status change reason details for the instance fleet.
10070//
10071// The instance fleet configuration is available only in Amazon EMR versions
10072// 4.8.0 and later, excluding 5.0.x versions.
10073type InstanceFleetStateChangeReason struct {
10074	_ struct{} `type:"structure"`
10075
10076	// A code corresponding to the reason the state change occurred.
10077	Code *string `type:"string" enum:"InstanceFleetStateChangeReasonCode"`
10078
10079	// An explanatory message.
10080	Message *string `type:"string"`
10081}
10082
10083// String returns the string representation.
10084//
10085// API parameter values that are decorated as "sensitive" in the API will not
10086// be included in the string output. The member name will be present, but the
10087// value will be replaced with "sensitive".
10088func (s InstanceFleetStateChangeReason) String() string {
10089	return awsutil.Prettify(s)
10090}
10091
10092// GoString returns the string representation.
10093//
10094// API parameter values that are decorated as "sensitive" in the API will not
10095// be included in the string output. The member name will be present, but the
10096// value will be replaced with "sensitive".
10097func (s InstanceFleetStateChangeReason) GoString() string {
10098	return s.String()
10099}
10100
10101// SetCode sets the Code field's value.
10102func (s *InstanceFleetStateChangeReason) SetCode(v string) *InstanceFleetStateChangeReason {
10103	s.Code = &v
10104	return s
10105}
10106
10107// SetMessage sets the Message field's value.
10108func (s *InstanceFleetStateChangeReason) SetMessage(v string) *InstanceFleetStateChangeReason {
10109	s.Message = &v
10110	return s
10111}
10112
10113// The status of the instance fleet.
10114//
10115// The instance fleet configuration is available only in Amazon EMR versions
10116// 4.8.0 and later, excluding 5.0.x versions.
10117type InstanceFleetStatus struct {
10118	_ struct{} `type:"structure"`
10119
10120	// A code representing the instance fleet status.
10121	//
10122	//    * PROVISIONING—The instance fleet is provisioning EC2 resources and
10123	//    is not yet ready to run jobs.
10124	//
10125	//    * BOOTSTRAPPING—EC2 instances and other resources have been provisioned
10126	//    and the bootstrap actions specified for the instances are underway.
10127	//
10128	//    * RUNNING—EC2 instances and other resources are running. They are either
10129	//    executing jobs or waiting to execute jobs.
10130	//
10131	//    * RESIZING—A resize operation is underway. EC2 instances are either
10132	//    being added or removed.
10133	//
10134	//    * SUSPENDED—A resize operation could not complete. Existing EC2 instances
10135	//    are running, but instances can't be added or removed.
10136	//
10137	//    * TERMINATING—The instance fleet is terminating EC2 instances.
10138	//
10139	//    * TERMINATED—The instance fleet is no longer active, and all EC2 instances
10140	//    have been terminated.
10141	State *string `type:"string" enum:"InstanceFleetState"`
10142
10143	// Provides status change reason details for the instance fleet.
10144	StateChangeReason *InstanceFleetStateChangeReason `type:"structure"`
10145
10146	// Provides historical timestamps for the instance fleet, including the time
10147	// of creation, the time it became ready to run jobs, and the time of termination.
10148	Timeline *InstanceFleetTimeline `type:"structure"`
10149}
10150
10151// String returns the string representation.
10152//
10153// API parameter values that are decorated as "sensitive" in the API will not
10154// be included in the string output. The member name will be present, but the
10155// value will be replaced with "sensitive".
10156func (s InstanceFleetStatus) String() string {
10157	return awsutil.Prettify(s)
10158}
10159
10160// GoString returns the string representation.
10161//
10162// API parameter values that are decorated as "sensitive" in the API will not
10163// be included in the string output. The member name will be present, but the
10164// value will be replaced with "sensitive".
10165func (s InstanceFleetStatus) GoString() string {
10166	return s.String()
10167}
10168
10169// SetState sets the State field's value.
10170func (s *InstanceFleetStatus) SetState(v string) *InstanceFleetStatus {
10171	s.State = &v
10172	return s
10173}
10174
10175// SetStateChangeReason sets the StateChangeReason field's value.
10176func (s *InstanceFleetStatus) SetStateChangeReason(v *InstanceFleetStateChangeReason) *InstanceFleetStatus {
10177	s.StateChangeReason = v
10178	return s
10179}
10180
10181// SetTimeline sets the Timeline field's value.
10182func (s *InstanceFleetStatus) SetTimeline(v *InstanceFleetTimeline) *InstanceFleetStatus {
10183	s.Timeline = v
10184	return s
10185}
10186
10187// Provides historical timestamps for the instance fleet, including the time
10188// of creation, the time it became ready to run jobs, and the time of termination.
10189//
10190// The instance fleet configuration is available only in Amazon EMR versions
10191// 4.8.0 and later, excluding 5.0.x versions.
10192type InstanceFleetTimeline struct {
10193	_ struct{} `type:"structure"`
10194
10195	// The time and date the instance fleet was created.
10196	CreationDateTime *time.Time `type:"timestamp"`
10197
10198	// The time and date the instance fleet terminated.
10199	EndDateTime *time.Time `type:"timestamp"`
10200
10201	// The time and date the instance fleet was ready to run jobs.
10202	ReadyDateTime *time.Time `type:"timestamp"`
10203}
10204
10205// String returns the string representation.
10206//
10207// API parameter values that are decorated as "sensitive" in the API will not
10208// be included in the string output. The member name will be present, but the
10209// value will be replaced with "sensitive".
10210func (s InstanceFleetTimeline) String() string {
10211	return awsutil.Prettify(s)
10212}
10213
10214// GoString returns the string representation.
10215//
10216// API parameter values that are decorated as "sensitive" in the API will not
10217// be included in the string output. The member name will be present, but the
10218// value will be replaced with "sensitive".
10219func (s InstanceFleetTimeline) GoString() string {
10220	return s.String()
10221}
10222
10223// SetCreationDateTime sets the CreationDateTime field's value.
10224func (s *InstanceFleetTimeline) SetCreationDateTime(v time.Time) *InstanceFleetTimeline {
10225	s.CreationDateTime = &v
10226	return s
10227}
10228
10229// SetEndDateTime sets the EndDateTime field's value.
10230func (s *InstanceFleetTimeline) SetEndDateTime(v time.Time) *InstanceFleetTimeline {
10231	s.EndDateTime = &v
10232	return s
10233}
10234
10235// SetReadyDateTime sets the ReadyDateTime field's value.
10236func (s *InstanceFleetTimeline) SetReadyDateTime(v time.Time) *InstanceFleetTimeline {
10237	s.ReadyDateTime = &v
10238	return s
10239}
10240
10241// This entity represents an instance group, which is a group of instances that
10242// have common purpose. For example, CORE instance group is used for HDFS.
10243type InstanceGroup struct {
10244	_ struct{} `type:"structure"`
10245
10246	// An automatic scaling policy for a core instance group or task instance group
10247	// in an Amazon EMR cluster. The automatic scaling policy defines how an instance
10248	// group dynamically adds and terminates EC2 instances in response to the value
10249	// of a CloudWatch metric. See PutAutoScalingPolicy.
10250	AutoScalingPolicy *AutoScalingPolicyDescription `type:"structure"`
10251
10252	// If specified, indicates that the instance group uses Spot Instances. This
10253	// is the maximum price you are willing to pay for Spot Instances. Specify OnDemandPrice
10254	// to set the amount equal to the On-Demand price, or specify an amount in USD.
10255	BidPrice *string `type:"string"`
10256
10257	//
10258	// Amazon EMR releases 4.x or later.
10259	//
10260	// The list of configurations supplied for an Amazon EMR cluster instance group.
10261	// You can specify a separate configuration for each instance group (master,
10262	// core, and task).
10263	Configurations []*Configuration `type:"list"`
10264
10265	// The version number of the requested configuration specification for this
10266	// instance group.
10267	ConfigurationsVersion *int64 `type:"long"`
10268
10269	// The custom AMI ID to use for the provisioned instance group.
10270	CustomAmiId *string `type:"string"`
10271
10272	// The EBS block devices that are mapped to this instance group.
10273	EbsBlockDevices []*EbsBlockDevice `type:"list"`
10274
10275	// If the instance group is EBS-optimized. An Amazon EBS-optimized instance
10276	// uses an optimized configuration stack and provides additional, dedicated
10277	// capacity for Amazon EBS I/O.
10278	EbsOptimized *bool `type:"boolean"`
10279
10280	// The identifier of the instance group.
10281	Id *string `type:"string"`
10282
10283	// The type of the instance group. Valid values are MASTER, CORE or TASK.
10284	InstanceGroupType *string `type:"string" enum:"InstanceGroupType"`
10285
10286	// The EC2 instance type for all instances in the instance group.
10287	InstanceType *string `min:"1" type:"string"`
10288
10289	// A list of configurations that were successfully applied for an instance group
10290	// last time.
10291	LastSuccessfullyAppliedConfigurations []*Configuration `type:"list"`
10292
10293	// The version number of a configuration specification that was successfully
10294	// applied for an instance group last time.
10295	LastSuccessfullyAppliedConfigurationsVersion *int64 `type:"long"`
10296
10297	// The marketplace to provision instances for this group. Valid values are ON_DEMAND
10298	// or SPOT.
10299	Market *string `type:"string" enum:"MarketType"`
10300
10301	// The name of the instance group.
10302	Name *string `type:"string"`
10303
10304	// The target number of instances for the instance group.
10305	RequestedInstanceCount *int64 `type:"integer"`
10306
10307	// The number of instances currently running in this instance group.
10308	RunningInstanceCount *int64 `type:"integer"`
10309
10310	// Policy for customizing shrink operations.
10311	ShrinkPolicy *ShrinkPolicy `type:"structure"`
10312
10313	// The current status of the instance group.
10314	Status *InstanceGroupStatus `type:"structure"`
10315}
10316
10317// String returns the string representation.
10318//
10319// API parameter values that are decorated as "sensitive" in the API will not
10320// be included in the string output. The member name will be present, but the
10321// value will be replaced with "sensitive".
10322func (s InstanceGroup) String() string {
10323	return awsutil.Prettify(s)
10324}
10325
10326// GoString returns the string representation.
10327//
10328// API parameter values that are decorated as "sensitive" in the API will not
10329// be included in the string output. The member name will be present, but the
10330// value will be replaced with "sensitive".
10331func (s InstanceGroup) GoString() string {
10332	return s.String()
10333}
10334
10335// SetAutoScalingPolicy sets the AutoScalingPolicy field's value.
10336func (s *InstanceGroup) SetAutoScalingPolicy(v *AutoScalingPolicyDescription) *InstanceGroup {
10337	s.AutoScalingPolicy = v
10338	return s
10339}
10340
10341// SetBidPrice sets the BidPrice field's value.
10342func (s *InstanceGroup) SetBidPrice(v string) *InstanceGroup {
10343	s.BidPrice = &v
10344	return s
10345}
10346
10347// SetConfigurations sets the Configurations field's value.
10348func (s *InstanceGroup) SetConfigurations(v []*Configuration) *InstanceGroup {
10349	s.Configurations = v
10350	return s
10351}
10352
10353// SetConfigurationsVersion sets the ConfigurationsVersion field's value.
10354func (s *InstanceGroup) SetConfigurationsVersion(v int64) *InstanceGroup {
10355	s.ConfigurationsVersion = &v
10356	return s
10357}
10358
10359// SetCustomAmiId sets the CustomAmiId field's value.
10360func (s *InstanceGroup) SetCustomAmiId(v string) *InstanceGroup {
10361	s.CustomAmiId = &v
10362	return s
10363}
10364
10365// SetEbsBlockDevices sets the EbsBlockDevices field's value.
10366func (s *InstanceGroup) SetEbsBlockDevices(v []*EbsBlockDevice) *InstanceGroup {
10367	s.EbsBlockDevices = v
10368	return s
10369}
10370
10371// SetEbsOptimized sets the EbsOptimized field's value.
10372func (s *InstanceGroup) SetEbsOptimized(v bool) *InstanceGroup {
10373	s.EbsOptimized = &v
10374	return s
10375}
10376
10377// SetId sets the Id field's value.
10378func (s *InstanceGroup) SetId(v string) *InstanceGroup {
10379	s.Id = &v
10380	return s
10381}
10382
10383// SetInstanceGroupType sets the InstanceGroupType field's value.
10384func (s *InstanceGroup) SetInstanceGroupType(v string) *InstanceGroup {
10385	s.InstanceGroupType = &v
10386	return s
10387}
10388
10389// SetInstanceType sets the InstanceType field's value.
10390func (s *InstanceGroup) SetInstanceType(v string) *InstanceGroup {
10391	s.InstanceType = &v
10392	return s
10393}
10394
10395// SetLastSuccessfullyAppliedConfigurations sets the LastSuccessfullyAppliedConfigurations field's value.
10396func (s *InstanceGroup) SetLastSuccessfullyAppliedConfigurations(v []*Configuration) *InstanceGroup {
10397	s.LastSuccessfullyAppliedConfigurations = v
10398	return s
10399}
10400
10401// SetLastSuccessfullyAppliedConfigurationsVersion sets the LastSuccessfullyAppliedConfigurationsVersion field's value.
10402func (s *InstanceGroup) SetLastSuccessfullyAppliedConfigurationsVersion(v int64) *InstanceGroup {
10403	s.LastSuccessfullyAppliedConfigurationsVersion = &v
10404	return s
10405}
10406
10407// SetMarket sets the Market field's value.
10408func (s *InstanceGroup) SetMarket(v string) *InstanceGroup {
10409	s.Market = &v
10410	return s
10411}
10412
10413// SetName sets the Name field's value.
10414func (s *InstanceGroup) SetName(v string) *InstanceGroup {
10415	s.Name = &v
10416	return s
10417}
10418
10419// SetRequestedInstanceCount sets the RequestedInstanceCount field's value.
10420func (s *InstanceGroup) SetRequestedInstanceCount(v int64) *InstanceGroup {
10421	s.RequestedInstanceCount = &v
10422	return s
10423}
10424
10425// SetRunningInstanceCount sets the RunningInstanceCount field's value.
10426func (s *InstanceGroup) SetRunningInstanceCount(v int64) *InstanceGroup {
10427	s.RunningInstanceCount = &v
10428	return s
10429}
10430
10431// SetShrinkPolicy sets the ShrinkPolicy field's value.
10432func (s *InstanceGroup) SetShrinkPolicy(v *ShrinkPolicy) *InstanceGroup {
10433	s.ShrinkPolicy = v
10434	return s
10435}
10436
10437// SetStatus sets the Status field's value.
10438func (s *InstanceGroup) SetStatus(v *InstanceGroupStatus) *InstanceGroup {
10439	s.Status = v
10440	return s
10441}
10442
10443// Configuration defining a new instance group.
10444type InstanceGroupConfig struct {
10445	_ struct{} `type:"structure"`
10446
10447	// An automatic scaling policy for a core instance group or task instance group
10448	// in an Amazon EMR cluster. The automatic scaling policy defines how an instance
10449	// group dynamically adds and terminates EC2 instances in response to the value
10450	// of a CloudWatch metric. See PutAutoScalingPolicy.
10451	AutoScalingPolicy *AutoScalingPolicy `type:"structure"`
10452
10453	// If specified, indicates that the instance group uses Spot Instances. This
10454	// is the maximum price you are willing to pay for Spot Instances. Specify OnDemandPrice
10455	// to set the amount equal to the On-Demand price, or specify an amount in USD.
10456	BidPrice *string `type:"string"`
10457
10458	//
10459	// Amazon EMR releases 4.x or later.
10460	//
10461	// The list of configurations supplied for an EMR cluster instance group. You
10462	// can specify a separate configuration for each instance group (master, core,
10463	// and task).
10464	Configurations []*Configuration `type:"list"`
10465
10466	// The custom AMI ID to use for the provisioned instance group.
10467	CustomAmiId *string `type:"string"`
10468
10469	// EBS configurations that will be attached to each EC2 instance in the instance
10470	// group.
10471	EbsConfiguration *EbsConfiguration `type:"structure"`
10472
10473	// Target number of instances for the instance group.
10474	//
10475	// InstanceCount is a required field
10476	InstanceCount *int64 `type:"integer" required:"true"`
10477
10478	// The role of the instance group in the cluster.
10479	//
10480	// InstanceRole is a required field
10481	InstanceRole *string `type:"string" required:"true" enum:"InstanceRoleType"`
10482
10483	// The EC2 instance type for all instances in the instance group.
10484	//
10485	// InstanceType is a required field
10486	InstanceType *string `min:"1" type:"string" required:"true"`
10487
10488	// Market type of the EC2 instances used to create a cluster node.
10489	Market *string `type:"string" enum:"MarketType"`
10490
10491	// Friendly name given to the instance group.
10492	Name *string `type:"string"`
10493}
10494
10495// String returns the string representation.
10496//
10497// API parameter values that are decorated as "sensitive" in the API will not
10498// be included in the string output. The member name will be present, but the
10499// value will be replaced with "sensitive".
10500func (s InstanceGroupConfig) String() string {
10501	return awsutil.Prettify(s)
10502}
10503
10504// GoString returns the string representation.
10505//
10506// API parameter values that are decorated as "sensitive" in the API will not
10507// be included in the string output. The member name will be present, but the
10508// value will be replaced with "sensitive".
10509func (s InstanceGroupConfig) GoString() string {
10510	return s.String()
10511}
10512
10513// Validate inspects the fields of the type to determine if they are valid.
10514func (s *InstanceGroupConfig) Validate() error {
10515	invalidParams := request.ErrInvalidParams{Context: "InstanceGroupConfig"}
10516	if s.InstanceCount == nil {
10517		invalidParams.Add(request.NewErrParamRequired("InstanceCount"))
10518	}
10519	if s.InstanceRole == nil {
10520		invalidParams.Add(request.NewErrParamRequired("InstanceRole"))
10521	}
10522	if s.InstanceType == nil {
10523		invalidParams.Add(request.NewErrParamRequired("InstanceType"))
10524	}
10525	if s.InstanceType != nil && len(*s.InstanceType) < 1 {
10526		invalidParams.Add(request.NewErrParamMinLen("InstanceType", 1))
10527	}
10528	if s.AutoScalingPolicy != nil {
10529		if err := s.AutoScalingPolicy.Validate(); err != nil {
10530			invalidParams.AddNested("AutoScalingPolicy", err.(request.ErrInvalidParams))
10531		}
10532	}
10533	if s.EbsConfiguration != nil {
10534		if err := s.EbsConfiguration.Validate(); err != nil {
10535			invalidParams.AddNested("EbsConfiguration", err.(request.ErrInvalidParams))
10536		}
10537	}
10538
10539	if invalidParams.Len() > 0 {
10540		return invalidParams
10541	}
10542	return nil
10543}
10544
10545// SetAutoScalingPolicy sets the AutoScalingPolicy field's value.
10546func (s *InstanceGroupConfig) SetAutoScalingPolicy(v *AutoScalingPolicy) *InstanceGroupConfig {
10547	s.AutoScalingPolicy = v
10548	return s
10549}
10550
10551// SetBidPrice sets the BidPrice field's value.
10552func (s *InstanceGroupConfig) SetBidPrice(v string) *InstanceGroupConfig {
10553	s.BidPrice = &v
10554	return s
10555}
10556
10557// SetConfigurations sets the Configurations field's value.
10558func (s *InstanceGroupConfig) SetConfigurations(v []*Configuration) *InstanceGroupConfig {
10559	s.Configurations = v
10560	return s
10561}
10562
10563// SetCustomAmiId sets the CustomAmiId field's value.
10564func (s *InstanceGroupConfig) SetCustomAmiId(v string) *InstanceGroupConfig {
10565	s.CustomAmiId = &v
10566	return s
10567}
10568
10569// SetEbsConfiguration sets the EbsConfiguration field's value.
10570func (s *InstanceGroupConfig) SetEbsConfiguration(v *EbsConfiguration) *InstanceGroupConfig {
10571	s.EbsConfiguration = v
10572	return s
10573}
10574
10575// SetInstanceCount sets the InstanceCount field's value.
10576func (s *InstanceGroupConfig) SetInstanceCount(v int64) *InstanceGroupConfig {
10577	s.InstanceCount = &v
10578	return s
10579}
10580
10581// SetInstanceRole sets the InstanceRole field's value.
10582func (s *InstanceGroupConfig) SetInstanceRole(v string) *InstanceGroupConfig {
10583	s.InstanceRole = &v
10584	return s
10585}
10586
10587// SetInstanceType sets the InstanceType field's value.
10588func (s *InstanceGroupConfig) SetInstanceType(v string) *InstanceGroupConfig {
10589	s.InstanceType = &v
10590	return s
10591}
10592
10593// SetMarket sets the Market field's value.
10594func (s *InstanceGroupConfig) SetMarket(v string) *InstanceGroupConfig {
10595	s.Market = &v
10596	return s
10597}
10598
10599// SetName sets the Name field's value.
10600func (s *InstanceGroupConfig) SetName(v string) *InstanceGroupConfig {
10601	s.Name = &v
10602	return s
10603}
10604
10605// Detailed information about an instance group.
10606type InstanceGroupDetail struct {
10607	_ struct{} `type:"structure"`
10608
10609	// If specified, indicates that the instance group uses Spot Instances. This
10610	// is the maximum price you are willing to pay for Spot Instances. Specify OnDemandPrice
10611	// to set the amount equal to the On-Demand price, or specify an amount in USD.
10612	BidPrice *string `type:"string"`
10613
10614	// The date/time the instance group was created.
10615	//
10616	// CreationDateTime is a required field
10617	CreationDateTime *time.Time `type:"timestamp" required:"true"`
10618
10619	// The custom AMI ID to use for the provisioned instance group.
10620	CustomAmiId *string `type:"string"`
10621
10622	// The date/time the instance group was terminated.
10623	EndDateTime *time.Time `type:"timestamp"`
10624
10625	// Unique identifier for the instance group.
10626	InstanceGroupId *string `type:"string"`
10627
10628	// Target number of instances to run in the instance group.
10629	//
10630	// InstanceRequestCount is a required field
10631	InstanceRequestCount *int64 `type:"integer" required:"true"`
10632
10633	// Instance group role in the cluster
10634	//
10635	// InstanceRole is a required field
10636	InstanceRole *string `type:"string" required:"true" enum:"InstanceRoleType"`
10637
10638	// Actual count of running instances.
10639	//
10640	// InstanceRunningCount is a required field
10641	InstanceRunningCount *int64 `type:"integer" required:"true"`
10642
10643	// EC2 instance type.
10644	//
10645	// InstanceType is a required field
10646	InstanceType *string `min:"1" type:"string" required:"true"`
10647
10648	// Details regarding the state of the instance group.
10649	LastStateChangeReason *string `type:"string"`
10650
10651	// Market type of the EC2 instances used to create a cluster node.
10652	//
10653	// Market is a required field
10654	Market *string `type:"string" required:"true" enum:"MarketType"`
10655
10656	// Friendly name for the instance group.
10657	Name *string `type:"string"`
10658
10659	// The date/time the instance group was available to the cluster.
10660	ReadyDateTime *time.Time `type:"timestamp"`
10661
10662	// The date/time the instance group was started.
10663	StartDateTime *time.Time `type:"timestamp"`
10664
10665	// State of instance group. The following values are deprecated: STARTING, TERMINATED,
10666	// and FAILED.
10667	//
10668	// State is a required field
10669	State *string `type:"string" required:"true" enum:"InstanceGroupState"`
10670}
10671
10672// String returns the string representation.
10673//
10674// API parameter values that are decorated as "sensitive" in the API will not
10675// be included in the string output. The member name will be present, but the
10676// value will be replaced with "sensitive".
10677func (s InstanceGroupDetail) String() string {
10678	return awsutil.Prettify(s)
10679}
10680
10681// GoString returns the string representation.
10682//
10683// API parameter values that are decorated as "sensitive" in the API will not
10684// be included in the string output. The member name will be present, but the
10685// value will be replaced with "sensitive".
10686func (s InstanceGroupDetail) GoString() string {
10687	return s.String()
10688}
10689
10690// SetBidPrice sets the BidPrice field's value.
10691func (s *InstanceGroupDetail) SetBidPrice(v string) *InstanceGroupDetail {
10692	s.BidPrice = &v
10693	return s
10694}
10695
10696// SetCreationDateTime sets the CreationDateTime field's value.
10697func (s *InstanceGroupDetail) SetCreationDateTime(v time.Time) *InstanceGroupDetail {
10698	s.CreationDateTime = &v
10699	return s
10700}
10701
10702// SetCustomAmiId sets the CustomAmiId field's value.
10703func (s *InstanceGroupDetail) SetCustomAmiId(v string) *InstanceGroupDetail {
10704	s.CustomAmiId = &v
10705	return s
10706}
10707
10708// SetEndDateTime sets the EndDateTime field's value.
10709func (s *InstanceGroupDetail) SetEndDateTime(v time.Time) *InstanceGroupDetail {
10710	s.EndDateTime = &v
10711	return s
10712}
10713
10714// SetInstanceGroupId sets the InstanceGroupId field's value.
10715func (s *InstanceGroupDetail) SetInstanceGroupId(v string) *InstanceGroupDetail {
10716	s.InstanceGroupId = &v
10717	return s
10718}
10719
10720// SetInstanceRequestCount sets the InstanceRequestCount field's value.
10721func (s *InstanceGroupDetail) SetInstanceRequestCount(v int64) *InstanceGroupDetail {
10722	s.InstanceRequestCount = &v
10723	return s
10724}
10725
10726// SetInstanceRole sets the InstanceRole field's value.
10727func (s *InstanceGroupDetail) SetInstanceRole(v string) *InstanceGroupDetail {
10728	s.InstanceRole = &v
10729	return s
10730}
10731
10732// SetInstanceRunningCount sets the InstanceRunningCount field's value.
10733func (s *InstanceGroupDetail) SetInstanceRunningCount(v int64) *InstanceGroupDetail {
10734	s.InstanceRunningCount = &v
10735	return s
10736}
10737
10738// SetInstanceType sets the InstanceType field's value.
10739func (s *InstanceGroupDetail) SetInstanceType(v string) *InstanceGroupDetail {
10740	s.InstanceType = &v
10741	return s
10742}
10743
10744// SetLastStateChangeReason sets the LastStateChangeReason field's value.
10745func (s *InstanceGroupDetail) SetLastStateChangeReason(v string) *InstanceGroupDetail {
10746	s.LastStateChangeReason = &v
10747	return s
10748}
10749
10750// SetMarket sets the Market field's value.
10751func (s *InstanceGroupDetail) SetMarket(v string) *InstanceGroupDetail {
10752	s.Market = &v
10753	return s
10754}
10755
10756// SetName sets the Name field's value.
10757func (s *InstanceGroupDetail) SetName(v string) *InstanceGroupDetail {
10758	s.Name = &v
10759	return s
10760}
10761
10762// SetReadyDateTime sets the ReadyDateTime field's value.
10763func (s *InstanceGroupDetail) SetReadyDateTime(v time.Time) *InstanceGroupDetail {
10764	s.ReadyDateTime = &v
10765	return s
10766}
10767
10768// SetStartDateTime sets the StartDateTime field's value.
10769func (s *InstanceGroupDetail) SetStartDateTime(v time.Time) *InstanceGroupDetail {
10770	s.StartDateTime = &v
10771	return s
10772}
10773
10774// SetState sets the State field's value.
10775func (s *InstanceGroupDetail) SetState(v string) *InstanceGroupDetail {
10776	s.State = &v
10777	return s
10778}
10779
10780// Modify the size or configurations of an instance group.
10781type InstanceGroupModifyConfig struct {
10782	_ struct{} `type:"structure"`
10783
10784	// A list of new or modified configurations to apply for an instance group.
10785	Configurations []*Configuration `type:"list"`
10786
10787	// The EC2 InstanceIds to terminate. After you terminate the instances, the
10788	// instance group will not return to its original requested size.
10789	EC2InstanceIdsToTerminate []*string `type:"list"`
10790
10791	// Target size for the instance group.
10792	InstanceCount *int64 `type:"integer"`
10793
10794	// Unique ID of the instance group to modify.
10795	//
10796	// InstanceGroupId is a required field
10797	InstanceGroupId *string `type:"string" required:"true"`
10798
10799	// Policy for customizing shrink operations.
10800	ShrinkPolicy *ShrinkPolicy `type:"structure"`
10801}
10802
10803// String returns the string representation.
10804//
10805// API parameter values that are decorated as "sensitive" in the API will not
10806// be included in the string output. The member name will be present, but the
10807// value will be replaced with "sensitive".
10808func (s InstanceGroupModifyConfig) String() string {
10809	return awsutil.Prettify(s)
10810}
10811
10812// GoString returns the string representation.
10813//
10814// API parameter values that are decorated as "sensitive" in the API will not
10815// be included in the string output. The member name will be present, but the
10816// value will be replaced with "sensitive".
10817func (s InstanceGroupModifyConfig) GoString() string {
10818	return s.String()
10819}
10820
10821// Validate inspects the fields of the type to determine if they are valid.
10822func (s *InstanceGroupModifyConfig) Validate() error {
10823	invalidParams := request.ErrInvalidParams{Context: "InstanceGroupModifyConfig"}
10824	if s.InstanceGroupId == nil {
10825		invalidParams.Add(request.NewErrParamRequired("InstanceGroupId"))
10826	}
10827
10828	if invalidParams.Len() > 0 {
10829		return invalidParams
10830	}
10831	return nil
10832}
10833
10834// SetConfigurations sets the Configurations field's value.
10835func (s *InstanceGroupModifyConfig) SetConfigurations(v []*Configuration) *InstanceGroupModifyConfig {
10836	s.Configurations = v
10837	return s
10838}
10839
10840// SetEC2InstanceIdsToTerminate sets the EC2InstanceIdsToTerminate field's value.
10841func (s *InstanceGroupModifyConfig) SetEC2InstanceIdsToTerminate(v []*string) *InstanceGroupModifyConfig {
10842	s.EC2InstanceIdsToTerminate = v
10843	return s
10844}
10845
10846// SetInstanceCount sets the InstanceCount field's value.
10847func (s *InstanceGroupModifyConfig) SetInstanceCount(v int64) *InstanceGroupModifyConfig {
10848	s.InstanceCount = &v
10849	return s
10850}
10851
10852// SetInstanceGroupId sets the InstanceGroupId field's value.
10853func (s *InstanceGroupModifyConfig) SetInstanceGroupId(v string) *InstanceGroupModifyConfig {
10854	s.InstanceGroupId = &v
10855	return s
10856}
10857
10858// SetShrinkPolicy sets the ShrinkPolicy field's value.
10859func (s *InstanceGroupModifyConfig) SetShrinkPolicy(v *ShrinkPolicy) *InstanceGroupModifyConfig {
10860	s.ShrinkPolicy = v
10861	return s
10862}
10863
10864// The status change reason details for the instance group.
10865type InstanceGroupStateChangeReason struct {
10866	_ struct{} `type:"structure"`
10867
10868	// The programmable code for the state change reason.
10869	Code *string `type:"string" enum:"InstanceGroupStateChangeReasonCode"`
10870
10871	// The status change reason description.
10872	Message *string `type:"string"`
10873}
10874
10875// String returns the string representation.
10876//
10877// API parameter values that are decorated as "sensitive" in the API will not
10878// be included in the string output. The member name will be present, but the
10879// value will be replaced with "sensitive".
10880func (s InstanceGroupStateChangeReason) String() string {
10881	return awsutil.Prettify(s)
10882}
10883
10884// GoString returns the string representation.
10885//
10886// API parameter values that are decorated as "sensitive" in the API will not
10887// be included in the string output. The member name will be present, but the
10888// value will be replaced with "sensitive".
10889func (s InstanceGroupStateChangeReason) GoString() string {
10890	return s.String()
10891}
10892
10893// SetCode sets the Code field's value.
10894func (s *InstanceGroupStateChangeReason) SetCode(v string) *InstanceGroupStateChangeReason {
10895	s.Code = &v
10896	return s
10897}
10898
10899// SetMessage sets the Message field's value.
10900func (s *InstanceGroupStateChangeReason) SetMessage(v string) *InstanceGroupStateChangeReason {
10901	s.Message = &v
10902	return s
10903}
10904
10905// The details of the instance group status.
10906type InstanceGroupStatus struct {
10907	_ struct{} `type:"structure"`
10908
10909	// The current state of the instance group.
10910	State *string `type:"string" enum:"InstanceGroupState"`
10911
10912	// The status change reason details for the instance group.
10913	StateChangeReason *InstanceGroupStateChangeReason `type:"structure"`
10914
10915	// The timeline of the instance group status over time.
10916	Timeline *InstanceGroupTimeline `type:"structure"`
10917}
10918
10919// String returns the string representation.
10920//
10921// API parameter values that are decorated as "sensitive" in the API will not
10922// be included in the string output. The member name will be present, but the
10923// value will be replaced with "sensitive".
10924func (s InstanceGroupStatus) String() string {
10925	return awsutil.Prettify(s)
10926}
10927
10928// GoString returns the string representation.
10929//
10930// API parameter values that are decorated as "sensitive" in the API will not
10931// be included in the string output. The member name will be present, but the
10932// value will be replaced with "sensitive".
10933func (s InstanceGroupStatus) GoString() string {
10934	return s.String()
10935}
10936
10937// SetState sets the State field's value.
10938func (s *InstanceGroupStatus) SetState(v string) *InstanceGroupStatus {
10939	s.State = &v
10940	return s
10941}
10942
10943// SetStateChangeReason sets the StateChangeReason field's value.
10944func (s *InstanceGroupStatus) SetStateChangeReason(v *InstanceGroupStateChangeReason) *InstanceGroupStatus {
10945	s.StateChangeReason = v
10946	return s
10947}
10948
10949// SetTimeline sets the Timeline field's value.
10950func (s *InstanceGroupStatus) SetTimeline(v *InstanceGroupTimeline) *InstanceGroupStatus {
10951	s.Timeline = v
10952	return s
10953}
10954
10955// The timeline of the instance group lifecycle.
10956type InstanceGroupTimeline struct {
10957	_ struct{} `type:"structure"`
10958
10959	// The creation date and time of the instance group.
10960	CreationDateTime *time.Time `type:"timestamp"`
10961
10962	// The date and time when the instance group terminated.
10963	EndDateTime *time.Time `type:"timestamp"`
10964
10965	// The date and time when the instance group became ready to perform tasks.
10966	ReadyDateTime *time.Time `type:"timestamp"`
10967}
10968
10969// String returns the string representation.
10970//
10971// API parameter values that are decorated as "sensitive" in the API will not
10972// be included in the string output. The member name will be present, but the
10973// value will be replaced with "sensitive".
10974func (s InstanceGroupTimeline) String() string {
10975	return awsutil.Prettify(s)
10976}
10977
10978// GoString returns the string representation.
10979//
10980// API parameter values that are decorated as "sensitive" in the API will not
10981// be included in the string output. The member name will be present, but the
10982// value will be replaced with "sensitive".
10983func (s InstanceGroupTimeline) GoString() string {
10984	return s.String()
10985}
10986
10987// SetCreationDateTime sets the CreationDateTime field's value.
10988func (s *InstanceGroupTimeline) SetCreationDateTime(v time.Time) *InstanceGroupTimeline {
10989	s.CreationDateTime = &v
10990	return s
10991}
10992
10993// SetEndDateTime sets the EndDateTime field's value.
10994func (s *InstanceGroupTimeline) SetEndDateTime(v time.Time) *InstanceGroupTimeline {
10995	s.EndDateTime = &v
10996	return s
10997}
10998
10999// SetReadyDateTime sets the ReadyDateTime field's value.
11000func (s *InstanceGroupTimeline) SetReadyDateTime(v time.Time) *InstanceGroupTimeline {
11001	s.ReadyDateTime = &v
11002	return s
11003}
11004
11005// Custom policy for requesting termination protection or termination of specific
11006// instances when shrinking an instance group.
11007type InstanceResizePolicy struct {
11008	_ struct{} `type:"structure"`
11009
11010	// Decommissioning timeout override for the specific list of instances to be
11011	// terminated.
11012	InstanceTerminationTimeout *int64 `type:"integer"`
11013
11014	// Specific list of instances to be protected when shrinking an instance group.
11015	InstancesToProtect []*string `type:"list"`
11016
11017	// Specific list of instances to be terminated when shrinking an instance group.
11018	InstancesToTerminate []*string `type:"list"`
11019}
11020
11021// String returns the string representation.
11022//
11023// API parameter values that are decorated as "sensitive" in the API will not
11024// be included in the string output. The member name will be present, but the
11025// value will be replaced with "sensitive".
11026func (s InstanceResizePolicy) String() string {
11027	return awsutil.Prettify(s)
11028}
11029
11030// GoString returns the string representation.
11031//
11032// API parameter values that are decorated as "sensitive" in the API will not
11033// be included in the string output. The member name will be present, but the
11034// value will be replaced with "sensitive".
11035func (s InstanceResizePolicy) GoString() string {
11036	return s.String()
11037}
11038
11039// SetInstanceTerminationTimeout sets the InstanceTerminationTimeout field's value.
11040func (s *InstanceResizePolicy) SetInstanceTerminationTimeout(v int64) *InstanceResizePolicy {
11041	s.InstanceTerminationTimeout = &v
11042	return s
11043}
11044
11045// SetInstancesToProtect sets the InstancesToProtect field's value.
11046func (s *InstanceResizePolicy) SetInstancesToProtect(v []*string) *InstanceResizePolicy {
11047	s.InstancesToProtect = v
11048	return s
11049}
11050
11051// SetInstancesToTerminate sets the InstancesToTerminate field's value.
11052func (s *InstanceResizePolicy) SetInstancesToTerminate(v []*string) *InstanceResizePolicy {
11053	s.InstancesToTerminate = v
11054	return s
11055}
11056
11057// The details of the status change reason for the instance.
11058type InstanceStateChangeReason struct {
11059	_ struct{} `type:"structure"`
11060
11061	// The programmable code for the state change reason.
11062	Code *string `type:"string" enum:"InstanceStateChangeReasonCode"`
11063
11064	// The status change reason description.
11065	Message *string `type:"string"`
11066}
11067
11068// String returns the string representation.
11069//
11070// API parameter values that are decorated as "sensitive" in the API will not
11071// be included in the string output. The member name will be present, but the
11072// value will be replaced with "sensitive".
11073func (s InstanceStateChangeReason) String() string {
11074	return awsutil.Prettify(s)
11075}
11076
11077// GoString returns the string representation.
11078//
11079// API parameter values that are decorated as "sensitive" in the API will not
11080// be included in the string output. The member name will be present, but the
11081// value will be replaced with "sensitive".
11082func (s InstanceStateChangeReason) GoString() string {
11083	return s.String()
11084}
11085
11086// SetCode sets the Code field's value.
11087func (s *InstanceStateChangeReason) SetCode(v string) *InstanceStateChangeReason {
11088	s.Code = &v
11089	return s
11090}
11091
11092// SetMessage sets the Message field's value.
11093func (s *InstanceStateChangeReason) SetMessage(v string) *InstanceStateChangeReason {
11094	s.Message = &v
11095	return s
11096}
11097
11098// The instance status details.
11099type InstanceStatus struct {
11100	_ struct{} `type:"structure"`
11101
11102	// The current state of the instance.
11103	State *string `type:"string" enum:"InstanceState"`
11104
11105	// The details of the status change reason for the instance.
11106	StateChangeReason *InstanceStateChangeReason `type:"structure"`
11107
11108	// The timeline of the instance status over time.
11109	Timeline *InstanceTimeline `type:"structure"`
11110}
11111
11112// String returns the string representation.
11113//
11114// API parameter values that are decorated as "sensitive" in the API will not
11115// be included in the string output. The member name will be present, but the
11116// value will be replaced with "sensitive".
11117func (s InstanceStatus) String() string {
11118	return awsutil.Prettify(s)
11119}
11120
11121// GoString returns the string representation.
11122//
11123// API parameter values that are decorated as "sensitive" in the API will not
11124// be included in the string output. The member name will be present, but the
11125// value will be replaced with "sensitive".
11126func (s InstanceStatus) GoString() string {
11127	return s.String()
11128}
11129
11130// SetState sets the State field's value.
11131func (s *InstanceStatus) SetState(v string) *InstanceStatus {
11132	s.State = &v
11133	return s
11134}
11135
11136// SetStateChangeReason sets the StateChangeReason field's value.
11137func (s *InstanceStatus) SetStateChangeReason(v *InstanceStateChangeReason) *InstanceStatus {
11138	s.StateChangeReason = v
11139	return s
11140}
11141
11142// SetTimeline sets the Timeline field's value.
11143func (s *InstanceStatus) SetTimeline(v *InstanceTimeline) *InstanceStatus {
11144	s.Timeline = v
11145	return s
11146}
11147
11148// The timeline of the instance lifecycle.
11149type InstanceTimeline struct {
11150	_ struct{} `type:"structure"`
11151
11152	// The creation date and time of the instance.
11153	CreationDateTime *time.Time `type:"timestamp"`
11154
11155	// The date and time when the instance was terminated.
11156	EndDateTime *time.Time `type:"timestamp"`
11157
11158	// The date and time when the instance was ready to perform tasks.
11159	ReadyDateTime *time.Time `type:"timestamp"`
11160}
11161
11162// String returns the string representation.
11163//
11164// API parameter values that are decorated as "sensitive" in the API will not
11165// be included in the string output. The member name will be present, but the
11166// value will be replaced with "sensitive".
11167func (s InstanceTimeline) String() string {
11168	return awsutil.Prettify(s)
11169}
11170
11171// GoString returns the string representation.
11172//
11173// API parameter values that are decorated as "sensitive" in the API will not
11174// be included in the string output. The member name will be present, but the
11175// value will be replaced with "sensitive".
11176func (s InstanceTimeline) GoString() string {
11177	return s.String()
11178}
11179
11180// SetCreationDateTime sets the CreationDateTime field's value.
11181func (s *InstanceTimeline) SetCreationDateTime(v time.Time) *InstanceTimeline {
11182	s.CreationDateTime = &v
11183	return s
11184}
11185
11186// SetEndDateTime sets the EndDateTime field's value.
11187func (s *InstanceTimeline) SetEndDateTime(v time.Time) *InstanceTimeline {
11188	s.EndDateTime = &v
11189	return s
11190}
11191
11192// SetReadyDateTime sets the ReadyDateTime field's value.
11193func (s *InstanceTimeline) SetReadyDateTime(v time.Time) *InstanceTimeline {
11194	s.ReadyDateTime = &v
11195	return s
11196}
11197
11198// An instance type configuration for each instance type in an instance fleet,
11199// which determines the EC2 instances Amazon EMR attempts to provision to fulfill
11200// On-Demand and Spot target capacities. When you use an allocation strategy,
11201// you can include a maximum of 30 instance type configurations for a fleet.
11202// For more information about how to use an allocation strategy, see Configure
11203// Instance Fleets (https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-instance-fleet.html).
11204// Without an allocation strategy, you may specify a maximum of five instance
11205// type configurations for a fleet.
11206//
11207// The instance fleet configuration is available only in Amazon EMR versions
11208// 4.8.0 and later, excluding 5.0.x versions.
11209type InstanceTypeConfig struct {
11210	_ struct{} `type:"structure"`
11211
11212	// The bid price for each EC2 Spot Instance type as defined by InstanceType.
11213	// Expressed in USD. If neither BidPrice nor BidPriceAsPercentageOfOnDemandPrice
11214	// is provided, BidPriceAsPercentageOfOnDemandPrice defaults to 100%.
11215	BidPrice *string `type:"string"`
11216
11217	// The bid price, as a percentage of On-Demand price, for each EC2 Spot Instance
11218	// as defined by InstanceType. Expressed as a number (for example, 20 specifies
11219	// 20%). If neither BidPrice nor BidPriceAsPercentageOfOnDemandPrice is provided,
11220	// BidPriceAsPercentageOfOnDemandPrice defaults to 100%.
11221	BidPriceAsPercentageOfOnDemandPrice *float64 `type:"double"`
11222
11223	// A configuration classification that applies when provisioning cluster instances,
11224	// which can include configurations for applications and software that run on
11225	// the cluster.
11226	Configurations []*Configuration `type:"list"`
11227
11228	// The custom AMI ID to use for the instance type.
11229	CustomAmiId *string `type:"string"`
11230
11231	// The configuration of Amazon Elastic Block Store (Amazon EBS) attached to
11232	// each instance as defined by InstanceType.
11233	EbsConfiguration *EbsConfiguration `type:"structure"`
11234
11235	// An EC2 instance type, such as m3.xlarge.
11236	//
11237	// InstanceType is a required field
11238	InstanceType *string `min:"1" type:"string" required:"true"`
11239
11240	// The number of units that a provisioned instance of this type provides toward
11241	// fulfilling the target capacities defined in InstanceFleetConfig. This value
11242	// is 1 for a master instance fleet, and must be 1 or greater for core and task
11243	// instance fleets. Defaults to 1 if not specified.
11244	WeightedCapacity *int64 `type:"integer"`
11245}
11246
11247// String returns the string representation.
11248//
11249// API parameter values that are decorated as "sensitive" in the API will not
11250// be included in the string output. The member name will be present, but the
11251// value will be replaced with "sensitive".
11252func (s InstanceTypeConfig) String() string {
11253	return awsutil.Prettify(s)
11254}
11255
11256// GoString returns the string representation.
11257//
11258// API parameter values that are decorated as "sensitive" in the API will not
11259// be included in the string output. The member name will be present, but the
11260// value will be replaced with "sensitive".
11261func (s InstanceTypeConfig) GoString() string {
11262	return s.String()
11263}
11264
11265// Validate inspects the fields of the type to determine if they are valid.
11266func (s *InstanceTypeConfig) Validate() error {
11267	invalidParams := request.ErrInvalidParams{Context: "InstanceTypeConfig"}
11268	if s.InstanceType == nil {
11269		invalidParams.Add(request.NewErrParamRequired("InstanceType"))
11270	}
11271	if s.InstanceType != nil && len(*s.InstanceType) < 1 {
11272		invalidParams.Add(request.NewErrParamMinLen("InstanceType", 1))
11273	}
11274	if s.EbsConfiguration != nil {
11275		if err := s.EbsConfiguration.Validate(); err != nil {
11276			invalidParams.AddNested("EbsConfiguration", err.(request.ErrInvalidParams))
11277		}
11278	}
11279
11280	if invalidParams.Len() > 0 {
11281		return invalidParams
11282	}
11283	return nil
11284}
11285
11286// SetBidPrice sets the BidPrice field's value.
11287func (s *InstanceTypeConfig) SetBidPrice(v string) *InstanceTypeConfig {
11288	s.BidPrice = &v
11289	return s
11290}
11291
11292// SetBidPriceAsPercentageOfOnDemandPrice sets the BidPriceAsPercentageOfOnDemandPrice field's value.
11293func (s *InstanceTypeConfig) SetBidPriceAsPercentageOfOnDemandPrice(v float64) *InstanceTypeConfig {
11294	s.BidPriceAsPercentageOfOnDemandPrice = &v
11295	return s
11296}
11297
11298// SetConfigurations sets the Configurations field's value.
11299func (s *InstanceTypeConfig) SetConfigurations(v []*Configuration) *InstanceTypeConfig {
11300	s.Configurations = v
11301	return s
11302}
11303
11304// SetCustomAmiId sets the CustomAmiId field's value.
11305func (s *InstanceTypeConfig) SetCustomAmiId(v string) *InstanceTypeConfig {
11306	s.CustomAmiId = &v
11307	return s
11308}
11309
11310// SetEbsConfiguration sets the EbsConfiguration field's value.
11311func (s *InstanceTypeConfig) SetEbsConfiguration(v *EbsConfiguration) *InstanceTypeConfig {
11312	s.EbsConfiguration = v
11313	return s
11314}
11315
11316// SetInstanceType sets the InstanceType field's value.
11317func (s *InstanceTypeConfig) SetInstanceType(v string) *InstanceTypeConfig {
11318	s.InstanceType = &v
11319	return s
11320}
11321
11322// SetWeightedCapacity sets the WeightedCapacity field's value.
11323func (s *InstanceTypeConfig) SetWeightedCapacity(v int64) *InstanceTypeConfig {
11324	s.WeightedCapacity = &v
11325	return s
11326}
11327
11328// The configuration specification for each instance type in an instance fleet.
11329//
11330// The instance fleet configuration is available only in Amazon EMR versions
11331// 4.8.0 and later, excluding 5.0.x versions.
11332type InstanceTypeSpecification struct {
11333	_ struct{} `type:"structure"`
11334
11335	// The bid price for each EC2 Spot Instance type as defined by InstanceType.
11336	// Expressed in USD.
11337	BidPrice *string `type:"string"`
11338
11339	// The bid price, as a percentage of On-Demand price, for each EC2 Spot Instance
11340	// as defined by InstanceType. Expressed as a number (for example, 20 specifies
11341	// 20%).
11342	BidPriceAsPercentageOfOnDemandPrice *float64 `type:"double"`
11343
11344	// A configuration classification that applies when provisioning cluster instances,
11345	// which can include configurations for applications and software bundled with
11346	// Amazon EMR.
11347	Configurations []*Configuration `type:"list"`
11348
11349	// The custom AMI ID to use for the instance type.
11350	CustomAmiId *string `type:"string"`
11351
11352	// The configuration of Amazon Elastic Block Store (Amazon EBS) attached to
11353	// each instance as defined by InstanceType.
11354	EbsBlockDevices []*EbsBlockDevice `type:"list"`
11355
11356	// Evaluates to TRUE when the specified InstanceType is EBS-optimized.
11357	EbsOptimized *bool `type:"boolean"`
11358
11359	// The EC2 instance type, for example m3.xlarge.
11360	InstanceType *string `min:"1" type:"string"`
11361
11362	// The number of units that a provisioned instance of this type provides toward
11363	// fulfilling the target capacities defined in InstanceFleetConfig. Capacity
11364	// values represent performance characteristics such as vCPUs, memory, or I/O.
11365	// If not specified, the default value is 1.
11366	WeightedCapacity *int64 `type:"integer"`
11367}
11368
11369// String returns the string representation.
11370//
11371// API parameter values that are decorated as "sensitive" in the API will not
11372// be included in the string output. The member name will be present, but the
11373// value will be replaced with "sensitive".
11374func (s InstanceTypeSpecification) String() string {
11375	return awsutil.Prettify(s)
11376}
11377
11378// GoString returns the string representation.
11379//
11380// API parameter values that are decorated as "sensitive" in the API will not
11381// be included in the string output. The member name will be present, but the
11382// value will be replaced with "sensitive".
11383func (s InstanceTypeSpecification) GoString() string {
11384	return s.String()
11385}
11386
11387// SetBidPrice sets the BidPrice field's value.
11388func (s *InstanceTypeSpecification) SetBidPrice(v string) *InstanceTypeSpecification {
11389	s.BidPrice = &v
11390	return s
11391}
11392
11393// SetBidPriceAsPercentageOfOnDemandPrice sets the BidPriceAsPercentageOfOnDemandPrice field's value.
11394func (s *InstanceTypeSpecification) SetBidPriceAsPercentageOfOnDemandPrice(v float64) *InstanceTypeSpecification {
11395	s.BidPriceAsPercentageOfOnDemandPrice = &v
11396	return s
11397}
11398
11399// SetConfigurations sets the Configurations field's value.
11400func (s *InstanceTypeSpecification) SetConfigurations(v []*Configuration) *InstanceTypeSpecification {
11401	s.Configurations = v
11402	return s
11403}
11404
11405// SetCustomAmiId sets the CustomAmiId field's value.
11406func (s *InstanceTypeSpecification) SetCustomAmiId(v string) *InstanceTypeSpecification {
11407	s.CustomAmiId = &v
11408	return s
11409}
11410
11411// SetEbsBlockDevices sets the EbsBlockDevices field's value.
11412func (s *InstanceTypeSpecification) SetEbsBlockDevices(v []*EbsBlockDevice) *InstanceTypeSpecification {
11413	s.EbsBlockDevices = v
11414	return s
11415}
11416
11417// SetEbsOptimized sets the EbsOptimized field's value.
11418func (s *InstanceTypeSpecification) SetEbsOptimized(v bool) *InstanceTypeSpecification {
11419	s.EbsOptimized = &v
11420	return s
11421}
11422
11423// SetInstanceType sets the InstanceType field's value.
11424func (s *InstanceTypeSpecification) SetInstanceType(v string) *InstanceTypeSpecification {
11425	s.InstanceType = &v
11426	return s
11427}
11428
11429// SetWeightedCapacity sets the WeightedCapacity field's value.
11430func (s *InstanceTypeSpecification) SetWeightedCapacity(v int64) *InstanceTypeSpecification {
11431	s.WeightedCapacity = &v
11432	return s
11433}
11434
11435// Indicates that an error occurred while processing the request and that the
11436// request was not completed.
11437type InternalServerError struct {
11438	_            struct{}                  `type:"structure"`
11439	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
11440
11441	Message_ *string `locationName:"message" type:"string"`
11442}
11443
11444// String returns the string representation.
11445//
11446// API parameter values that are decorated as "sensitive" in the API will not
11447// be included in the string output. The member name will be present, but the
11448// value will be replaced with "sensitive".
11449func (s InternalServerError) String() string {
11450	return awsutil.Prettify(s)
11451}
11452
11453// GoString returns the string representation.
11454//
11455// API parameter values that are decorated as "sensitive" in the API will not
11456// be included in the string output. The member name will be present, but the
11457// value will be replaced with "sensitive".
11458func (s InternalServerError) GoString() string {
11459	return s.String()
11460}
11461
11462func newErrorInternalServerError(v protocol.ResponseMetadata) error {
11463	return &InternalServerError{
11464		RespMetadata: v,
11465	}
11466}
11467
11468// Code returns the exception type name.
11469func (s *InternalServerError) Code() string {
11470	return "InternalServerError"
11471}
11472
11473// Message returns the exception's message.
11474func (s *InternalServerError) Message() string {
11475	if s.Message_ != nil {
11476		return *s.Message_
11477	}
11478	return ""
11479}
11480
11481// OrigErr always returns nil, satisfies awserr.Error interface.
11482func (s *InternalServerError) OrigErr() error {
11483	return nil
11484}
11485
11486func (s *InternalServerError) Error() string {
11487	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
11488}
11489
11490// Status code returns the HTTP status code for the request's response error.
11491func (s *InternalServerError) StatusCode() int {
11492	return s.RespMetadata.StatusCode
11493}
11494
11495// RequestID returns the service's response RequestID for request.
11496func (s *InternalServerError) RequestID() string {
11497	return s.RespMetadata.RequestID
11498}
11499
11500// This exception occurs when there is an internal failure in the Amazon EMR
11501// service.
11502type InternalServerException struct {
11503	_            struct{}                  `type:"structure"`
11504	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
11505
11506	// The message associated with the exception.
11507	Message_ *string `locationName:"Message" type:"string"`
11508}
11509
11510// String returns the string representation.
11511//
11512// API parameter values that are decorated as "sensitive" in the API will not
11513// be included in the string output. The member name will be present, but the
11514// value will be replaced with "sensitive".
11515func (s InternalServerException) String() string {
11516	return awsutil.Prettify(s)
11517}
11518
11519// GoString returns the string representation.
11520//
11521// API parameter values that are decorated as "sensitive" in the API will not
11522// be included in the string output. The member name will be present, but the
11523// value will be replaced with "sensitive".
11524func (s InternalServerException) GoString() string {
11525	return s.String()
11526}
11527
11528func newErrorInternalServerException(v protocol.ResponseMetadata) error {
11529	return &InternalServerException{
11530		RespMetadata: v,
11531	}
11532}
11533
11534// Code returns the exception type name.
11535func (s *InternalServerException) Code() string {
11536	return "InternalServerException"
11537}
11538
11539// Message returns the exception's message.
11540func (s *InternalServerException) Message() string {
11541	if s.Message_ != nil {
11542		return *s.Message_
11543	}
11544	return ""
11545}
11546
11547// OrigErr always returns nil, satisfies awserr.Error interface.
11548func (s *InternalServerException) OrigErr() error {
11549	return nil
11550}
11551
11552func (s *InternalServerException) Error() string {
11553	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
11554}
11555
11556// Status code returns the HTTP status code for the request's response error.
11557func (s *InternalServerException) StatusCode() int {
11558	return s.RespMetadata.StatusCode
11559}
11560
11561// RequestID returns the service's response RequestID for request.
11562func (s *InternalServerException) RequestID() string {
11563	return s.RespMetadata.RequestID
11564}
11565
11566// This exception occurs when there is something wrong with user input.
11567type InvalidRequestException struct {
11568	_            struct{}                  `type:"structure"`
11569	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
11570
11571	// The error code associated with the exception.
11572	ErrorCode *string `min:"1" type:"string"`
11573
11574	// The message associated with the exception.
11575	Message_ *string `locationName:"Message" type:"string"`
11576}
11577
11578// String returns the string representation.
11579//
11580// API parameter values that are decorated as "sensitive" in the API will not
11581// be included in the string output. The member name will be present, but the
11582// value will be replaced with "sensitive".
11583func (s InvalidRequestException) String() string {
11584	return awsutil.Prettify(s)
11585}
11586
11587// GoString returns the string representation.
11588//
11589// API parameter values that are decorated as "sensitive" in the API will not
11590// be included in the string output. The member name will be present, but the
11591// value will be replaced with "sensitive".
11592func (s InvalidRequestException) GoString() string {
11593	return s.String()
11594}
11595
11596func newErrorInvalidRequestException(v protocol.ResponseMetadata) error {
11597	return &InvalidRequestException{
11598		RespMetadata: v,
11599	}
11600}
11601
11602// Code returns the exception type name.
11603func (s *InvalidRequestException) Code() string {
11604	return "InvalidRequestException"
11605}
11606
11607// Message returns the exception's message.
11608func (s *InvalidRequestException) Message() string {
11609	if s.Message_ != nil {
11610		return *s.Message_
11611	}
11612	return ""
11613}
11614
11615// OrigErr always returns nil, satisfies awserr.Error interface.
11616func (s *InvalidRequestException) OrigErr() error {
11617	return nil
11618}
11619
11620func (s *InvalidRequestException) Error() string {
11621	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
11622}
11623
11624// Status code returns the HTTP status code for the request's response error.
11625func (s *InvalidRequestException) StatusCode() int {
11626	return s.RespMetadata.StatusCode
11627}
11628
11629// RequestID returns the service's response RequestID for request.
11630func (s *InvalidRequestException) RequestID() string {
11631	return s.RespMetadata.RequestID
11632}
11633
11634// A description of a cluster (job flow).
11635type JobFlowDetail struct {
11636	_ struct{} `type:"structure"`
11637
11638	// Applies only to Amazon EMR AMI versions 3.x and 2.x. For Amazon EMR releases
11639	// 4.0 and later, ReleaseLabel is used. To specify a custom AMI, use CustomAmiID.
11640	AmiVersion *string `type:"string"`
11641
11642	// An IAM role for automatic scaling policies. The default role is EMR_AutoScaling_DefaultRole.
11643	// The IAM role provides a way for the automatic scaling feature to get the
11644	// required permissions it needs to launch and terminate EC2 instances in an
11645	// instance group.
11646	AutoScalingRole *string `type:"string"`
11647
11648	// A list of the bootstrap actions run by the job flow.
11649	BootstrapActions []*BootstrapActionDetail `type:"list"`
11650
11651	// Describes the execution status of the job flow.
11652	//
11653	// ExecutionStatusDetail is a required field
11654	ExecutionStatusDetail *JobFlowExecutionStatusDetail `type:"structure" required:"true"`
11655
11656	// Describes the Amazon EC2 instances of the job flow.
11657	//
11658	// Instances is a required field
11659	Instances *JobFlowInstancesDetail `type:"structure" required:"true"`
11660
11661	// The job flow identifier.
11662	//
11663	// JobFlowId is a required field
11664	JobFlowId *string `type:"string" required:"true"`
11665
11666	// The IAM role that was specified when the job flow was launched. The EC2 instances
11667	// of the job flow assume this role.
11668	JobFlowRole *string `type:"string"`
11669
11670	// The KMS key used for encrypting log files. This attribute is only available
11671	// with EMR version 5.30.0 and later, excluding EMR 6.0.0.
11672	LogEncryptionKmsKeyId *string `type:"string"`
11673
11674	// The location in Amazon S3 where log files for the job are stored.
11675	LogUri *string `type:"string"`
11676
11677	// The name of the job flow.
11678	//
11679	// Name is a required field
11680	Name *string `type:"string" required:"true"`
11681
11682	// The way that individual Amazon EC2 instances terminate when an automatic
11683	// scale-in activity occurs or an instance group is resized. TERMINATE_AT_INSTANCE_HOUR
11684	// indicates that Amazon EMR terminates nodes at the instance-hour boundary,
11685	// regardless of when the request to terminate the instance was submitted. This
11686	// option is only available with Amazon EMR 5.1.0 and later and is the default
11687	// for clusters created using that version. TERMINATE_AT_TASK_COMPLETION indicates
11688	// that Amazon EMR adds nodes to a deny list and drains tasks from nodes before
11689	// terminating the Amazon EC2 instances, regardless of the instance-hour boundary.
11690	// With either behavior, Amazon EMR removes the least active nodes first and
11691	// blocks instance termination if it could lead to HDFS corruption. TERMINATE_AT_TASK_COMPLETION
11692	// available only in Amazon EMR version 4.1.0 and later, and is the default
11693	// for versions of Amazon EMR earlier than 5.1.0.
11694	ScaleDownBehavior *string `type:"string" enum:"ScaleDownBehavior"`
11695
11696	// The IAM role that is assumed by the Amazon EMR service to access Amazon Web
11697	// Services resources on your behalf.
11698	ServiceRole *string `type:"string"`
11699
11700	// A list of steps run by the job flow.
11701	Steps []*StepDetail `type:"list"`
11702
11703	// A list of strings set by third-party software when the job flow is launched.
11704	// If you are not using third-party software to manage the job flow, this value
11705	// is empty.
11706	SupportedProducts []*string `type:"list"`
11707
11708	// Indicates whether the cluster is visible to IAM principals in the Amazon
11709	// Web Services account associated with the cluster. When true, IAM principals
11710	// in the Amazon Web Services account can perform EMR cluster actions that their
11711	// IAM policies allow. When false, only the IAM principal that created the cluster
11712	// and the Amazon Web Services account root user can perform EMR actions, regardless
11713	// of IAM permissions policies attached to other IAM principals.
11714	//
11715	// The default value is true if a value is not provided when creating a cluster
11716	// using the EMR API RunJobFlow command, the CLI create-cluster (https://docs.aws.amazon.com/cli/latest/reference/emr/create-cluster.html)
11717	// command, or the Amazon Web Services Management Console. IAM principals that
11718	// are authorized to perform actions on the cluster can use the SetVisibleToAllUsers
11719	// action to change the value on a running cluster. For more information, see
11720	// 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)
11721	// in the Amazon EMRManagement Guide.
11722	VisibleToAllUsers *bool `type:"boolean"`
11723}
11724
11725// String returns the string representation.
11726//
11727// API parameter values that are decorated as "sensitive" in the API will not
11728// be included in the string output. The member name will be present, but the
11729// value will be replaced with "sensitive".
11730func (s JobFlowDetail) String() string {
11731	return awsutil.Prettify(s)
11732}
11733
11734// GoString returns the string representation.
11735//
11736// API parameter values that are decorated as "sensitive" in the API will not
11737// be included in the string output. The member name will be present, but the
11738// value will be replaced with "sensitive".
11739func (s JobFlowDetail) GoString() string {
11740	return s.String()
11741}
11742
11743// SetAmiVersion sets the AmiVersion field's value.
11744func (s *JobFlowDetail) SetAmiVersion(v string) *JobFlowDetail {
11745	s.AmiVersion = &v
11746	return s
11747}
11748
11749// SetAutoScalingRole sets the AutoScalingRole field's value.
11750func (s *JobFlowDetail) SetAutoScalingRole(v string) *JobFlowDetail {
11751	s.AutoScalingRole = &v
11752	return s
11753}
11754
11755// SetBootstrapActions sets the BootstrapActions field's value.
11756func (s *JobFlowDetail) SetBootstrapActions(v []*BootstrapActionDetail) *JobFlowDetail {
11757	s.BootstrapActions = v
11758	return s
11759}
11760
11761// SetExecutionStatusDetail sets the ExecutionStatusDetail field's value.
11762func (s *JobFlowDetail) SetExecutionStatusDetail(v *JobFlowExecutionStatusDetail) *JobFlowDetail {
11763	s.ExecutionStatusDetail = v
11764	return s
11765}
11766
11767// SetInstances sets the Instances field's value.
11768func (s *JobFlowDetail) SetInstances(v *JobFlowInstancesDetail) *JobFlowDetail {
11769	s.Instances = v
11770	return s
11771}
11772
11773// SetJobFlowId sets the JobFlowId field's value.
11774func (s *JobFlowDetail) SetJobFlowId(v string) *JobFlowDetail {
11775	s.JobFlowId = &v
11776	return s
11777}
11778
11779// SetJobFlowRole sets the JobFlowRole field's value.
11780func (s *JobFlowDetail) SetJobFlowRole(v string) *JobFlowDetail {
11781	s.JobFlowRole = &v
11782	return s
11783}
11784
11785// SetLogEncryptionKmsKeyId sets the LogEncryptionKmsKeyId field's value.
11786func (s *JobFlowDetail) SetLogEncryptionKmsKeyId(v string) *JobFlowDetail {
11787	s.LogEncryptionKmsKeyId = &v
11788	return s
11789}
11790
11791// SetLogUri sets the LogUri field's value.
11792func (s *JobFlowDetail) SetLogUri(v string) *JobFlowDetail {
11793	s.LogUri = &v
11794	return s
11795}
11796
11797// SetName sets the Name field's value.
11798func (s *JobFlowDetail) SetName(v string) *JobFlowDetail {
11799	s.Name = &v
11800	return s
11801}
11802
11803// SetScaleDownBehavior sets the ScaleDownBehavior field's value.
11804func (s *JobFlowDetail) SetScaleDownBehavior(v string) *JobFlowDetail {
11805	s.ScaleDownBehavior = &v
11806	return s
11807}
11808
11809// SetServiceRole sets the ServiceRole field's value.
11810func (s *JobFlowDetail) SetServiceRole(v string) *JobFlowDetail {
11811	s.ServiceRole = &v
11812	return s
11813}
11814
11815// SetSteps sets the Steps field's value.
11816func (s *JobFlowDetail) SetSteps(v []*StepDetail) *JobFlowDetail {
11817	s.Steps = v
11818	return s
11819}
11820
11821// SetSupportedProducts sets the SupportedProducts field's value.
11822func (s *JobFlowDetail) SetSupportedProducts(v []*string) *JobFlowDetail {
11823	s.SupportedProducts = v
11824	return s
11825}
11826
11827// SetVisibleToAllUsers sets the VisibleToAllUsers field's value.
11828func (s *JobFlowDetail) SetVisibleToAllUsers(v bool) *JobFlowDetail {
11829	s.VisibleToAllUsers = &v
11830	return s
11831}
11832
11833// Describes the status of the cluster (job flow).
11834type JobFlowExecutionStatusDetail struct {
11835	_ struct{} `type:"structure"`
11836
11837	// The creation date and time of the job flow.
11838	//
11839	// CreationDateTime is a required field
11840	CreationDateTime *time.Time `type:"timestamp" required:"true"`
11841
11842	// The completion date and time of the job flow.
11843	EndDateTime *time.Time `type:"timestamp"`
11844
11845	// Description of the job flow last changed state.
11846	LastStateChangeReason *string `type:"string"`
11847
11848	// The date and time when the job flow was ready to start running bootstrap
11849	// actions.
11850	ReadyDateTime *time.Time `type:"timestamp"`
11851
11852	// The start date and time of the job flow.
11853	StartDateTime *time.Time `type:"timestamp"`
11854
11855	// The state of the job flow.
11856	//
11857	// State is a required field
11858	State *string `type:"string" required:"true" enum:"JobFlowExecutionState"`
11859}
11860
11861// String returns the string representation.
11862//
11863// API parameter values that are decorated as "sensitive" in the API will not
11864// be included in the string output. The member name will be present, but the
11865// value will be replaced with "sensitive".
11866func (s JobFlowExecutionStatusDetail) String() string {
11867	return awsutil.Prettify(s)
11868}
11869
11870// GoString returns the string representation.
11871//
11872// API parameter values that are decorated as "sensitive" in the API will not
11873// be included in the string output. The member name will be present, but the
11874// value will be replaced with "sensitive".
11875func (s JobFlowExecutionStatusDetail) GoString() string {
11876	return s.String()
11877}
11878
11879// SetCreationDateTime sets the CreationDateTime field's value.
11880func (s *JobFlowExecutionStatusDetail) SetCreationDateTime(v time.Time) *JobFlowExecutionStatusDetail {
11881	s.CreationDateTime = &v
11882	return s
11883}
11884
11885// SetEndDateTime sets the EndDateTime field's value.
11886func (s *JobFlowExecutionStatusDetail) SetEndDateTime(v time.Time) *JobFlowExecutionStatusDetail {
11887	s.EndDateTime = &v
11888	return s
11889}
11890
11891// SetLastStateChangeReason sets the LastStateChangeReason field's value.
11892func (s *JobFlowExecutionStatusDetail) SetLastStateChangeReason(v string) *JobFlowExecutionStatusDetail {
11893	s.LastStateChangeReason = &v
11894	return s
11895}
11896
11897// SetReadyDateTime sets the ReadyDateTime field's value.
11898func (s *JobFlowExecutionStatusDetail) SetReadyDateTime(v time.Time) *JobFlowExecutionStatusDetail {
11899	s.ReadyDateTime = &v
11900	return s
11901}
11902
11903// SetStartDateTime sets the StartDateTime field's value.
11904func (s *JobFlowExecutionStatusDetail) SetStartDateTime(v time.Time) *JobFlowExecutionStatusDetail {
11905	s.StartDateTime = &v
11906	return s
11907}
11908
11909// SetState sets the State field's value.
11910func (s *JobFlowExecutionStatusDetail) SetState(v string) *JobFlowExecutionStatusDetail {
11911	s.State = &v
11912	return s
11913}
11914
11915// A description of the Amazon EC2 instance on which the cluster (job flow)
11916// runs. A valid JobFlowInstancesConfig must contain either InstanceGroups or
11917// InstanceFleets. They cannot be used together. You may also have MasterInstanceType,
11918// SlaveInstanceType, and InstanceCount (all three must be present), but we
11919// don't recommend this configuration.
11920type JobFlowInstancesConfig struct {
11921	_ struct{} `type:"structure"`
11922
11923	// A list of additional Amazon EC2 security group IDs for the master node.
11924	AdditionalMasterSecurityGroups []*string `type:"list"`
11925
11926	// A list of additional Amazon EC2 security group IDs for the core and task
11927	// nodes.
11928	AdditionalSlaveSecurityGroups []*string `type:"list"`
11929
11930	// The name of the EC2 key pair that can be used to connect to the master node
11931	// using SSH as the user called "hadoop."
11932	Ec2KeyName *string `type:"string"`
11933
11934	// Applies to clusters that use the uniform instance group configuration. To
11935	// launch the cluster in Amazon Virtual Private Cloud (Amazon VPC), set this
11936	// parameter to the identifier of the Amazon VPC subnet where you want the cluster
11937	// to launch. If you do not specify this value and your account supports EC2-Classic,
11938	// the cluster launches in EC2-Classic.
11939	Ec2SubnetId *string `type:"string"`
11940
11941	// Applies to clusters that use the instance fleet configuration. When multiple
11942	// EC2 subnet IDs are specified, Amazon EMR evaluates them and launches instances
11943	// in the optimal subnet.
11944	//
11945	// The instance fleet configuration is available only in Amazon EMR versions
11946	// 4.8.0 and later, excluding 5.0.x versions.
11947	Ec2SubnetIds []*string `type:"list"`
11948
11949	// The identifier of the Amazon EC2 security group for the master node. If you
11950	// specify EmrManagedMasterSecurityGroup, you must also specify EmrManagedSlaveSecurityGroup.
11951	EmrManagedMasterSecurityGroup *string `type:"string"`
11952
11953	// The identifier of the Amazon EC2 security group for the core and task nodes.
11954	// If you specify EmrManagedSlaveSecurityGroup, you must also specify EmrManagedMasterSecurityGroup.
11955	EmrManagedSlaveSecurityGroup *string `type:"string"`
11956
11957	// Applies only to Amazon EMR release versions earlier than 4.0. The Hadoop
11958	// version for the cluster. Valid inputs are "0.18" (no longer maintained),
11959	// "0.20" (no longer maintained), "0.20.205" (no longer maintained), "1.0.3",
11960	// "2.2.0", or "2.4.0". If you do not set this value, the default of 0.18 is
11961	// used, unless the AmiVersion parameter is set in the RunJobFlow call, in which
11962	// case the default version of Hadoop for that AMI version is used.
11963	HadoopVersion *string `type:"string"`
11964
11965	// The number of EC2 instances in the cluster.
11966	InstanceCount *int64 `type:"integer"`
11967
11968	//
11969	// The instance fleet configuration is available only in Amazon EMR versions
11970	// 4.8.0 and later, excluding 5.0.x versions.
11971	//
11972	// Describes the EC2 instances and instance configurations for clusters that
11973	// use the instance fleet configuration.
11974	InstanceFleets []*InstanceFleetConfig `type:"list"`
11975
11976	// Configuration for the instance groups in a cluster.
11977	InstanceGroups []*InstanceGroupConfig `type:"list"`
11978
11979	// Specifies whether the cluster should remain available after completing all
11980	// steps. Defaults to true. For more information about configuring cluster termination,
11981	// see Control Cluster Termination (https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-termination.html)
11982	// in the EMR Management Guide.
11983	KeepJobFlowAliveWhenNoSteps *bool `type:"boolean"`
11984
11985	// The EC2 instance type of the master node.
11986	MasterInstanceType *string `min:"1" type:"string"`
11987
11988	// The Availability Zone in which the cluster runs.
11989	Placement *PlacementType `type:"structure"`
11990
11991	// The identifier of the Amazon EC2 security group for the Amazon EMR service
11992	// to access clusters in VPC private subnets.
11993	ServiceAccessSecurityGroup *string `type:"string"`
11994
11995	// The EC2 instance type of the core and task nodes.
11996	SlaveInstanceType *string `min:"1" type:"string"`
11997
11998	// Specifies whether to lock the cluster to prevent the Amazon EC2 instances
11999	// from being terminated by API call, user intervention, or in the event of
12000	// a job-flow error.
12001	TerminationProtected *bool `type:"boolean"`
12002}
12003
12004// String returns the string representation.
12005//
12006// API parameter values that are decorated as "sensitive" in the API will not
12007// be included in the string output. The member name will be present, but the
12008// value will be replaced with "sensitive".
12009func (s JobFlowInstancesConfig) String() string {
12010	return awsutil.Prettify(s)
12011}
12012
12013// GoString returns the string representation.
12014//
12015// API parameter values that are decorated as "sensitive" in the API will not
12016// be included in the string output. The member name will be present, but the
12017// value will be replaced with "sensitive".
12018func (s JobFlowInstancesConfig) GoString() string {
12019	return s.String()
12020}
12021
12022// Validate inspects the fields of the type to determine if they are valid.
12023func (s *JobFlowInstancesConfig) Validate() error {
12024	invalidParams := request.ErrInvalidParams{Context: "JobFlowInstancesConfig"}
12025	if s.MasterInstanceType != nil && len(*s.MasterInstanceType) < 1 {
12026		invalidParams.Add(request.NewErrParamMinLen("MasterInstanceType", 1))
12027	}
12028	if s.SlaveInstanceType != nil && len(*s.SlaveInstanceType) < 1 {
12029		invalidParams.Add(request.NewErrParamMinLen("SlaveInstanceType", 1))
12030	}
12031	if s.InstanceFleets != nil {
12032		for i, v := range s.InstanceFleets {
12033			if v == nil {
12034				continue
12035			}
12036			if err := v.Validate(); err != nil {
12037				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "InstanceFleets", i), err.(request.ErrInvalidParams))
12038			}
12039		}
12040	}
12041	if s.InstanceGroups != nil {
12042		for i, v := range s.InstanceGroups {
12043			if v == nil {
12044				continue
12045			}
12046			if err := v.Validate(); err != nil {
12047				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "InstanceGroups", i), err.(request.ErrInvalidParams))
12048			}
12049		}
12050	}
12051
12052	if invalidParams.Len() > 0 {
12053		return invalidParams
12054	}
12055	return nil
12056}
12057
12058// SetAdditionalMasterSecurityGroups sets the AdditionalMasterSecurityGroups field's value.
12059func (s *JobFlowInstancesConfig) SetAdditionalMasterSecurityGroups(v []*string) *JobFlowInstancesConfig {
12060	s.AdditionalMasterSecurityGroups = v
12061	return s
12062}
12063
12064// SetAdditionalSlaveSecurityGroups sets the AdditionalSlaveSecurityGroups field's value.
12065func (s *JobFlowInstancesConfig) SetAdditionalSlaveSecurityGroups(v []*string) *JobFlowInstancesConfig {
12066	s.AdditionalSlaveSecurityGroups = v
12067	return s
12068}
12069
12070// SetEc2KeyName sets the Ec2KeyName field's value.
12071func (s *JobFlowInstancesConfig) SetEc2KeyName(v string) *JobFlowInstancesConfig {
12072	s.Ec2KeyName = &v
12073	return s
12074}
12075
12076// SetEc2SubnetId sets the Ec2SubnetId field's value.
12077func (s *JobFlowInstancesConfig) SetEc2SubnetId(v string) *JobFlowInstancesConfig {
12078	s.Ec2SubnetId = &v
12079	return s
12080}
12081
12082// SetEc2SubnetIds sets the Ec2SubnetIds field's value.
12083func (s *JobFlowInstancesConfig) SetEc2SubnetIds(v []*string) *JobFlowInstancesConfig {
12084	s.Ec2SubnetIds = v
12085	return s
12086}
12087
12088// SetEmrManagedMasterSecurityGroup sets the EmrManagedMasterSecurityGroup field's value.
12089func (s *JobFlowInstancesConfig) SetEmrManagedMasterSecurityGroup(v string) *JobFlowInstancesConfig {
12090	s.EmrManagedMasterSecurityGroup = &v
12091	return s
12092}
12093
12094// SetEmrManagedSlaveSecurityGroup sets the EmrManagedSlaveSecurityGroup field's value.
12095func (s *JobFlowInstancesConfig) SetEmrManagedSlaveSecurityGroup(v string) *JobFlowInstancesConfig {
12096	s.EmrManagedSlaveSecurityGroup = &v
12097	return s
12098}
12099
12100// SetHadoopVersion sets the HadoopVersion field's value.
12101func (s *JobFlowInstancesConfig) SetHadoopVersion(v string) *JobFlowInstancesConfig {
12102	s.HadoopVersion = &v
12103	return s
12104}
12105
12106// SetInstanceCount sets the InstanceCount field's value.
12107func (s *JobFlowInstancesConfig) SetInstanceCount(v int64) *JobFlowInstancesConfig {
12108	s.InstanceCount = &v
12109	return s
12110}
12111
12112// SetInstanceFleets sets the InstanceFleets field's value.
12113func (s *JobFlowInstancesConfig) SetInstanceFleets(v []*InstanceFleetConfig) *JobFlowInstancesConfig {
12114	s.InstanceFleets = v
12115	return s
12116}
12117
12118// SetInstanceGroups sets the InstanceGroups field's value.
12119func (s *JobFlowInstancesConfig) SetInstanceGroups(v []*InstanceGroupConfig) *JobFlowInstancesConfig {
12120	s.InstanceGroups = v
12121	return s
12122}
12123
12124// SetKeepJobFlowAliveWhenNoSteps sets the KeepJobFlowAliveWhenNoSteps field's value.
12125func (s *JobFlowInstancesConfig) SetKeepJobFlowAliveWhenNoSteps(v bool) *JobFlowInstancesConfig {
12126	s.KeepJobFlowAliveWhenNoSteps = &v
12127	return s
12128}
12129
12130// SetMasterInstanceType sets the MasterInstanceType field's value.
12131func (s *JobFlowInstancesConfig) SetMasterInstanceType(v string) *JobFlowInstancesConfig {
12132	s.MasterInstanceType = &v
12133	return s
12134}
12135
12136// SetPlacement sets the Placement field's value.
12137func (s *JobFlowInstancesConfig) SetPlacement(v *PlacementType) *JobFlowInstancesConfig {
12138	s.Placement = v
12139	return s
12140}
12141
12142// SetServiceAccessSecurityGroup sets the ServiceAccessSecurityGroup field's value.
12143func (s *JobFlowInstancesConfig) SetServiceAccessSecurityGroup(v string) *JobFlowInstancesConfig {
12144	s.ServiceAccessSecurityGroup = &v
12145	return s
12146}
12147
12148// SetSlaveInstanceType sets the SlaveInstanceType field's value.
12149func (s *JobFlowInstancesConfig) SetSlaveInstanceType(v string) *JobFlowInstancesConfig {
12150	s.SlaveInstanceType = &v
12151	return s
12152}
12153
12154// SetTerminationProtected sets the TerminationProtected field's value.
12155func (s *JobFlowInstancesConfig) SetTerminationProtected(v bool) *JobFlowInstancesConfig {
12156	s.TerminationProtected = &v
12157	return s
12158}
12159
12160// Specify the type of Amazon EC2 instances that the cluster (job flow) runs
12161// on.
12162type JobFlowInstancesDetail struct {
12163	_ struct{} `type:"structure"`
12164
12165	// The name of an Amazon EC2 key pair that can be used to connect to the master
12166	// node using SSH.
12167	Ec2KeyName *string `type:"string"`
12168
12169	// For clusters launched within Amazon Virtual Private Cloud, this is the identifier
12170	// of the subnet where the cluster was launched.
12171	Ec2SubnetId *string `type:"string"`
12172
12173	// The Hadoop version for the cluster.
12174	HadoopVersion *string `type:"string"`
12175
12176	// The number of Amazon EC2 instances in the cluster. If the value is 1, the
12177	// same instance serves as both the master and core and task node. If the value
12178	// is greater than 1, one instance is the master node and all others are core
12179	// and task nodes.
12180	//
12181	// InstanceCount is a required field
12182	InstanceCount *int64 `type:"integer" required:"true"`
12183
12184	// Details about the instance groups in a cluster.
12185	InstanceGroups []*InstanceGroupDetail `type:"list"`
12186
12187	// Specifies whether the cluster should remain available after completing all
12188	// steps.
12189	KeepJobFlowAliveWhenNoSteps *bool `type:"boolean"`
12190
12191	// The Amazon EC2 instance identifier of the master node.
12192	MasterInstanceId *string `type:"string"`
12193
12194	// The Amazon EC2 master node instance type.
12195	//
12196	// MasterInstanceType is a required field
12197	MasterInstanceType *string `min:"1" type:"string" required:"true"`
12198
12199	// The DNS name of the master node. If the cluster is on a private subnet, this
12200	// is the private DNS name. On a public subnet, this is the public DNS name.
12201	MasterPublicDnsName *string `type:"string"`
12202
12203	// An approximation of the cost of the cluster, represented in m1.small/hours.
12204	// This value is increased one time for every hour that an m1.small instance
12205	// runs. Larger instances are weighted more heavily, so an Amazon EC2 instance
12206	// that is roughly four times more expensive would result in the normalized
12207	// instance hours being increased incrementally four times. This result is only
12208	// an approximation and does not reflect the actual billing rate.
12209	NormalizedInstanceHours *int64 `type:"integer"`
12210
12211	// The Amazon EC2 Availability Zone for the cluster.
12212	Placement *PlacementType `type:"structure"`
12213
12214	// The Amazon EC2 core and task node instance type.
12215	//
12216	// SlaveInstanceType is a required field
12217	SlaveInstanceType *string `min:"1" type:"string" required:"true"`
12218
12219	// Specifies whether the Amazon EC2 instances in the cluster are protected from
12220	// termination by API calls, user intervention, or in the event of a job-flow
12221	// error.
12222	TerminationProtected *bool `type:"boolean"`
12223}
12224
12225// String returns the string representation.
12226//
12227// API parameter values that are decorated as "sensitive" in the API will not
12228// be included in the string output. The member name will be present, but the
12229// value will be replaced with "sensitive".
12230func (s JobFlowInstancesDetail) String() string {
12231	return awsutil.Prettify(s)
12232}
12233
12234// GoString returns the string representation.
12235//
12236// API parameter values that are decorated as "sensitive" in the API will not
12237// be included in the string output. The member name will be present, but the
12238// value will be replaced with "sensitive".
12239func (s JobFlowInstancesDetail) GoString() string {
12240	return s.String()
12241}
12242
12243// SetEc2KeyName sets the Ec2KeyName field's value.
12244func (s *JobFlowInstancesDetail) SetEc2KeyName(v string) *JobFlowInstancesDetail {
12245	s.Ec2KeyName = &v
12246	return s
12247}
12248
12249// SetEc2SubnetId sets the Ec2SubnetId field's value.
12250func (s *JobFlowInstancesDetail) SetEc2SubnetId(v string) *JobFlowInstancesDetail {
12251	s.Ec2SubnetId = &v
12252	return s
12253}
12254
12255// SetHadoopVersion sets the HadoopVersion field's value.
12256func (s *JobFlowInstancesDetail) SetHadoopVersion(v string) *JobFlowInstancesDetail {
12257	s.HadoopVersion = &v
12258	return s
12259}
12260
12261// SetInstanceCount sets the InstanceCount field's value.
12262func (s *JobFlowInstancesDetail) SetInstanceCount(v int64) *JobFlowInstancesDetail {
12263	s.InstanceCount = &v
12264	return s
12265}
12266
12267// SetInstanceGroups sets the InstanceGroups field's value.
12268func (s *JobFlowInstancesDetail) SetInstanceGroups(v []*InstanceGroupDetail) *JobFlowInstancesDetail {
12269	s.InstanceGroups = v
12270	return s
12271}
12272
12273// SetKeepJobFlowAliveWhenNoSteps sets the KeepJobFlowAliveWhenNoSteps field's value.
12274func (s *JobFlowInstancesDetail) SetKeepJobFlowAliveWhenNoSteps(v bool) *JobFlowInstancesDetail {
12275	s.KeepJobFlowAliveWhenNoSteps = &v
12276	return s
12277}
12278
12279// SetMasterInstanceId sets the MasterInstanceId field's value.
12280func (s *JobFlowInstancesDetail) SetMasterInstanceId(v string) *JobFlowInstancesDetail {
12281	s.MasterInstanceId = &v
12282	return s
12283}
12284
12285// SetMasterInstanceType sets the MasterInstanceType field's value.
12286func (s *JobFlowInstancesDetail) SetMasterInstanceType(v string) *JobFlowInstancesDetail {
12287	s.MasterInstanceType = &v
12288	return s
12289}
12290
12291// SetMasterPublicDnsName sets the MasterPublicDnsName field's value.
12292func (s *JobFlowInstancesDetail) SetMasterPublicDnsName(v string) *JobFlowInstancesDetail {
12293	s.MasterPublicDnsName = &v
12294	return s
12295}
12296
12297// SetNormalizedInstanceHours sets the NormalizedInstanceHours field's value.
12298func (s *JobFlowInstancesDetail) SetNormalizedInstanceHours(v int64) *JobFlowInstancesDetail {
12299	s.NormalizedInstanceHours = &v
12300	return s
12301}
12302
12303// SetPlacement sets the Placement field's value.
12304func (s *JobFlowInstancesDetail) SetPlacement(v *PlacementType) *JobFlowInstancesDetail {
12305	s.Placement = v
12306	return s
12307}
12308
12309// SetSlaveInstanceType sets the SlaveInstanceType field's value.
12310func (s *JobFlowInstancesDetail) SetSlaveInstanceType(v string) *JobFlowInstancesDetail {
12311	s.SlaveInstanceType = &v
12312	return s
12313}
12314
12315// SetTerminationProtected sets the TerminationProtected field's value.
12316func (s *JobFlowInstancesDetail) SetTerminationProtected(v bool) *JobFlowInstancesDetail {
12317	s.TerminationProtected = &v
12318	return s
12319}
12320
12321// Attributes for Kerberos configuration when Kerberos authentication is enabled
12322// using a security configuration. For more information see Use Kerberos Authentication
12323// (https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-kerberos.html)
12324// in the Amazon EMR Management Guide.
12325type KerberosAttributes struct {
12326	_ struct{} `type:"structure"`
12327
12328	// The Active Directory password for ADDomainJoinUser.
12329	ADDomainJoinPassword *string `type:"string"`
12330
12331	// Required only when establishing a cross-realm trust with an Active Directory
12332	// domain. A user with sufficient privileges to join resources to the domain.
12333	ADDomainJoinUser *string `type:"string"`
12334
12335	// Required only when establishing a cross-realm trust with a KDC in a different
12336	// realm. The cross-realm principal password, which must be identical across
12337	// realms.
12338	CrossRealmTrustPrincipalPassword *string `type:"string"`
12339
12340	// The password used within the cluster for the kadmin service on the cluster-dedicated
12341	// KDC, which maintains Kerberos principals, password policies, and keytabs
12342	// for the cluster.
12343	//
12344	// KdcAdminPassword is a required field
12345	KdcAdminPassword *string `type:"string" required:"true"`
12346
12347	// The name of the Kerberos realm to which all nodes in a cluster belong. For
12348	// example, EC2.INTERNAL.
12349	//
12350	// Realm is a required field
12351	Realm *string `type:"string" required:"true"`
12352}
12353
12354// String returns the string representation.
12355//
12356// API parameter values that are decorated as "sensitive" in the API will not
12357// be included in the string output. The member name will be present, but the
12358// value will be replaced with "sensitive".
12359func (s KerberosAttributes) String() string {
12360	return awsutil.Prettify(s)
12361}
12362
12363// GoString returns the string representation.
12364//
12365// API parameter values that are decorated as "sensitive" in the API will not
12366// be included in the string output. The member name will be present, but the
12367// value will be replaced with "sensitive".
12368func (s KerberosAttributes) GoString() string {
12369	return s.String()
12370}
12371
12372// Validate inspects the fields of the type to determine if they are valid.
12373func (s *KerberosAttributes) Validate() error {
12374	invalidParams := request.ErrInvalidParams{Context: "KerberosAttributes"}
12375	if s.KdcAdminPassword == nil {
12376		invalidParams.Add(request.NewErrParamRequired("KdcAdminPassword"))
12377	}
12378	if s.Realm == nil {
12379		invalidParams.Add(request.NewErrParamRequired("Realm"))
12380	}
12381
12382	if invalidParams.Len() > 0 {
12383		return invalidParams
12384	}
12385	return nil
12386}
12387
12388// SetADDomainJoinPassword sets the ADDomainJoinPassword field's value.
12389func (s *KerberosAttributes) SetADDomainJoinPassword(v string) *KerberosAttributes {
12390	s.ADDomainJoinPassword = &v
12391	return s
12392}
12393
12394// SetADDomainJoinUser sets the ADDomainJoinUser field's value.
12395func (s *KerberosAttributes) SetADDomainJoinUser(v string) *KerberosAttributes {
12396	s.ADDomainJoinUser = &v
12397	return s
12398}
12399
12400// SetCrossRealmTrustPrincipalPassword sets the CrossRealmTrustPrincipalPassword field's value.
12401func (s *KerberosAttributes) SetCrossRealmTrustPrincipalPassword(v string) *KerberosAttributes {
12402	s.CrossRealmTrustPrincipalPassword = &v
12403	return s
12404}
12405
12406// SetKdcAdminPassword sets the KdcAdminPassword field's value.
12407func (s *KerberosAttributes) SetKdcAdminPassword(v string) *KerberosAttributes {
12408	s.KdcAdminPassword = &v
12409	return s
12410}
12411
12412// SetRealm sets the Realm field's value.
12413func (s *KerberosAttributes) SetRealm(v string) *KerberosAttributes {
12414	s.Realm = &v
12415	return s
12416}
12417
12418// A key-value pair.
12419type KeyValue struct {
12420	_ struct{} `type:"structure"`
12421
12422	// The unique identifier of a key-value pair.
12423	Key *string `type:"string"`
12424
12425	// The value part of the identified key.
12426	Value *string `type:"string"`
12427}
12428
12429// String returns the string representation.
12430//
12431// API parameter values that are decorated as "sensitive" in the API will not
12432// be included in the string output. The member name will be present, but the
12433// value will be replaced with "sensitive".
12434func (s KeyValue) String() string {
12435	return awsutil.Prettify(s)
12436}
12437
12438// GoString returns the string representation.
12439//
12440// API parameter values that are decorated as "sensitive" in the API will not
12441// be included in the string output. The member name will be present, but the
12442// value will be replaced with "sensitive".
12443func (s KeyValue) GoString() string {
12444	return s.String()
12445}
12446
12447// SetKey sets the Key field's value.
12448func (s *KeyValue) SetKey(v string) *KeyValue {
12449	s.Key = &v
12450	return s
12451}
12452
12453// SetValue sets the Value field's value.
12454func (s *KeyValue) SetValue(v string) *KeyValue {
12455	s.Value = &v
12456	return s
12457}
12458
12459// This input determines which bootstrap actions to retrieve.
12460type ListBootstrapActionsInput struct {
12461	_ struct{} `type:"structure"`
12462
12463	// The cluster identifier for the bootstrap actions to list.
12464	//
12465	// ClusterId is a required field
12466	ClusterId *string `type:"string" required:"true"`
12467
12468	// The pagination token that indicates the next set of results to retrieve.
12469	Marker *string `type:"string"`
12470}
12471
12472// String returns the string representation.
12473//
12474// API parameter values that are decorated as "sensitive" in the API will not
12475// be included in the string output. The member name will be present, but the
12476// value will be replaced with "sensitive".
12477func (s ListBootstrapActionsInput) String() string {
12478	return awsutil.Prettify(s)
12479}
12480
12481// GoString returns the string representation.
12482//
12483// API parameter values that are decorated as "sensitive" in the API will not
12484// be included in the string output. The member name will be present, but the
12485// value will be replaced with "sensitive".
12486func (s ListBootstrapActionsInput) GoString() string {
12487	return s.String()
12488}
12489
12490// Validate inspects the fields of the type to determine if they are valid.
12491func (s *ListBootstrapActionsInput) Validate() error {
12492	invalidParams := request.ErrInvalidParams{Context: "ListBootstrapActionsInput"}
12493	if s.ClusterId == nil {
12494		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
12495	}
12496
12497	if invalidParams.Len() > 0 {
12498		return invalidParams
12499	}
12500	return nil
12501}
12502
12503// SetClusterId sets the ClusterId field's value.
12504func (s *ListBootstrapActionsInput) SetClusterId(v string) *ListBootstrapActionsInput {
12505	s.ClusterId = &v
12506	return s
12507}
12508
12509// SetMarker sets the Marker field's value.
12510func (s *ListBootstrapActionsInput) SetMarker(v string) *ListBootstrapActionsInput {
12511	s.Marker = &v
12512	return s
12513}
12514
12515// This output contains the bootstrap actions detail.
12516type ListBootstrapActionsOutput struct {
12517	_ struct{} `type:"structure"`
12518
12519	// The bootstrap actions associated with the cluster.
12520	BootstrapActions []*Command `type:"list"`
12521
12522	// The pagination token that indicates the next set of results to retrieve.
12523	Marker *string `type:"string"`
12524}
12525
12526// String returns the string representation.
12527//
12528// API parameter values that are decorated as "sensitive" in the API will not
12529// be included in the string output. The member name will be present, but the
12530// value will be replaced with "sensitive".
12531func (s ListBootstrapActionsOutput) String() string {
12532	return awsutil.Prettify(s)
12533}
12534
12535// GoString returns the string representation.
12536//
12537// API parameter values that are decorated as "sensitive" in the API will not
12538// be included in the string output. The member name will be present, but the
12539// value will be replaced with "sensitive".
12540func (s ListBootstrapActionsOutput) GoString() string {
12541	return s.String()
12542}
12543
12544// SetBootstrapActions sets the BootstrapActions field's value.
12545func (s *ListBootstrapActionsOutput) SetBootstrapActions(v []*Command) *ListBootstrapActionsOutput {
12546	s.BootstrapActions = v
12547	return s
12548}
12549
12550// SetMarker sets the Marker field's value.
12551func (s *ListBootstrapActionsOutput) SetMarker(v string) *ListBootstrapActionsOutput {
12552	s.Marker = &v
12553	return s
12554}
12555
12556// This input determines how the ListClusters action filters the list of clusters
12557// that it returns.
12558type ListClustersInput struct {
12559	_ struct{} `type:"structure"`
12560
12561	// The cluster state filters to apply when listing clusters. Clusters that change
12562	// state while this action runs may be not be returned as expected in the list
12563	// of clusters.
12564	ClusterStates []*string `type:"list"`
12565
12566	// The creation date and time beginning value filter for listing clusters.
12567	CreatedAfter *time.Time `type:"timestamp"`
12568
12569	// The creation date and time end value filter for listing clusters.
12570	CreatedBefore *time.Time `type:"timestamp"`
12571
12572	// The pagination token that indicates the next set of results to retrieve.
12573	Marker *string `type:"string"`
12574}
12575
12576// String returns the string representation.
12577//
12578// API parameter values that are decorated as "sensitive" in the API will not
12579// be included in the string output. The member name will be present, but the
12580// value will be replaced with "sensitive".
12581func (s ListClustersInput) String() string {
12582	return awsutil.Prettify(s)
12583}
12584
12585// GoString returns the string representation.
12586//
12587// API parameter values that are decorated as "sensitive" in the API will not
12588// be included in the string output. The member name will be present, but the
12589// value will be replaced with "sensitive".
12590func (s ListClustersInput) GoString() string {
12591	return s.String()
12592}
12593
12594// SetClusterStates sets the ClusterStates field's value.
12595func (s *ListClustersInput) SetClusterStates(v []*string) *ListClustersInput {
12596	s.ClusterStates = v
12597	return s
12598}
12599
12600// SetCreatedAfter sets the CreatedAfter field's value.
12601func (s *ListClustersInput) SetCreatedAfter(v time.Time) *ListClustersInput {
12602	s.CreatedAfter = &v
12603	return s
12604}
12605
12606// SetCreatedBefore sets the CreatedBefore field's value.
12607func (s *ListClustersInput) SetCreatedBefore(v time.Time) *ListClustersInput {
12608	s.CreatedBefore = &v
12609	return s
12610}
12611
12612// SetMarker sets the Marker field's value.
12613func (s *ListClustersInput) SetMarker(v string) *ListClustersInput {
12614	s.Marker = &v
12615	return s
12616}
12617
12618// This contains a ClusterSummaryList with the cluster details; for example,
12619// the cluster IDs, names, and status.
12620type ListClustersOutput struct {
12621	_ struct{} `type:"structure"`
12622
12623	// The list of clusters for the account based on the given filters.
12624	Clusters []*ClusterSummary `type:"list"`
12625
12626	// The pagination token that indicates the next set of results to retrieve.
12627	Marker *string `type:"string"`
12628}
12629
12630// String returns the string representation.
12631//
12632// API parameter values that are decorated as "sensitive" in the API will not
12633// be included in the string output. The member name will be present, but the
12634// value will be replaced with "sensitive".
12635func (s ListClustersOutput) String() string {
12636	return awsutil.Prettify(s)
12637}
12638
12639// GoString returns the string representation.
12640//
12641// API parameter values that are decorated as "sensitive" in the API will not
12642// be included in the string output. The member name will be present, but the
12643// value will be replaced with "sensitive".
12644func (s ListClustersOutput) GoString() string {
12645	return s.String()
12646}
12647
12648// SetClusters sets the Clusters field's value.
12649func (s *ListClustersOutput) SetClusters(v []*ClusterSummary) *ListClustersOutput {
12650	s.Clusters = v
12651	return s
12652}
12653
12654// SetMarker sets the Marker field's value.
12655func (s *ListClustersOutput) SetMarker(v string) *ListClustersOutput {
12656	s.Marker = &v
12657	return s
12658}
12659
12660type ListInstanceFleetsInput struct {
12661	_ struct{} `type:"structure"`
12662
12663	// The unique identifier of the cluster.
12664	//
12665	// ClusterId is a required field
12666	ClusterId *string `type:"string" required:"true"`
12667
12668	// The pagination token that indicates the next set of results to retrieve.
12669	Marker *string `type:"string"`
12670}
12671
12672// String returns the string representation.
12673//
12674// API parameter values that are decorated as "sensitive" in the API will not
12675// be included in the string output. The member name will be present, but the
12676// value will be replaced with "sensitive".
12677func (s ListInstanceFleetsInput) String() string {
12678	return awsutil.Prettify(s)
12679}
12680
12681// GoString returns the string representation.
12682//
12683// API parameter values that are decorated as "sensitive" in the API will not
12684// be included in the string output. The member name will be present, but the
12685// value will be replaced with "sensitive".
12686func (s ListInstanceFleetsInput) GoString() string {
12687	return s.String()
12688}
12689
12690// Validate inspects the fields of the type to determine if they are valid.
12691func (s *ListInstanceFleetsInput) Validate() error {
12692	invalidParams := request.ErrInvalidParams{Context: "ListInstanceFleetsInput"}
12693	if s.ClusterId == nil {
12694		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
12695	}
12696
12697	if invalidParams.Len() > 0 {
12698		return invalidParams
12699	}
12700	return nil
12701}
12702
12703// SetClusterId sets the ClusterId field's value.
12704func (s *ListInstanceFleetsInput) SetClusterId(v string) *ListInstanceFleetsInput {
12705	s.ClusterId = &v
12706	return s
12707}
12708
12709// SetMarker sets the Marker field's value.
12710func (s *ListInstanceFleetsInput) SetMarker(v string) *ListInstanceFleetsInput {
12711	s.Marker = &v
12712	return s
12713}
12714
12715type ListInstanceFleetsOutput struct {
12716	_ struct{} `type:"structure"`
12717
12718	// The list of instance fleets for the cluster and given filters.
12719	InstanceFleets []*InstanceFleet `type:"list"`
12720
12721	// The pagination token that indicates the next set of results to retrieve.
12722	Marker *string `type:"string"`
12723}
12724
12725// String returns the string representation.
12726//
12727// API parameter values that are decorated as "sensitive" in the API will not
12728// be included in the string output. The member name will be present, but the
12729// value will be replaced with "sensitive".
12730func (s ListInstanceFleetsOutput) String() string {
12731	return awsutil.Prettify(s)
12732}
12733
12734// GoString returns the string representation.
12735//
12736// API parameter values that are decorated as "sensitive" in the API will not
12737// be included in the string output. The member name will be present, but the
12738// value will be replaced with "sensitive".
12739func (s ListInstanceFleetsOutput) GoString() string {
12740	return s.String()
12741}
12742
12743// SetInstanceFleets sets the InstanceFleets field's value.
12744func (s *ListInstanceFleetsOutput) SetInstanceFleets(v []*InstanceFleet) *ListInstanceFleetsOutput {
12745	s.InstanceFleets = v
12746	return s
12747}
12748
12749// SetMarker sets the Marker field's value.
12750func (s *ListInstanceFleetsOutput) SetMarker(v string) *ListInstanceFleetsOutput {
12751	s.Marker = &v
12752	return s
12753}
12754
12755// This input determines which instance groups to retrieve.
12756type ListInstanceGroupsInput struct {
12757	_ struct{} `type:"structure"`
12758
12759	// The identifier of the cluster for which to list the instance groups.
12760	//
12761	// ClusterId is a required field
12762	ClusterId *string `type:"string" required:"true"`
12763
12764	// The pagination token that indicates the next set of results to retrieve.
12765	Marker *string `type:"string"`
12766}
12767
12768// String returns the string representation.
12769//
12770// API parameter values that are decorated as "sensitive" in the API will not
12771// be included in the string output. The member name will be present, but the
12772// value will be replaced with "sensitive".
12773func (s ListInstanceGroupsInput) String() string {
12774	return awsutil.Prettify(s)
12775}
12776
12777// GoString returns the string representation.
12778//
12779// API parameter values that are decorated as "sensitive" in the API will not
12780// be included in the string output. The member name will be present, but the
12781// value will be replaced with "sensitive".
12782func (s ListInstanceGroupsInput) GoString() string {
12783	return s.String()
12784}
12785
12786// Validate inspects the fields of the type to determine if they are valid.
12787func (s *ListInstanceGroupsInput) Validate() error {
12788	invalidParams := request.ErrInvalidParams{Context: "ListInstanceGroupsInput"}
12789	if s.ClusterId == nil {
12790		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
12791	}
12792
12793	if invalidParams.Len() > 0 {
12794		return invalidParams
12795	}
12796	return nil
12797}
12798
12799// SetClusterId sets the ClusterId field's value.
12800func (s *ListInstanceGroupsInput) SetClusterId(v string) *ListInstanceGroupsInput {
12801	s.ClusterId = &v
12802	return s
12803}
12804
12805// SetMarker sets the Marker field's value.
12806func (s *ListInstanceGroupsInput) SetMarker(v string) *ListInstanceGroupsInput {
12807	s.Marker = &v
12808	return s
12809}
12810
12811// This input determines which instance groups to retrieve.
12812type ListInstanceGroupsOutput struct {
12813	_ struct{} `type:"structure"`
12814
12815	// The list of instance groups for the cluster and given filters.
12816	InstanceGroups []*InstanceGroup `type:"list"`
12817
12818	// The pagination token that indicates the next set of results to retrieve.
12819	Marker *string `type:"string"`
12820}
12821
12822// String returns the string representation.
12823//
12824// API parameter values that are decorated as "sensitive" in the API will not
12825// be included in the string output. The member name will be present, but the
12826// value will be replaced with "sensitive".
12827func (s ListInstanceGroupsOutput) String() string {
12828	return awsutil.Prettify(s)
12829}
12830
12831// GoString returns the string representation.
12832//
12833// API parameter values that are decorated as "sensitive" in the API will not
12834// be included in the string output. The member name will be present, but the
12835// value will be replaced with "sensitive".
12836func (s ListInstanceGroupsOutput) GoString() string {
12837	return s.String()
12838}
12839
12840// SetInstanceGroups sets the InstanceGroups field's value.
12841func (s *ListInstanceGroupsOutput) SetInstanceGroups(v []*InstanceGroup) *ListInstanceGroupsOutput {
12842	s.InstanceGroups = v
12843	return s
12844}
12845
12846// SetMarker sets the Marker field's value.
12847func (s *ListInstanceGroupsOutput) SetMarker(v string) *ListInstanceGroupsOutput {
12848	s.Marker = &v
12849	return s
12850}
12851
12852// This input determines which instances to list.
12853type ListInstancesInput struct {
12854	_ struct{} `type:"structure"`
12855
12856	// The identifier of the cluster for which to list the instances.
12857	//
12858	// ClusterId is a required field
12859	ClusterId *string `type:"string" required:"true"`
12860
12861	// The unique identifier of the instance fleet.
12862	InstanceFleetId *string `type:"string"`
12863
12864	// The node type of the instance fleet. For example MASTER, CORE, or TASK.
12865	InstanceFleetType *string `type:"string" enum:"InstanceFleetType"`
12866
12867	// The identifier of the instance group for which to list the instances.
12868	InstanceGroupId *string `type:"string"`
12869
12870	// The type of instance group for which to list the instances.
12871	InstanceGroupTypes []*string `type:"list"`
12872
12873	// A list of instance states that will filter the instances returned with this
12874	// request.
12875	InstanceStates []*string `type:"list"`
12876
12877	// The pagination token that indicates the next set of results to retrieve.
12878	Marker *string `type:"string"`
12879}
12880
12881// String returns the string representation.
12882//
12883// API parameter values that are decorated as "sensitive" in the API will not
12884// be included in the string output. The member name will be present, but the
12885// value will be replaced with "sensitive".
12886func (s ListInstancesInput) String() string {
12887	return awsutil.Prettify(s)
12888}
12889
12890// GoString returns the string representation.
12891//
12892// API parameter values that are decorated as "sensitive" in the API will not
12893// be included in the string output. The member name will be present, but the
12894// value will be replaced with "sensitive".
12895func (s ListInstancesInput) GoString() string {
12896	return s.String()
12897}
12898
12899// Validate inspects the fields of the type to determine if they are valid.
12900func (s *ListInstancesInput) Validate() error {
12901	invalidParams := request.ErrInvalidParams{Context: "ListInstancesInput"}
12902	if s.ClusterId == nil {
12903		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
12904	}
12905
12906	if invalidParams.Len() > 0 {
12907		return invalidParams
12908	}
12909	return nil
12910}
12911
12912// SetClusterId sets the ClusterId field's value.
12913func (s *ListInstancesInput) SetClusterId(v string) *ListInstancesInput {
12914	s.ClusterId = &v
12915	return s
12916}
12917
12918// SetInstanceFleetId sets the InstanceFleetId field's value.
12919func (s *ListInstancesInput) SetInstanceFleetId(v string) *ListInstancesInput {
12920	s.InstanceFleetId = &v
12921	return s
12922}
12923
12924// SetInstanceFleetType sets the InstanceFleetType field's value.
12925func (s *ListInstancesInput) SetInstanceFleetType(v string) *ListInstancesInput {
12926	s.InstanceFleetType = &v
12927	return s
12928}
12929
12930// SetInstanceGroupId sets the InstanceGroupId field's value.
12931func (s *ListInstancesInput) SetInstanceGroupId(v string) *ListInstancesInput {
12932	s.InstanceGroupId = &v
12933	return s
12934}
12935
12936// SetInstanceGroupTypes sets the InstanceGroupTypes field's value.
12937func (s *ListInstancesInput) SetInstanceGroupTypes(v []*string) *ListInstancesInput {
12938	s.InstanceGroupTypes = v
12939	return s
12940}
12941
12942// SetInstanceStates sets the InstanceStates field's value.
12943func (s *ListInstancesInput) SetInstanceStates(v []*string) *ListInstancesInput {
12944	s.InstanceStates = v
12945	return s
12946}
12947
12948// SetMarker sets the Marker field's value.
12949func (s *ListInstancesInput) SetMarker(v string) *ListInstancesInput {
12950	s.Marker = &v
12951	return s
12952}
12953
12954// This output contains the list of instances.
12955type ListInstancesOutput struct {
12956	_ struct{} `type:"structure"`
12957
12958	// The list of instances for the cluster and given filters.
12959	Instances []*Instance `type:"list"`
12960
12961	// The pagination token that indicates the next set of results to retrieve.
12962	Marker *string `type:"string"`
12963}
12964
12965// String returns the string representation.
12966//
12967// API parameter values that are decorated as "sensitive" in the API will not
12968// be included in the string output. The member name will be present, but the
12969// value will be replaced with "sensitive".
12970func (s ListInstancesOutput) String() string {
12971	return awsutil.Prettify(s)
12972}
12973
12974// GoString returns the string representation.
12975//
12976// API parameter values that are decorated as "sensitive" in the API will not
12977// be included in the string output. The member name will be present, but the
12978// value will be replaced with "sensitive".
12979func (s ListInstancesOutput) GoString() string {
12980	return s.String()
12981}
12982
12983// SetInstances sets the Instances field's value.
12984func (s *ListInstancesOutput) SetInstances(v []*Instance) *ListInstancesOutput {
12985	s.Instances = v
12986	return s
12987}
12988
12989// SetMarker sets the Marker field's value.
12990func (s *ListInstancesOutput) SetMarker(v string) *ListInstancesOutput {
12991	s.Marker = &v
12992	return s
12993}
12994
12995type ListNotebookExecutionsInput struct {
12996	_ struct{} `type:"structure"`
12997
12998	// The unique ID of the editor associated with the notebook execution.
12999	EditorId *string `type:"string"`
13000
13001	// The beginning of time range filter for listing notebook executions. The default
13002	// is the timestamp of 30 days ago.
13003	From *time.Time `type:"timestamp"`
13004
13005	// The pagination token, returned by a previous ListNotebookExecutions call,
13006	// that indicates the start of the list for this ListNotebookExecutions call.
13007	Marker *string `type:"string"`
13008
13009	// The status filter for listing notebook executions.
13010	//
13011	//    * START_PENDING indicates that the cluster has received the execution
13012	//    request but execution has not begun.
13013	//
13014	//    * STARTING indicates that the execution is starting on the cluster.
13015	//
13016	//    * RUNNING indicates that the execution is being processed by the cluster.
13017	//
13018	//    * FINISHING indicates that execution processing is in the final stages.
13019	//
13020	//    * FINISHED indicates that the execution has completed without error.
13021	//
13022	//    * FAILING indicates that the execution is failing and will not finish
13023	//    successfully.
13024	//
13025	//    * FAILED indicates that the execution failed.
13026	//
13027	//    * STOP_PENDING indicates that the cluster has received a StopNotebookExecution
13028	//    request and the stop is pending.
13029	//
13030	//    * STOPPING indicates that the cluster is in the process of stopping the
13031	//    execution as a result of a StopNotebookExecution request.
13032	//
13033	//    * STOPPED indicates that the execution stopped because of a StopNotebookExecution
13034	//    request.
13035	Status *string `type:"string" enum:"NotebookExecutionStatus"`
13036
13037	// The end of time range filter for listing notebook executions. The default
13038	// is the current timestamp.
13039	To *time.Time `type:"timestamp"`
13040}
13041
13042// String returns the string representation.
13043//
13044// API parameter values that are decorated as "sensitive" in the API will not
13045// be included in the string output. The member name will be present, but the
13046// value will be replaced with "sensitive".
13047func (s ListNotebookExecutionsInput) String() string {
13048	return awsutil.Prettify(s)
13049}
13050
13051// GoString returns the string representation.
13052//
13053// API parameter values that are decorated as "sensitive" in the API will not
13054// be included in the string output. The member name will be present, but the
13055// value will be replaced with "sensitive".
13056func (s ListNotebookExecutionsInput) GoString() string {
13057	return s.String()
13058}
13059
13060// SetEditorId sets the EditorId field's value.
13061func (s *ListNotebookExecutionsInput) SetEditorId(v string) *ListNotebookExecutionsInput {
13062	s.EditorId = &v
13063	return s
13064}
13065
13066// SetFrom sets the From field's value.
13067func (s *ListNotebookExecutionsInput) SetFrom(v time.Time) *ListNotebookExecutionsInput {
13068	s.From = &v
13069	return s
13070}
13071
13072// SetMarker sets the Marker field's value.
13073func (s *ListNotebookExecutionsInput) SetMarker(v string) *ListNotebookExecutionsInput {
13074	s.Marker = &v
13075	return s
13076}
13077
13078// SetStatus sets the Status field's value.
13079func (s *ListNotebookExecutionsInput) SetStatus(v string) *ListNotebookExecutionsInput {
13080	s.Status = &v
13081	return s
13082}
13083
13084// SetTo sets the To field's value.
13085func (s *ListNotebookExecutionsInput) SetTo(v time.Time) *ListNotebookExecutionsInput {
13086	s.To = &v
13087	return s
13088}
13089
13090type ListNotebookExecutionsOutput struct {
13091	_ struct{} `type:"structure"`
13092
13093	// A pagination token that a subsequent ListNotebookExecutions can use to determine
13094	// the next set of results to retrieve.
13095	Marker *string `type:"string"`
13096
13097	// A list of notebook executions.
13098	NotebookExecutions []*NotebookExecutionSummary `type:"list"`
13099}
13100
13101// String returns the string representation.
13102//
13103// API parameter values that are decorated as "sensitive" in the API will not
13104// be included in the string output. The member name will be present, but the
13105// value will be replaced with "sensitive".
13106func (s ListNotebookExecutionsOutput) String() string {
13107	return awsutil.Prettify(s)
13108}
13109
13110// GoString returns the string representation.
13111//
13112// API parameter values that are decorated as "sensitive" in the API will not
13113// be included in the string output. The member name will be present, but the
13114// value will be replaced with "sensitive".
13115func (s ListNotebookExecutionsOutput) GoString() string {
13116	return s.String()
13117}
13118
13119// SetMarker sets the Marker field's value.
13120func (s *ListNotebookExecutionsOutput) SetMarker(v string) *ListNotebookExecutionsOutput {
13121	s.Marker = &v
13122	return s
13123}
13124
13125// SetNotebookExecutions sets the NotebookExecutions field's value.
13126func (s *ListNotebookExecutionsOutput) SetNotebookExecutions(v []*NotebookExecutionSummary) *ListNotebookExecutionsOutput {
13127	s.NotebookExecutions = v
13128	return s
13129}
13130
13131type ListReleaseLabelsInput struct {
13132	_ struct{} `type:"structure"`
13133
13134	// Filters the results of the request. Prefix specifies the prefix of release
13135	// labels to return. Application specifies the application (with/without version)
13136	// of release labels to return.
13137	Filters *ReleaseLabelFilter `type:"structure"`
13138
13139	// Defines the maximum number of release labels to return in a single response.
13140	// The default is 100.
13141	MaxResults *int64 `min:"1" type:"integer"`
13142
13143	// Specifies the next page of results. If NextToken is not specified, which
13144	// is usually the case for the first request of ListReleaseLabels, the first
13145	// page of results are determined by other filtering parameters or by the latest
13146	// version. The ListReleaseLabels request fails if the identity (Amazon Web
13147	// Services account ID) and all filtering parameters are different from the
13148	// original request, or if the NextToken is expired or tampered with.
13149	NextToken *string `type:"string"`
13150}
13151
13152// String returns the string representation.
13153//
13154// API parameter values that are decorated as "sensitive" in the API will not
13155// be included in the string output. The member name will be present, but the
13156// value will be replaced with "sensitive".
13157func (s ListReleaseLabelsInput) String() string {
13158	return awsutil.Prettify(s)
13159}
13160
13161// GoString returns the string representation.
13162//
13163// API parameter values that are decorated as "sensitive" in the API will not
13164// be included in the string output. The member name will be present, but the
13165// value will be replaced with "sensitive".
13166func (s ListReleaseLabelsInput) GoString() string {
13167	return s.String()
13168}
13169
13170// Validate inspects the fields of the type to determine if they are valid.
13171func (s *ListReleaseLabelsInput) Validate() error {
13172	invalidParams := request.ErrInvalidParams{Context: "ListReleaseLabelsInput"}
13173	if s.MaxResults != nil && *s.MaxResults < 1 {
13174		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
13175	}
13176
13177	if invalidParams.Len() > 0 {
13178		return invalidParams
13179	}
13180	return nil
13181}
13182
13183// SetFilters sets the Filters field's value.
13184func (s *ListReleaseLabelsInput) SetFilters(v *ReleaseLabelFilter) *ListReleaseLabelsInput {
13185	s.Filters = v
13186	return s
13187}
13188
13189// SetMaxResults sets the MaxResults field's value.
13190func (s *ListReleaseLabelsInput) SetMaxResults(v int64) *ListReleaseLabelsInput {
13191	s.MaxResults = &v
13192	return s
13193}
13194
13195// SetNextToken sets the NextToken field's value.
13196func (s *ListReleaseLabelsInput) SetNextToken(v string) *ListReleaseLabelsInput {
13197	s.NextToken = &v
13198	return s
13199}
13200
13201type ListReleaseLabelsOutput struct {
13202	_ struct{} `type:"structure"`
13203
13204	// Used to paginate the next page of results if specified in the next ListReleaseLabels
13205	// request.
13206	NextToken *string `type:"string"`
13207
13208	// The returned release labels.
13209	ReleaseLabels []*string `type:"list"`
13210}
13211
13212// String returns the string representation.
13213//
13214// API parameter values that are decorated as "sensitive" in the API will not
13215// be included in the string output. The member name will be present, but the
13216// value will be replaced with "sensitive".
13217func (s ListReleaseLabelsOutput) String() string {
13218	return awsutil.Prettify(s)
13219}
13220
13221// GoString returns the string representation.
13222//
13223// API parameter values that are decorated as "sensitive" in the API will not
13224// be included in the string output. The member name will be present, but the
13225// value will be replaced with "sensitive".
13226func (s ListReleaseLabelsOutput) GoString() string {
13227	return s.String()
13228}
13229
13230// SetNextToken sets the NextToken field's value.
13231func (s *ListReleaseLabelsOutput) SetNextToken(v string) *ListReleaseLabelsOutput {
13232	s.NextToken = &v
13233	return s
13234}
13235
13236// SetReleaseLabels sets the ReleaseLabels field's value.
13237func (s *ListReleaseLabelsOutput) SetReleaseLabels(v []*string) *ListReleaseLabelsOutput {
13238	s.ReleaseLabels = v
13239	return s
13240}
13241
13242type ListSecurityConfigurationsInput struct {
13243	_ struct{} `type:"structure"`
13244
13245	// The pagination token that indicates the set of results to retrieve.
13246	Marker *string `type:"string"`
13247}
13248
13249// String returns the string representation.
13250//
13251// API parameter values that are decorated as "sensitive" in the API will not
13252// be included in the string output. The member name will be present, but the
13253// value will be replaced with "sensitive".
13254func (s ListSecurityConfigurationsInput) String() string {
13255	return awsutil.Prettify(s)
13256}
13257
13258// GoString returns the string representation.
13259//
13260// API parameter values that are decorated as "sensitive" in the API will not
13261// be included in the string output. The member name will be present, but the
13262// value will be replaced with "sensitive".
13263func (s ListSecurityConfigurationsInput) GoString() string {
13264	return s.String()
13265}
13266
13267// SetMarker sets the Marker field's value.
13268func (s *ListSecurityConfigurationsInput) SetMarker(v string) *ListSecurityConfigurationsInput {
13269	s.Marker = &v
13270	return s
13271}
13272
13273type ListSecurityConfigurationsOutput struct {
13274	_ struct{} `type:"structure"`
13275
13276	// A pagination token that indicates the next set of results to retrieve. Include
13277	// the marker in the next ListSecurityConfiguration call to retrieve the next
13278	// page of results, if required.
13279	Marker *string `type:"string"`
13280
13281	// The creation date and time, and name, of each security configuration.
13282	SecurityConfigurations []*SecurityConfigurationSummary `type:"list"`
13283}
13284
13285// String returns the string representation.
13286//
13287// API parameter values that are decorated as "sensitive" in the API will not
13288// be included in the string output. The member name will be present, but the
13289// value will be replaced with "sensitive".
13290func (s ListSecurityConfigurationsOutput) String() string {
13291	return awsutil.Prettify(s)
13292}
13293
13294// GoString returns the string representation.
13295//
13296// API parameter values that are decorated as "sensitive" in the API will not
13297// be included in the string output. The member name will be present, but the
13298// value will be replaced with "sensitive".
13299func (s ListSecurityConfigurationsOutput) GoString() string {
13300	return s.String()
13301}
13302
13303// SetMarker sets the Marker field's value.
13304func (s *ListSecurityConfigurationsOutput) SetMarker(v string) *ListSecurityConfigurationsOutput {
13305	s.Marker = &v
13306	return s
13307}
13308
13309// SetSecurityConfigurations sets the SecurityConfigurations field's value.
13310func (s *ListSecurityConfigurationsOutput) SetSecurityConfigurations(v []*SecurityConfigurationSummary) *ListSecurityConfigurationsOutput {
13311	s.SecurityConfigurations = v
13312	return s
13313}
13314
13315// This input determines which steps to list.
13316type ListStepsInput struct {
13317	_ struct{} `type:"structure"`
13318
13319	// The identifier of the cluster for which to list the steps.
13320	//
13321	// ClusterId is a required field
13322	ClusterId *string `type:"string" required:"true"`
13323
13324	// The maximum number of steps that a single ListSteps action returns is 50.
13325	// To return a longer list of steps, use multiple ListSteps actions along with
13326	// the Marker parameter, which is a pagination token that indicates the next
13327	// set of results to retrieve.
13328	Marker *string `type:"string"`
13329
13330	// The filter to limit the step list based on the identifier of the steps. You
13331	// can specify a maximum of ten Step IDs. The character constraint applies to
13332	// the overall length of the array.
13333	StepIds []*string `type:"list"`
13334
13335	// The filter to limit the step list based on certain states.
13336	StepStates []*string `type:"list"`
13337}
13338
13339// String returns the string representation.
13340//
13341// API parameter values that are decorated as "sensitive" in the API will not
13342// be included in the string output. The member name will be present, but the
13343// value will be replaced with "sensitive".
13344func (s ListStepsInput) String() string {
13345	return awsutil.Prettify(s)
13346}
13347
13348// GoString returns the string representation.
13349//
13350// API parameter values that are decorated as "sensitive" in the API will not
13351// be included in the string output. The member name will be present, but the
13352// value will be replaced with "sensitive".
13353func (s ListStepsInput) GoString() string {
13354	return s.String()
13355}
13356
13357// Validate inspects the fields of the type to determine if they are valid.
13358func (s *ListStepsInput) Validate() error {
13359	invalidParams := request.ErrInvalidParams{Context: "ListStepsInput"}
13360	if s.ClusterId == nil {
13361		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
13362	}
13363
13364	if invalidParams.Len() > 0 {
13365		return invalidParams
13366	}
13367	return nil
13368}
13369
13370// SetClusterId sets the ClusterId field's value.
13371func (s *ListStepsInput) SetClusterId(v string) *ListStepsInput {
13372	s.ClusterId = &v
13373	return s
13374}
13375
13376// SetMarker sets the Marker field's value.
13377func (s *ListStepsInput) SetMarker(v string) *ListStepsInput {
13378	s.Marker = &v
13379	return s
13380}
13381
13382// SetStepIds sets the StepIds field's value.
13383func (s *ListStepsInput) SetStepIds(v []*string) *ListStepsInput {
13384	s.StepIds = v
13385	return s
13386}
13387
13388// SetStepStates sets the StepStates field's value.
13389func (s *ListStepsInput) SetStepStates(v []*string) *ListStepsInput {
13390	s.StepStates = v
13391	return s
13392}
13393
13394// This output contains the list of steps returned in reverse order. This means
13395// that the last step is the first element in the list.
13396type ListStepsOutput struct {
13397	_ struct{} `type:"structure"`
13398
13399	// The maximum number of steps that a single ListSteps action returns is 50.
13400	// To return a longer list of steps, use multiple ListSteps actions along with
13401	// the Marker parameter, which is a pagination token that indicates the next
13402	// set of results to retrieve.
13403	Marker *string `type:"string"`
13404
13405	// The filtered list of steps for the cluster.
13406	Steps []*StepSummary `type:"list"`
13407}
13408
13409// String returns the string representation.
13410//
13411// API parameter values that are decorated as "sensitive" in the API will not
13412// be included in the string output. The member name will be present, but the
13413// value will be replaced with "sensitive".
13414func (s ListStepsOutput) String() string {
13415	return awsutil.Prettify(s)
13416}
13417
13418// GoString returns the string representation.
13419//
13420// API parameter values that are decorated as "sensitive" in the API will not
13421// be included in the string output. The member name will be present, but the
13422// value will be replaced with "sensitive".
13423func (s ListStepsOutput) GoString() string {
13424	return s.String()
13425}
13426
13427// SetMarker sets the Marker field's value.
13428func (s *ListStepsOutput) SetMarker(v string) *ListStepsOutput {
13429	s.Marker = &v
13430	return s
13431}
13432
13433// SetSteps sets the Steps field's value.
13434func (s *ListStepsOutput) SetSteps(v []*StepSummary) *ListStepsOutput {
13435	s.Steps = v
13436	return s
13437}
13438
13439type ListStudioSessionMappingsInput struct {
13440	_ struct{} `type:"structure"`
13441
13442	// Specifies whether to return session mappings for users or groups. If not
13443	// specified, the results include session mapping details for both users and
13444	// groups.
13445	IdentityType *string `type:"string" enum:"IdentityType"`
13446
13447	// The pagination token that indicates the set of results to retrieve.
13448	Marker *string `type:"string"`
13449
13450	// The ID of the Amazon EMR Studio.
13451	StudioId *string `type:"string"`
13452}
13453
13454// String returns the string representation.
13455//
13456// API parameter values that are decorated as "sensitive" in the API will not
13457// be included in the string output. The member name will be present, but the
13458// value will be replaced with "sensitive".
13459func (s ListStudioSessionMappingsInput) String() string {
13460	return awsutil.Prettify(s)
13461}
13462
13463// GoString returns the string representation.
13464//
13465// API parameter values that are decorated as "sensitive" in the API will not
13466// be included in the string output. The member name will be present, but the
13467// value will be replaced with "sensitive".
13468func (s ListStudioSessionMappingsInput) GoString() string {
13469	return s.String()
13470}
13471
13472// SetIdentityType sets the IdentityType field's value.
13473func (s *ListStudioSessionMappingsInput) SetIdentityType(v string) *ListStudioSessionMappingsInput {
13474	s.IdentityType = &v
13475	return s
13476}
13477
13478// SetMarker sets the Marker field's value.
13479func (s *ListStudioSessionMappingsInput) SetMarker(v string) *ListStudioSessionMappingsInput {
13480	s.Marker = &v
13481	return s
13482}
13483
13484// SetStudioId sets the StudioId field's value.
13485func (s *ListStudioSessionMappingsInput) SetStudioId(v string) *ListStudioSessionMappingsInput {
13486	s.StudioId = &v
13487	return s
13488}
13489
13490type ListStudioSessionMappingsOutput struct {
13491	_ struct{} `type:"structure"`
13492
13493	// The pagination token that indicates the next set of results to retrieve.
13494	Marker *string `type:"string"`
13495
13496	// A list of session mapping summary objects. Each object includes session mapping
13497	// details such as creation time, identity type (user or group), and Amazon
13498	// EMR Studio ID.
13499	SessionMappings []*SessionMappingSummary `type:"list"`
13500}
13501
13502// String returns the string representation.
13503//
13504// API parameter values that are decorated as "sensitive" in the API will not
13505// be included in the string output. The member name will be present, but the
13506// value will be replaced with "sensitive".
13507func (s ListStudioSessionMappingsOutput) String() string {
13508	return awsutil.Prettify(s)
13509}
13510
13511// GoString returns the string representation.
13512//
13513// API parameter values that are decorated as "sensitive" in the API will not
13514// be included in the string output. The member name will be present, but the
13515// value will be replaced with "sensitive".
13516func (s ListStudioSessionMappingsOutput) GoString() string {
13517	return s.String()
13518}
13519
13520// SetMarker sets the Marker field's value.
13521func (s *ListStudioSessionMappingsOutput) SetMarker(v string) *ListStudioSessionMappingsOutput {
13522	s.Marker = &v
13523	return s
13524}
13525
13526// SetSessionMappings sets the SessionMappings field's value.
13527func (s *ListStudioSessionMappingsOutput) SetSessionMappings(v []*SessionMappingSummary) *ListStudioSessionMappingsOutput {
13528	s.SessionMappings = v
13529	return s
13530}
13531
13532type ListStudiosInput struct {
13533	_ struct{} `type:"structure"`
13534
13535	// The pagination token that indicates the set of results to retrieve.
13536	Marker *string `type:"string"`
13537}
13538
13539// String returns the string representation.
13540//
13541// API parameter values that are decorated as "sensitive" in the API will not
13542// be included in the string output. The member name will be present, but the
13543// value will be replaced with "sensitive".
13544func (s ListStudiosInput) String() string {
13545	return awsutil.Prettify(s)
13546}
13547
13548// GoString returns the string representation.
13549//
13550// API parameter values that are decorated as "sensitive" in the API will not
13551// be included in the string output. The member name will be present, but the
13552// value will be replaced with "sensitive".
13553func (s ListStudiosInput) GoString() string {
13554	return s.String()
13555}
13556
13557// SetMarker sets the Marker field's value.
13558func (s *ListStudiosInput) SetMarker(v string) *ListStudiosInput {
13559	s.Marker = &v
13560	return s
13561}
13562
13563type ListStudiosOutput struct {
13564	_ struct{} `type:"structure"`
13565
13566	// The pagination token that indicates the next set of results to retrieve.
13567	Marker *string `type:"string"`
13568
13569	// The list of Studio summary objects.
13570	Studios []*StudioSummary `type:"list"`
13571}
13572
13573// String returns the string representation.
13574//
13575// API parameter values that are decorated as "sensitive" in the API will not
13576// be included in the string output. The member name will be present, but the
13577// value will be replaced with "sensitive".
13578func (s ListStudiosOutput) String() string {
13579	return awsutil.Prettify(s)
13580}
13581
13582// GoString returns the string representation.
13583//
13584// API parameter values that are decorated as "sensitive" in the API will not
13585// be included in the string output. The member name will be present, but the
13586// value will be replaced with "sensitive".
13587func (s ListStudiosOutput) GoString() string {
13588	return s.String()
13589}
13590
13591// SetMarker sets the Marker field's value.
13592func (s *ListStudiosOutput) SetMarker(v string) *ListStudiosOutput {
13593	s.Marker = &v
13594	return s
13595}
13596
13597// SetStudios sets the Studios field's value.
13598func (s *ListStudiosOutput) SetStudios(v []*StudioSummary) *ListStudiosOutput {
13599	s.Studios = v
13600	return s
13601}
13602
13603// Managed scaling policy for an Amazon EMR cluster. The policy specifies the
13604// limits for resources that can be added or terminated from a cluster. The
13605// policy only applies to the core and task nodes. The master node cannot be
13606// scaled after initial configuration.
13607type ManagedScalingPolicy struct {
13608	_ struct{} `type:"structure"`
13609
13610	// The EC2 unit limits for a managed scaling policy. The managed scaling activity
13611	// of a cluster is not allowed to go above or below these limits. The limit
13612	// only applies to the core and task nodes. The master node cannot be scaled
13613	// after initial configuration.
13614	ComputeLimits *ComputeLimits `type:"structure"`
13615}
13616
13617// String returns the string representation.
13618//
13619// API parameter values that are decorated as "sensitive" in the API will not
13620// be included in the string output. The member name will be present, but the
13621// value will be replaced with "sensitive".
13622func (s ManagedScalingPolicy) String() string {
13623	return awsutil.Prettify(s)
13624}
13625
13626// GoString returns the string representation.
13627//
13628// API parameter values that are decorated as "sensitive" in the API will not
13629// be included in the string output. The member name will be present, but the
13630// value will be replaced with "sensitive".
13631func (s ManagedScalingPolicy) GoString() string {
13632	return s.String()
13633}
13634
13635// Validate inspects the fields of the type to determine if they are valid.
13636func (s *ManagedScalingPolicy) Validate() error {
13637	invalidParams := request.ErrInvalidParams{Context: "ManagedScalingPolicy"}
13638	if s.ComputeLimits != nil {
13639		if err := s.ComputeLimits.Validate(); err != nil {
13640			invalidParams.AddNested("ComputeLimits", err.(request.ErrInvalidParams))
13641		}
13642	}
13643
13644	if invalidParams.Len() > 0 {
13645		return invalidParams
13646	}
13647	return nil
13648}
13649
13650// SetComputeLimits sets the ComputeLimits field's value.
13651func (s *ManagedScalingPolicy) SetComputeLimits(v *ComputeLimits) *ManagedScalingPolicy {
13652	s.ComputeLimits = v
13653	return s
13654}
13655
13656// A CloudWatch dimension, which is specified using a Key (known as a Name in
13657// CloudWatch), Value pair. By default, Amazon EMR uses one dimension whose
13658// Key is JobFlowID and Value is a variable representing the cluster ID, which
13659// is ${emr.clusterId}. This enables the rule to bootstrap when the cluster
13660// ID becomes available.
13661type MetricDimension struct {
13662	_ struct{} `type:"structure"`
13663
13664	// The dimension name.
13665	Key *string `type:"string"`
13666
13667	// The dimension value.
13668	Value *string `type:"string"`
13669}
13670
13671// String returns the string representation.
13672//
13673// API parameter values that are decorated as "sensitive" in the API will not
13674// be included in the string output. The member name will be present, but the
13675// value will be replaced with "sensitive".
13676func (s MetricDimension) String() string {
13677	return awsutil.Prettify(s)
13678}
13679
13680// GoString returns the string representation.
13681//
13682// API parameter values that are decorated as "sensitive" in the API will not
13683// be included in the string output. The member name will be present, but the
13684// value will be replaced with "sensitive".
13685func (s MetricDimension) GoString() string {
13686	return s.String()
13687}
13688
13689// SetKey sets the Key field's value.
13690func (s *MetricDimension) SetKey(v string) *MetricDimension {
13691	s.Key = &v
13692	return s
13693}
13694
13695// SetValue sets the Value field's value.
13696func (s *MetricDimension) SetValue(v string) *MetricDimension {
13697	s.Value = &v
13698	return s
13699}
13700
13701type ModifyClusterInput struct {
13702	_ struct{} `type:"structure"`
13703
13704	// The unique identifier of the cluster.
13705	//
13706	// ClusterId is a required field
13707	ClusterId *string `type:"string" required:"true"`
13708
13709	// The number of steps that can be executed concurrently. You can specify a
13710	// minimum of 1 step and a maximum of 256 steps. We recommend that you do not
13711	// change this parameter while steps are running or the ActionOnFailure setting
13712	// may not behave as expected. For more information see Step$ActionOnFailure.
13713	StepConcurrencyLevel *int64 `type:"integer"`
13714}
13715
13716// String returns the string representation.
13717//
13718// API parameter values that are decorated as "sensitive" in the API will not
13719// be included in the string output. The member name will be present, but the
13720// value will be replaced with "sensitive".
13721func (s ModifyClusterInput) String() string {
13722	return awsutil.Prettify(s)
13723}
13724
13725// GoString returns the string representation.
13726//
13727// API parameter values that are decorated as "sensitive" in the API will not
13728// be included in the string output. The member name will be present, but the
13729// value will be replaced with "sensitive".
13730func (s ModifyClusterInput) GoString() string {
13731	return s.String()
13732}
13733
13734// Validate inspects the fields of the type to determine if they are valid.
13735func (s *ModifyClusterInput) Validate() error {
13736	invalidParams := request.ErrInvalidParams{Context: "ModifyClusterInput"}
13737	if s.ClusterId == nil {
13738		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
13739	}
13740
13741	if invalidParams.Len() > 0 {
13742		return invalidParams
13743	}
13744	return nil
13745}
13746
13747// SetClusterId sets the ClusterId field's value.
13748func (s *ModifyClusterInput) SetClusterId(v string) *ModifyClusterInput {
13749	s.ClusterId = &v
13750	return s
13751}
13752
13753// SetStepConcurrencyLevel sets the StepConcurrencyLevel field's value.
13754func (s *ModifyClusterInput) SetStepConcurrencyLevel(v int64) *ModifyClusterInput {
13755	s.StepConcurrencyLevel = &v
13756	return s
13757}
13758
13759type ModifyClusterOutput struct {
13760	_ struct{} `type:"structure"`
13761
13762	// The number of steps that can be executed concurrently.
13763	StepConcurrencyLevel *int64 `type:"integer"`
13764}
13765
13766// String returns the string representation.
13767//
13768// API parameter values that are decorated as "sensitive" in the API will not
13769// be included in the string output. The member name will be present, but the
13770// value will be replaced with "sensitive".
13771func (s ModifyClusterOutput) String() string {
13772	return awsutil.Prettify(s)
13773}
13774
13775// GoString returns the string representation.
13776//
13777// API parameter values that are decorated as "sensitive" in the API will not
13778// be included in the string output. The member name will be present, but the
13779// value will be replaced with "sensitive".
13780func (s ModifyClusterOutput) GoString() string {
13781	return s.String()
13782}
13783
13784// SetStepConcurrencyLevel sets the StepConcurrencyLevel field's value.
13785func (s *ModifyClusterOutput) SetStepConcurrencyLevel(v int64) *ModifyClusterOutput {
13786	s.StepConcurrencyLevel = &v
13787	return s
13788}
13789
13790type ModifyInstanceFleetInput struct {
13791	_ struct{} `type:"structure"`
13792
13793	// The unique identifier of the cluster.
13794	//
13795	// ClusterId is a required field
13796	ClusterId *string `type:"string" required:"true"`
13797
13798	// The configuration parameters of the instance fleet.
13799	//
13800	// InstanceFleet is a required field
13801	InstanceFleet *InstanceFleetModifyConfig `type:"structure" required:"true"`
13802}
13803
13804// String returns the string representation.
13805//
13806// API parameter values that are decorated as "sensitive" in the API will not
13807// be included in the string output. The member name will be present, but the
13808// value will be replaced with "sensitive".
13809func (s ModifyInstanceFleetInput) String() string {
13810	return awsutil.Prettify(s)
13811}
13812
13813// GoString returns the string representation.
13814//
13815// API parameter values that are decorated as "sensitive" in the API will not
13816// be included in the string output. The member name will be present, but the
13817// value will be replaced with "sensitive".
13818func (s ModifyInstanceFleetInput) GoString() string {
13819	return s.String()
13820}
13821
13822// Validate inspects the fields of the type to determine if they are valid.
13823func (s *ModifyInstanceFleetInput) Validate() error {
13824	invalidParams := request.ErrInvalidParams{Context: "ModifyInstanceFleetInput"}
13825	if s.ClusterId == nil {
13826		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
13827	}
13828	if s.InstanceFleet == nil {
13829		invalidParams.Add(request.NewErrParamRequired("InstanceFleet"))
13830	}
13831	if s.InstanceFleet != nil {
13832		if err := s.InstanceFleet.Validate(); err != nil {
13833			invalidParams.AddNested("InstanceFleet", err.(request.ErrInvalidParams))
13834		}
13835	}
13836
13837	if invalidParams.Len() > 0 {
13838		return invalidParams
13839	}
13840	return nil
13841}
13842
13843// SetClusterId sets the ClusterId field's value.
13844func (s *ModifyInstanceFleetInput) SetClusterId(v string) *ModifyInstanceFleetInput {
13845	s.ClusterId = &v
13846	return s
13847}
13848
13849// SetInstanceFleet sets the InstanceFleet field's value.
13850func (s *ModifyInstanceFleetInput) SetInstanceFleet(v *InstanceFleetModifyConfig) *ModifyInstanceFleetInput {
13851	s.InstanceFleet = v
13852	return s
13853}
13854
13855type ModifyInstanceFleetOutput struct {
13856	_ struct{} `type:"structure"`
13857}
13858
13859// String returns the string representation.
13860//
13861// API parameter values that are decorated as "sensitive" in the API will not
13862// be included in the string output. The member name will be present, but the
13863// value will be replaced with "sensitive".
13864func (s ModifyInstanceFleetOutput) String() string {
13865	return awsutil.Prettify(s)
13866}
13867
13868// GoString returns the string representation.
13869//
13870// API parameter values that are decorated as "sensitive" in the API will not
13871// be included in the string output. The member name will be present, but the
13872// value will be replaced with "sensitive".
13873func (s ModifyInstanceFleetOutput) GoString() string {
13874	return s.String()
13875}
13876
13877// Change the size of some instance groups.
13878type ModifyInstanceGroupsInput struct {
13879	_ struct{} `type:"structure"`
13880
13881	// The ID of the cluster to which the instance group belongs.
13882	ClusterId *string `type:"string"`
13883
13884	// Instance groups to change.
13885	InstanceGroups []*InstanceGroupModifyConfig `type:"list"`
13886}
13887
13888// String returns the string representation.
13889//
13890// API parameter values that are decorated as "sensitive" in the API will not
13891// be included in the string output. The member name will be present, but the
13892// value will be replaced with "sensitive".
13893func (s ModifyInstanceGroupsInput) String() string {
13894	return awsutil.Prettify(s)
13895}
13896
13897// GoString returns the string representation.
13898//
13899// API parameter values that are decorated as "sensitive" in the API will not
13900// be included in the string output. The member name will be present, but the
13901// value will be replaced with "sensitive".
13902func (s ModifyInstanceGroupsInput) GoString() string {
13903	return s.String()
13904}
13905
13906// Validate inspects the fields of the type to determine if they are valid.
13907func (s *ModifyInstanceGroupsInput) Validate() error {
13908	invalidParams := request.ErrInvalidParams{Context: "ModifyInstanceGroupsInput"}
13909	if s.InstanceGroups != nil {
13910		for i, v := range s.InstanceGroups {
13911			if v == nil {
13912				continue
13913			}
13914			if err := v.Validate(); err != nil {
13915				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "InstanceGroups", i), err.(request.ErrInvalidParams))
13916			}
13917		}
13918	}
13919
13920	if invalidParams.Len() > 0 {
13921		return invalidParams
13922	}
13923	return nil
13924}
13925
13926// SetClusterId sets the ClusterId field's value.
13927func (s *ModifyInstanceGroupsInput) SetClusterId(v string) *ModifyInstanceGroupsInput {
13928	s.ClusterId = &v
13929	return s
13930}
13931
13932// SetInstanceGroups sets the InstanceGroups field's value.
13933func (s *ModifyInstanceGroupsInput) SetInstanceGroups(v []*InstanceGroupModifyConfig) *ModifyInstanceGroupsInput {
13934	s.InstanceGroups = v
13935	return s
13936}
13937
13938type ModifyInstanceGroupsOutput struct {
13939	_ struct{} `type:"structure"`
13940}
13941
13942// String returns the string representation.
13943//
13944// API parameter values that are decorated as "sensitive" in the API will not
13945// be included in the string output. The member name will be present, but the
13946// value will be replaced with "sensitive".
13947func (s ModifyInstanceGroupsOutput) String() string {
13948	return awsutil.Prettify(s)
13949}
13950
13951// GoString returns the string representation.
13952//
13953// API parameter values that are decorated as "sensitive" in the API will not
13954// be included in the string output. The member name will be present, but the
13955// value will be replaced with "sensitive".
13956func (s ModifyInstanceGroupsOutput) GoString() string {
13957	return s.String()
13958}
13959
13960// A notebook execution. An execution is a specific instance that an EMR Notebook
13961// is run using the StartNotebookExecution action.
13962type NotebookExecution struct {
13963	_ struct{} `type:"structure"`
13964
13965	// The Amazon Resource Name (ARN) of the notebook execution.
13966	Arn *string `type:"string"`
13967
13968	// The unique identifier of the EMR Notebook that is used for the notebook execution.
13969	EditorId *string `type:"string"`
13970
13971	// The timestamp when notebook execution ended.
13972	EndTime *time.Time `type:"timestamp"`
13973
13974	// The execution engine, such as an EMR cluster, used to run the EMR notebook
13975	// and perform the notebook execution.
13976	ExecutionEngine *ExecutionEngineConfig `type:"structure"`
13977
13978	// The reason for the latest status change of the notebook execution.
13979	LastStateChangeReason *string `type:"string"`
13980
13981	// The unique identifier of a notebook execution.
13982	NotebookExecutionId *string `type:"string"`
13983
13984	// A name for the notebook execution.
13985	NotebookExecutionName *string `type:"string"`
13986
13987	// The unique identifier of the EC2 security group associated with the EMR Notebook
13988	// instance. For more information see Specifying EC2 Security Groups for EMR
13989	// Notebooks (https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-managed-notebooks-security-groups.html)
13990	// in the EMR Management Guide.
13991	NotebookInstanceSecurityGroupId *string `type:"string"`
13992
13993	// Input parameters in JSON format passed to the EMR Notebook at runtime for
13994	// execution.
13995	NotebookParams *string `type:"string"`
13996
13997	// The location of the notebook execution's output file in Amazon S3.
13998	OutputNotebookURI *string `type:"string"`
13999
14000	// The timestamp when notebook execution started.
14001	StartTime *time.Time `type:"timestamp"`
14002
14003	// The status of the notebook execution.
14004	//
14005	//    * START_PENDING indicates that the cluster has received the execution
14006	//    request but execution has not begun.
14007	//
14008	//    * STARTING indicates that the execution is starting on the cluster.
14009	//
14010	//    * RUNNING indicates that the execution is being processed by the cluster.
14011	//
14012	//    * FINISHING indicates that execution processing is in the final stages.
14013	//
14014	//    * FINISHED indicates that the execution has completed without error.
14015	//
14016	//    * FAILING indicates that the execution is failing and will not finish
14017	//    successfully.
14018	//
14019	//    * FAILED indicates that the execution failed.
14020	//
14021	//    * STOP_PENDING indicates that the cluster has received a StopNotebookExecution
14022	//    request and the stop is pending.
14023	//
14024	//    * STOPPING indicates that the cluster is in the process of stopping the
14025	//    execution as a result of a StopNotebookExecution request.
14026	//
14027	//    * STOPPED indicates that the execution stopped because of a StopNotebookExecution
14028	//    request.
14029	Status *string `type:"string" enum:"NotebookExecutionStatus"`
14030
14031	// A list of tags associated with a notebook execution. Tags are user-defined
14032	// key-value pairs that consist of a required key string with a maximum of 128
14033	// characters and an optional value string with a maximum of 256 characters.
14034	Tags []*Tag `type:"list"`
14035}
14036
14037// String returns the string representation.
14038//
14039// API parameter values that are decorated as "sensitive" in the API will not
14040// be included in the string output. The member name will be present, but the
14041// value will be replaced with "sensitive".
14042func (s NotebookExecution) String() string {
14043	return awsutil.Prettify(s)
14044}
14045
14046// GoString returns the string representation.
14047//
14048// API parameter values that are decorated as "sensitive" in the API will not
14049// be included in the string output. The member name will be present, but the
14050// value will be replaced with "sensitive".
14051func (s NotebookExecution) GoString() string {
14052	return s.String()
14053}
14054
14055// SetArn sets the Arn field's value.
14056func (s *NotebookExecution) SetArn(v string) *NotebookExecution {
14057	s.Arn = &v
14058	return s
14059}
14060
14061// SetEditorId sets the EditorId field's value.
14062func (s *NotebookExecution) SetEditorId(v string) *NotebookExecution {
14063	s.EditorId = &v
14064	return s
14065}
14066
14067// SetEndTime sets the EndTime field's value.
14068func (s *NotebookExecution) SetEndTime(v time.Time) *NotebookExecution {
14069	s.EndTime = &v
14070	return s
14071}
14072
14073// SetExecutionEngine sets the ExecutionEngine field's value.
14074func (s *NotebookExecution) SetExecutionEngine(v *ExecutionEngineConfig) *NotebookExecution {
14075	s.ExecutionEngine = v
14076	return s
14077}
14078
14079// SetLastStateChangeReason sets the LastStateChangeReason field's value.
14080func (s *NotebookExecution) SetLastStateChangeReason(v string) *NotebookExecution {
14081	s.LastStateChangeReason = &v
14082	return s
14083}
14084
14085// SetNotebookExecutionId sets the NotebookExecutionId field's value.
14086func (s *NotebookExecution) SetNotebookExecutionId(v string) *NotebookExecution {
14087	s.NotebookExecutionId = &v
14088	return s
14089}
14090
14091// SetNotebookExecutionName sets the NotebookExecutionName field's value.
14092func (s *NotebookExecution) SetNotebookExecutionName(v string) *NotebookExecution {
14093	s.NotebookExecutionName = &v
14094	return s
14095}
14096
14097// SetNotebookInstanceSecurityGroupId sets the NotebookInstanceSecurityGroupId field's value.
14098func (s *NotebookExecution) SetNotebookInstanceSecurityGroupId(v string) *NotebookExecution {
14099	s.NotebookInstanceSecurityGroupId = &v
14100	return s
14101}
14102
14103// SetNotebookParams sets the NotebookParams field's value.
14104func (s *NotebookExecution) SetNotebookParams(v string) *NotebookExecution {
14105	s.NotebookParams = &v
14106	return s
14107}
14108
14109// SetOutputNotebookURI sets the OutputNotebookURI field's value.
14110func (s *NotebookExecution) SetOutputNotebookURI(v string) *NotebookExecution {
14111	s.OutputNotebookURI = &v
14112	return s
14113}
14114
14115// SetStartTime sets the StartTime field's value.
14116func (s *NotebookExecution) SetStartTime(v time.Time) *NotebookExecution {
14117	s.StartTime = &v
14118	return s
14119}
14120
14121// SetStatus sets the Status field's value.
14122func (s *NotebookExecution) SetStatus(v string) *NotebookExecution {
14123	s.Status = &v
14124	return s
14125}
14126
14127// SetTags sets the Tags field's value.
14128func (s *NotebookExecution) SetTags(v []*Tag) *NotebookExecution {
14129	s.Tags = v
14130	return s
14131}
14132
14133// Details for a notebook execution. The details include information such as
14134// the unique ID and status of the notebook execution.
14135type NotebookExecutionSummary struct {
14136	_ struct{} `type:"structure"`
14137
14138	// The unique identifier of the editor associated with the notebook execution.
14139	EditorId *string `type:"string"`
14140
14141	// The timestamp when notebook execution started.
14142	EndTime *time.Time `type:"timestamp"`
14143
14144	// The unique identifier of the notebook execution.
14145	NotebookExecutionId *string `type:"string"`
14146
14147	// The name of the notebook execution.
14148	NotebookExecutionName *string `type:"string"`
14149
14150	// The timestamp when notebook execution started.
14151	StartTime *time.Time `type:"timestamp"`
14152
14153	// The status of the notebook execution.
14154	//
14155	//    * START_PENDING indicates that the cluster has received the execution
14156	//    request but execution has not begun.
14157	//
14158	//    * STARTING indicates that the execution is starting on the cluster.
14159	//
14160	//    * RUNNING indicates that the execution is being processed by the cluster.
14161	//
14162	//    * FINISHING indicates that execution processing is in the final stages.
14163	//
14164	//    * FINISHED indicates that the execution has completed without error.
14165	//
14166	//    * FAILING indicates that the execution is failing and will not finish
14167	//    successfully.
14168	//
14169	//    * FAILED indicates that the execution failed.
14170	//
14171	//    * STOP_PENDING indicates that the cluster has received a StopNotebookExecution
14172	//    request and the stop is pending.
14173	//
14174	//    * STOPPING indicates that the cluster is in the process of stopping the
14175	//    execution as a result of a StopNotebookExecution request.
14176	//
14177	//    * STOPPED indicates that the execution stopped because of a StopNotebookExecution
14178	//    request.
14179	Status *string `type:"string" enum:"NotebookExecutionStatus"`
14180}
14181
14182// String returns the string representation.
14183//
14184// API parameter values that are decorated as "sensitive" in the API will not
14185// be included in the string output. The member name will be present, but the
14186// value will be replaced with "sensitive".
14187func (s NotebookExecutionSummary) String() string {
14188	return awsutil.Prettify(s)
14189}
14190
14191// GoString returns the string representation.
14192//
14193// API parameter values that are decorated as "sensitive" in the API will not
14194// be included in the string output. The member name will be present, but the
14195// value will be replaced with "sensitive".
14196func (s NotebookExecutionSummary) GoString() string {
14197	return s.String()
14198}
14199
14200// SetEditorId sets the EditorId field's value.
14201func (s *NotebookExecutionSummary) SetEditorId(v string) *NotebookExecutionSummary {
14202	s.EditorId = &v
14203	return s
14204}
14205
14206// SetEndTime sets the EndTime field's value.
14207func (s *NotebookExecutionSummary) SetEndTime(v time.Time) *NotebookExecutionSummary {
14208	s.EndTime = &v
14209	return s
14210}
14211
14212// SetNotebookExecutionId sets the NotebookExecutionId field's value.
14213func (s *NotebookExecutionSummary) SetNotebookExecutionId(v string) *NotebookExecutionSummary {
14214	s.NotebookExecutionId = &v
14215	return s
14216}
14217
14218// SetNotebookExecutionName sets the NotebookExecutionName field's value.
14219func (s *NotebookExecutionSummary) SetNotebookExecutionName(v string) *NotebookExecutionSummary {
14220	s.NotebookExecutionName = &v
14221	return s
14222}
14223
14224// SetStartTime sets the StartTime field's value.
14225func (s *NotebookExecutionSummary) SetStartTime(v time.Time) *NotebookExecutionSummary {
14226	s.StartTime = &v
14227	return s
14228}
14229
14230// SetStatus sets the Status field's value.
14231func (s *NotebookExecutionSummary) SetStatus(v string) *NotebookExecutionSummary {
14232	s.Status = &v
14233	return s
14234}
14235
14236// Describes the strategy for using unused Capacity Reservations for fulfilling
14237// On-Demand capacity.
14238type OnDemandCapacityReservationOptions struct {
14239	_ struct{} `type:"structure"`
14240
14241	// Indicates the instance's Capacity Reservation preferences. Possible preferences
14242	// include:
14243	//
14244	//    * open - The instance can run in any open Capacity Reservation that has
14245	//    matching attributes (instance type, platform, Availability Zone).
14246	//
14247	//    * none - The instance avoids running in a Capacity Reservation even if
14248	//    one is available. The instance runs as an On-Demand Instance.
14249	CapacityReservationPreference *string `type:"string" enum:"OnDemandCapacityReservationPreference"`
14250
14251	// The ARN of the Capacity Reservation resource group in which to run the instance.
14252	CapacityReservationResourceGroupArn *string `type:"string"`
14253
14254	// Indicates whether to use unused Capacity Reservations for fulfilling On-Demand
14255	// capacity.
14256	//
14257	// If you specify use-capacity-reservations-first, the fleet uses unused Capacity
14258	// Reservations to fulfill On-Demand capacity up to the target On-Demand capacity.
14259	// If multiple instance pools have unused Capacity Reservations, the On-Demand
14260	// allocation strategy (lowest-price) is applied. If the number of unused Capacity
14261	// Reservations is less than the On-Demand target capacity, the remaining On-Demand
14262	// target capacity is launched according to the On-Demand allocation strategy
14263	// (lowest-price).
14264	//
14265	// If you do not specify a value, the fleet fulfills the On-Demand capacity
14266	// according to the chosen On-Demand allocation strategy.
14267	UsageStrategy *string `type:"string" enum:"OnDemandCapacityReservationUsageStrategy"`
14268}
14269
14270// String returns the string representation.
14271//
14272// API parameter values that are decorated as "sensitive" in the API will not
14273// be included in the string output. The member name will be present, but the
14274// value will be replaced with "sensitive".
14275func (s OnDemandCapacityReservationOptions) String() string {
14276	return awsutil.Prettify(s)
14277}
14278
14279// GoString returns the string representation.
14280//
14281// API parameter values that are decorated as "sensitive" in the API will not
14282// be included in the string output. The member name will be present, but the
14283// value will be replaced with "sensitive".
14284func (s OnDemandCapacityReservationOptions) GoString() string {
14285	return s.String()
14286}
14287
14288// SetCapacityReservationPreference sets the CapacityReservationPreference field's value.
14289func (s *OnDemandCapacityReservationOptions) SetCapacityReservationPreference(v string) *OnDemandCapacityReservationOptions {
14290	s.CapacityReservationPreference = &v
14291	return s
14292}
14293
14294// SetCapacityReservationResourceGroupArn sets the CapacityReservationResourceGroupArn field's value.
14295func (s *OnDemandCapacityReservationOptions) SetCapacityReservationResourceGroupArn(v string) *OnDemandCapacityReservationOptions {
14296	s.CapacityReservationResourceGroupArn = &v
14297	return s
14298}
14299
14300// SetUsageStrategy sets the UsageStrategy field's value.
14301func (s *OnDemandCapacityReservationOptions) SetUsageStrategy(v string) *OnDemandCapacityReservationOptions {
14302	s.UsageStrategy = &v
14303	return s
14304}
14305
14306// The launch specification for On-Demand Instances in the instance fleet, which
14307// determines the allocation strategy.
14308//
14309// The instance fleet configuration is available only in Amazon EMR versions
14310// 4.8.0 and later, excluding 5.0.x versions. On-Demand Instances allocation
14311// strategy is available in Amazon EMR version 5.12.1 and later.
14312type OnDemandProvisioningSpecification struct {
14313	_ struct{} `type:"structure"`
14314
14315	// Specifies the strategy to use in launching On-Demand instance fleets. Currently,
14316	// the only option is lowest-price (the default), which launches the lowest
14317	// price first.
14318	//
14319	// AllocationStrategy is a required field
14320	AllocationStrategy *string `type:"string" required:"true" enum:"OnDemandProvisioningAllocationStrategy"`
14321
14322	// The launch specification for On-Demand instances in the instance fleet, which
14323	// determines the allocation strategy.
14324	CapacityReservationOptions *OnDemandCapacityReservationOptions `type:"structure"`
14325}
14326
14327// String returns the string representation.
14328//
14329// API parameter values that are decorated as "sensitive" in the API will not
14330// be included in the string output. The member name will be present, but the
14331// value will be replaced with "sensitive".
14332func (s OnDemandProvisioningSpecification) String() string {
14333	return awsutil.Prettify(s)
14334}
14335
14336// GoString returns the string representation.
14337//
14338// API parameter values that are decorated as "sensitive" in the API will not
14339// be included in the string output. The member name will be present, but the
14340// value will be replaced with "sensitive".
14341func (s OnDemandProvisioningSpecification) GoString() string {
14342	return s.String()
14343}
14344
14345// Validate inspects the fields of the type to determine if they are valid.
14346func (s *OnDemandProvisioningSpecification) Validate() error {
14347	invalidParams := request.ErrInvalidParams{Context: "OnDemandProvisioningSpecification"}
14348	if s.AllocationStrategy == nil {
14349		invalidParams.Add(request.NewErrParamRequired("AllocationStrategy"))
14350	}
14351
14352	if invalidParams.Len() > 0 {
14353		return invalidParams
14354	}
14355	return nil
14356}
14357
14358// SetAllocationStrategy sets the AllocationStrategy field's value.
14359func (s *OnDemandProvisioningSpecification) SetAllocationStrategy(v string) *OnDemandProvisioningSpecification {
14360	s.AllocationStrategy = &v
14361	return s
14362}
14363
14364// SetCapacityReservationOptions sets the CapacityReservationOptions field's value.
14365func (s *OnDemandProvisioningSpecification) SetCapacityReservationOptions(v *OnDemandCapacityReservationOptions) *OnDemandProvisioningSpecification {
14366	s.CapacityReservationOptions = v
14367	return s
14368}
14369
14370// Placement group configuration for an Amazon EMR cluster. The configuration
14371// specifies the placement strategy that can be applied to instance roles during
14372// cluster creation.
14373//
14374// To use this configuration, consider attaching managed policy AmazonElasticMapReducePlacementGroupPolicy
14375// to the EMR role.
14376type PlacementGroupConfig struct {
14377	_ struct{} `type:"structure"`
14378
14379	// Role of the instance in the cluster.
14380	//
14381	// Starting with Amazon EMR version 5.23.0, the only supported instance role
14382	// is MASTER.
14383	//
14384	// InstanceRole is a required field
14385	InstanceRole *string `type:"string" required:"true" enum:"InstanceRoleType"`
14386
14387	// EC2 Placement Group strategy associated with instance role.
14388	//
14389	// Starting with Amazon EMR version 5.23.0, the only supported placement strategy
14390	// is SPREAD for the MASTER instance role.
14391	PlacementStrategy *string `type:"string" enum:"PlacementGroupStrategy"`
14392}
14393
14394// String returns the string representation.
14395//
14396// API parameter values that are decorated as "sensitive" in the API will not
14397// be included in the string output. The member name will be present, but the
14398// value will be replaced with "sensitive".
14399func (s PlacementGroupConfig) String() string {
14400	return awsutil.Prettify(s)
14401}
14402
14403// GoString returns the string representation.
14404//
14405// API parameter values that are decorated as "sensitive" in the API will not
14406// be included in the string output. The member name will be present, but the
14407// value will be replaced with "sensitive".
14408func (s PlacementGroupConfig) GoString() string {
14409	return s.String()
14410}
14411
14412// Validate inspects the fields of the type to determine if they are valid.
14413func (s *PlacementGroupConfig) Validate() error {
14414	invalidParams := request.ErrInvalidParams{Context: "PlacementGroupConfig"}
14415	if s.InstanceRole == nil {
14416		invalidParams.Add(request.NewErrParamRequired("InstanceRole"))
14417	}
14418
14419	if invalidParams.Len() > 0 {
14420		return invalidParams
14421	}
14422	return nil
14423}
14424
14425// SetInstanceRole sets the InstanceRole field's value.
14426func (s *PlacementGroupConfig) SetInstanceRole(v string) *PlacementGroupConfig {
14427	s.InstanceRole = &v
14428	return s
14429}
14430
14431// SetPlacementStrategy sets the PlacementStrategy field's value.
14432func (s *PlacementGroupConfig) SetPlacementStrategy(v string) *PlacementGroupConfig {
14433	s.PlacementStrategy = &v
14434	return s
14435}
14436
14437// The Amazon EC2 Availability Zone configuration of the cluster (job flow).
14438type PlacementType struct {
14439	_ struct{} `type:"structure"`
14440
14441	// The Amazon EC2 Availability Zone for the cluster. AvailabilityZone is used
14442	// for uniform instance groups, while AvailabilityZones (plural) is used for
14443	// instance fleets.
14444	AvailabilityZone *string `type:"string"`
14445
14446	// When multiple Availability Zones are specified, Amazon EMR evaluates them
14447	// and launches instances in the optimal Availability Zone. AvailabilityZones
14448	// is used for instance fleets, while AvailabilityZone (singular) is used for
14449	// uniform instance groups.
14450	//
14451	// The instance fleet configuration is available only in Amazon EMR versions
14452	// 4.8.0 and later, excluding 5.0.x versions.
14453	AvailabilityZones []*string `type:"list"`
14454}
14455
14456// String returns the string representation.
14457//
14458// API parameter values that are decorated as "sensitive" in the API will not
14459// be included in the string output. The member name will be present, but the
14460// value will be replaced with "sensitive".
14461func (s PlacementType) String() string {
14462	return awsutil.Prettify(s)
14463}
14464
14465// GoString returns the string representation.
14466//
14467// API parameter values that are decorated as "sensitive" in the API will not
14468// be included in the string output. The member name will be present, but the
14469// value will be replaced with "sensitive".
14470func (s PlacementType) GoString() string {
14471	return s.String()
14472}
14473
14474// SetAvailabilityZone sets the AvailabilityZone field's value.
14475func (s *PlacementType) SetAvailabilityZone(v string) *PlacementType {
14476	s.AvailabilityZone = &v
14477	return s
14478}
14479
14480// SetAvailabilityZones sets the AvailabilityZones field's value.
14481func (s *PlacementType) SetAvailabilityZones(v []*string) *PlacementType {
14482	s.AvailabilityZones = v
14483	return s
14484}
14485
14486// A list of port ranges that are permitted to allow inbound traffic from all
14487// public IP addresses. To specify a single port, use the same value for MinRange
14488// and MaxRange.
14489type PortRange struct {
14490	_ struct{} `type:"structure"`
14491
14492	// The smallest port number in a specified range of port numbers.
14493	MaxRange *int64 `type:"integer"`
14494
14495	// The smallest port number in a specified range of port numbers.
14496	//
14497	// MinRange is a required field
14498	MinRange *int64 `type:"integer" required:"true"`
14499}
14500
14501// String returns the string representation.
14502//
14503// API parameter values that are decorated as "sensitive" in the API will not
14504// be included in the string output. The member name will be present, but the
14505// value will be replaced with "sensitive".
14506func (s PortRange) String() string {
14507	return awsutil.Prettify(s)
14508}
14509
14510// GoString returns the string representation.
14511//
14512// API parameter values that are decorated as "sensitive" in the API will not
14513// be included in the string output. The member name will be present, but the
14514// value will be replaced with "sensitive".
14515func (s PortRange) GoString() string {
14516	return s.String()
14517}
14518
14519// Validate inspects the fields of the type to determine if they are valid.
14520func (s *PortRange) Validate() error {
14521	invalidParams := request.ErrInvalidParams{Context: "PortRange"}
14522	if s.MaxRange != nil && *s.MaxRange < -1 {
14523		invalidParams.Add(request.NewErrParamMinValue("MaxRange", -1))
14524	}
14525	if s.MinRange == nil {
14526		invalidParams.Add(request.NewErrParamRequired("MinRange"))
14527	}
14528	if s.MinRange != nil && *s.MinRange < -1 {
14529		invalidParams.Add(request.NewErrParamMinValue("MinRange", -1))
14530	}
14531
14532	if invalidParams.Len() > 0 {
14533		return invalidParams
14534	}
14535	return nil
14536}
14537
14538// SetMaxRange sets the MaxRange field's value.
14539func (s *PortRange) SetMaxRange(v int64) *PortRange {
14540	s.MaxRange = &v
14541	return s
14542}
14543
14544// SetMinRange sets the MinRange field's value.
14545func (s *PortRange) SetMinRange(v int64) *PortRange {
14546	s.MinRange = &v
14547	return s
14548}
14549
14550type PutAutoScalingPolicyInput struct {
14551	_ struct{} `type:"structure"`
14552
14553	// Specifies the definition of the automatic scaling policy.
14554	//
14555	// AutoScalingPolicy is a required field
14556	AutoScalingPolicy *AutoScalingPolicy `type:"structure" required:"true"`
14557
14558	// Specifies the ID of a cluster. The instance group to which the automatic
14559	// scaling policy is applied is within this cluster.
14560	//
14561	// ClusterId is a required field
14562	ClusterId *string `type:"string" required:"true"`
14563
14564	// Specifies the ID of the instance group to which the automatic scaling policy
14565	// is applied.
14566	//
14567	// InstanceGroupId is a required field
14568	InstanceGroupId *string `type:"string" required:"true"`
14569}
14570
14571// String returns the string representation.
14572//
14573// API parameter values that are decorated as "sensitive" in the API will not
14574// be included in the string output. The member name will be present, but the
14575// value will be replaced with "sensitive".
14576func (s PutAutoScalingPolicyInput) String() string {
14577	return awsutil.Prettify(s)
14578}
14579
14580// GoString returns the string representation.
14581//
14582// API parameter values that are decorated as "sensitive" in the API will not
14583// be included in the string output. The member name will be present, but the
14584// value will be replaced with "sensitive".
14585func (s PutAutoScalingPolicyInput) GoString() string {
14586	return s.String()
14587}
14588
14589// Validate inspects the fields of the type to determine if they are valid.
14590func (s *PutAutoScalingPolicyInput) Validate() error {
14591	invalidParams := request.ErrInvalidParams{Context: "PutAutoScalingPolicyInput"}
14592	if s.AutoScalingPolicy == nil {
14593		invalidParams.Add(request.NewErrParamRequired("AutoScalingPolicy"))
14594	}
14595	if s.ClusterId == nil {
14596		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
14597	}
14598	if s.InstanceGroupId == nil {
14599		invalidParams.Add(request.NewErrParamRequired("InstanceGroupId"))
14600	}
14601	if s.AutoScalingPolicy != nil {
14602		if err := s.AutoScalingPolicy.Validate(); err != nil {
14603			invalidParams.AddNested("AutoScalingPolicy", err.(request.ErrInvalidParams))
14604		}
14605	}
14606
14607	if invalidParams.Len() > 0 {
14608		return invalidParams
14609	}
14610	return nil
14611}
14612
14613// SetAutoScalingPolicy sets the AutoScalingPolicy field's value.
14614func (s *PutAutoScalingPolicyInput) SetAutoScalingPolicy(v *AutoScalingPolicy) *PutAutoScalingPolicyInput {
14615	s.AutoScalingPolicy = v
14616	return s
14617}
14618
14619// SetClusterId sets the ClusterId field's value.
14620func (s *PutAutoScalingPolicyInput) SetClusterId(v string) *PutAutoScalingPolicyInput {
14621	s.ClusterId = &v
14622	return s
14623}
14624
14625// SetInstanceGroupId sets the InstanceGroupId field's value.
14626func (s *PutAutoScalingPolicyInput) SetInstanceGroupId(v string) *PutAutoScalingPolicyInput {
14627	s.InstanceGroupId = &v
14628	return s
14629}
14630
14631type PutAutoScalingPolicyOutput struct {
14632	_ struct{} `type:"structure"`
14633
14634	// The automatic scaling policy definition.
14635	AutoScalingPolicy *AutoScalingPolicyDescription `type:"structure"`
14636
14637	// The Amazon Resource Name (ARN) of the cluster.
14638	ClusterArn *string `min:"20" type:"string"`
14639
14640	// Specifies the ID of a cluster. The instance group to which the automatic
14641	// scaling policy is applied is within this cluster.
14642	ClusterId *string `type:"string"`
14643
14644	// Specifies the ID of the instance group to which the scaling policy is applied.
14645	InstanceGroupId *string `type:"string"`
14646}
14647
14648// String returns the string representation.
14649//
14650// API parameter values that are decorated as "sensitive" in the API will not
14651// be included in the string output. The member name will be present, but the
14652// value will be replaced with "sensitive".
14653func (s PutAutoScalingPolicyOutput) String() string {
14654	return awsutil.Prettify(s)
14655}
14656
14657// GoString returns the string representation.
14658//
14659// API parameter values that are decorated as "sensitive" in the API will not
14660// be included in the string output. The member name will be present, but the
14661// value will be replaced with "sensitive".
14662func (s PutAutoScalingPolicyOutput) GoString() string {
14663	return s.String()
14664}
14665
14666// SetAutoScalingPolicy sets the AutoScalingPolicy field's value.
14667func (s *PutAutoScalingPolicyOutput) SetAutoScalingPolicy(v *AutoScalingPolicyDescription) *PutAutoScalingPolicyOutput {
14668	s.AutoScalingPolicy = v
14669	return s
14670}
14671
14672// SetClusterArn sets the ClusterArn field's value.
14673func (s *PutAutoScalingPolicyOutput) SetClusterArn(v string) *PutAutoScalingPolicyOutput {
14674	s.ClusterArn = &v
14675	return s
14676}
14677
14678// SetClusterId sets the ClusterId field's value.
14679func (s *PutAutoScalingPolicyOutput) SetClusterId(v string) *PutAutoScalingPolicyOutput {
14680	s.ClusterId = &v
14681	return s
14682}
14683
14684// SetInstanceGroupId sets the InstanceGroupId field's value.
14685func (s *PutAutoScalingPolicyOutput) SetInstanceGroupId(v string) *PutAutoScalingPolicyOutput {
14686	s.InstanceGroupId = &v
14687	return s
14688}
14689
14690type PutAutoTerminationPolicyInput struct {
14691	_ struct{} `type:"structure"`
14692
14693	// Specifies the auto-termination policy to attach to the cluster.
14694	AutoTerminationPolicy *AutoTerminationPolicy `type:"structure"`
14695
14696	// Specifies the ID of the Amazon EMR cluster to which the auto-termination
14697	// policy will be attached.
14698	//
14699	// ClusterId is a required field
14700	ClusterId *string `type:"string" required:"true"`
14701}
14702
14703// String returns the string representation.
14704//
14705// API parameter values that are decorated as "sensitive" in the API will not
14706// be included in the string output. The member name will be present, but the
14707// value will be replaced with "sensitive".
14708func (s PutAutoTerminationPolicyInput) String() string {
14709	return awsutil.Prettify(s)
14710}
14711
14712// GoString returns the string representation.
14713//
14714// API parameter values that are decorated as "sensitive" in the API will not
14715// be included in the string output. The member name will be present, but the
14716// value will be replaced with "sensitive".
14717func (s PutAutoTerminationPolicyInput) GoString() string {
14718	return s.String()
14719}
14720
14721// Validate inspects the fields of the type to determine if they are valid.
14722func (s *PutAutoTerminationPolicyInput) Validate() error {
14723	invalidParams := request.ErrInvalidParams{Context: "PutAutoTerminationPolicyInput"}
14724	if s.ClusterId == nil {
14725		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
14726	}
14727
14728	if invalidParams.Len() > 0 {
14729		return invalidParams
14730	}
14731	return nil
14732}
14733
14734// SetAutoTerminationPolicy sets the AutoTerminationPolicy field's value.
14735func (s *PutAutoTerminationPolicyInput) SetAutoTerminationPolicy(v *AutoTerminationPolicy) *PutAutoTerminationPolicyInput {
14736	s.AutoTerminationPolicy = v
14737	return s
14738}
14739
14740// SetClusterId sets the ClusterId field's value.
14741func (s *PutAutoTerminationPolicyInput) SetClusterId(v string) *PutAutoTerminationPolicyInput {
14742	s.ClusterId = &v
14743	return s
14744}
14745
14746type PutAutoTerminationPolicyOutput struct {
14747	_ struct{} `type:"structure"`
14748}
14749
14750// String returns the string representation.
14751//
14752// API parameter values that are decorated as "sensitive" in the API will not
14753// be included in the string output. The member name will be present, but the
14754// value will be replaced with "sensitive".
14755func (s PutAutoTerminationPolicyOutput) String() string {
14756	return awsutil.Prettify(s)
14757}
14758
14759// GoString returns the string representation.
14760//
14761// API parameter values that are decorated as "sensitive" in the API will not
14762// be included in the string output. The member name will be present, but the
14763// value will be replaced with "sensitive".
14764func (s PutAutoTerminationPolicyOutput) GoString() string {
14765	return s.String()
14766}
14767
14768type PutBlockPublicAccessConfigurationInput struct {
14769	_ struct{} `type:"structure"`
14770
14771	// A configuration for Amazon EMR block public access. The configuration applies
14772	// to all clusters created in your account for the current Region. The configuration
14773	// specifies whether block public access is enabled. If block public access
14774	// is enabled, security groups associated with the cluster cannot have rules
14775	// that allow inbound traffic from 0.0.0.0/0 or ::/0 on a port, unless the port
14776	// is specified as an exception using PermittedPublicSecurityGroupRuleRanges
14777	// in the BlockPublicAccessConfiguration. By default, Port 22 (SSH) is an exception,
14778	// and public access is allowed on this port. You can change this by updating
14779	// BlockPublicSecurityGroupRules to remove the exception.
14780	//
14781	// For accounts that created clusters in a Region before November 25, 2019,
14782	// block public access is disabled by default in that Region. To use this feature,
14783	// you must manually enable and configure it. For accounts that did not create
14784	// an EMR cluster in a Region before this date, block public access is enabled
14785	// by default in that Region.
14786	//
14787	// BlockPublicAccessConfiguration is a required field
14788	BlockPublicAccessConfiguration *BlockPublicAccessConfiguration `type:"structure" required:"true"`
14789}
14790
14791// String returns the string representation.
14792//
14793// API parameter values that are decorated as "sensitive" in the API will not
14794// be included in the string output. The member name will be present, but the
14795// value will be replaced with "sensitive".
14796func (s PutBlockPublicAccessConfigurationInput) String() string {
14797	return awsutil.Prettify(s)
14798}
14799
14800// GoString returns the string representation.
14801//
14802// API parameter values that are decorated as "sensitive" in the API will not
14803// be included in the string output. The member name will be present, but the
14804// value will be replaced with "sensitive".
14805func (s PutBlockPublicAccessConfigurationInput) GoString() string {
14806	return s.String()
14807}
14808
14809// Validate inspects the fields of the type to determine if they are valid.
14810func (s *PutBlockPublicAccessConfigurationInput) Validate() error {
14811	invalidParams := request.ErrInvalidParams{Context: "PutBlockPublicAccessConfigurationInput"}
14812	if s.BlockPublicAccessConfiguration == nil {
14813		invalidParams.Add(request.NewErrParamRequired("BlockPublicAccessConfiguration"))
14814	}
14815	if s.BlockPublicAccessConfiguration != nil {
14816		if err := s.BlockPublicAccessConfiguration.Validate(); err != nil {
14817			invalidParams.AddNested("BlockPublicAccessConfiguration", err.(request.ErrInvalidParams))
14818		}
14819	}
14820
14821	if invalidParams.Len() > 0 {
14822		return invalidParams
14823	}
14824	return nil
14825}
14826
14827// SetBlockPublicAccessConfiguration sets the BlockPublicAccessConfiguration field's value.
14828func (s *PutBlockPublicAccessConfigurationInput) SetBlockPublicAccessConfiguration(v *BlockPublicAccessConfiguration) *PutBlockPublicAccessConfigurationInput {
14829	s.BlockPublicAccessConfiguration = v
14830	return s
14831}
14832
14833type PutBlockPublicAccessConfigurationOutput struct {
14834	_ struct{} `type:"structure"`
14835}
14836
14837// String returns the string representation.
14838//
14839// API parameter values that are decorated as "sensitive" in the API will not
14840// be included in the string output. The member name will be present, but the
14841// value will be replaced with "sensitive".
14842func (s PutBlockPublicAccessConfigurationOutput) String() string {
14843	return awsutil.Prettify(s)
14844}
14845
14846// GoString returns the string representation.
14847//
14848// API parameter values that are decorated as "sensitive" in the API will not
14849// be included in the string output. The member name will be present, but the
14850// value will be replaced with "sensitive".
14851func (s PutBlockPublicAccessConfigurationOutput) GoString() string {
14852	return s.String()
14853}
14854
14855type PutManagedScalingPolicyInput struct {
14856	_ struct{} `type:"structure"`
14857
14858	// Specifies the ID of an EMR cluster where the managed scaling policy is attached.
14859	//
14860	// ClusterId is a required field
14861	ClusterId *string `type:"string" required:"true"`
14862
14863	// Specifies the constraints for the managed scaling policy.
14864	//
14865	// ManagedScalingPolicy is a required field
14866	ManagedScalingPolicy *ManagedScalingPolicy `type:"structure" required:"true"`
14867}
14868
14869// String returns the string representation.
14870//
14871// API parameter values that are decorated as "sensitive" in the API will not
14872// be included in the string output. The member name will be present, but the
14873// value will be replaced with "sensitive".
14874func (s PutManagedScalingPolicyInput) String() string {
14875	return awsutil.Prettify(s)
14876}
14877
14878// GoString returns the string representation.
14879//
14880// API parameter values that are decorated as "sensitive" in the API will not
14881// be included in the string output. The member name will be present, but the
14882// value will be replaced with "sensitive".
14883func (s PutManagedScalingPolicyInput) GoString() string {
14884	return s.String()
14885}
14886
14887// Validate inspects the fields of the type to determine if they are valid.
14888func (s *PutManagedScalingPolicyInput) Validate() error {
14889	invalidParams := request.ErrInvalidParams{Context: "PutManagedScalingPolicyInput"}
14890	if s.ClusterId == nil {
14891		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
14892	}
14893	if s.ManagedScalingPolicy == nil {
14894		invalidParams.Add(request.NewErrParamRequired("ManagedScalingPolicy"))
14895	}
14896	if s.ManagedScalingPolicy != nil {
14897		if err := s.ManagedScalingPolicy.Validate(); err != nil {
14898			invalidParams.AddNested("ManagedScalingPolicy", err.(request.ErrInvalidParams))
14899		}
14900	}
14901
14902	if invalidParams.Len() > 0 {
14903		return invalidParams
14904	}
14905	return nil
14906}
14907
14908// SetClusterId sets the ClusterId field's value.
14909func (s *PutManagedScalingPolicyInput) SetClusterId(v string) *PutManagedScalingPolicyInput {
14910	s.ClusterId = &v
14911	return s
14912}
14913
14914// SetManagedScalingPolicy sets the ManagedScalingPolicy field's value.
14915func (s *PutManagedScalingPolicyInput) SetManagedScalingPolicy(v *ManagedScalingPolicy) *PutManagedScalingPolicyInput {
14916	s.ManagedScalingPolicy = v
14917	return s
14918}
14919
14920type PutManagedScalingPolicyOutput struct {
14921	_ struct{} `type:"structure"`
14922}
14923
14924// String returns the string representation.
14925//
14926// API parameter values that are decorated as "sensitive" in the API will not
14927// be included in the string output. The member name will be present, but the
14928// value will be replaced with "sensitive".
14929func (s PutManagedScalingPolicyOutput) String() string {
14930	return awsutil.Prettify(s)
14931}
14932
14933// GoString returns the string representation.
14934//
14935// API parameter values that are decorated as "sensitive" in the API will not
14936// be included in the string output. The member name will be present, but the
14937// value will be replaced with "sensitive".
14938func (s PutManagedScalingPolicyOutput) GoString() string {
14939	return s.String()
14940}
14941
14942// The release label filters by application or version prefix.
14943type ReleaseLabelFilter struct {
14944	_ struct{} `type:"structure"`
14945
14946	// Optional release label application filter. For example, spark@2.1.0.
14947	Application *string `type:"string"`
14948
14949	// Optional release label version prefix filter. For example, emr-5.
14950	Prefix *string `type:"string"`
14951}
14952
14953// String returns the string representation.
14954//
14955// API parameter values that are decorated as "sensitive" in the API will not
14956// be included in the string output. The member name will be present, but the
14957// value will be replaced with "sensitive".
14958func (s ReleaseLabelFilter) String() string {
14959	return awsutil.Prettify(s)
14960}
14961
14962// GoString returns the string representation.
14963//
14964// API parameter values that are decorated as "sensitive" in the API will not
14965// be included in the string output. The member name will be present, but the
14966// value will be replaced with "sensitive".
14967func (s ReleaseLabelFilter) GoString() string {
14968	return s.String()
14969}
14970
14971// SetApplication sets the Application field's value.
14972func (s *ReleaseLabelFilter) SetApplication(v string) *ReleaseLabelFilter {
14973	s.Application = &v
14974	return s
14975}
14976
14977// SetPrefix sets the Prefix field's value.
14978func (s *ReleaseLabelFilter) SetPrefix(v string) *ReleaseLabelFilter {
14979	s.Prefix = &v
14980	return s
14981}
14982
14983type RemoveAutoScalingPolicyInput struct {
14984	_ struct{} `type:"structure"`
14985
14986	// Specifies the ID of a cluster. The instance group to which the automatic
14987	// scaling policy is applied is within this cluster.
14988	//
14989	// ClusterId is a required field
14990	ClusterId *string `type:"string" required:"true"`
14991
14992	// Specifies the ID of the instance group to which the scaling policy is applied.
14993	//
14994	// InstanceGroupId is a required field
14995	InstanceGroupId *string `type:"string" required:"true"`
14996}
14997
14998// String returns the string representation.
14999//
15000// API parameter values that are decorated as "sensitive" in the API will not
15001// be included in the string output. The member name will be present, but the
15002// value will be replaced with "sensitive".
15003func (s RemoveAutoScalingPolicyInput) String() string {
15004	return awsutil.Prettify(s)
15005}
15006
15007// GoString returns the string representation.
15008//
15009// API parameter values that are decorated as "sensitive" in the API will not
15010// be included in the string output. The member name will be present, but the
15011// value will be replaced with "sensitive".
15012func (s RemoveAutoScalingPolicyInput) GoString() string {
15013	return s.String()
15014}
15015
15016// Validate inspects the fields of the type to determine if they are valid.
15017func (s *RemoveAutoScalingPolicyInput) Validate() error {
15018	invalidParams := request.ErrInvalidParams{Context: "RemoveAutoScalingPolicyInput"}
15019	if s.ClusterId == nil {
15020		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
15021	}
15022	if s.InstanceGroupId == nil {
15023		invalidParams.Add(request.NewErrParamRequired("InstanceGroupId"))
15024	}
15025
15026	if invalidParams.Len() > 0 {
15027		return invalidParams
15028	}
15029	return nil
15030}
15031
15032// SetClusterId sets the ClusterId field's value.
15033func (s *RemoveAutoScalingPolicyInput) SetClusterId(v string) *RemoveAutoScalingPolicyInput {
15034	s.ClusterId = &v
15035	return s
15036}
15037
15038// SetInstanceGroupId sets the InstanceGroupId field's value.
15039func (s *RemoveAutoScalingPolicyInput) SetInstanceGroupId(v string) *RemoveAutoScalingPolicyInput {
15040	s.InstanceGroupId = &v
15041	return s
15042}
15043
15044type RemoveAutoScalingPolicyOutput struct {
15045	_ struct{} `type:"structure"`
15046}
15047
15048// String returns the string representation.
15049//
15050// API parameter values that are decorated as "sensitive" in the API will not
15051// be included in the string output. The member name will be present, but the
15052// value will be replaced with "sensitive".
15053func (s RemoveAutoScalingPolicyOutput) String() string {
15054	return awsutil.Prettify(s)
15055}
15056
15057// GoString returns the string representation.
15058//
15059// API parameter values that are decorated as "sensitive" in the API will not
15060// be included in the string output. The member name will be present, but the
15061// value will be replaced with "sensitive".
15062func (s RemoveAutoScalingPolicyOutput) GoString() string {
15063	return s.String()
15064}
15065
15066type RemoveAutoTerminationPolicyInput struct {
15067	_ struct{} `type:"structure"`
15068
15069	// Specifies the ID of the Amazon EMR cluster from which the auto-termination
15070	// policy will be removed.
15071	//
15072	// ClusterId is a required field
15073	ClusterId *string `type:"string" required:"true"`
15074}
15075
15076// String returns the string representation.
15077//
15078// API parameter values that are decorated as "sensitive" in the API will not
15079// be included in the string output. The member name will be present, but the
15080// value will be replaced with "sensitive".
15081func (s RemoveAutoTerminationPolicyInput) String() string {
15082	return awsutil.Prettify(s)
15083}
15084
15085// GoString returns the string representation.
15086//
15087// API parameter values that are decorated as "sensitive" in the API will not
15088// be included in the string output. The member name will be present, but the
15089// value will be replaced with "sensitive".
15090func (s RemoveAutoTerminationPolicyInput) GoString() string {
15091	return s.String()
15092}
15093
15094// Validate inspects the fields of the type to determine if they are valid.
15095func (s *RemoveAutoTerminationPolicyInput) Validate() error {
15096	invalidParams := request.ErrInvalidParams{Context: "RemoveAutoTerminationPolicyInput"}
15097	if s.ClusterId == nil {
15098		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
15099	}
15100
15101	if invalidParams.Len() > 0 {
15102		return invalidParams
15103	}
15104	return nil
15105}
15106
15107// SetClusterId sets the ClusterId field's value.
15108func (s *RemoveAutoTerminationPolicyInput) SetClusterId(v string) *RemoveAutoTerminationPolicyInput {
15109	s.ClusterId = &v
15110	return s
15111}
15112
15113type RemoveAutoTerminationPolicyOutput struct {
15114	_ struct{} `type:"structure"`
15115}
15116
15117// String returns the string representation.
15118//
15119// API parameter values that are decorated as "sensitive" in the API will not
15120// be included in the string output. The member name will be present, but the
15121// value will be replaced with "sensitive".
15122func (s RemoveAutoTerminationPolicyOutput) String() string {
15123	return awsutil.Prettify(s)
15124}
15125
15126// GoString returns the string representation.
15127//
15128// API parameter values that are decorated as "sensitive" in the API will not
15129// be included in the string output. The member name will be present, but the
15130// value will be replaced with "sensitive".
15131func (s RemoveAutoTerminationPolicyOutput) GoString() string {
15132	return s.String()
15133}
15134
15135type RemoveManagedScalingPolicyInput struct {
15136	_ struct{} `type:"structure"`
15137
15138	// Specifies the ID of the cluster from which the managed scaling policy will
15139	// be removed.
15140	//
15141	// ClusterId is a required field
15142	ClusterId *string `type:"string" required:"true"`
15143}
15144
15145// String returns the string representation.
15146//
15147// API parameter values that are decorated as "sensitive" in the API will not
15148// be included in the string output. The member name will be present, but the
15149// value will be replaced with "sensitive".
15150func (s RemoveManagedScalingPolicyInput) String() string {
15151	return awsutil.Prettify(s)
15152}
15153
15154// GoString returns the string representation.
15155//
15156// API parameter values that are decorated as "sensitive" in the API will not
15157// be included in the string output. The member name will be present, but the
15158// value will be replaced with "sensitive".
15159func (s RemoveManagedScalingPolicyInput) GoString() string {
15160	return s.String()
15161}
15162
15163// Validate inspects the fields of the type to determine if they are valid.
15164func (s *RemoveManagedScalingPolicyInput) Validate() error {
15165	invalidParams := request.ErrInvalidParams{Context: "RemoveManagedScalingPolicyInput"}
15166	if s.ClusterId == nil {
15167		invalidParams.Add(request.NewErrParamRequired("ClusterId"))
15168	}
15169
15170	if invalidParams.Len() > 0 {
15171		return invalidParams
15172	}
15173	return nil
15174}
15175
15176// SetClusterId sets the ClusterId field's value.
15177func (s *RemoveManagedScalingPolicyInput) SetClusterId(v string) *RemoveManagedScalingPolicyInput {
15178	s.ClusterId = &v
15179	return s
15180}
15181
15182type RemoveManagedScalingPolicyOutput struct {
15183	_ struct{} `type:"structure"`
15184}
15185
15186// String returns the string representation.
15187//
15188// API parameter values that are decorated as "sensitive" in the API will not
15189// be included in the string output. The member name will be present, but the
15190// value will be replaced with "sensitive".
15191func (s RemoveManagedScalingPolicyOutput) String() string {
15192	return awsutil.Prettify(s)
15193}
15194
15195// GoString returns the string representation.
15196//
15197// API parameter values that are decorated as "sensitive" in the API will not
15198// be included in the string output. The member name will be present, but the
15199// value will be replaced with "sensitive".
15200func (s RemoveManagedScalingPolicyOutput) GoString() string {
15201	return s.String()
15202}
15203
15204// This input identifies an Amazon EMR resource and a list of tags to remove.
15205type RemoveTagsInput struct {
15206	_ struct{} `type:"structure"`
15207
15208	// The Amazon EMR resource identifier from which tags will be removed. For example,
15209	// a cluster identifier or an Amazon EMR Studio ID.
15210	//
15211	// ResourceId is a required field
15212	ResourceId *string `type:"string" required:"true"`
15213
15214	// A list of tag keys to remove from the resource.
15215	//
15216	// TagKeys is a required field
15217	TagKeys []*string `type:"list" required:"true"`
15218}
15219
15220// String returns the string representation.
15221//
15222// API parameter values that are decorated as "sensitive" in the API will not
15223// be included in the string output. The member name will be present, but the
15224// value will be replaced with "sensitive".
15225func (s RemoveTagsInput) String() string {
15226	return awsutil.Prettify(s)
15227}
15228
15229// GoString returns the string representation.
15230//
15231// API parameter values that are decorated as "sensitive" in the API will not
15232// be included in the string output. The member name will be present, but the
15233// value will be replaced with "sensitive".
15234func (s RemoveTagsInput) GoString() string {
15235	return s.String()
15236}
15237
15238// Validate inspects the fields of the type to determine if they are valid.
15239func (s *RemoveTagsInput) Validate() error {
15240	invalidParams := request.ErrInvalidParams{Context: "RemoveTagsInput"}
15241	if s.ResourceId == nil {
15242		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
15243	}
15244	if s.TagKeys == nil {
15245		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
15246	}
15247
15248	if invalidParams.Len() > 0 {
15249		return invalidParams
15250	}
15251	return nil
15252}
15253
15254// SetResourceId sets the ResourceId field's value.
15255func (s *RemoveTagsInput) SetResourceId(v string) *RemoveTagsInput {
15256	s.ResourceId = &v
15257	return s
15258}
15259
15260// SetTagKeys sets the TagKeys field's value.
15261func (s *RemoveTagsInput) SetTagKeys(v []*string) *RemoveTagsInput {
15262	s.TagKeys = v
15263	return s
15264}
15265
15266// This output indicates the result of removing tags from the resource.
15267type RemoveTagsOutput struct {
15268	_ struct{} `type:"structure"`
15269}
15270
15271// String returns the string representation.
15272//
15273// API parameter values that are decorated as "sensitive" in the API will not
15274// be included in the string output. The member name will be present, but the
15275// value will be replaced with "sensitive".
15276func (s RemoveTagsOutput) String() string {
15277	return awsutil.Prettify(s)
15278}
15279
15280// GoString returns the string representation.
15281//
15282// API parameter values that are decorated as "sensitive" in the API will not
15283// be included in the string output. The member name will be present, but the
15284// value will be replaced with "sensitive".
15285func (s RemoveTagsOutput) GoString() string {
15286	return s.String()
15287}
15288
15289// Input to the RunJobFlow operation.
15290type RunJobFlowInput struct {
15291	_ struct{} `type:"structure"`
15292
15293	// A JSON string for selecting additional features.
15294	AdditionalInfo *string `type:"string"`
15295
15296	// Applies only to Amazon EMR AMI versions 3.x and 2.x. For Amazon EMR releases
15297	// 4.0 and later, ReleaseLabel is used. To specify a custom AMI, use CustomAmiID.
15298	AmiVersion *string `type:"string"`
15299
15300	// Applies to Amazon EMR releases 4.0 and later. A case-insensitive list of
15301	// applications for Amazon EMR to install and configure when launching the cluster.
15302	// For a list of applications available for each Amazon EMR release version,
15303	// see the Amazon EMR Release Guide (https://docs.aws.amazon.com/emr/latest/ReleaseGuide/).
15304	Applications []*Application `type:"list"`
15305
15306	// An IAM role for automatic scaling policies. The default role is EMR_AutoScaling_DefaultRole.
15307	// The IAM role provides permissions that the automatic scaling feature requires
15308	// to launch and terminate EC2 instances in an instance group.
15309	AutoScalingRole *string `type:"string"`
15310
15311	// An auto-termination policy for an Amazon EMR cluster. An auto-termination
15312	// policy defines the amount of idle time in seconds after which a cluster automatically
15313	// terminates. For alternative cluster termination options, see Control cluster
15314	// termination (https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-termination.html).
15315	AutoTerminationPolicy *AutoTerminationPolicy `type:"structure"`
15316
15317	// A list of bootstrap actions to run before Hadoop starts on the cluster nodes.
15318	BootstrapActions []*BootstrapActionConfig `type:"list"`
15319
15320	// For Amazon EMR releases 4.0 and later. The list of configurations supplied
15321	// for the EMR cluster you are creating.
15322	Configurations []*Configuration `type:"list"`
15323
15324	// Available only in Amazon EMR version 5.7.0 and later. The ID of a custom
15325	// Amazon EBS-backed Linux AMI. If specified, Amazon EMR uses this AMI when
15326	// it launches cluster EC2 instances. For more information about custom AMIs
15327	// in Amazon EMR, see Using a Custom AMI (https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-custom-ami.html)
15328	// in the Amazon EMR Management Guide. If omitted, the cluster uses the base
15329	// Linux AMI for the ReleaseLabel specified. For Amazon EMR versions 2.x and
15330	// 3.x, use AmiVersion instead.
15331	//
15332	// For information about creating a custom AMI, see Creating an Amazon EBS-Backed
15333	// Linux AMI (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami-ebs.html)
15334	// in the Amazon Elastic Compute Cloud User Guide for Linux Instances. For information
15335	// about finding an AMI ID, see Finding a Linux AMI (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/finding-an-ami.html).
15336	CustomAmiId *string `type:"string"`
15337
15338	// The size, in GiB, of the Amazon EBS root device volume of the Linux AMI that
15339	// is used for each EC2 instance. Available in Amazon EMR version 4.x and later.
15340	EbsRootVolumeSize *int64 `type:"integer"`
15341
15342	// A specification of the number and type of Amazon EC2 instances.
15343	//
15344	// Instances is a required field
15345	Instances *JobFlowInstancesConfig `type:"structure" required:"true"`
15346
15347	// Also called instance profile and EC2 role. An IAM role for an EMR cluster.
15348	// The EC2 instances of the cluster assume this role. The default role is EMR_EC2_DefaultRole.
15349	// In order to use the default role, you must have already created it using
15350	// the CLI or console.
15351	JobFlowRole *string `type:"string"`
15352
15353	// Attributes for Kerberos configuration when Kerberos authentication is enabled
15354	// using a security configuration. For more information see Use Kerberos Authentication
15355	// (https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-kerberos.html)
15356	// in the Amazon EMR Management Guide.
15357	KerberosAttributes *KerberosAttributes `type:"structure"`
15358
15359	// The KMS key used for encrypting log files. If a value is not provided, the
15360	// logs remain encrypted by AES-256. This attribute is only available with Amazon
15361	// EMR version 5.30.0 and later, excluding Amazon EMR 6.0.0.
15362	LogEncryptionKmsKeyId *string `type:"string"`
15363
15364	// The location in Amazon S3 to write the log files of the job flow. If a value
15365	// is not provided, logs are not created.
15366	LogUri *string `type:"string"`
15367
15368	// The specified managed scaling policy for an Amazon EMR cluster.
15369	ManagedScalingPolicy *ManagedScalingPolicy `type:"structure"`
15370
15371	// The name of the job flow.
15372	//
15373	// Name is a required field
15374	Name *string `type:"string" required:"true"`
15375
15376	//
15377	// For Amazon EMR releases 3.x and 2.x. For Amazon EMR releases 4.x and later,
15378	// use Applications.
15379	//
15380	// A list of strings that indicates third-party software to use with the job
15381	// flow that accepts a user argument list. EMR accepts and forwards the argument
15382	// list to the corresponding installation script as bootstrap action arguments.
15383	// For more information, see "Launch a Job Flow on the MapR Distribution for
15384	// Hadoop" in the Amazon EMR Developer Guide (https://docs.aws.amazon.com/emr/latest/DeveloperGuide/emr-dg.pdf).
15385	// Supported values are:
15386	//
15387	//    * "mapr-m3" - launch the cluster using MapR M3 Edition.
15388	//
15389	//    * "mapr-m5" - launch the cluster using MapR M5 Edition.
15390	//
15391	//    * "mapr" with the user arguments specifying "--edition,m3" or "--edition,m5"
15392	//    - launch the job flow using MapR M3 or M5 Edition respectively.
15393	//
15394	//    * "mapr-m7" - launch the cluster using MapR M7 Edition.
15395	//
15396	//    * "hunk" - launch the cluster with the Hunk Big Data Analytics Platform.
15397	//
15398	//    * "hue"- launch the cluster with Hue installed.
15399	//
15400	//    * "spark" - launch the cluster with Apache Spark installed.
15401	//
15402	//    * "ganglia" - launch the cluster with the Ganglia Monitoring System installed.
15403	NewSupportedProducts []*SupportedProductConfig `type:"list"`
15404
15405	// The specified placement group configuration for an Amazon EMR cluster.
15406	PlacementGroupConfigs []*PlacementGroupConfig `type:"list"`
15407
15408	// The Amazon EMR release label, which determines the version of open-source
15409	// application packages installed on the cluster. Release labels are in the
15410	// form emr-x.x.x, where x.x.x is an Amazon EMR release version such as emr-5.14.0.
15411	// For more information about Amazon EMR release versions and included application
15412	// versions and features, see https://docs.aws.amazon.com/emr/latest/ReleaseGuide/
15413	// (https://docs.aws.amazon.com/emr/latest/ReleaseGuide/). The release label
15414	// applies only to Amazon EMR releases version 4.0 and later. Earlier versions
15415	// use AmiVersion.
15416	ReleaseLabel *string `type:"string"`
15417
15418	// Applies only when CustomAmiID is used. Specifies which updates from the Amazon
15419	// Linux AMI package repositories to apply automatically when the instance boots
15420	// using the AMI. If omitted, the default is SECURITY, which indicates that
15421	// only security updates are applied. If NONE is specified, no updates are applied,
15422	// and all updates must be applied manually.
15423	RepoUpgradeOnBoot *string `type:"string" enum:"RepoUpgradeOnBoot"`
15424
15425	// Specifies the way that individual Amazon EC2 instances terminate when an
15426	// automatic scale-in activity occurs or an instance group is resized. TERMINATE_AT_INSTANCE_HOUR
15427	// indicates that Amazon EMR terminates nodes at the instance-hour boundary,
15428	// regardless of when the request to terminate the instance was submitted. This
15429	// option is only available with Amazon EMR 5.1.0 and later and is the default
15430	// for clusters created using that version. TERMINATE_AT_TASK_COMPLETION indicates
15431	// that Amazon EMR adds nodes to a deny list and drains tasks from nodes before
15432	// terminating the Amazon EC2 instances, regardless of the instance-hour boundary.
15433	// With either behavior, Amazon EMR removes the least active nodes first and
15434	// blocks instance termination if it could lead to HDFS corruption. TERMINATE_AT_TASK_COMPLETION
15435	// available only in Amazon EMR version 4.1.0 and later, and is the default
15436	// for versions of Amazon EMR earlier than 5.1.0.
15437	ScaleDownBehavior *string `type:"string" enum:"ScaleDownBehavior"`
15438
15439	// The name of a security configuration to apply to the cluster.
15440	SecurityConfiguration *string `type:"string"`
15441
15442	// The IAM role that Amazon EMR assumes in order to access Amazon Web Services
15443	// resources on your behalf.
15444	ServiceRole *string `type:"string"`
15445
15446	// Specifies the number of steps that can be executed concurrently. The default
15447	// value is 1. The maximum value is 256.
15448	StepConcurrencyLevel *int64 `type:"integer"`
15449
15450	// A list of steps to run.
15451	Steps []*StepConfig `type:"list"`
15452
15453	//
15454	// For Amazon EMR releases 3.x and 2.x. For Amazon EMR releases 4.x and later,
15455	// use Applications.
15456	//
15457	// A list of strings that indicates third-party software to use. For more information,
15458	// see the Amazon EMR Developer Guide (https://docs.aws.amazon.com/emr/latest/DeveloperGuide/emr-dg.pdf).
15459	// Currently supported values are:
15460	//
15461	//    * "mapr-m3" - launch the job flow using MapR M3 Edition.
15462	//
15463	//    * "mapr-m5" - launch the job flow using MapR M5 Edition.
15464	SupportedProducts []*string `type:"list"`
15465
15466	// A list of tags to associate with a cluster and propagate to Amazon EC2 instances.
15467	Tags []*Tag `type:"list"`
15468
15469	// Set this value to true so that IAM principals in the Amazon Web Services
15470	// account associated with the cluster can perform EMR actions on the cluster
15471	// that their IAM policies allow. This value defaults to true for clusters created
15472	// using the EMR API or the CLI create-cluster (https://docs.aws.amazon.com/cli/latest/reference/emr/create-cluster.html)
15473	// command.
15474	//
15475	// When set to false, only the IAM principal that created the cluster and the
15476	// Amazon Web Services account root user can perform EMR actions for the cluster,
15477	// regardless of the IAM permissions policies attached to other IAM principals.
15478	// For more information, see Understanding the EMR Cluster VisibleToAllUsers
15479	// Setting (https://docs.aws.amazon.com/emr/latest/ManagementGuide/security_iam_emr-with-iam.html#security_set_visible_to_all_users)
15480	// in the Amazon EMRManagement Guide.
15481	VisibleToAllUsers *bool `type:"boolean"`
15482}
15483
15484// String returns the string representation.
15485//
15486// API parameter values that are decorated as "sensitive" in the API will not
15487// be included in the string output. The member name will be present, but the
15488// value will be replaced with "sensitive".
15489func (s RunJobFlowInput) String() string {
15490	return awsutil.Prettify(s)
15491}
15492
15493// GoString returns the string representation.
15494//
15495// API parameter values that are decorated as "sensitive" in the API will not
15496// be included in the string output. The member name will be present, but the
15497// value will be replaced with "sensitive".
15498func (s RunJobFlowInput) GoString() string {
15499	return s.String()
15500}
15501
15502// Validate inspects the fields of the type to determine if they are valid.
15503func (s *RunJobFlowInput) Validate() error {
15504	invalidParams := request.ErrInvalidParams{Context: "RunJobFlowInput"}
15505	if s.Instances == nil {
15506		invalidParams.Add(request.NewErrParamRequired("Instances"))
15507	}
15508	if s.Name == nil {
15509		invalidParams.Add(request.NewErrParamRequired("Name"))
15510	}
15511	if s.BootstrapActions != nil {
15512		for i, v := range s.BootstrapActions {
15513			if v == nil {
15514				continue
15515			}
15516			if err := v.Validate(); err != nil {
15517				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "BootstrapActions", i), err.(request.ErrInvalidParams))
15518			}
15519		}
15520	}
15521	if s.Instances != nil {
15522		if err := s.Instances.Validate(); err != nil {
15523			invalidParams.AddNested("Instances", err.(request.ErrInvalidParams))
15524		}
15525	}
15526	if s.KerberosAttributes != nil {
15527		if err := s.KerberosAttributes.Validate(); err != nil {
15528			invalidParams.AddNested("KerberosAttributes", err.(request.ErrInvalidParams))
15529		}
15530	}
15531	if s.ManagedScalingPolicy != nil {
15532		if err := s.ManagedScalingPolicy.Validate(); err != nil {
15533			invalidParams.AddNested("ManagedScalingPolicy", err.(request.ErrInvalidParams))
15534		}
15535	}
15536	if s.PlacementGroupConfigs != nil {
15537		for i, v := range s.PlacementGroupConfigs {
15538			if v == nil {
15539				continue
15540			}
15541			if err := v.Validate(); err != nil {
15542				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "PlacementGroupConfigs", i), err.(request.ErrInvalidParams))
15543			}
15544		}
15545	}
15546	if s.Steps != nil {
15547		for i, v := range s.Steps {
15548			if v == nil {
15549				continue
15550			}
15551			if err := v.Validate(); err != nil {
15552				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Steps", i), err.(request.ErrInvalidParams))
15553			}
15554		}
15555	}
15556
15557	if invalidParams.Len() > 0 {
15558		return invalidParams
15559	}
15560	return nil
15561}
15562
15563// SetAdditionalInfo sets the AdditionalInfo field's value.
15564func (s *RunJobFlowInput) SetAdditionalInfo(v string) *RunJobFlowInput {
15565	s.AdditionalInfo = &v
15566	return s
15567}
15568
15569// SetAmiVersion sets the AmiVersion field's value.
15570func (s *RunJobFlowInput) SetAmiVersion(v string) *RunJobFlowInput {
15571	s.AmiVersion = &v
15572	return s
15573}
15574
15575// SetApplications sets the Applications field's value.
15576func (s *RunJobFlowInput) SetApplications(v []*Application) *RunJobFlowInput {
15577	s.Applications = v
15578	return s
15579}
15580
15581// SetAutoScalingRole sets the AutoScalingRole field's value.
15582func (s *RunJobFlowInput) SetAutoScalingRole(v string) *RunJobFlowInput {
15583	s.AutoScalingRole = &v
15584	return s
15585}
15586
15587// SetAutoTerminationPolicy sets the AutoTerminationPolicy field's value.
15588func (s *RunJobFlowInput) SetAutoTerminationPolicy(v *AutoTerminationPolicy) *RunJobFlowInput {
15589	s.AutoTerminationPolicy = v
15590	return s
15591}
15592
15593// SetBootstrapActions sets the BootstrapActions field's value.
15594func (s *RunJobFlowInput) SetBootstrapActions(v []*BootstrapActionConfig) *RunJobFlowInput {
15595	s.BootstrapActions = v
15596	return s
15597}
15598
15599// SetConfigurations sets the Configurations field's value.
15600func (s *RunJobFlowInput) SetConfigurations(v []*Configuration) *RunJobFlowInput {
15601	s.Configurations = v
15602	return s
15603}
15604
15605// SetCustomAmiId sets the CustomAmiId field's value.
15606func (s *RunJobFlowInput) SetCustomAmiId(v string) *RunJobFlowInput {
15607	s.CustomAmiId = &v
15608	return s
15609}
15610
15611// SetEbsRootVolumeSize sets the EbsRootVolumeSize field's value.
15612func (s *RunJobFlowInput) SetEbsRootVolumeSize(v int64) *RunJobFlowInput {
15613	s.EbsRootVolumeSize = &v
15614	return s
15615}
15616
15617// SetInstances sets the Instances field's value.
15618func (s *RunJobFlowInput) SetInstances(v *JobFlowInstancesConfig) *RunJobFlowInput {
15619	s.Instances = v
15620	return s
15621}
15622
15623// SetJobFlowRole sets the JobFlowRole field's value.
15624func (s *RunJobFlowInput) SetJobFlowRole(v string) *RunJobFlowInput {
15625	s.JobFlowRole = &v
15626	return s
15627}
15628
15629// SetKerberosAttributes sets the KerberosAttributes field's value.
15630func (s *RunJobFlowInput) SetKerberosAttributes(v *KerberosAttributes) *RunJobFlowInput {
15631	s.KerberosAttributes = v
15632	return s
15633}
15634
15635// SetLogEncryptionKmsKeyId sets the LogEncryptionKmsKeyId field's value.
15636func (s *RunJobFlowInput) SetLogEncryptionKmsKeyId(v string) *RunJobFlowInput {
15637	s.LogEncryptionKmsKeyId = &v
15638	return s
15639}
15640
15641// SetLogUri sets the LogUri field's value.
15642func (s *RunJobFlowInput) SetLogUri(v string) *RunJobFlowInput {
15643	s.LogUri = &v
15644	return s
15645}
15646
15647// SetManagedScalingPolicy sets the ManagedScalingPolicy field's value.
15648func (s *RunJobFlowInput) SetManagedScalingPolicy(v *ManagedScalingPolicy) *RunJobFlowInput {
15649	s.ManagedScalingPolicy = v
15650	return s
15651}
15652
15653// SetName sets the Name field's value.
15654func (s *RunJobFlowInput) SetName(v string) *RunJobFlowInput {
15655	s.Name = &v
15656	return s
15657}
15658
15659// SetNewSupportedProducts sets the NewSupportedProducts field's value.
15660func (s *RunJobFlowInput) SetNewSupportedProducts(v []*SupportedProductConfig) *RunJobFlowInput {
15661	s.NewSupportedProducts = v
15662	return s
15663}
15664
15665// SetPlacementGroupConfigs sets the PlacementGroupConfigs field's value.
15666func (s *RunJobFlowInput) SetPlacementGroupConfigs(v []*PlacementGroupConfig) *RunJobFlowInput {
15667	s.PlacementGroupConfigs = v
15668	return s
15669}
15670
15671// SetReleaseLabel sets the ReleaseLabel field's value.
15672func (s *RunJobFlowInput) SetReleaseLabel(v string) *RunJobFlowInput {
15673	s.ReleaseLabel = &v
15674	return s
15675}
15676
15677// SetRepoUpgradeOnBoot sets the RepoUpgradeOnBoot field's value.
15678func (s *RunJobFlowInput) SetRepoUpgradeOnBoot(v string) *RunJobFlowInput {
15679	s.RepoUpgradeOnBoot = &v
15680	return s
15681}
15682
15683// SetScaleDownBehavior sets the ScaleDownBehavior field's value.
15684func (s *RunJobFlowInput) SetScaleDownBehavior(v string) *RunJobFlowInput {
15685	s.ScaleDownBehavior = &v
15686	return s
15687}
15688
15689// SetSecurityConfiguration sets the SecurityConfiguration field's value.
15690func (s *RunJobFlowInput) SetSecurityConfiguration(v string) *RunJobFlowInput {
15691	s.SecurityConfiguration = &v
15692	return s
15693}
15694
15695// SetServiceRole sets the ServiceRole field's value.
15696func (s *RunJobFlowInput) SetServiceRole(v string) *RunJobFlowInput {
15697	s.ServiceRole = &v
15698	return s
15699}
15700
15701// SetStepConcurrencyLevel sets the StepConcurrencyLevel field's value.
15702func (s *RunJobFlowInput) SetStepConcurrencyLevel(v int64) *RunJobFlowInput {
15703	s.StepConcurrencyLevel = &v
15704	return s
15705}
15706
15707// SetSteps sets the Steps field's value.
15708func (s *RunJobFlowInput) SetSteps(v []*StepConfig) *RunJobFlowInput {
15709	s.Steps = v
15710	return s
15711}
15712
15713// SetSupportedProducts sets the SupportedProducts field's value.
15714func (s *RunJobFlowInput) SetSupportedProducts(v []*string) *RunJobFlowInput {
15715	s.SupportedProducts = v
15716	return s
15717}
15718
15719// SetTags sets the Tags field's value.
15720func (s *RunJobFlowInput) SetTags(v []*Tag) *RunJobFlowInput {
15721	s.Tags = v
15722	return s
15723}
15724
15725// SetVisibleToAllUsers sets the VisibleToAllUsers field's value.
15726func (s *RunJobFlowInput) SetVisibleToAllUsers(v bool) *RunJobFlowInput {
15727	s.VisibleToAllUsers = &v
15728	return s
15729}
15730
15731// The result of the RunJobFlow operation.
15732type RunJobFlowOutput struct {
15733	_ struct{} `type:"structure"`
15734
15735	// The Amazon Resource Name (ARN) of the cluster.
15736	ClusterArn *string `min:"20" type:"string"`
15737
15738	// A unique identifier for the job flow.
15739	JobFlowId *string `type:"string"`
15740}
15741
15742// String returns the string representation.
15743//
15744// API parameter values that are decorated as "sensitive" in the API will not
15745// be included in the string output. The member name will be present, but the
15746// value will be replaced with "sensitive".
15747func (s RunJobFlowOutput) String() string {
15748	return awsutil.Prettify(s)
15749}
15750
15751// GoString returns the string representation.
15752//
15753// API parameter values that are decorated as "sensitive" in the API will not
15754// be included in the string output. The member name will be present, but the
15755// value will be replaced with "sensitive".
15756func (s RunJobFlowOutput) GoString() string {
15757	return s.String()
15758}
15759
15760// SetClusterArn sets the ClusterArn field's value.
15761func (s *RunJobFlowOutput) SetClusterArn(v string) *RunJobFlowOutput {
15762	s.ClusterArn = &v
15763	return s
15764}
15765
15766// SetJobFlowId sets the JobFlowId field's value.
15767func (s *RunJobFlowOutput) SetJobFlowId(v string) *RunJobFlowOutput {
15768	s.JobFlowId = &v
15769	return s
15770}
15771
15772// The type of adjustment the automatic scaling activity makes when triggered,
15773// and the periodicity of the adjustment.
15774type ScalingAction struct {
15775	_ struct{} `type:"structure"`
15776
15777	// Not available for instance groups. Instance groups use the market type specified
15778	// for the group.
15779	Market *string `type:"string" enum:"MarketType"`
15780
15781	// The type of adjustment the automatic scaling activity makes when triggered,
15782	// and the periodicity of the adjustment.
15783	//
15784	// SimpleScalingPolicyConfiguration is a required field
15785	SimpleScalingPolicyConfiguration *SimpleScalingPolicyConfiguration `type:"structure" required:"true"`
15786}
15787
15788// String returns the string representation.
15789//
15790// API parameter values that are decorated as "sensitive" in the API will not
15791// be included in the string output. The member name will be present, but the
15792// value will be replaced with "sensitive".
15793func (s ScalingAction) String() string {
15794	return awsutil.Prettify(s)
15795}
15796
15797// GoString returns the string representation.
15798//
15799// API parameter values that are decorated as "sensitive" in the API will not
15800// be included in the string output. The member name will be present, but the
15801// value will be replaced with "sensitive".
15802func (s ScalingAction) GoString() string {
15803	return s.String()
15804}
15805
15806// Validate inspects the fields of the type to determine if they are valid.
15807func (s *ScalingAction) Validate() error {
15808	invalidParams := request.ErrInvalidParams{Context: "ScalingAction"}
15809	if s.SimpleScalingPolicyConfiguration == nil {
15810		invalidParams.Add(request.NewErrParamRequired("SimpleScalingPolicyConfiguration"))
15811	}
15812	if s.SimpleScalingPolicyConfiguration != nil {
15813		if err := s.SimpleScalingPolicyConfiguration.Validate(); err != nil {
15814			invalidParams.AddNested("SimpleScalingPolicyConfiguration", err.(request.ErrInvalidParams))
15815		}
15816	}
15817
15818	if invalidParams.Len() > 0 {
15819		return invalidParams
15820	}
15821	return nil
15822}
15823
15824// SetMarket sets the Market field's value.
15825func (s *ScalingAction) SetMarket(v string) *ScalingAction {
15826	s.Market = &v
15827	return s
15828}
15829
15830// SetSimpleScalingPolicyConfiguration sets the SimpleScalingPolicyConfiguration field's value.
15831func (s *ScalingAction) SetSimpleScalingPolicyConfiguration(v *SimpleScalingPolicyConfiguration) *ScalingAction {
15832	s.SimpleScalingPolicyConfiguration = v
15833	return s
15834}
15835
15836// The upper and lower EC2 instance limits for an automatic scaling policy.
15837// Automatic scaling activities triggered by automatic scaling rules will not
15838// cause an instance group to grow above or below these limits.
15839type ScalingConstraints struct {
15840	_ struct{} `type:"structure"`
15841
15842	// The upper boundary of EC2 instances in an instance group beyond which scaling
15843	// activities are not allowed to grow. Scale-out activities will not add instances
15844	// beyond this boundary.
15845	//
15846	// MaxCapacity is a required field
15847	MaxCapacity *int64 `type:"integer" required:"true"`
15848
15849	// The lower boundary of EC2 instances in an instance group below which scaling
15850	// activities are not allowed to shrink. Scale-in activities will not terminate
15851	// instances below this boundary.
15852	//
15853	// MinCapacity is a required field
15854	MinCapacity *int64 `type:"integer" required:"true"`
15855}
15856
15857// String returns the string representation.
15858//
15859// API parameter values that are decorated as "sensitive" in the API will not
15860// be included in the string output. The member name will be present, but the
15861// value will be replaced with "sensitive".
15862func (s ScalingConstraints) String() string {
15863	return awsutil.Prettify(s)
15864}
15865
15866// GoString returns the string representation.
15867//
15868// API parameter values that are decorated as "sensitive" in the API will not
15869// be included in the string output. The member name will be present, but the
15870// value will be replaced with "sensitive".
15871func (s ScalingConstraints) GoString() string {
15872	return s.String()
15873}
15874
15875// Validate inspects the fields of the type to determine if they are valid.
15876func (s *ScalingConstraints) Validate() error {
15877	invalidParams := request.ErrInvalidParams{Context: "ScalingConstraints"}
15878	if s.MaxCapacity == nil {
15879		invalidParams.Add(request.NewErrParamRequired("MaxCapacity"))
15880	}
15881	if s.MinCapacity == nil {
15882		invalidParams.Add(request.NewErrParamRequired("MinCapacity"))
15883	}
15884
15885	if invalidParams.Len() > 0 {
15886		return invalidParams
15887	}
15888	return nil
15889}
15890
15891// SetMaxCapacity sets the MaxCapacity field's value.
15892func (s *ScalingConstraints) SetMaxCapacity(v int64) *ScalingConstraints {
15893	s.MaxCapacity = &v
15894	return s
15895}
15896
15897// SetMinCapacity sets the MinCapacity field's value.
15898func (s *ScalingConstraints) SetMinCapacity(v int64) *ScalingConstraints {
15899	s.MinCapacity = &v
15900	return s
15901}
15902
15903// A scale-in or scale-out rule that defines scaling activity, including the
15904// CloudWatch metric alarm that triggers activity, how EC2 instances are added
15905// or removed, and the periodicity of adjustments. The automatic scaling policy
15906// for an instance group can comprise one or more automatic scaling rules.
15907type ScalingRule struct {
15908	_ struct{} `type:"structure"`
15909
15910	// The conditions that trigger an automatic scaling activity.
15911	//
15912	// Action is a required field
15913	Action *ScalingAction `type:"structure" required:"true"`
15914
15915	// A friendly, more verbose description of the automatic scaling rule.
15916	Description *string `type:"string"`
15917
15918	// The name used to identify an automatic scaling rule. Rule names must be unique
15919	// within a scaling policy.
15920	//
15921	// Name is a required field
15922	Name *string `type:"string" required:"true"`
15923
15924	// The CloudWatch alarm definition that determines when automatic scaling activity
15925	// is triggered.
15926	//
15927	// Trigger is a required field
15928	Trigger *ScalingTrigger `type:"structure" required:"true"`
15929}
15930
15931// String returns the string representation.
15932//
15933// API parameter values that are decorated as "sensitive" in the API will not
15934// be included in the string output. The member name will be present, but the
15935// value will be replaced with "sensitive".
15936func (s ScalingRule) String() string {
15937	return awsutil.Prettify(s)
15938}
15939
15940// GoString returns the string representation.
15941//
15942// API parameter values that are decorated as "sensitive" in the API will not
15943// be included in the string output. The member name will be present, but the
15944// value will be replaced with "sensitive".
15945func (s ScalingRule) GoString() string {
15946	return s.String()
15947}
15948
15949// Validate inspects the fields of the type to determine if they are valid.
15950func (s *ScalingRule) Validate() error {
15951	invalidParams := request.ErrInvalidParams{Context: "ScalingRule"}
15952	if s.Action == nil {
15953		invalidParams.Add(request.NewErrParamRequired("Action"))
15954	}
15955	if s.Name == nil {
15956		invalidParams.Add(request.NewErrParamRequired("Name"))
15957	}
15958	if s.Trigger == nil {
15959		invalidParams.Add(request.NewErrParamRequired("Trigger"))
15960	}
15961	if s.Action != nil {
15962		if err := s.Action.Validate(); err != nil {
15963			invalidParams.AddNested("Action", err.(request.ErrInvalidParams))
15964		}
15965	}
15966	if s.Trigger != nil {
15967		if err := s.Trigger.Validate(); err != nil {
15968			invalidParams.AddNested("Trigger", err.(request.ErrInvalidParams))
15969		}
15970	}
15971
15972	if invalidParams.Len() > 0 {
15973		return invalidParams
15974	}
15975	return nil
15976}
15977
15978// SetAction sets the Action field's value.
15979func (s *ScalingRule) SetAction(v *ScalingAction) *ScalingRule {
15980	s.Action = v
15981	return s
15982}
15983
15984// SetDescription sets the Description field's value.
15985func (s *ScalingRule) SetDescription(v string) *ScalingRule {
15986	s.Description = &v
15987	return s
15988}
15989
15990// SetName sets the Name field's value.
15991func (s *ScalingRule) SetName(v string) *ScalingRule {
15992	s.Name = &v
15993	return s
15994}
15995
15996// SetTrigger sets the Trigger field's value.
15997func (s *ScalingRule) SetTrigger(v *ScalingTrigger) *ScalingRule {
15998	s.Trigger = v
15999	return s
16000}
16001
16002// The conditions that trigger an automatic scaling activity.
16003type ScalingTrigger struct {
16004	_ struct{} `type:"structure"`
16005
16006	// The definition of a CloudWatch metric alarm. When the defined alarm conditions
16007	// are met along with other trigger parameters, scaling activity begins.
16008	//
16009	// CloudWatchAlarmDefinition is a required field
16010	CloudWatchAlarmDefinition *CloudWatchAlarmDefinition `type:"structure" required:"true"`
16011}
16012
16013// String returns the string representation.
16014//
16015// API parameter values that are decorated as "sensitive" in the API will not
16016// be included in the string output. The member name will be present, but the
16017// value will be replaced with "sensitive".
16018func (s ScalingTrigger) String() string {
16019	return awsutil.Prettify(s)
16020}
16021
16022// GoString returns the string representation.
16023//
16024// API parameter values that are decorated as "sensitive" in the API will not
16025// be included in the string output. The member name will be present, but the
16026// value will be replaced with "sensitive".
16027func (s ScalingTrigger) GoString() string {
16028	return s.String()
16029}
16030
16031// Validate inspects the fields of the type to determine if they are valid.
16032func (s *ScalingTrigger) Validate() error {
16033	invalidParams := request.ErrInvalidParams{Context: "ScalingTrigger"}
16034	if s.CloudWatchAlarmDefinition == nil {
16035		invalidParams.Add(request.NewErrParamRequired("CloudWatchAlarmDefinition"))
16036	}
16037	if s.CloudWatchAlarmDefinition != nil {
16038		if err := s.CloudWatchAlarmDefinition.Validate(); err != nil {
16039			invalidParams.AddNested("CloudWatchAlarmDefinition", err.(request.ErrInvalidParams))
16040		}
16041	}
16042
16043	if invalidParams.Len() > 0 {
16044		return invalidParams
16045	}
16046	return nil
16047}
16048
16049// SetCloudWatchAlarmDefinition sets the CloudWatchAlarmDefinition field's value.
16050func (s *ScalingTrigger) SetCloudWatchAlarmDefinition(v *CloudWatchAlarmDefinition) *ScalingTrigger {
16051	s.CloudWatchAlarmDefinition = v
16052	return s
16053}
16054
16055// Configuration of the script to run during a bootstrap action.
16056type ScriptBootstrapActionConfig struct {
16057	_ struct{} `type:"structure"`
16058
16059	// A list of command line arguments to pass to the bootstrap action script.
16060	Args []*string `type:"list"`
16061
16062	// Location in Amazon S3 of the script to run during a bootstrap action.
16063	//
16064	// Path is a required field
16065	Path *string `type:"string" required:"true"`
16066}
16067
16068// String returns the string representation.
16069//
16070// API parameter values that are decorated as "sensitive" in the API will not
16071// be included in the string output. The member name will be present, but the
16072// value will be replaced with "sensitive".
16073func (s ScriptBootstrapActionConfig) String() string {
16074	return awsutil.Prettify(s)
16075}
16076
16077// GoString returns the string representation.
16078//
16079// API parameter values that are decorated as "sensitive" in the API will not
16080// be included in the string output. The member name will be present, but the
16081// value will be replaced with "sensitive".
16082func (s ScriptBootstrapActionConfig) GoString() string {
16083	return s.String()
16084}
16085
16086// Validate inspects the fields of the type to determine if they are valid.
16087func (s *ScriptBootstrapActionConfig) Validate() error {
16088	invalidParams := request.ErrInvalidParams{Context: "ScriptBootstrapActionConfig"}
16089	if s.Path == nil {
16090		invalidParams.Add(request.NewErrParamRequired("Path"))
16091	}
16092
16093	if invalidParams.Len() > 0 {
16094		return invalidParams
16095	}
16096	return nil
16097}
16098
16099// SetArgs sets the Args field's value.
16100func (s *ScriptBootstrapActionConfig) SetArgs(v []*string) *ScriptBootstrapActionConfig {
16101	s.Args = v
16102	return s
16103}
16104
16105// SetPath sets the Path field's value.
16106func (s *ScriptBootstrapActionConfig) SetPath(v string) *ScriptBootstrapActionConfig {
16107	s.Path = &v
16108	return s
16109}
16110
16111// The creation date and time, and name, of a security configuration.
16112type SecurityConfigurationSummary struct {
16113	_ struct{} `type:"structure"`
16114
16115	// The date and time the security configuration was created.
16116	CreationDateTime *time.Time `type:"timestamp"`
16117
16118	// The name of the security configuration.
16119	Name *string `type:"string"`
16120}
16121
16122// String returns the string representation.
16123//
16124// API parameter values that are decorated as "sensitive" in the API will not
16125// be included in the string output. The member name will be present, but the
16126// value will be replaced with "sensitive".
16127func (s SecurityConfigurationSummary) String() string {
16128	return awsutil.Prettify(s)
16129}
16130
16131// GoString returns the string representation.
16132//
16133// API parameter values that are decorated as "sensitive" in the API will not
16134// be included in the string output. The member name will be present, but the
16135// value will be replaced with "sensitive".
16136func (s SecurityConfigurationSummary) GoString() string {
16137	return s.String()
16138}
16139
16140// SetCreationDateTime sets the CreationDateTime field's value.
16141func (s *SecurityConfigurationSummary) SetCreationDateTime(v time.Time) *SecurityConfigurationSummary {
16142	s.CreationDateTime = &v
16143	return s
16144}
16145
16146// SetName sets the Name field's value.
16147func (s *SecurityConfigurationSummary) SetName(v string) *SecurityConfigurationSummary {
16148	s.Name = &v
16149	return s
16150}
16151
16152// Details for an Amazon EMR Studio session mapping including creation time,
16153// user or group ID, Studio ID, and so on.
16154type SessionMappingDetail struct {
16155	_ struct{} `type:"structure"`
16156
16157	// The time the session mapping was created.
16158	CreationTime *time.Time `type:"timestamp"`
16159
16160	// The globally unique identifier (GUID) of the user or group.
16161	IdentityId *string `type:"string"`
16162
16163	// 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)
16164	// and DisplayName (https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_Group.html#singlesignon-Type-Group-DisplayName)
16165	// in the Amazon Web Services SSO Identity Store API Reference.
16166	IdentityName *string `type:"string"`
16167
16168	// Specifies whether the identity mapped to the Amazon EMR Studio is a user
16169	// or a group.
16170	IdentityType *string `type:"string" enum:"IdentityType"`
16171
16172	// The time the session mapping was last modified.
16173	LastModifiedTime *time.Time `type:"timestamp"`
16174
16175	// The Amazon Resource Name (ARN) of the session policy associated with the
16176	// user or group.
16177	SessionPolicyArn *string `type:"string"`
16178
16179	// The ID of the Amazon EMR Studio.
16180	StudioId *string `type:"string"`
16181}
16182
16183// String returns the string representation.
16184//
16185// API parameter values that are decorated as "sensitive" in the API will not
16186// be included in the string output. The member name will be present, but the
16187// value will be replaced with "sensitive".
16188func (s SessionMappingDetail) String() string {
16189	return awsutil.Prettify(s)
16190}
16191
16192// GoString returns the string representation.
16193//
16194// API parameter values that are decorated as "sensitive" in the API will not
16195// be included in the string output. The member name will be present, but the
16196// value will be replaced with "sensitive".
16197func (s SessionMappingDetail) GoString() string {
16198	return s.String()
16199}
16200
16201// SetCreationTime sets the CreationTime field's value.
16202func (s *SessionMappingDetail) SetCreationTime(v time.Time) *SessionMappingDetail {
16203	s.CreationTime = &v
16204	return s
16205}
16206
16207// SetIdentityId sets the IdentityId field's value.
16208func (s *SessionMappingDetail) SetIdentityId(v string) *SessionMappingDetail {
16209	s.IdentityId = &v
16210	return s
16211}
16212
16213// SetIdentityName sets the IdentityName field's value.
16214func (s *SessionMappingDetail) SetIdentityName(v string) *SessionMappingDetail {
16215	s.IdentityName = &v
16216	return s
16217}
16218
16219// SetIdentityType sets the IdentityType field's value.
16220func (s *SessionMappingDetail) SetIdentityType(v string) *SessionMappingDetail {
16221	s.IdentityType = &v
16222	return s
16223}
16224
16225// SetLastModifiedTime sets the LastModifiedTime field's value.
16226func (s *SessionMappingDetail) SetLastModifiedTime(v time.Time) *SessionMappingDetail {
16227	s.LastModifiedTime = &v
16228	return s
16229}
16230
16231// SetSessionPolicyArn sets the SessionPolicyArn field's value.
16232func (s *SessionMappingDetail) SetSessionPolicyArn(v string) *SessionMappingDetail {
16233	s.SessionPolicyArn = &v
16234	return s
16235}
16236
16237// SetStudioId sets the StudioId field's value.
16238func (s *SessionMappingDetail) SetStudioId(v string) *SessionMappingDetail {
16239	s.StudioId = &v
16240	return s
16241}
16242
16243// Details for an Amazon EMR Studio session mapping. The details do not include
16244// the time the session mapping was last modified.
16245type SessionMappingSummary struct {
16246	_ struct{} `type:"structure"`
16247
16248	// The time the session mapping was created.
16249	CreationTime *time.Time `type:"timestamp"`
16250
16251	// The globally unique identifier (GUID) of the user or group from the Amazon
16252	// Web Services SSO Identity Store.
16253	IdentityId *string `type:"string"`
16254
16255	// 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)
16256	// and DisplayName (https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_Group.html#singlesignon-Type-Group-DisplayName)
16257	// in the Amazon Web Services SSO Identity Store API Reference.
16258	IdentityName *string `type:"string"`
16259
16260	// Specifies whether the identity mapped to the Amazon EMR Studio is a user
16261	// or a group.
16262	IdentityType *string `type:"string" enum:"IdentityType"`
16263
16264	// The Amazon Resource Name (ARN) of the session policy associated with the
16265	// user or group.
16266	SessionPolicyArn *string `type:"string"`
16267
16268	// The ID of the Amazon EMR Studio.
16269	StudioId *string `type:"string"`
16270}
16271
16272// String returns the string representation.
16273//
16274// API parameter values that are decorated as "sensitive" in the API will not
16275// be included in the string output. The member name will be present, but the
16276// value will be replaced with "sensitive".
16277func (s SessionMappingSummary) String() string {
16278	return awsutil.Prettify(s)
16279}
16280
16281// GoString returns the string representation.
16282//
16283// API parameter values that are decorated as "sensitive" in the API will not
16284// be included in the string output. The member name will be present, but the
16285// value will be replaced with "sensitive".
16286func (s SessionMappingSummary) GoString() string {
16287	return s.String()
16288}
16289
16290// SetCreationTime sets the CreationTime field's value.
16291func (s *SessionMappingSummary) SetCreationTime(v time.Time) *SessionMappingSummary {
16292	s.CreationTime = &v
16293	return s
16294}
16295
16296// SetIdentityId sets the IdentityId field's value.
16297func (s *SessionMappingSummary) SetIdentityId(v string) *SessionMappingSummary {
16298	s.IdentityId = &v
16299	return s
16300}
16301
16302// SetIdentityName sets the IdentityName field's value.
16303func (s *SessionMappingSummary) SetIdentityName(v string) *SessionMappingSummary {
16304	s.IdentityName = &v
16305	return s
16306}
16307
16308// SetIdentityType sets the IdentityType field's value.
16309func (s *SessionMappingSummary) SetIdentityType(v string) *SessionMappingSummary {
16310	s.IdentityType = &v
16311	return s
16312}
16313
16314// SetSessionPolicyArn sets the SessionPolicyArn field's value.
16315func (s *SessionMappingSummary) SetSessionPolicyArn(v string) *SessionMappingSummary {
16316	s.SessionPolicyArn = &v
16317	return s
16318}
16319
16320// SetStudioId sets the StudioId field's value.
16321func (s *SessionMappingSummary) SetStudioId(v string) *SessionMappingSummary {
16322	s.StudioId = &v
16323	return s
16324}
16325
16326// The input argument to the TerminationProtection operation.
16327type SetTerminationProtectionInput struct {
16328	_ struct{} `type:"structure"`
16329
16330	// A list of strings that uniquely identify the clusters to protect. This identifier
16331	// is returned by RunJobFlow and can also be obtained from DescribeJobFlows .
16332	//
16333	// JobFlowIds is a required field
16334	JobFlowIds []*string `type:"list" required:"true"`
16335
16336	// A Boolean that indicates whether to protect the cluster and prevent the Amazon
16337	// EC2 instances in the cluster from shutting down due to API calls, user intervention,
16338	// or job-flow error.
16339	//
16340	// TerminationProtected is a required field
16341	TerminationProtected *bool `type:"boolean" required:"true"`
16342}
16343
16344// String returns the string representation.
16345//
16346// API parameter values that are decorated as "sensitive" in the API will not
16347// be included in the string output. The member name will be present, but the
16348// value will be replaced with "sensitive".
16349func (s SetTerminationProtectionInput) String() string {
16350	return awsutil.Prettify(s)
16351}
16352
16353// GoString returns the string representation.
16354//
16355// API parameter values that are decorated as "sensitive" in the API will not
16356// be included in the string output. The member name will be present, but the
16357// value will be replaced with "sensitive".
16358func (s SetTerminationProtectionInput) GoString() string {
16359	return s.String()
16360}
16361
16362// Validate inspects the fields of the type to determine if they are valid.
16363func (s *SetTerminationProtectionInput) Validate() error {
16364	invalidParams := request.ErrInvalidParams{Context: "SetTerminationProtectionInput"}
16365	if s.JobFlowIds == nil {
16366		invalidParams.Add(request.NewErrParamRequired("JobFlowIds"))
16367	}
16368	if s.TerminationProtected == nil {
16369		invalidParams.Add(request.NewErrParamRequired("TerminationProtected"))
16370	}
16371
16372	if invalidParams.Len() > 0 {
16373		return invalidParams
16374	}
16375	return nil
16376}
16377
16378// SetJobFlowIds sets the JobFlowIds field's value.
16379func (s *SetTerminationProtectionInput) SetJobFlowIds(v []*string) *SetTerminationProtectionInput {
16380	s.JobFlowIds = v
16381	return s
16382}
16383
16384// SetTerminationProtected sets the TerminationProtected field's value.
16385func (s *SetTerminationProtectionInput) SetTerminationProtected(v bool) *SetTerminationProtectionInput {
16386	s.TerminationProtected = &v
16387	return s
16388}
16389
16390type SetTerminationProtectionOutput struct {
16391	_ struct{} `type:"structure"`
16392}
16393
16394// String returns the string representation.
16395//
16396// API parameter values that are decorated as "sensitive" in the API will not
16397// be included in the string output. The member name will be present, but the
16398// value will be replaced with "sensitive".
16399func (s SetTerminationProtectionOutput) String() string {
16400	return awsutil.Prettify(s)
16401}
16402
16403// GoString returns the string representation.
16404//
16405// API parameter values that are decorated as "sensitive" in the API will not
16406// be included in the string output. The member name will be present, but the
16407// value will be replaced with "sensitive".
16408func (s SetTerminationProtectionOutput) GoString() string {
16409	return s.String()
16410}
16411
16412// The input to the SetVisibleToAllUsers action.
16413type SetVisibleToAllUsersInput struct {
16414	_ struct{} `type:"structure"`
16415
16416	// The unique identifier of the job flow (cluster).
16417	//
16418	// JobFlowIds is a required field
16419	JobFlowIds []*string `type:"list" required:"true"`
16420
16421	// A value of true indicates that an IAM principal in the Amazon Web Services
16422	// account can perform EMR actions on the cluster that the IAM policies attached
16423	// to the principal allow. A value of false indicates that only the IAM principal
16424	// that created the cluster and the Amazon Web Services root user can perform
16425	// EMR actions on the cluster.
16426	//
16427	// VisibleToAllUsers is a required field
16428	VisibleToAllUsers *bool `type:"boolean" required:"true"`
16429}
16430
16431// String returns the string representation.
16432//
16433// API parameter values that are decorated as "sensitive" in the API will not
16434// be included in the string output. The member name will be present, but the
16435// value will be replaced with "sensitive".
16436func (s SetVisibleToAllUsersInput) String() string {
16437	return awsutil.Prettify(s)
16438}
16439
16440// GoString returns the string representation.
16441//
16442// API parameter values that are decorated as "sensitive" in the API will not
16443// be included in the string output. The member name will be present, but the
16444// value will be replaced with "sensitive".
16445func (s SetVisibleToAllUsersInput) GoString() string {
16446	return s.String()
16447}
16448
16449// Validate inspects the fields of the type to determine if they are valid.
16450func (s *SetVisibleToAllUsersInput) Validate() error {
16451	invalidParams := request.ErrInvalidParams{Context: "SetVisibleToAllUsersInput"}
16452	if s.JobFlowIds == nil {
16453		invalidParams.Add(request.NewErrParamRequired("JobFlowIds"))
16454	}
16455	if s.VisibleToAllUsers == nil {
16456		invalidParams.Add(request.NewErrParamRequired("VisibleToAllUsers"))
16457	}
16458
16459	if invalidParams.Len() > 0 {
16460		return invalidParams
16461	}
16462	return nil
16463}
16464
16465// SetJobFlowIds sets the JobFlowIds field's value.
16466func (s *SetVisibleToAllUsersInput) SetJobFlowIds(v []*string) *SetVisibleToAllUsersInput {
16467	s.JobFlowIds = v
16468	return s
16469}
16470
16471// SetVisibleToAllUsers sets the VisibleToAllUsers field's value.
16472func (s *SetVisibleToAllUsersInput) SetVisibleToAllUsers(v bool) *SetVisibleToAllUsersInput {
16473	s.VisibleToAllUsers = &v
16474	return s
16475}
16476
16477type SetVisibleToAllUsersOutput struct {
16478	_ struct{} `type:"structure"`
16479}
16480
16481// String returns the string representation.
16482//
16483// API parameter values that are decorated as "sensitive" in the API will not
16484// be included in the string output. The member name will be present, but the
16485// value will be replaced with "sensitive".
16486func (s SetVisibleToAllUsersOutput) String() string {
16487	return awsutil.Prettify(s)
16488}
16489
16490// GoString returns the string representation.
16491//
16492// API parameter values that are decorated as "sensitive" in the API will not
16493// be included in the string output. The member name will be present, but the
16494// value will be replaced with "sensitive".
16495func (s SetVisibleToAllUsersOutput) GoString() string {
16496	return s.String()
16497}
16498
16499// Policy for customizing shrink operations. Allows configuration of decommissioning
16500// timeout and targeted instance shrinking.
16501type ShrinkPolicy struct {
16502	_ struct{} `type:"structure"`
16503
16504	// The desired timeout for decommissioning an instance. Overrides the default
16505	// YARN decommissioning timeout.
16506	DecommissionTimeout *int64 `type:"integer"`
16507
16508	// Custom policy for requesting termination protection or termination of specific
16509	// instances when shrinking an instance group.
16510	InstanceResizePolicy *InstanceResizePolicy `type:"structure"`
16511}
16512
16513// String returns the string representation.
16514//
16515// API parameter values that are decorated as "sensitive" in the API will not
16516// be included in the string output. The member name will be present, but the
16517// value will be replaced with "sensitive".
16518func (s ShrinkPolicy) String() string {
16519	return awsutil.Prettify(s)
16520}
16521
16522// GoString returns the string representation.
16523//
16524// API parameter values that are decorated as "sensitive" in the API will not
16525// be included in the string output. The member name will be present, but the
16526// value will be replaced with "sensitive".
16527func (s ShrinkPolicy) GoString() string {
16528	return s.String()
16529}
16530
16531// SetDecommissionTimeout sets the DecommissionTimeout field's value.
16532func (s *ShrinkPolicy) SetDecommissionTimeout(v int64) *ShrinkPolicy {
16533	s.DecommissionTimeout = &v
16534	return s
16535}
16536
16537// SetInstanceResizePolicy sets the InstanceResizePolicy field's value.
16538func (s *ShrinkPolicy) SetInstanceResizePolicy(v *InstanceResizePolicy) *ShrinkPolicy {
16539	s.InstanceResizePolicy = v
16540	return s
16541}
16542
16543// An automatic scaling configuration, which describes how the policy adds or
16544// removes instances, the cooldown period, and the number of EC2 instances that
16545// will be added each time the CloudWatch metric alarm condition is satisfied.
16546type SimpleScalingPolicyConfiguration struct {
16547	_ struct{} `type:"structure"`
16548
16549	// The way in which EC2 instances are added (if ScalingAdjustment is a positive
16550	// number) or terminated (if ScalingAdjustment is a negative number) each time
16551	// the scaling activity is triggered. CHANGE_IN_CAPACITY is the default. CHANGE_IN_CAPACITY
16552	// indicates that the EC2 instance count increments or decrements by ScalingAdjustment,
16553	// which should be expressed as an integer. PERCENT_CHANGE_IN_CAPACITY indicates
16554	// the instance count increments or decrements by the percentage specified by
16555	// ScalingAdjustment, which should be expressed as an integer. For example,
16556	// 20 indicates an increase in 20% increments of cluster capacity. EXACT_CAPACITY
16557	// indicates the scaling activity results in an instance group with the number
16558	// of EC2 instances specified by ScalingAdjustment, which should be expressed
16559	// as a positive integer.
16560	AdjustmentType *string `type:"string" enum:"AdjustmentType"`
16561
16562	// The amount of time, in seconds, after a scaling activity completes before
16563	// any further trigger-related scaling activities can start. The default value
16564	// is 0.
16565	CoolDown *int64 `type:"integer"`
16566
16567	// The amount by which to scale in or scale out, based on the specified AdjustmentType.
16568	// A positive value adds to the instance group's EC2 instance count while a
16569	// negative number removes instances. If AdjustmentType is set to EXACT_CAPACITY,
16570	// the number should only be a positive integer. If AdjustmentType is set to
16571	// PERCENT_CHANGE_IN_CAPACITY, the value should express the percentage as an
16572	// integer. For example, -20 indicates a decrease in 20% increments of cluster
16573	// capacity.
16574	//
16575	// ScalingAdjustment is a required field
16576	ScalingAdjustment *int64 `type:"integer" required:"true"`
16577}
16578
16579// String returns the string representation.
16580//
16581// API parameter values that are decorated as "sensitive" in the API will not
16582// be included in the string output. The member name will be present, but the
16583// value will be replaced with "sensitive".
16584func (s SimpleScalingPolicyConfiguration) String() string {
16585	return awsutil.Prettify(s)
16586}
16587
16588// GoString returns the string representation.
16589//
16590// API parameter values that are decorated as "sensitive" in the API will not
16591// be included in the string output. The member name will be present, but the
16592// value will be replaced with "sensitive".
16593func (s SimpleScalingPolicyConfiguration) GoString() string {
16594	return s.String()
16595}
16596
16597// Validate inspects the fields of the type to determine if they are valid.
16598func (s *SimpleScalingPolicyConfiguration) Validate() error {
16599	invalidParams := request.ErrInvalidParams{Context: "SimpleScalingPolicyConfiguration"}
16600	if s.ScalingAdjustment == nil {
16601		invalidParams.Add(request.NewErrParamRequired("ScalingAdjustment"))
16602	}
16603
16604	if invalidParams.Len() > 0 {
16605		return invalidParams
16606	}
16607	return nil
16608}
16609
16610// SetAdjustmentType sets the AdjustmentType field's value.
16611func (s *SimpleScalingPolicyConfiguration) SetAdjustmentType(v string) *SimpleScalingPolicyConfiguration {
16612	s.AdjustmentType = &v
16613	return s
16614}
16615
16616// SetCoolDown sets the CoolDown field's value.
16617func (s *SimpleScalingPolicyConfiguration) SetCoolDown(v int64) *SimpleScalingPolicyConfiguration {
16618	s.CoolDown = &v
16619	return s
16620}
16621
16622// SetScalingAdjustment sets the ScalingAdjustment field's value.
16623func (s *SimpleScalingPolicyConfiguration) SetScalingAdjustment(v int64) *SimpleScalingPolicyConfiguration {
16624	s.ScalingAdjustment = &v
16625	return s
16626}
16627
16628// The returned release label application names or versions.
16629type SimplifiedApplication struct {
16630	_ struct{} `type:"structure"`
16631
16632	// The returned release label application name. For example, hadoop.
16633	Name *string `type:"string"`
16634
16635	// The returned release label application version. For example, 3.2.1.
16636	Version *string `type:"string"`
16637}
16638
16639// String returns the string representation.
16640//
16641// API parameter values that are decorated as "sensitive" in the API will not
16642// be included in the string output. The member name will be present, but the
16643// value will be replaced with "sensitive".
16644func (s SimplifiedApplication) String() string {
16645	return awsutil.Prettify(s)
16646}
16647
16648// GoString returns the string representation.
16649//
16650// API parameter values that are decorated as "sensitive" in the API will not
16651// be included in the string output. The member name will be present, but the
16652// value will be replaced with "sensitive".
16653func (s SimplifiedApplication) GoString() string {
16654	return s.String()
16655}
16656
16657// SetName sets the Name field's value.
16658func (s *SimplifiedApplication) SetName(v string) *SimplifiedApplication {
16659	s.Name = &v
16660	return s
16661}
16662
16663// SetVersion sets the Version field's value.
16664func (s *SimplifiedApplication) SetVersion(v string) *SimplifiedApplication {
16665	s.Version = &v
16666	return s
16667}
16668
16669// The launch specification for Spot Instances in the instance fleet, which
16670// determines the defined duration, provisioning timeout behavior, and allocation
16671// strategy.
16672//
16673// The instance fleet configuration is available only in Amazon EMR versions
16674// 4.8.0 and later, excluding 5.0.x versions. Spot Instance allocation strategy
16675// is available in Amazon EMR version 5.12.1 and later.
16676type SpotProvisioningSpecification struct {
16677	_ struct{} `type:"structure"`
16678
16679	// Specifies the strategy to use in launching Spot Instance fleets. Currently,
16680	// the only option is capacity-optimized (the default), which launches instances
16681	// from Spot Instance pools with optimal capacity for the number of instances
16682	// that are launching.
16683	AllocationStrategy *string `type:"string" enum:"SpotProvisioningAllocationStrategy"`
16684
16685	// The defined duration for Spot Instances (also known as Spot blocks) in minutes.
16686	// When specified, the Spot Instance does not terminate before the defined duration
16687	// expires, and defined duration pricing for Spot Instances applies. Valid values
16688	// are 60, 120, 180, 240, 300, or 360. The duration period starts as soon as
16689	// a Spot Instance receives its instance ID. At the end of the duration, Amazon
16690	// EC2 marks the Spot Instance for termination and provides a Spot Instance
16691	// termination notice, which gives the instance a two-minute warning before
16692	// it terminates.
16693	BlockDurationMinutes *int64 `type:"integer"`
16694
16695	// The action to take when TargetSpotCapacity has not been fulfilled when the
16696	// TimeoutDurationMinutes has expired; that is, when all Spot Instances could
16697	// not be provisioned within the Spot provisioning timeout. Valid values are
16698	// TERMINATE_CLUSTER and SWITCH_TO_ON_DEMAND. SWITCH_TO_ON_DEMAND specifies
16699	// that if no Spot Instances are available, On-Demand Instances should be provisioned
16700	// to fulfill any remaining Spot capacity.
16701	//
16702	// TimeoutAction is a required field
16703	TimeoutAction *string `type:"string" required:"true" enum:"SpotProvisioningTimeoutAction"`
16704
16705	// The spot provisioning timeout period in minutes. If Spot Instances are not
16706	// provisioned within this time period, the TimeOutAction is taken. Minimum
16707	// value is 5 and maximum value is 1440. The timeout applies only during initial
16708	// provisioning, when the cluster is first created.
16709	//
16710	// TimeoutDurationMinutes is a required field
16711	TimeoutDurationMinutes *int64 `type:"integer" required:"true"`
16712}
16713
16714// String returns the string representation.
16715//
16716// API parameter values that are decorated as "sensitive" in the API will not
16717// be included in the string output. The member name will be present, but the
16718// value will be replaced with "sensitive".
16719func (s SpotProvisioningSpecification) String() string {
16720	return awsutil.Prettify(s)
16721}
16722
16723// GoString returns the string representation.
16724//
16725// API parameter values that are decorated as "sensitive" in the API will not
16726// be included in the string output. The member name will be present, but the
16727// value will be replaced with "sensitive".
16728func (s SpotProvisioningSpecification) GoString() string {
16729	return s.String()
16730}
16731
16732// Validate inspects the fields of the type to determine if they are valid.
16733func (s *SpotProvisioningSpecification) Validate() error {
16734	invalidParams := request.ErrInvalidParams{Context: "SpotProvisioningSpecification"}
16735	if s.TimeoutAction == nil {
16736		invalidParams.Add(request.NewErrParamRequired("TimeoutAction"))
16737	}
16738	if s.TimeoutDurationMinutes == nil {
16739		invalidParams.Add(request.NewErrParamRequired("TimeoutDurationMinutes"))
16740	}
16741
16742	if invalidParams.Len() > 0 {
16743		return invalidParams
16744	}
16745	return nil
16746}
16747
16748// SetAllocationStrategy sets the AllocationStrategy field's value.
16749func (s *SpotProvisioningSpecification) SetAllocationStrategy(v string) *SpotProvisioningSpecification {
16750	s.AllocationStrategy = &v
16751	return s
16752}
16753
16754// SetBlockDurationMinutes sets the BlockDurationMinutes field's value.
16755func (s *SpotProvisioningSpecification) SetBlockDurationMinutes(v int64) *SpotProvisioningSpecification {
16756	s.BlockDurationMinutes = &v
16757	return s
16758}
16759
16760// SetTimeoutAction sets the TimeoutAction field's value.
16761func (s *SpotProvisioningSpecification) SetTimeoutAction(v string) *SpotProvisioningSpecification {
16762	s.TimeoutAction = &v
16763	return s
16764}
16765
16766// SetTimeoutDurationMinutes sets the TimeoutDurationMinutes field's value.
16767func (s *SpotProvisioningSpecification) SetTimeoutDurationMinutes(v int64) *SpotProvisioningSpecification {
16768	s.TimeoutDurationMinutes = &v
16769	return s
16770}
16771
16772type StartNotebookExecutionInput struct {
16773	_ struct{} `type:"structure"`
16774
16775	// The unique identifier of the EMR Notebook to use for notebook execution.
16776	//
16777	// EditorId is a required field
16778	EditorId *string `type:"string" required:"true"`
16779
16780	// Specifies the execution engine (cluster) that runs the notebook execution.
16781	//
16782	// ExecutionEngine is a required field
16783	ExecutionEngine *ExecutionEngineConfig `type:"structure" required:"true"`
16784
16785	// An optional name for the notebook execution.
16786	NotebookExecutionName *string `type:"string"`
16787
16788	// The unique identifier of the Amazon EC2 security group to associate with
16789	// the EMR Notebook for this notebook execution.
16790	NotebookInstanceSecurityGroupId *string `type:"string"`
16791
16792	// Input parameters in JSON format passed to the EMR Notebook at runtime for
16793	// execution.
16794	NotebookParams *string `type:"string"`
16795
16796	// The path and file name of the notebook file for this execution, relative
16797	// to the path specified for the EMR Notebook. For example, if you specify a
16798	// path of s3://MyBucket/MyNotebooks when you create an EMR Notebook for a notebook
16799	// with an ID of e-ABCDEFGHIJK1234567890ABCD (the EditorID of this request),
16800	// and you specify a RelativePath of my_notebook_executions/notebook_execution.ipynb,
16801	// the location of the file for the notebook execution is s3://MyBucket/MyNotebooks/e-ABCDEFGHIJK1234567890ABCD/my_notebook_executions/notebook_execution.ipynb.
16802	//
16803	// RelativePath is a required field
16804	RelativePath *string `type:"string" required:"true"`
16805
16806	// The name or ARN of the IAM role that is used as the service role for Amazon
16807	// EMR (the EMR role) for the notebook execution.
16808	//
16809	// ServiceRole is a required field
16810	ServiceRole *string `type:"string" required:"true"`
16811
16812	// A list of tags associated with a notebook execution. Tags are user-defined
16813	// key-value pairs that consist of a required key string with a maximum of 128
16814	// characters and an optional value string with a maximum of 256 characters.
16815	Tags []*Tag `type:"list"`
16816}
16817
16818// String returns the string representation.
16819//
16820// API parameter values that are decorated as "sensitive" in the API will not
16821// be included in the string output. The member name will be present, but the
16822// value will be replaced with "sensitive".
16823func (s StartNotebookExecutionInput) String() string {
16824	return awsutil.Prettify(s)
16825}
16826
16827// GoString returns the string representation.
16828//
16829// API parameter values that are decorated as "sensitive" in the API will not
16830// be included in the string output. The member name will be present, but the
16831// value will be replaced with "sensitive".
16832func (s StartNotebookExecutionInput) GoString() string {
16833	return s.String()
16834}
16835
16836// Validate inspects the fields of the type to determine if they are valid.
16837func (s *StartNotebookExecutionInput) Validate() error {
16838	invalidParams := request.ErrInvalidParams{Context: "StartNotebookExecutionInput"}
16839	if s.EditorId == nil {
16840		invalidParams.Add(request.NewErrParamRequired("EditorId"))
16841	}
16842	if s.ExecutionEngine == nil {
16843		invalidParams.Add(request.NewErrParamRequired("ExecutionEngine"))
16844	}
16845	if s.RelativePath == nil {
16846		invalidParams.Add(request.NewErrParamRequired("RelativePath"))
16847	}
16848	if s.ServiceRole == nil {
16849		invalidParams.Add(request.NewErrParamRequired("ServiceRole"))
16850	}
16851	if s.ExecutionEngine != nil {
16852		if err := s.ExecutionEngine.Validate(); err != nil {
16853			invalidParams.AddNested("ExecutionEngine", err.(request.ErrInvalidParams))
16854		}
16855	}
16856
16857	if invalidParams.Len() > 0 {
16858		return invalidParams
16859	}
16860	return nil
16861}
16862
16863// SetEditorId sets the EditorId field's value.
16864func (s *StartNotebookExecutionInput) SetEditorId(v string) *StartNotebookExecutionInput {
16865	s.EditorId = &v
16866	return s
16867}
16868
16869// SetExecutionEngine sets the ExecutionEngine field's value.
16870func (s *StartNotebookExecutionInput) SetExecutionEngine(v *ExecutionEngineConfig) *StartNotebookExecutionInput {
16871	s.ExecutionEngine = v
16872	return s
16873}
16874
16875// SetNotebookExecutionName sets the NotebookExecutionName field's value.
16876func (s *StartNotebookExecutionInput) SetNotebookExecutionName(v string) *StartNotebookExecutionInput {
16877	s.NotebookExecutionName = &v
16878	return s
16879}
16880
16881// SetNotebookInstanceSecurityGroupId sets the NotebookInstanceSecurityGroupId field's value.
16882func (s *StartNotebookExecutionInput) SetNotebookInstanceSecurityGroupId(v string) *StartNotebookExecutionInput {
16883	s.NotebookInstanceSecurityGroupId = &v
16884	return s
16885}
16886
16887// SetNotebookParams sets the NotebookParams field's value.
16888func (s *StartNotebookExecutionInput) SetNotebookParams(v string) *StartNotebookExecutionInput {
16889	s.NotebookParams = &v
16890	return s
16891}
16892
16893// SetRelativePath sets the RelativePath field's value.
16894func (s *StartNotebookExecutionInput) SetRelativePath(v string) *StartNotebookExecutionInput {
16895	s.RelativePath = &v
16896	return s
16897}
16898
16899// SetServiceRole sets the ServiceRole field's value.
16900func (s *StartNotebookExecutionInput) SetServiceRole(v string) *StartNotebookExecutionInput {
16901	s.ServiceRole = &v
16902	return s
16903}
16904
16905// SetTags sets the Tags field's value.
16906func (s *StartNotebookExecutionInput) SetTags(v []*Tag) *StartNotebookExecutionInput {
16907	s.Tags = v
16908	return s
16909}
16910
16911type StartNotebookExecutionOutput struct {
16912	_ struct{} `type:"structure"`
16913
16914	// The unique identifier of the notebook execution.
16915	NotebookExecutionId *string `type:"string"`
16916}
16917
16918// String returns the string representation.
16919//
16920// API parameter values that are decorated as "sensitive" in the API will not
16921// be included in the string output. The member name will be present, but the
16922// value will be replaced with "sensitive".
16923func (s StartNotebookExecutionOutput) String() string {
16924	return awsutil.Prettify(s)
16925}
16926
16927// GoString returns the string representation.
16928//
16929// API parameter values that are decorated as "sensitive" in the API will not
16930// be included in the string output. The member name will be present, but the
16931// value will be replaced with "sensitive".
16932func (s StartNotebookExecutionOutput) GoString() string {
16933	return s.String()
16934}
16935
16936// SetNotebookExecutionId sets the NotebookExecutionId field's value.
16937func (s *StartNotebookExecutionOutput) SetNotebookExecutionId(v string) *StartNotebookExecutionOutput {
16938	s.NotebookExecutionId = &v
16939	return s
16940}
16941
16942// This represents a step in a cluster.
16943type Step struct {
16944	_ struct{} `type:"structure"`
16945
16946	// The action to take when the cluster step fails. Possible values are TERMINATE_CLUSTER,
16947	// CANCEL_AND_WAIT, and CONTINUE. TERMINATE_JOB_FLOW is provided for backward
16948	// compatibility. We recommend using TERMINATE_CLUSTER instead.
16949	//
16950	// If a cluster's StepConcurrencyLevel is greater than 1, do not use AddJobFlowSteps
16951	// to submit a step with this parameter set to CANCEL_AND_WAIT or TERMINATE_CLUSTER.
16952	// The step is not submitted and the action fails with a message that the ActionOnFailure
16953	// setting is not valid.
16954	//
16955	// If you change a cluster's StepConcurrencyLevel to be greater than 1 while
16956	// a step is running, the ActionOnFailure parameter may not behave as you expect.
16957	// In this case, for a step that fails with this parameter set to CANCEL_AND_WAIT,
16958	// pending steps and the running step are not canceled; for a step that fails
16959	// with this parameter set to TERMINATE_CLUSTER, the cluster does not terminate.
16960	ActionOnFailure *string `type:"string" enum:"ActionOnFailure"`
16961
16962	// The Hadoop job configuration of the cluster step.
16963	Config *HadoopStepConfig `type:"structure"`
16964
16965	// The identifier of the cluster step.
16966	Id *string `type:"string"`
16967
16968	// The name of the cluster step.
16969	Name *string `type:"string"`
16970
16971	// The current execution status details of the cluster step.
16972	Status *StepStatus `type:"structure"`
16973}
16974
16975// String returns the string representation.
16976//
16977// API parameter values that are decorated as "sensitive" in the API will not
16978// be included in the string output. The member name will be present, but the
16979// value will be replaced with "sensitive".
16980func (s Step) String() string {
16981	return awsutil.Prettify(s)
16982}
16983
16984// GoString returns the string representation.
16985//
16986// API parameter values that are decorated as "sensitive" in the API will not
16987// be included in the string output. The member name will be present, but the
16988// value will be replaced with "sensitive".
16989func (s Step) GoString() string {
16990	return s.String()
16991}
16992
16993// SetActionOnFailure sets the ActionOnFailure field's value.
16994func (s *Step) SetActionOnFailure(v string) *Step {
16995	s.ActionOnFailure = &v
16996	return s
16997}
16998
16999// SetConfig sets the Config field's value.
17000func (s *Step) SetConfig(v *HadoopStepConfig) *Step {
17001	s.Config = v
17002	return s
17003}
17004
17005// SetId sets the Id field's value.
17006func (s *Step) SetId(v string) *Step {
17007	s.Id = &v
17008	return s
17009}
17010
17011// SetName sets the Name field's value.
17012func (s *Step) SetName(v string) *Step {
17013	s.Name = &v
17014	return s
17015}
17016
17017// SetStatus sets the Status field's value.
17018func (s *Step) SetStatus(v *StepStatus) *Step {
17019	s.Status = v
17020	return s
17021}
17022
17023// Specification for a cluster (job flow) step.
17024type StepConfig struct {
17025	_ struct{} `type:"structure"`
17026
17027	// The action to take when the step fails. Use one of the following values:
17028	//
17029	//    * TERMINATE_CLUSTER - Shuts down the cluster.
17030	//
17031	//    * CANCEL_AND_WAIT - Cancels any pending steps and returns the cluster
17032	//    to the WAITING state.
17033	//
17034	//    * CONTINUE - Continues to the next step in the queue.
17035	//
17036	//    * TERMINATE_JOB_FLOW - Shuts down the cluster. TERMINATE_JOB_FLOW is provided
17037	//    for backward compatibility. We recommend using TERMINATE_CLUSTER instead.
17038	//
17039	// If a cluster's StepConcurrencyLevel is greater than 1, do not use AddJobFlowSteps
17040	// to submit a step with this parameter set to CANCEL_AND_WAIT or TERMINATE_CLUSTER.
17041	// The step is not submitted and the action fails with a message that the ActionOnFailure
17042	// setting is not valid.
17043	//
17044	// If you change a cluster's StepConcurrencyLevel to be greater than 1 while
17045	// a step is running, the ActionOnFailure parameter may not behave as you expect.
17046	// In this case, for a step that fails with this parameter set to CANCEL_AND_WAIT,
17047	// pending steps and the running step are not canceled; for a step that fails
17048	// with this parameter set to TERMINATE_CLUSTER, the cluster does not terminate.
17049	ActionOnFailure *string `type:"string" enum:"ActionOnFailure"`
17050
17051	// The JAR file used for the step.
17052	//
17053	// HadoopJarStep is a required field
17054	HadoopJarStep *HadoopJarStepConfig `type:"structure" required:"true"`
17055
17056	// The name of the step.
17057	//
17058	// Name is a required field
17059	Name *string `type:"string" required:"true"`
17060}
17061
17062// String returns the string representation.
17063//
17064// API parameter values that are decorated as "sensitive" in the API will not
17065// be included in the string output. The member name will be present, but the
17066// value will be replaced with "sensitive".
17067func (s StepConfig) String() string {
17068	return awsutil.Prettify(s)
17069}
17070
17071// GoString returns the string representation.
17072//
17073// API parameter values that are decorated as "sensitive" in the API will not
17074// be included in the string output. The member name will be present, but the
17075// value will be replaced with "sensitive".
17076func (s StepConfig) GoString() string {
17077	return s.String()
17078}
17079
17080// Validate inspects the fields of the type to determine if they are valid.
17081func (s *StepConfig) Validate() error {
17082	invalidParams := request.ErrInvalidParams{Context: "StepConfig"}
17083	if s.HadoopJarStep == nil {
17084		invalidParams.Add(request.NewErrParamRequired("HadoopJarStep"))
17085	}
17086	if s.Name == nil {
17087		invalidParams.Add(request.NewErrParamRequired("Name"))
17088	}
17089	if s.HadoopJarStep != nil {
17090		if err := s.HadoopJarStep.Validate(); err != nil {
17091			invalidParams.AddNested("HadoopJarStep", err.(request.ErrInvalidParams))
17092		}
17093	}
17094
17095	if invalidParams.Len() > 0 {
17096		return invalidParams
17097	}
17098	return nil
17099}
17100
17101// SetActionOnFailure sets the ActionOnFailure field's value.
17102func (s *StepConfig) SetActionOnFailure(v string) *StepConfig {
17103	s.ActionOnFailure = &v
17104	return s
17105}
17106
17107// SetHadoopJarStep sets the HadoopJarStep field's value.
17108func (s *StepConfig) SetHadoopJarStep(v *HadoopJarStepConfig) *StepConfig {
17109	s.HadoopJarStep = v
17110	return s
17111}
17112
17113// SetName sets the Name field's value.
17114func (s *StepConfig) SetName(v string) *StepConfig {
17115	s.Name = &v
17116	return s
17117}
17118
17119// Combines the execution state and configuration of a step.
17120type StepDetail struct {
17121	_ struct{} `type:"structure"`
17122
17123	// The description of the step status.
17124	//
17125	// ExecutionStatusDetail is a required field
17126	ExecutionStatusDetail *StepExecutionStatusDetail `type:"structure" required:"true"`
17127
17128	// The step configuration.
17129	//
17130	// StepConfig is a required field
17131	StepConfig *StepConfig `type:"structure" required:"true"`
17132}
17133
17134// String returns the string representation.
17135//
17136// API parameter values that are decorated as "sensitive" in the API will not
17137// be included in the string output. The member name will be present, but the
17138// value will be replaced with "sensitive".
17139func (s StepDetail) String() string {
17140	return awsutil.Prettify(s)
17141}
17142
17143// GoString returns the string representation.
17144//
17145// API parameter values that are decorated as "sensitive" in the API will not
17146// be included in the string output. The member name will be present, but the
17147// value will be replaced with "sensitive".
17148func (s StepDetail) GoString() string {
17149	return s.String()
17150}
17151
17152// SetExecutionStatusDetail sets the ExecutionStatusDetail field's value.
17153func (s *StepDetail) SetExecutionStatusDetail(v *StepExecutionStatusDetail) *StepDetail {
17154	s.ExecutionStatusDetail = v
17155	return s
17156}
17157
17158// SetStepConfig sets the StepConfig field's value.
17159func (s *StepDetail) SetStepConfig(v *StepConfig) *StepDetail {
17160	s.StepConfig = v
17161	return s
17162}
17163
17164// The execution state of a step.
17165type StepExecutionStatusDetail struct {
17166	_ struct{} `type:"structure"`
17167
17168	// The creation date and time of the step.
17169	//
17170	// CreationDateTime is a required field
17171	CreationDateTime *time.Time `type:"timestamp" required:"true"`
17172
17173	// The completion date and time of the step.
17174	EndDateTime *time.Time `type:"timestamp"`
17175
17176	// A description of the step's current state.
17177	LastStateChangeReason *string `type:"string"`
17178
17179	// The start date and time of the step.
17180	StartDateTime *time.Time `type:"timestamp"`
17181
17182	// The state of the step.
17183	//
17184	// State is a required field
17185	State *string `type:"string" required:"true" enum:"StepExecutionState"`
17186}
17187
17188// String returns the string representation.
17189//
17190// API parameter values that are decorated as "sensitive" in the API will not
17191// be included in the string output. The member name will be present, but the
17192// value will be replaced with "sensitive".
17193func (s StepExecutionStatusDetail) String() string {
17194	return awsutil.Prettify(s)
17195}
17196
17197// GoString returns the string representation.
17198//
17199// API parameter values that are decorated as "sensitive" in the API will not
17200// be included in the string output. The member name will be present, but the
17201// value will be replaced with "sensitive".
17202func (s StepExecutionStatusDetail) GoString() string {
17203	return s.String()
17204}
17205
17206// SetCreationDateTime sets the CreationDateTime field's value.
17207func (s *StepExecutionStatusDetail) SetCreationDateTime(v time.Time) *StepExecutionStatusDetail {
17208	s.CreationDateTime = &v
17209	return s
17210}
17211
17212// SetEndDateTime sets the EndDateTime field's value.
17213func (s *StepExecutionStatusDetail) SetEndDateTime(v time.Time) *StepExecutionStatusDetail {
17214	s.EndDateTime = &v
17215	return s
17216}
17217
17218// SetLastStateChangeReason sets the LastStateChangeReason field's value.
17219func (s *StepExecutionStatusDetail) SetLastStateChangeReason(v string) *StepExecutionStatusDetail {
17220	s.LastStateChangeReason = &v
17221	return s
17222}
17223
17224// SetStartDateTime sets the StartDateTime field's value.
17225func (s *StepExecutionStatusDetail) SetStartDateTime(v time.Time) *StepExecutionStatusDetail {
17226	s.StartDateTime = &v
17227	return s
17228}
17229
17230// SetState sets the State field's value.
17231func (s *StepExecutionStatusDetail) SetState(v string) *StepExecutionStatusDetail {
17232	s.State = &v
17233	return s
17234}
17235
17236// The details of the step state change reason.
17237type StepStateChangeReason struct {
17238	_ struct{} `type:"structure"`
17239
17240	// The programmable code for the state change reason. Note: Currently, the service
17241	// provides no code for the state change.
17242	Code *string `type:"string" enum:"StepStateChangeReasonCode"`
17243
17244	// The descriptive message for the state change reason.
17245	Message *string `type:"string"`
17246}
17247
17248// String returns the string representation.
17249//
17250// API parameter values that are decorated as "sensitive" in the API will not
17251// be included in the string output. The member name will be present, but the
17252// value will be replaced with "sensitive".
17253func (s StepStateChangeReason) String() string {
17254	return awsutil.Prettify(s)
17255}
17256
17257// GoString returns the string representation.
17258//
17259// API parameter values that are decorated as "sensitive" in the API will not
17260// be included in the string output. The member name will be present, but the
17261// value will be replaced with "sensitive".
17262func (s StepStateChangeReason) GoString() string {
17263	return s.String()
17264}
17265
17266// SetCode sets the Code field's value.
17267func (s *StepStateChangeReason) SetCode(v string) *StepStateChangeReason {
17268	s.Code = &v
17269	return s
17270}
17271
17272// SetMessage sets the Message field's value.
17273func (s *StepStateChangeReason) SetMessage(v string) *StepStateChangeReason {
17274	s.Message = &v
17275	return s
17276}
17277
17278// The execution status details of the cluster step.
17279type StepStatus struct {
17280	_ struct{} `type:"structure"`
17281
17282	// The details for the step failure including reason, message, and log file
17283	// path where the root cause was identified.
17284	FailureDetails *FailureDetails `type:"structure"`
17285
17286	// The execution state of the cluster step.
17287	State *string `type:"string" enum:"StepState"`
17288
17289	// The reason for the step execution status change.
17290	StateChangeReason *StepStateChangeReason `type:"structure"`
17291
17292	// The timeline of the cluster step status over time.
17293	Timeline *StepTimeline `type:"structure"`
17294}
17295
17296// String returns the string representation.
17297//
17298// API parameter values that are decorated as "sensitive" in the API will not
17299// be included in the string output. The member name will be present, but the
17300// value will be replaced with "sensitive".
17301func (s StepStatus) String() string {
17302	return awsutil.Prettify(s)
17303}
17304
17305// GoString returns the string representation.
17306//
17307// API parameter values that are decorated as "sensitive" in the API will not
17308// be included in the string output. The member name will be present, but the
17309// value will be replaced with "sensitive".
17310func (s StepStatus) GoString() string {
17311	return s.String()
17312}
17313
17314// SetFailureDetails sets the FailureDetails field's value.
17315func (s *StepStatus) SetFailureDetails(v *FailureDetails) *StepStatus {
17316	s.FailureDetails = v
17317	return s
17318}
17319
17320// SetState sets the State field's value.
17321func (s *StepStatus) SetState(v string) *StepStatus {
17322	s.State = &v
17323	return s
17324}
17325
17326// SetStateChangeReason sets the StateChangeReason field's value.
17327func (s *StepStatus) SetStateChangeReason(v *StepStateChangeReason) *StepStatus {
17328	s.StateChangeReason = v
17329	return s
17330}
17331
17332// SetTimeline sets the Timeline field's value.
17333func (s *StepStatus) SetTimeline(v *StepTimeline) *StepStatus {
17334	s.Timeline = v
17335	return s
17336}
17337
17338// The summary of the cluster step.
17339type StepSummary struct {
17340	_ struct{} `type:"structure"`
17341
17342	// The action to take when the cluster step fails. Possible values are TERMINATE_CLUSTER,
17343	// CANCEL_AND_WAIT, and CONTINUE. TERMINATE_JOB_FLOW is available for backward
17344	// compatibility.
17345	ActionOnFailure *string `type:"string" enum:"ActionOnFailure"`
17346
17347	// The Hadoop job configuration of the cluster step.
17348	Config *HadoopStepConfig `type:"structure"`
17349
17350	// The identifier of the cluster step.
17351	Id *string `type:"string"`
17352
17353	// The name of the cluster step.
17354	Name *string `type:"string"`
17355
17356	// The current execution status details of the cluster step.
17357	Status *StepStatus `type:"structure"`
17358}
17359
17360// String returns the string representation.
17361//
17362// API parameter values that are decorated as "sensitive" in the API will not
17363// be included in the string output. The member name will be present, but the
17364// value will be replaced with "sensitive".
17365func (s StepSummary) String() string {
17366	return awsutil.Prettify(s)
17367}
17368
17369// GoString returns the string representation.
17370//
17371// API parameter values that are decorated as "sensitive" in the API will not
17372// be included in the string output. The member name will be present, but the
17373// value will be replaced with "sensitive".
17374func (s StepSummary) GoString() string {
17375	return s.String()
17376}
17377
17378// SetActionOnFailure sets the ActionOnFailure field's value.
17379func (s *StepSummary) SetActionOnFailure(v string) *StepSummary {
17380	s.ActionOnFailure = &v
17381	return s
17382}
17383
17384// SetConfig sets the Config field's value.
17385func (s *StepSummary) SetConfig(v *HadoopStepConfig) *StepSummary {
17386	s.Config = v
17387	return s
17388}
17389
17390// SetId sets the Id field's value.
17391func (s *StepSummary) SetId(v string) *StepSummary {
17392	s.Id = &v
17393	return s
17394}
17395
17396// SetName sets the Name field's value.
17397func (s *StepSummary) SetName(v string) *StepSummary {
17398	s.Name = &v
17399	return s
17400}
17401
17402// SetStatus sets the Status field's value.
17403func (s *StepSummary) SetStatus(v *StepStatus) *StepSummary {
17404	s.Status = v
17405	return s
17406}
17407
17408// The timeline of the cluster step lifecycle.
17409type StepTimeline struct {
17410	_ struct{} `type:"structure"`
17411
17412	// The date and time when the cluster step was created.
17413	CreationDateTime *time.Time `type:"timestamp"`
17414
17415	// The date and time when the cluster step execution completed or failed.
17416	EndDateTime *time.Time `type:"timestamp"`
17417
17418	// The date and time when the cluster step execution started.
17419	StartDateTime *time.Time `type:"timestamp"`
17420}
17421
17422// String returns the string representation.
17423//
17424// API parameter values that are decorated as "sensitive" in the API will not
17425// be included in the string output. The member name will be present, but the
17426// value will be replaced with "sensitive".
17427func (s StepTimeline) String() string {
17428	return awsutil.Prettify(s)
17429}
17430
17431// GoString returns the string representation.
17432//
17433// API parameter values that are decorated as "sensitive" in the API will not
17434// be included in the string output. The member name will be present, but the
17435// value will be replaced with "sensitive".
17436func (s StepTimeline) GoString() string {
17437	return s.String()
17438}
17439
17440// SetCreationDateTime sets the CreationDateTime field's value.
17441func (s *StepTimeline) SetCreationDateTime(v time.Time) *StepTimeline {
17442	s.CreationDateTime = &v
17443	return s
17444}
17445
17446// SetEndDateTime sets the EndDateTime field's value.
17447func (s *StepTimeline) SetEndDateTime(v time.Time) *StepTimeline {
17448	s.EndDateTime = &v
17449	return s
17450}
17451
17452// SetStartDateTime sets the StartDateTime field's value.
17453func (s *StepTimeline) SetStartDateTime(v time.Time) *StepTimeline {
17454	s.StartDateTime = &v
17455	return s
17456}
17457
17458type StopNotebookExecutionInput struct {
17459	_ struct{} `type:"structure"`
17460
17461	// The unique identifier of the notebook execution.
17462	//
17463	// NotebookExecutionId is a required field
17464	NotebookExecutionId *string `type:"string" required:"true"`
17465}
17466
17467// String returns the string representation.
17468//
17469// API parameter values that are decorated as "sensitive" in the API will not
17470// be included in the string output. The member name will be present, but the
17471// value will be replaced with "sensitive".
17472func (s StopNotebookExecutionInput) String() string {
17473	return awsutil.Prettify(s)
17474}
17475
17476// GoString returns the string representation.
17477//
17478// API parameter values that are decorated as "sensitive" in the API will not
17479// be included in the string output. The member name will be present, but the
17480// value will be replaced with "sensitive".
17481func (s StopNotebookExecutionInput) GoString() string {
17482	return s.String()
17483}
17484
17485// Validate inspects the fields of the type to determine if they are valid.
17486func (s *StopNotebookExecutionInput) Validate() error {
17487	invalidParams := request.ErrInvalidParams{Context: "StopNotebookExecutionInput"}
17488	if s.NotebookExecutionId == nil {
17489		invalidParams.Add(request.NewErrParamRequired("NotebookExecutionId"))
17490	}
17491
17492	if invalidParams.Len() > 0 {
17493		return invalidParams
17494	}
17495	return nil
17496}
17497
17498// SetNotebookExecutionId sets the NotebookExecutionId field's value.
17499func (s *StopNotebookExecutionInput) SetNotebookExecutionId(v string) *StopNotebookExecutionInput {
17500	s.NotebookExecutionId = &v
17501	return s
17502}
17503
17504type StopNotebookExecutionOutput struct {
17505	_ struct{} `type:"structure"`
17506}
17507
17508// String returns the string representation.
17509//
17510// API parameter values that are decorated as "sensitive" in the API will not
17511// be included in the string output. The member name will be present, but the
17512// value will be replaced with "sensitive".
17513func (s StopNotebookExecutionOutput) String() string {
17514	return awsutil.Prettify(s)
17515}
17516
17517// GoString returns the string representation.
17518//
17519// API parameter values that are decorated as "sensitive" in the API will not
17520// be included in the string output. The member name will be present, but the
17521// value will be replaced with "sensitive".
17522func (s StopNotebookExecutionOutput) GoString() string {
17523	return s.String()
17524}
17525
17526// Details for an Amazon EMR Studio including ID, creation time, name, and so
17527// on.
17528type Studio struct {
17529	_ struct{} `type:"structure"`
17530
17531	// Specifies whether the Amazon EMR Studio authenticates users using IAM or
17532	// Amazon Web Services SSO.
17533	AuthMode *string `type:"string" enum:"AuthMode"`
17534
17535	// The time the Amazon EMR Studio was created.
17536	CreationTime *time.Time `type:"timestamp"`
17537
17538	// The Amazon S3 location to back up Amazon EMR Studio Workspaces and notebook
17539	// files.
17540	DefaultS3Location *string `type:"string"`
17541
17542	// The detailed description of the Amazon EMR Studio.
17543	Description *string `type:"string"`
17544
17545	// The ID of the Engine security group associated with the Amazon EMR Studio.
17546	// The Engine security group allows inbound network traffic from resources in
17547	// the Workspace security group.
17548	EngineSecurityGroupId *string `type:"string"`
17549
17550	// Your identity provider's authentication endpoint. Amazon EMR Studio redirects
17551	// federated users to this endpoint for authentication when logging in to a
17552	// Studio with the Studio URL.
17553	IdpAuthUrl *string `type:"string"`
17554
17555	// The name of your identity provider's RelayState parameter.
17556	IdpRelayStateParameterName *string `type:"string"`
17557
17558	// The name of the Amazon EMR Studio.
17559	Name *string `type:"string"`
17560
17561	// The name of the IAM role assumed by the Amazon EMR Studio.
17562	ServiceRole *string `type:"string"`
17563
17564	// The Amazon Resource Name (ARN) of the Amazon EMR Studio.
17565	StudioArn *string `type:"string"`
17566
17567	// The ID of the Amazon EMR Studio.
17568	StudioId *string `type:"string"`
17569
17570	// The list of IDs of the subnets associated with the Amazon EMR Studio.
17571	SubnetIds []*string `type:"list"`
17572
17573	// A list of tags associated with the Amazon EMR Studio.
17574	Tags []*Tag `type:"list"`
17575
17576	// The unique access URL of the Amazon EMR Studio.
17577	Url *string `type:"string"`
17578
17579	// The name of the IAM role assumed by users logged in to the Amazon EMR Studio.
17580	// A Studio only requires a UserRole when you use IAM authentication.
17581	UserRole *string `type:"string"`
17582
17583	// The ID of the VPC associated with the Amazon EMR Studio.
17584	VpcId *string `type:"string"`
17585
17586	// The ID of the Workspace security group associated with the Amazon EMR Studio.
17587	// The Workspace security group allows outbound network traffic to resources
17588	// in the Engine security group and to the internet.
17589	WorkspaceSecurityGroupId *string `type:"string"`
17590}
17591
17592// String returns the string representation.
17593//
17594// API parameter values that are decorated as "sensitive" in the API will not
17595// be included in the string output. The member name will be present, but the
17596// value will be replaced with "sensitive".
17597func (s Studio) String() string {
17598	return awsutil.Prettify(s)
17599}
17600
17601// GoString returns the string representation.
17602//
17603// API parameter values that are decorated as "sensitive" in the API will not
17604// be included in the string output. The member name will be present, but the
17605// value will be replaced with "sensitive".
17606func (s Studio) GoString() string {
17607	return s.String()
17608}
17609
17610// SetAuthMode sets the AuthMode field's value.
17611func (s *Studio) SetAuthMode(v string) *Studio {
17612	s.AuthMode = &v
17613	return s
17614}
17615
17616// SetCreationTime sets the CreationTime field's value.
17617func (s *Studio) SetCreationTime(v time.Time) *Studio {
17618	s.CreationTime = &v
17619	return s
17620}
17621
17622// SetDefaultS3Location sets the DefaultS3Location field's value.
17623func (s *Studio) SetDefaultS3Location(v string) *Studio {
17624	s.DefaultS3Location = &v
17625	return s
17626}
17627
17628// SetDescription sets the Description field's value.
17629func (s *Studio) SetDescription(v string) *Studio {
17630	s.Description = &v
17631	return s
17632}
17633
17634// SetEngineSecurityGroupId sets the EngineSecurityGroupId field's value.
17635func (s *Studio) SetEngineSecurityGroupId(v string) *Studio {
17636	s.EngineSecurityGroupId = &v
17637	return s
17638}
17639
17640// SetIdpAuthUrl sets the IdpAuthUrl field's value.
17641func (s *Studio) SetIdpAuthUrl(v string) *Studio {
17642	s.IdpAuthUrl = &v
17643	return s
17644}
17645
17646// SetIdpRelayStateParameterName sets the IdpRelayStateParameterName field's value.
17647func (s *Studio) SetIdpRelayStateParameterName(v string) *Studio {
17648	s.IdpRelayStateParameterName = &v
17649	return s
17650}
17651
17652// SetName sets the Name field's value.
17653func (s *Studio) SetName(v string) *Studio {
17654	s.Name = &v
17655	return s
17656}
17657
17658// SetServiceRole sets the ServiceRole field's value.
17659func (s *Studio) SetServiceRole(v string) *Studio {
17660	s.ServiceRole = &v
17661	return s
17662}
17663
17664// SetStudioArn sets the StudioArn field's value.
17665func (s *Studio) SetStudioArn(v string) *Studio {
17666	s.StudioArn = &v
17667	return s
17668}
17669
17670// SetStudioId sets the StudioId field's value.
17671func (s *Studio) SetStudioId(v string) *Studio {
17672	s.StudioId = &v
17673	return s
17674}
17675
17676// SetSubnetIds sets the SubnetIds field's value.
17677func (s *Studio) SetSubnetIds(v []*string) *Studio {
17678	s.SubnetIds = v
17679	return s
17680}
17681
17682// SetTags sets the Tags field's value.
17683func (s *Studio) SetTags(v []*Tag) *Studio {
17684	s.Tags = v
17685	return s
17686}
17687
17688// SetUrl sets the Url field's value.
17689func (s *Studio) SetUrl(v string) *Studio {
17690	s.Url = &v
17691	return s
17692}
17693
17694// SetUserRole sets the UserRole field's value.
17695func (s *Studio) SetUserRole(v string) *Studio {
17696	s.UserRole = &v
17697	return s
17698}
17699
17700// SetVpcId sets the VpcId field's value.
17701func (s *Studio) SetVpcId(v string) *Studio {
17702	s.VpcId = &v
17703	return s
17704}
17705
17706// SetWorkspaceSecurityGroupId sets the WorkspaceSecurityGroupId field's value.
17707func (s *Studio) SetWorkspaceSecurityGroupId(v string) *Studio {
17708	s.WorkspaceSecurityGroupId = &v
17709	return s
17710}
17711
17712// Details for an Amazon EMR Studio, including ID, Name, VPC, and Description.
17713// The details do not include subnets, IAM roles, security groups, or tags associated
17714// with the Studio.
17715type StudioSummary struct {
17716	_ struct{} `type:"structure"`
17717
17718	// Specifies whether the Studio authenticates users using IAM or Amazon Web
17719	// Services SSO.
17720	AuthMode *string `type:"string" enum:"AuthMode"`
17721
17722	// The time when the Amazon EMR Studio was created.
17723	CreationTime *time.Time `type:"timestamp"`
17724
17725	// The detailed description of the Amazon EMR Studio.
17726	Description *string `type:"string"`
17727
17728	// The name of the Amazon EMR Studio.
17729	Name *string `type:"string"`
17730
17731	// The ID of the Amazon EMR Studio.
17732	StudioId *string `type:"string"`
17733
17734	// The unique access URL of the Amazon EMR Studio.
17735	Url *string `type:"string"`
17736
17737	// The ID of the Virtual Private Cloud (Amazon VPC) associated with the Amazon
17738	// EMR Studio.
17739	VpcId *string `type:"string"`
17740}
17741
17742// String returns the string representation.
17743//
17744// API parameter values that are decorated as "sensitive" in the API will not
17745// be included in the string output. The member name will be present, but the
17746// value will be replaced with "sensitive".
17747func (s StudioSummary) String() string {
17748	return awsutil.Prettify(s)
17749}
17750
17751// GoString returns the string representation.
17752//
17753// API parameter values that are decorated as "sensitive" in the API will not
17754// be included in the string output. The member name will be present, but the
17755// value will be replaced with "sensitive".
17756func (s StudioSummary) GoString() string {
17757	return s.String()
17758}
17759
17760// SetAuthMode sets the AuthMode field's value.
17761func (s *StudioSummary) SetAuthMode(v string) *StudioSummary {
17762	s.AuthMode = &v
17763	return s
17764}
17765
17766// SetCreationTime sets the CreationTime field's value.
17767func (s *StudioSummary) SetCreationTime(v time.Time) *StudioSummary {
17768	s.CreationTime = &v
17769	return s
17770}
17771
17772// SetDescription sets the Description field's value.
17773func (s *StudioSummary) SetDescription(v string) *StudioSummary {
17774	s.Description = &v
17775	return s
17776}
17777
17778// SetName sets the Name field's value.
17779func (s *StudioSummary) SetName(v string) *StudioSummary {
17780	s.Name = &v
17781	return s
17782}
17783
17784// SetStudioId sets the StudioId field's value.
17785func (s *StudioSummary) SetStudioId(v string) *StudioSummary {
17786	s.StudioId = &v
17787	return s
17788}
17789
17790// SetUrl sets the Url field's value.
17791func (s *StudioSummary) SetUrl(v string) *StudioSummary {
17792	s.Url = &v
17793	return s
17794}
17795
17796// SetVpcId sets the VpcId field's value.
17797func (s *StudioSummary) SetVpcId(v string) *StudioSummary {
17798	s.VpcId = &v
17799	return s
17800}
17801
17802// The list of supported product configurations that allow user-supplied arguments.
17803// EMR accepts these arguments and forwards them to the corresponding installation
17804// script as bootstrap action arguments.
17805type SupportedProductConfig struct {
17806	_ struct{} `type:"structure"`
17807
17808	// The list of user-supplied arguments.
17809	Args []*string `type:"list"`
17810
17811	// The name of the product configuration.
17812	Name *string `type:"string"`
17813}
17814
17815// String returns the string representation.
17816//
17817// API parameter values that are decorated as "sensitive" in the API will not
17818// be included in the string output. The member name will be present, but the
17819// value will be replaced with "sensitive".
17820func (s SupportedProductConfig) String() string {
17821	return awsutil.Prettify(s)
17822}
17823
17824// GoString returns the string representation.
17825//
17826// API parameter values that are decorated as "sensitive" in the API will not
17827// be included in the string output. The member name will be present, but the
17828// value will be replaced with "sensitive".
17829func (s SupportedProductConfig) GoString() string {
17830	return s.String()
17831}
17832
17833// SetArgs sets the Args field's value.
17834func (s *SupportedProductConfig) SetArgs(v []*string) *SupportedProductConfig {
17835	s.Args = v
17836	return s
17837}
17838
17839// SetName sets the Name field's value.
17840func (s *SupportedProductConfig) SetName(v string) *SupportedProductConfig {
17841	s.Name = &v
17842	return s
17843}
17844
17845// A key-value pair containing user-defined metadata that you can associate
17846// with an Amazon EMR resource. Tags make it easier to associate clusters in
17847// various ways, such as grouping clusters to track your Amazon EMR resource
17848// allocation costs. For more information, see Tag Clusters (https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-tags.html).
17849type Tag struct {
17850	_ struct{} `type:"structure"`
17851
17852	// A user-defined key, which is the minimum required information for a valid
17853	// tag. For more information, see Tag (https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-tags.html).
17854	Key *string `type:"string"`
17855
17856	// A user-defined value, which is optional in a tag. For more information, see
17857	// Tag Clusters (https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-tags.html).
17858	Value *string `type:"string"`
17859}
17860
17861// String returns the string representation.
17862//
17863// API parameter values that are decorated as "sensitive" in the API will not
17864// be included in the string output. The member name will be present, but the
17865// value will be replaced with "sensitive".
17866func (s Tag) String() string {
17867	return awsutil.Prettify(s)
17868}
17869
17870// GoString returns the string representation.
17871//
17872// API parameter values that are decorated as "sensitive" in the API will not
17873// be included in the string output. The member name will be present, but the
17874// value will be replaced with "sensitive".
17875func (s Tag) GoString() string {
17876	return s.String()
17877}
17878
17879// SetKey sets the Key field's value.
17880func (s *Tag) SetKey(v string) *Tag {
17881	s.Key = &v
17882	return s
17883}
17884
17885// SetValue sets the Value field's value.
17886func (s *Tag) SetValue(v string) *Tag {
17887	s.Value = &v
17888	return s
17889}
17890
17891// Input to the TerminateJobFlows operation.
17892type TerminateJobFlowsInput struct {
17893	_ struct{} `type:"structure"`
17894
17895	// A list of job flows to be shut down.
17896	//
17897	// JobFlowIds is a required field
17898	JobFlowIds []*string `type:"list" required:"true"`
17899}
17900
17901// String returns the string representation.
17902//
17903// API parameter values that are decorated as "sensitive" in the API will not
17904// be included in the string output. The member name will be present, but the
17905// value will be replaced with "sensitive".
17906func (s TerminateJobFlowsInput) String() string {
17907	return awsutil.Prettify(s)
17908}
17909
17910// GoString returns the string representation.
17911//
17912// API parameter values that are decorated as "sensitive" in the API will not
17913// be included in the string output. The member name will be present, but the
17914// value will be replaced with "sensitive".
17915func (s TerminateJobFlowsInput) GoString() string {
17916	return s.String()
17917}
17918
17919// Validate inspects the fields of the type to determine if they are valid.
17920func (s *TerminateJobFlowsInput) Validate() error {
17921	invalidParams := request.ErrInvalidParams{Context: "TerminateJobFlowsInput"}
17922	if s.JobFlowIds == nil {
17923		invalidParams.Add(request.NewErrParamRequired("JobFlowIds"))
17924	}
17925
17926	if invalidParams.Len() > 0 {
17927		return invalidParams
17928	}
17929	return nil
17930}
17931
17932// SetJobFlowIds sets the JobFlowIds field's value.
17933func (s *TerminateJobFlowsInput) SetJobFlowIds(v []*string) *TerminateJobFlowsInput {
17934	s.JobFlowIds = v
17935	return s
17936}
17937
17938type TerminateJobFlowsOutput struct {
17939	_ struct{} `type:"structure"`
17940}
17941
17942// String returns the string representation.
17943//
17944// API parameter values that are decorated as "sensitive" in the API will not
17945// be included in the string output. The member name will be present, but the
17946// value will be replaced with "sensitive".
17947func (s TerminateJobFlowsOutput) String() string {
17948	return awsutil.Prettify(s)
17949}
17950
17951// GoString returns the string representation.
17952//
17953// API parameter values that are decorated as "sensitive" in the API will not
17954// be included in the string output. The member name will be present, but the
17955// value will be replaced with "sensitive".
17956func (s TerminateJobFlowsOutput) GoString() string {
17957	return s.String()
17958}
17959
17960type UpdateStudioInput struct {
17961	_ struct{} `type:"structure"`
17962
17963	// The Amazon S3 location to back up Workspaces and notebook files for the Amazon
17964	// EMR Studio.
17965	DefaultS3Location *string `type:"string"`
17966
17967	// A detailed description to assign to the Amazon EMR Studio.
17968	Description *string `type:"string"`
17969
17970	// A descriptive name for the Amazon EMR Studio.
17971	Name *string `type:"string"`
17972
17973	// The ID of the Amazon EMR Studio to update.
17974	//
17975	// StudioId is a required field
17976	StudioId *string `type:"string" required:"true"`
17977
17978	// A list of subnet IDs to associate with the Amazon EMR Studio. The list can
17979	// include new subnet IDs, but must also include all of the subnet IDs previously
17980	// associated with the Studio. The list order does not matter. A Studio can
17981	// have a maximum of 5 subnets. The subnets must belong to the same VPC as the
17982	// Studio.
17983	SubnetIds []*string `type:"list"`
17984}
17985
17986// String returns the string representation.
17987//
17988// API parameter values that are decorated as "sensitive" in the API will not
17989// be included in the string output. The member name will be present, but the
17990// value will be replaced with "sensitive".
17991func (s UpdateStudioInput) String() string {
17992	return awsutil.Prettify(s)
17993}
17994
17995// GoString returns the string representation.
17996//
17997// API parameter values that are decorated as "sensitive" in the API will not
17998// be included in the string output. The member name will be present, but the
17999// value will be replaced with "sensitive".
18000func (s UpdateStudioInput) GoString() string {
18001	return s.String()
18002}
18003
18004// Validate inspects the fields of the type to determine if they are valid.
18005func (s *UpdateStudioInput) Validate() error {
18006	invalidParams := request.ErrInvalidParams{Context: "UpdateStudioInput"}
18007	if s.StudioId == nil {
18008		invalidParams.Add(request.NewErrParamRequired("StudioId"))
18009	}
18010
18011	if invalidParams.Len() > 0 {
18012		return invalidParams
18013	}
18014	return nil
18015}
18016
18017// SetDefaultS3Location sets the DefaultS3Location field's value.
18018func (s *UpdateStudioInput) SetDefaultS3Location(v string) *UpdateStudioInput {
18019	s.DefaultS3Location = &v
18020	return s
18021}
18022
18023// SetDescription sets the Description field's value.
18024func (s *UpdateStudioInput) SetDescription(v string) *UpdateStudioInput {
18025	s.Description = &v
18026	return s
18027}
18028
18029// SetName sets the Name field's value.
18030func (s *UpdateStudioInput) SetName(v string) *UpdateStudioInput {
18031	s.Name = &v
18032	return s
18033}
18034
18035// SetStudioId sets the StudioId field's value.
18036func (s *UpdateStudioInput) SetStudioId(v string) *UpdateStudioInput {
18037	s.StudioId = &v
18038	return s
18039}
18040
18041// SetSubnetIds sets the SubnetIds field's value.
18042func (s *UpdateStudioInput) SetSubnetIds(v []*string) *UpdateStudioInput {
18043	s.SubnetIds = v
18044	return s
18045}
18046
18047type UpdateStudioOutput struct {
18048	_ struct{} `type:"structure"`
18049}
18050
18051// String returns the string representation.
18052//
18053// API parameter values that are decorated as "sensitive" in the API will not
18054// be included in the string output. The member name will be present, but the
18055// value will be replaced with "sensitive".
18056func (s UpdateStudioOutput) String() string {
18057	return awsutil.Prettify(s)
18058}
18059
18060// GoString returns the string representation.
18061//
18062// API parameter values that are decorated as "sensitive" in the API will not
18063// be included in the string output. The member name will be present, but the
18064// value will be replaced with "sensitive".
18065func (s UpdateStudioOutput) GoString() string {
18066	return s.String()
18067}
18068
18069type UpdateStudioSessionMappingInput struct {
18070	_ struct{} `type:"structure"`
18071
18072	// The globally unique identifier (GUID) of the user or group. For more information,
18073	// see UserId (https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_User.html#singlesignon-Type-User-UserId)
18074	// and GroupId (https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_Group.html#singlesignon-Type-Group-GroupId)
18075	// in the Amazon Web Services SSO Identity Store API Reference. Either IdentityName
18076	// or IdentityId must be specified.
18077	IdentityId *string `type:"string"`
18078
18079	// The name of the user or group to update. For more information, see UserName
18080	// (https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_User.html#singlesignon-Type-User-UserName)
18081	// and DisplayName (https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_Group.html#singlesignon-Type-Group-DisplayName)
18082	// in the Amazon Web Services SSO Identity Store API Reference. Either IdentityName
18083	// or IdentityId must be specified.
18084	IdentityName *string `type:"string"`
18085
18086	// Specifies whether the identity to update is a user or a group.
18087	//
18088	// IdentityType is a required field
18089	IdentityType *string `type:"string" required:"true" enum:"IdentityType"`
18090
18091	// The Amazon Resource Name (ARN) of the session policy to associate with the
18092	// specified user or group.
18093	//
18094	// SessionPolicyArn is a required field
18095	SessionPolicyArn *string `type:"string" required:"true"`
18096
18097	// The ID of the Amazon EMR Studio.
18098	//
18099	// StudioId is a required field
18100	StudioId *string `type:"string" required:"true"`
18101}
18102
18103// String returns the string representation.
18104//
18105// API parameter values that are decorated as "sensitive" in the API will not
18106// be included in the string output. The member name will be present, but the
18107// value will be replaced with "sensitive".
18108func (s UpdateStudioSessionMappingInput) String() string {
18109	return awsutil.Prettify(s)
18110}
18111
18112// GoString returns the string representation.
18113//
18114// API parameter values that are decorated as "sensitive" in the API will not
18115// be included in the string output. The member name will be present, but the
18116// value will be replaced with "sensitive".
18117func (s UpdateStudioSessionMappingInput) GoString() string {
18118	return s.String()
18119}
18120
18121// Validate inspects the fields of the type to determine if they are valid.
18122func (s *UpdateStudioSessionMappingInput) Validate() error {
18123	invalidParams := request.ErrInvalidParams{Context: "UpdateStudioSessionMappingInput"}
18124	if s.IdentityType == nil {
18125		invalidParams.Add(request.NewErrParamRequired("IdentityType"))
18126	}
18127	if s.SessionPolicyArn == nil {
18128		invalidParams.Add(request.NewErrParamRequired("SessionPolicyArn"))
18129	}
18130	if s.StudioId == nil {
18131		invalidParams.Add(request.NewErrParamRequired("StudioId"))
18132	}
18133
18134	if invalidParams.Len() > 0 {
18135		return invalidParams
18136	}
18137	return nil
18138}
18139
18140// SetIdentityId sets the IdentityId field's value.
18141func (s *UpdateStudioSessionMappingInput) SetIdentityId(v string) *UpdateStudioSessionMappingInput {
18142	s.IdentityId = &v
18143	return s
18144}
18145
18146// SetIdentityName sets the IdentityName field's value.
18147func (s *UpdateStudioSessionMappingInput) SetIdentityName(v string) *UpdateStudioSessionMappingInput {
18148	s.IdentityName = &v
18149	return s
18150}
18151
18152// SetIdentityType sets the IdentityType field's value.
18153func (s *UpdateStudioSessionMappingInput) SetIdentityType(v string) *UpdateStudioSessionMappingInput {
18154	s.IdentityType = &v
18155	return s
18156}
18157
18158// SetSessionPolicyArn sets the SessionPolicyArn field's value.
18159func (s *UpdateStudioSessionMappingInput) SetSessionPolicyArn(v string) *UpdateStudioSessionMappingInput {
18160	s.SessionPolicyArn = &v
18161	return s
18162}
18163
18164// SetStudioId sets the StudioId field's value.
18165func (s *UpdateStudioSessionMappingInput) SetStudioId(v string) *UpdateStudioSessionMappingInput {
18166	s.StudioId = &v
18167	return s
18168}
18169
18170type UpdateStudioSessionMappingOutput struct {
18171	_ struct{} `type:"structure"`
18172}
18173
18174// String returns the string representation.
18175//
18176// API parameter values that are decorated as "sensitive" in the API will not
18177// be included in the string output. The member name will be present, but the
18178// value will be replaced with "sensitive".
18179func (s UpdateStudioSessionMappingOutput) String() string {
18180	return awsutil.Prettify(s)
18181}
18182
18183// GoString returns the string representation.
18184//
18185// API parameter values that are decorated as "sensitive" in the API will not
18186// be included in the string output. The member name will be present, but the
18187// value will be replaced with "sensitive".
18188func (s UpdateStudioSessionMappingOutput) GoString() string {
18189	return s.String()
18190}
18191
18192// EBS volume specifications such as volume type, IOPS, and size (GiB) that
18193// will be requested for the EBS volume attached to an EC2 instance in the cluster.
18194type VolumeSpecification struct {
18195	_ struct{} `type:"structure"`
18196
18197	// The number of I/O operations per second (IOPS) that the volume supports.
18198	Iops *int64 `type:"integer"`
18199
18200	// The volume size, in gibibytes (GiB). This can be a number from 1 - 1024.
18201	// If the volume type is EBS-optimized, the minimum value is 10.
18202	//
18203	// SizeInGB is a required field
18204	SizeInGB *int64 `type:"integer" required:"true"`
18205
18206	// The volume type. Volume types supported are gp2, io1, standard.
18207	//
18208	// VolumeType is a required field
18209	VolumeType *string `type:"string" required:"true"`
18210}
18211
18212// String returns the string representation.
18213//
18214// API parameter values that are decorated as "sensitive" in the API will not
18215// be included in the string output. The member name will be present, but the
18216// value will be replaced with "sensitive".
18217func (s VolumeSpecification) String() string {
18218	return awsutil.Prettify(s)
18219}
18220
18221// GoString returns the string representation.
18222//
18223// API parameter values that are decorated as "sensitive" in the API will not
18224// be included in the string output. The member name will be present, but the
18225// value will be replaced with "sensitive".
18226func (s VolumeSpecification) GoString() string {
18227	return s.String()
18228}
18229
18230// Validate inspects the fields of the type to determine if they are valid.
18231func (s *VolumeSpecification) Validate() error {
18232	invalidParams := request.ErrInvalidParams{Context: "VolumeSpecification"}
18233	if s.SizeInGB == nil {
18234		invalidParams.Add(request.NewErrParamRequired("SizeInGB"))
18235	}
18236	if s.VolumeType == nil {
18237		invalidParams.Add(request.NewErrParamRequired("VolumeType"))
18238	}
18239
18240	if invalidParams.Len() > 0 {
18241		return invalidParams
18242	}
18243	return nil
18244}
18245
18246// SetIops sets the Iops field's value.
18247func (s *VolumeSpecification) SetIops(v int64) *VolumeSpecification {
18248	s.Iops = &v
18249	return s
18250}
18251
18252// SetSizeInGB sets the SizeInGB field's value.
18253func (s *VolumeSpecification) SetSizeInGB(v int64) *VolumeSpecification {
18254	s.SizeInGB = &v
18255	return s
18256}
18257
18258// SetVolumeType sets the VolumeType field's value.
18259func (s *VolumeSpecification) SetVolumeType(v string) *VolumeSpecification {
18260	s.VolumeType = &v
18261	return s
18262}
18263
18264const (
18265	// ActionOnFailureTerminateJobFlow is a ActionOnFailure enum value
18266	ActionOnFailureTerminateJobFlow = "TERMINATE_JOB_FLOW"
18267
18268	// ActionOnFailureTerminateCluster is a ActionOnFailure enum value
18269	ActionOnFailureTerminateCluster = "TERMINATE_CLUSTER"
18270
18271	// ActionOnFailureCancelAndWait is a ActionOnFailure enum value
18272	ActionOnFailureCancelAndWait = "CANCEL_AND_WAIT"
18273
18274	// ActionOnFailureContinue is a ActionOnFailure enum value
18275	ActionOnFailureContinue = "CONTINUE"
18276)
18277
18278// ActionOnFailure_Values returns all elements of the ActionOnFailure enum
18279func ActionOnFailure_Values() []string {
18280	return []string{
18281		ActionOnFailureTerminateJobFlow,
18282		ActionOnFailureTerminateCluster,
18283		ActionOnFailureCancelAndWait,
18284		ActionOnFailureContinue,
18285	}
18286}
18287
18288const (
18289	// AdjustmentTypeChangeInCapacity is a AdjustmentType enum value
18290	AdjustmentTypeChangeInCapacity = "CHANGE_IN_CAPACITY"
18291
18292	// AdjustmentTypePercentChangeInCapacity is a AdjustmentType enum value
18293	AdjustmentTypePercentChangeInCapacity = "PERCENT_CHANGE_IN_CAPACITY"
18294
18295	// AdjustmentTypeExactCapacity is a AdjustmentType enum value
18296	AdjustmentTypeExactCapacity = "EXACT_CAPACITY"
18297)
18298
18299// AdjustmentType_Values returns all elements of the AdjustmentType enum
18300func AdjustmentType_Values() []string {
18301	return []string{
18302		AdjustmentTypeChangeInCapacity,
18303		AdjustmentTypePercentChangeInCapacity,
18304		AdjustmentTypeExactCapacity,
18305	}
18306}
18307
18308const (
18309	// AuthModeSso is a AuthMode enum value
18310	AuthModeSso = "SSO"
18311
18312	// AuthModeIam is a AuthMode enum value
18313	AuthModeIam = "IAM"
18314)
18315
18316// AuthMode_Values returns all elements of the AuthMode enum
18317func AuthMode_Values() []string {
18318	return []string{
18319		AuthModeSso,
18320		AuthModeIam,
18321	}
18322}
18323
18324const (
18325	// AutoScalingPolicyStatePending is a AutoScalingPolicyState enum value
18326	AutoScalingPolicyStatePending = "PENDING"
18327
18328	// AutoScalingPolicyStateAttaching is a AutoScalingPolicyState enum value
18329	AutoScalingPolicyStateAttaching = "ATTACHING"
18330
18331	// AutoScalingPolicyStateAttached is a AutoScalingPolicyState enum value
18332	AutoScalingPolicyStateAttached = "ATTACHED"
18333
18334	// AutoScalingPolicyStateDetaching is a AutoScalingPolicyState enum value
18335	AutoScalingPolicyStateDetaching = "DETACHING"
18336
18337	// AutoScalingPolicyStateDetached is a AutoScalingPolicyState enum value
18338	AutoScalingPolicyStateDetached = "DETACHED"
18339
18340	// AutoScalingPolicyStateFailed is a AutoScalingPolicyState enum value
18341	AutoScalingPolicyStateFailed = "FAILED"
18342)
18343
18344// AutoScalingPolicyState_Values returns all elements of the AutoScalingPolicyState enum
18345func AutoScalingPolicyState_Values() []string {
18346	return []string{
18347		AutoScalingPolicyStatePending,
18348		AutoScalingPolicyStateAttaching,
18349		AutoScalingPolicyStateAttached,
18350		AutoScalingPolicyStateDetaching,
18351		AutoScalingPolicyStateDetached,
18352		AutoScalingPolicyStateFailed,
18353	}
18354}
18355
18356const (
18357	// AutoScalingPolicyStateChangeReasonCodeUserRequest is a AutoScalingPolicyStateChangeReasonCode enum value
18358	AutoScalingPolicyStateChangeReasonCodeUserRequest = "USER_REQUEST"
18359
18360	// AutoScalingPolicyStateChangeReasonCodeProvisionFailure is a AutoScalingPolicyStateChangeReasonCode enum value
18361	AutoScalingPolicyStateChangeReasonCodeProvisionFailure = "PROVISION_FAILURE"
18362
18363	// AutoScalingPolicyStateChangeReasonCodeCleanupFailure is a AutoScalingPolicyStateChangeReasonCode enum value
18364	AutoScalingPolicyStateChangeReasonCodeCleanupFailure = "CLEANUP_FAILURE"
18365)
18366
18367// AutoScalingPolicyStateChangeReasonCode_Values returns all elements of the AutoScalingPolicyStateChangeReasonCode enum
18368func AutoScalingPolicyStateChangeReasonCode_Values() []string {
18369	return []string{
18370		AutoScalingPolicyStateChangeReasonCodeUserRequest,
18371		AutoScalingPolicyStateChangeReasonCodeProvisionFailure,
18372		AutoScalingPolicyStateChangeReasonCodeCleanupFailure,
18373	}
18374}
18375
18376const (
18377	// CancelStepsRequestStatusSubmitted is a CancelStepsRequestStatus enum value
18378	CancelStepsRequestStatusSubmitted = "SUBMITTED"
18379
18380	// CancelStepsRequestStatusFailed is a CancelStepsRequestStatus enum value
18381	CancelStepsRequestStatusFailed = "FAILED"
18382)
18383
18384// CancelStepsRequestStatus_Values returns all elements of the CancelStepsRequestStatus enum
18385func CancelStepsRequestStatus_Values() []string {
18386	return []string{
18387		CancelStepsRequestStatusSubmitted,
18388		CancelStepsRequestStatusFailed,
18389	}
18390}
18391
18392const (
18393	// ClusterStateStarting is a ClusterState enum value
18394	ClusterStateStarting = "STARTING"
18395
18396	// ClusterStateBootstrapping is a ClusterState enum value
18397	ClusterStateBootstrapping = "BOOTSTRAPPING"
18398
18399	// ClusterStateRunning is a ClusterState enum value
18400	ClusterStateRunning = "RUNNING"
18401
18402	// ClusterStateWaiting is a ClusterState enum value
18403	ClusterStateWaiting = "WAITING"
18404
18405	// ClusterStateTerminating is a ClusterState enum value
18406	ClusterStateTerminating = "TERMINATING"
18407
18408	// ClusterStateTerminated is a ClusterState enum value
18409	ClusterStateTerminated = "TERMINATED"
18410
18411	// ClusterStateTerminatedWithErrors is a ClusterState enum value
18412	ClusterStateTerminatedWithErrors = "TERMINATED_WITH_ERRORS"
18413)
18414
18415// ClusterState_Values returns all elements of the ClusterState enum
18416func ClusterState_Values() []string {
18417	return []string{
18418		ClusterStateStarting,
18419		ClusterStateBootstrapping,
18420		ClusterStateRunning,
18421		ClusterStateWaiting,
18422		ClusterStateTerminating,
18423		ClusterStateTerminated,
18424		ClusterStateTerminatedWithErrors,
18425	}
18426}
18427
18428const (
18429	// ClusterStateChangeReasonCodeInternalError is a ClusterStateChangeReasonCode enum value
18430	ClusterStateChangeReasonCodeInternalError = "INTERNAL_ERROR"
18431
18432	// ClusterStateChangeReasonCodeValidationError is a ClusterStateChangeReasonCode enum value
18433	ClusterStateChangeReasonCodeValidationError = "VALIDATION_ERROR"
18434
18435	// ClusterStateChangeReasonCodeInstanceFailure is a ClusterStateChangeReasonCode enum value
18436	ClusterStateChangeReasonCodeInstanceFailure = "INSTANCE_FAILURE"
18437
18438	// ClusterStateChangeReasonCodeInstanceFleetTimeout is a ClusterStateChangeReasonCode enum value
18439	ClusterStateChangeReasonCodeInstanceFleetTimeout = "INSTANCE_FLEET_TIMEOUT"
18440
18441	// ClusterStateChangeReasonCodeBootstrapFailure is a ClusterStateChangeReasonCode enum value
18442	ClusterStateChangeReasonCodeBootstrapFailure = "BOOTSTRAP_FAILURE"
18443
18444	// ClusterStateChangeReasonCodeUserRequest is a ClusterStateChangeReasonCode enum value
18445	ClusterStateChangeReasonCodeUserRequest = "USER_REQUEST"
18446
18447	// ClusterStateChangeReasonCodeStepFailure is a ClusterStateChangeReasonCode enum value
18448	ClusterStateChangeReasonCodeStepFailure = "STEP_FAILURE"
18449
18450	// ClusterStateChangeReasonCodeAllStepsCompleted is a ClusterStateChangeReasonCode enum value
18451	ClusterStateChangeReasonCodeAllStepsCompleted = "ALL_STEPS_COMPLETED"
18452)
18453
18454// ClusterStateChangeReasonCode_Values returns all elements of the ClusterStateChangeReasonCode enum
18455func ClusterStateChangeReasonCode_Values() []string {
18456	return []string{
18457		ClusterStateChangeReasonCodeInternalError,
18458		ClusterStateChangeReasonCodeValidationError,
18459		ClusterStateChangeReasonCodeInstanceFailure,
18460		ClusterStateChangeReasonCodeInstanceFleetTimeout,
18461		ClusterStateChangeReasonCodeBootstrapFailure,
18462		ClusterStateChangeReasonCodeUserRequest,
18463		ClusterStateChangeReasonCodeStepFailure,
18464		ClusterStateChangeReasonCodeAllStepsCompleted,
18465	}
18466}
18467
18468const (
18469	// ComparisonOperatorGreaterThanOrEqual is a ComparisonOperator enum value
18470	ComparisonOperatorGreaterThanOrEqual = "GREATER_THAN_OR_EQUAL"
18471
18472	// ComparisonOperatorGreaterThan is a ComparisonOperator enum value
18473	ComparisonOperatorGreaterThan = "GREATER_THAN"
18474
18475	// ComparisonOperatorLessThan is a ComparisonOperator enum value
18476	ComparisonOperatorLessThan = "LESS_THAN"
18477
18478	// ComparisonOperatorLessThanOrEqual is a ComparisonOperator enum value
18479	ComparisonOperatorLessThanOrEqual = "LESS_THAN_OR_EQUAL"
18480)
18481
18482// ComparisonOperator_Values returns all elements of the ComparisonOperator enum
18483func ComparisonOperator_Values() []string {
18484	return []string{
18485		ComparisonOperatorGreaterThanOrEqual,
18486		ComparisonOperatorGreaterThan,
18487		ComparisonOperatorLessThan,
18488		ComparisonOperatorLessThanOrEqual,
18489	}
18490}
18491
18492const (
18493	// ComputeLimitsUnitTypeInstanceFleetUnits is a ComputeLimitsUnitType enum value
18494	ComputeLimitsUnitTypeInstanceFleetUnits = "InstanceFleetUnits"
18495
18496	// ComputeLimitsUnitTypeInstances is a ComputeLimitsUnitType enum value
18497	ComputeLimitsUnitTypeInstances = "Instances"
18498
18499	// ComputeLimitsUnitTypeVcpu is a ComputeLimitsUnitType enum value
18500	ComputeLimitsUnitTypeVcpu = "VCPU"
18501)
18502
18503// ComputeLimitsUnitType_Values returns all elements of the ComputeLimitsUnitType enum
18504func ComputeLimitsUnitType_Values() []string {
18505	return []string{
18506		ComputeLimitsUnitTypeInstanceFleetUnits,
18507		ComputeLimitsUnitTypeInstances,
18508		ComputeLimitsUnitTypeVcpu,
18509	}
18510}
18511
18512const (
18513	// ExecutionEngineTypeEmr is a ExecutionEngineType enum value
18514	ExecutionEngineTypeEmr = "EMR"
18515)
18516
18517// ExecutionEngineType_Values returns all elements of the ExecutionEngineType enum
18518func ExecutionEngineType_Values() []string {
18519	return []string{
18520		ExecutionEngineTypeEmr,
18521	}
18522}
18523
18524const (
18525	// IdentityTypeUser is a IdentityType enum value
18526	IdentityTypeUser = "USER"
18527
18528	// IdentityTypeGroup is a IdentityType enum value
18529	IdentityTypeGroup = "GROUP"
18530)
18531
18532// IdentityType_Values returns all elements of the IdentityType enum
18533func IdentityType_Values() []string {
18534	return []string{
18535		IdentityTypeUser,
18536		IdentityTypeGroup,
18537	}
18538}
18539
18540const (
18541	// InstanceCollectionTypeInstanceFleet is a InstanceCollectionType enum value
18542	InstanceCollectionTypeInstanceFleet = "INSTANCE_FLEET"
18543
18544	// InstanceCollectionTypeInstanceGroup is a InstanceCollectionType enum value
18545	InstanceCollectionTypeInstanceGroup = "INSTANCE_GROUP"
18546)
18547
18548// InstanceCollectionType_Values returns all elements of the InstanceCollectionType enum
18549func InstanceCollectionType_Values() []string {
18550	return []string{
18551		InstanceCollectionTypeInstanceFleet,
18552		InstanceCollectionTypeInstanceGroup,
18553	}
18554}
18555
18556const (
18557	// InstanceFleetStateProvisioning is a InstanceFleetState enum value
18558	InstanceFleetStateProvisioning = "PROVISIONING"
18559
18560	// InstanceFleetStateBootstrapping is a InstanceFleetState enum value
18561	InstanceFleetStateBootstrapping = "BOOTSTRAPPING"
18562
18563	// InstanceFleetStateRunning is a InstanceFleetState enum value
18564	InstanceFleetStateRunning = "RUNNING"
18565
18566	// InstanceFleetStateResizing is a InstanceFleetState enum value
18567	InstanceFleetStateResizing = "RESIZING"
18568
18569	// InstanceFleetStateSuspended is a InstanceFleetState enum value
18570	InstanceFleetStateSuspended = "SUSPENDED"
18571
18572	// InstanceFleetStateTerminating is a InstanceFleetState enum value
18573	InstanceFleetStateTerminating = "TERMINATING"
18574
18575	// InstanceFleetStateTerminated is a InstanceFleetState enum value
18576	InstanceFleetStateTerminated = "TERMINATED"
18577)
18578
18579// InstanceFleetState_Values returns all elements of the InstanceFleetState enum
18580func InstanceFleetState_Values() []string {
18581	return []string{
18582		InstanceFleetStateProvisioning,
18583		InstanceFleetStateBootstrapping,
18584		InstanceFleetStateRunning,
18585		InstanceFleetStateResizing,
18586		InstanceFleetStateSuspended,
18587		InstanceFleetStateTerminating,
18588		InstanceFleetStateTerminated,
18589	}
18590}
18591
18592const (
18593	// InstanceFleetStateChangeReasonCodeInternalError is a InstanceFleetStateChangeReasonCode enum value
18594	InstanceFleetStateChangeReasonCodeInternalError = "INTERNAL_ERROR"
18595
18596	// InstanceFleetStateChangeReasonCodeValidationError is a InstanceFleetStateChangeReasonCode enum value
18597	InstanceFleetStateChangeReasonCodeValidationError = "VALIDATION_ERROR"
18598
18599	// InstanceFleetStateChangeReasonCodeInstanceFailure is a InstanceFleetStateChangeReasonCode enum value
18600	InstanceFleetStateChangeReasonCodeInstanceFailure = "INSTANCE_FAILURE"
18601
18602	// InstanceFleetStateChangeReasonCodeClusterTerminated is a InstanceFleetStateChangeReasonCode enum value
18603	InstanceFleetStateChangeReasonCodeClusterTerminated = "CLUSTER_TERMINATED"
18604)
18605
18606// InstanceFleetStateChangeReasonCode_Values returns all elements of the InstanceFleetStateChangeReasonCode enum
18607func InstanceFleetStateChangeReasonCode_Values() []string {
18608	return []string{
18609		InstanceFleetStateChangeReasonCodeInternalError,
18610		InstanceFleetStateChangeReasonCodeValidationError,
18611		InstanceFleetStateChangeReasonCodeInstanceFailure,
18612		InstanceFleetStateChangeReasonCodeClusterTerminated,
18613	}
18614}
18615
18616const (
18617	// InstanceFleetTypeMaster is a InstanceFleetType enum value
18618	InstanceFleetTypeMaster = "MASTER"
18619
18620	// InstanceFleetTypeCore is a InstanceFleetType enum value
18621	InstanceFleetTypeCore = "CORE"
18622
18623	// InstanceFleetTypeTask is a InstanceFleetType enum value
18624	InstanceFleetTypeTask = "TASK"
18625)
18626
18627// InstanceFleetType_Values returns all elements of the InstanceFleetType enum
18628func InstanceFleetType_Values() []string {
18629	return []string{
18630		InstanceFleetTypeMaster,
18631		InstanceFleetTypeCore,
18632		InstanceFleetTypeTask,
18633	}
18634}
18635
18636const (
18637	// InstanceGroupStateProvisioning is a InstanceGroupState enum value
18638	InstanceGroupStateProvisioning = "PROVISIONING"
18639
18640	// InstanceGroupStateBootstrapping is a InstanceGroupState enum value
18641	InstanceGroupStateBootstrapping = "BOOTSTRAPPING"
18642
18643	// InstanceGroupStateRunning is a InstanceGroupState enum value
18644	InstanceGroupStateRunning = "RUNNING"
18645
18646	// InstanceGroupStateReconfiguring is a InstanceGroupState enum value
18647	InstanceGroupStateReconfiguring = "RECONFIGURING"
18648
18649	// InstanceGroupStateResizing is a InstanceGroupState enum value
18650	InstanceGroupStateResizing = "RESIZING"
18651
18652	// InstanceGroupStateSuspended is a InstanceGroupState enum value
18653	InstanceGroupStateSuspended = "SUSPENDED"
18654
18655	// InstanceGroupStateTerminating is a InstanceGroupState enum value
18656	InstanceGroupStateTerminating = "TERMINATING"
18657
18658	// InstanceGroupStateTerminated is a InstanceGroupState enum value
18659	InstanceGroupStateTerminated = "TERMINATED"
18660
18661	// InstanceGroupStateArrested is a InstanceGroupState enum value
18662	InstanceGroupStateArrested = "ARRESTED"
18663
18664	// InstanceGroupStateShuttingDown is a InstanceGroupState enum value
18665	InstanceGroupStateShuttingDown = "SHUTTING_DOWN"
18666
18667	// InstanceGroupStateEnded is a InstanceGroupState enum value
18668	InstanceGroupStateEnded = "ENDED"
18669)
18670
18671// InstanceGroupState_Values returns all elements of the InstanceGroupState enum
18672func InstanceGroupState_Values() []string {
18673	return []string{
18674		InstanceGroupStateProvisioning,
18675		InstanceGroupStateBootstrapping,
18676		InstanceGroupStateRunning,
18677		InstanceGroupStateReconfiguring,
18678		InstanceGroupStateResizing,
18679		InstanceGroupStateSuspended,
18680		InstanceGroupStateTerminating,
18681		InstanceGroupStateTerminated,
18682		InstanceGroupStateArrested,
18683		InstanceGroupStateShuttingDown,
18684		InstanceGroupStateEnded,
18685	}
18686}
18687
18688const (
18689	// InstanceGroupStateChangeReasonCodeInternalError is a InstanceGroupStateChangeReasonCode enum value
18690	InstanceGroupStateChangeReasonCodeInternalError = "INTERNAL_ERROR"
18691
18692	// InstanceGroupStateChangeReasonCodeValidationError is a InstanceGroupStateChangeReasonCode enum value
18693	InstanceGroupStateChangeReasonCodeValidationError = "VALIDATION_ERROR"
18694
18695	// InstanceGroupStateChangeReasonCodeInstanceFailure is a InstanceGroupStateChangeReasonCode enum value
18696	InstanceGroupStateChangeReasonCodeInstanceFailure = "INSTANCE_FAILURE"
18697
18698	// InstanceGroupStateChangeReasonCodeClusterTerminated is a InstanceGroupStateChangeReasonCode enum value
18699	InstanceGroupStateChangeReasonCodeClusterTerminated = "CLUSTER_TERMINATED"
18700)
18701
18702// InstanceGroupStateChangeReasonCode_Values returns all elements of the InstanceGroupStateChangeReasonCode enum
18703func InstanceGroupStateChangeReasonCode_Values() []string {
18704	return []string{
18705		InstanceGroupStateChangeReasonCodeInternalError,
18706		InstanceGroupStateChangeReasonCodeValidationError,
18707		InstanceGroupStateChangeReasonCodeInstanceFailure,
18708		InstanceGroupStateChangeReasonCodeClusterTerminated,
18709	}
18710}
18711
18712const (
18713	// InstanceGroupTypeMaster is a InstanceGroupType enum value
18714	InstanceGroupTypeMaster = "MASTER"
18715
18716	// InstanceGroupTypeCore is a InstanceGroupType enum value
18717	InstanceGroupTypeCore = "CORE"
18718
18719	// InstanceGroupTypeTask is a InstanceGroupType enum value
18720	InstanceGroupTypeTask = "TASK"
18721)
18722
18723// InstanceGroupType_Values returns all elements of the InstanceGroupType enum
18724func InstanceGroupType_Values() []string {
18725	return []string{
18726		InstanceGroupTypeMaster,
18727		InstanceGroupTypeCore,
18728		InstanceGroupTypeTask,
18729	}
18730}
18731
18732const (
18733	// InstanceRoleTypeMaster is a InstanceRoleType enum value
18734	InstanceRoleTypeMaster = "MASTER"
18735
18736	// InstanceRoleTypeCore is a InstanceRoleType enum value
18737	InstanceRoleTypeCore = "CORE"
18738
18739	// InstanceRoleTypeTask is a InstanceRoleType enum value
18740	InstanceRoleTypeTask = "TASK"
18741)
18742
18743// InstanceRoleType_Values returns all elements of the InstanceRoleType enum
18744func InstanceRoleType_Values() []string {
18745	return []string{
18746		InstanceRoleTypeMaster,
18747		InstanceRoleTypeCore,
18748		InstanceRoleTypeTask,
18749	}
18750}
18751
18752const (
18753	// InstanceStateAwaitingFulfillment is a InstanceState enum value
18754	InstanceStateAwaitingFulfillment = "AWAITING_FULFILLMENT"
18755
18756	// InstanceStateProvisioning is a InstanceState enum value
18757	InstanceStateProvisioning = "PROVISIONING"
18758
18759	// InstanceStateBootstrapping is a InstanceState enum value
18760	InstanceStateBootstrapping = "BOOTSTRAPPING"
18761
18762	// InstanceStateRunning is a InstanceState enum value
18763	InstanceStateRunning = "RUNNING"
18764
18765	// InstanceStateTerminated is a InstanceState enum value
18766	InstanceStateTerminated = "TERMINATED"
18767)
18768
18769// InstanceState_Values returns all elements of the InstanceState enum
18770func InstanceState_Values() []string {
18771	return []string{
18772		InstanceStateAwaitingFulfillment,
18773		InstanceStateProvisioning,
18774		InstanceStateBootstrapping,
18775		InstanceStateRunning,
18776		InstanceStateTerminated,
18777	}
18778}
18779
18780const (
18781	// InstanceStateChangeReasonCodeInternalError is a InstanceStateChangeReasonCode enum value
18782	InstanceStateChangeReasonCodeInternalError = "INTERNAL_ERROR"
18783
18784	// InstanceStateChangeReasonCodeValidationError is a InstanceStateChangeReasonCode enum value
18785	InstanceStateChangeReasonCodeValidationError = "VALIDATION_ERROR"
18786
18787	// InstanceStateChangeReasonCodeInstanceFailure is a InstanceStateChangeReasonCode enum value
18788	InstanceStateChangeReasonCodeInstanceFailure = "INSTANCE_FAILURE"
18789
18790	// InstanceStateChangeReasonCodeBootstrapFailure is a InstanceStateChangeReasonCode enum value
18791	InstanceStateChangeReasonCodeBootstrapFailure = "BOOTSTRAP_FAILURE"
18792
18793	// InstanceStateChangeReasonCodeClusterTerminated is a InstanceStateChangeReasonCode enum value
18794	InstanceStateChangeReasonCodeClusterTerminated = "CLUSTER_TERMINATED"
18795)
18796
18797// InstanceStateChangeReasonCode_Values returns all elements of the InstanceStateChangeReasonCode enum
18798func InstanceStateChangeReasonCode_Values() []string {
18799	return []string{
18800		InstanceStateChangeReasonCodeInternalError,
18801		InstanceStateChangeReasonCodeValidationError,
18802		InstanceStateChangeReasonCodeInstanceFailure,
18803		InstanceStateChangeReasonCodeBootstrapFailure,
18804		InstanceStateChangeReasonCodeClusterTerminated,
18805	}
18806}
18807
18808// The type of instance.
18809const (
18810	// JobFlowExecutionStateStarting is a JobFlowExecutionState enum value
18811	JobFlowExecutionStateStarting = "STARTING"
18812
18813	// JobFlowExecutionStateBootstrapping is a JobFlowExecutionState enum value
18814	JobFlowExecutionStateBootstrapping = "BOOTSTRAPPING"
18815
18816	// JobFlowExecutionStateRunning is a JobFlowExecutionState enum value
18817	JobFlowExecutionStateRunning = "RUNNING"
18818
18819	// JobFlowExecutionStateWaiting is a JobFlowExecutionState enum value
18820	JobFlowExecutionStateWaiting = "WAITING"
18821
18822	// JobFlowExecutionStateShuttingDown is a JobFlowExecutionState enum value
18823	JobFlowExecutionStateShuttingDown = "SHUTTING_DOWN"
18824
18825	// JobFlowExecutionStateTerminated is a JobFlowExecutionState enum value
18826	JobFlowExecutionStateTerminated = "TERMINATED"
18827
18828	// JobFlowExecutionStateCompleted is a JobFlowExecutionState enum value
18829	JobFlowExecutionStateCompleted = "COMPLETED"
18830
18831	// JobFlowExecutionStateFailed is a JobFlowExecutionState enum value
18832	JobFlowExecutionStateFailed = "FAILED"
18833)
18834
18835// JobFlowExecutionState_Values returns all elements of the JobFlowExecutionState enum
18836func JobFlowExecutionState_Values() []string {
18837	return []string{
18838		JobFlowExecutionStateStarting,
18839		JobFlowExecutionStateBootstrapping,
18840		JobFlowExecutionStateRunning,
18841		JobFlowExecutionStateWaiting,
18842		JobFlowExecutionStateShuttingDown,
18843		JobFlowExecutionStateTerminated,
18844		JobFlowExecutionStateCompleted,
18845		JobFlowExecutionStateFailed,
18846	}
18847}
18848
18849const (
18850	// MarketTypeOnDemand is a MarketType enum value
18851	MarketTypeOnDemand = "ON_DEMAND"
18852
18853	// MarketTypeSpot is a MarketType enum value
18854	MarketTypeSpot = "SPOT"
18855)
18856
18857// MarketType_Values returns all elements of the MarketType enum
18858func MarketType_Values() []string {
18859	return []string{
18860		MarketTypeOnDemand,
18861		MarketTypeSpot,
18862	}
18863}
18864
18865const (
18866	// NotebookExecutionStatusStartPending is a NotebookExecutionStatus enum value
18867	NotebookExecutionStatusStartPending = "START_PENDING"
18868
18869	// NotebookExecutionStatusStarting is a NotebookExecutionStatus enum value
18870	NotebookExecutionStatusStarting = "STARTING"
18871
18872	// NotebookExecutionStatusRunning is a NotebookExecutionStatus enum value
18873	NotebookExecutionStatusRunning = "RUNNING"
18874
18875	// NotebookExecutionStatusFinishing is a NotebookExecutionStatus enum value
18876	NotebookExecutionStatusFinishing = "FINISHING"
18877
18878	// NotebookExecutionStatusFinished is a NotebookExecutionStatus enum value
18879	NotebookExecutionStatusFinished = "FINISHED"
18880
18881	// NotebookExecutionStatusFailing is a NotebookExecutionStatus enum value
18882	NotebookExecutionStatusFailing = "FAILING"
18883
18884	// NotebookExecutionStatusFailed is a NotebookExecutionStatus enum value
18885	NotebookExecutionStatusFailed = "FAILED"
18886
18887	// NotebookExecutionStatusStopPending is a NotebookExecutionStatus enum value
18888	NotebookExecutionStatusStopPending = "STOP_PENDING"
18889
18890	// NotebookExecutionStatusStopping is a NotebookExecutionStatus enum value
18891	NotebookExecutionStatusStopping = "STOPPING"
18892
18893	// NotebookExecutionStatusStopped is a NotebookExecutionStatus enum value
18894	NotebookExecutionStatusStopped = "STOPPED"
18895)
18896
18897// NotebookExecutionStatus_Values returns all elements of the NotebookExecutionStatus enum
18898func NotebookExecutionStatus_Values() []string {
18899	return []string{
18900		NotebookExecutionStatusStartPending,
18901		NotebookExecutionStatusStarting,
18902		NotebookExecutionStatusRunning,
18903		NotebookExecutionStatusFinishing,
18904		NotebookExecutionStatusFinished,
18905		NotebookExecutionStatusFailing,
18906		NotebookExecutionStatusFailed,
18907		NotebookExecutionStatusStopPending,
18908		NotebookExecutionStatusStopping,
18909		NotebookExecutionStatusStopped,
18910	}
18911}
18912
18913const (
18914	// OnDemandCapacityReservationPreferenceOpen is a OnDemandCapacityReservationPreference enum value
18915	OnDemandCapacityReservationPreferenceOpen = "open"
18916
18917	// OnDemandCapacityReservationPreferenceNone is a OnDemandCapacityReservationPreference enum value
18918	OnDemandCapacityReservationPreferenceNone = "none"
18919)
18920
18921// OnDemandCapacityReservationPreference_Values returns all elements of the OnDemandCapacityReservationPreference enum
18922func OnDemandCapacityReservationPreference_Values() []string {
18923	return []string{
18924		OnDemandCapacityReservationPreferenceOpen,
18925		OnDemandCapacityReservationPreferenceNone,
18926	}
18927}
18928
18929const (
18930	// OnDemandCapacityReservationUsageStrategyUseCapacityReservationsFirst is a OnDemandCapacityReservationUsageStrategy enum value
18931	OnDemandCapacityReservationUsageStrategyUseCapacityReservationsFirst = "use-capacity-reservations-first"
18932)
18933
18934// OnDemandCapacityReservationUsageStrategy_Values returns all elements of the OnDemandCapacityReservationUsageStrategy enum
18935func OnDemandCapacityReservationUsageStrategy_Values() []string {
18936	return []string{
18937		OnDemandCapacityReservationUsageStrategyUseCapacityReservationsFirst,
18938	}
18939}
18940
18941const (
18942	// OnDemandProvisioningAllocationStrategyLowestPrice is a OnDemandProvisioningAllocationStrategy enum value
18943	OnDemandProvisioningAllocationStrategyLowestPrice = "lowest-price"
18944)
18945
18946// OnDemandProvisioningAllocationStrategy_Values returns all elements of the OnDemandProvisioningAllocationStrategy enum
18947func OnDemandProvisioningAllocationStrategy_Values() []string {
18948	return []string{
18949		OnDemandProvisioningAllocationStrategyLowestPrice,
18950	}
18951}
18952
18953const (
18954	// PlacementGroupStrategySpread is a PlacementGroupStrategy enum value
18955	PlacementGroupStrategySpread = "SPREAD"
18956
18957	// PlacementGroupStrategyPartition is a PlacementGroupStrategy enum value
18958	PlacementGroupStrategyPartition = "PARTITION"
18959
18960	// PlacementGroupStrategyCluster is a PlacementGroupStrategy enum value
18961	PlacementGroupStrategyCluster = "CLUSTER"
18962
18963	// PlacementGroupStrategyNone is a PlacementGroupStrategy enum value
18964	PlacementGroupStrategyNone = "NONE"
18965)
18966
18967// PlacementGroupStrategy_Values returns all elements of the PlacementGroupStrategy enum
18968func PlacementGroupStrategy_Values() []string {
18969	return []string{
18970		PlacementGroupStrategySpread,
18971		PlacementGroupStrategyPartition,
18972		PlacementGroupStrategyCluster,
18973		PlacementGroupStrategyNone,
18974	}
18975}
18976
18977const (
18978	// RepoUpgradeOnBootSecurity is a RepoUpgradeOnBoot enum value
18979	RepoUpgradeOnBootSecurity = "SECURITY"
18980
18981	// RepoUpgradeOnBootNone is a RepoUpgradeOnBoot enum value
18982	RepoUpgradeOnBootNone = "NONE"
18983)
18984
18985// RepoUpgradeOnBoot_Values returns all elements of the RepoUpgradeOnBoot enum
18986func RepoUpgradeOnBoot_Values() []string {
18987	return []string{
18988		RepoUpgradeOnBootSecurity,
18989		RepoUpgradeOnBootNone,
18990	}
18991}
18992
18993const (
18994	// ScaleDownBehaviorTerminateAtInstanceHour is a ScaleDownBehavior enum value
18995	ScaleDownBehaviorTerminateAtInstanceHour = "TERMINATE_AT_INSTANCE_HOUR"
18996
18997	// ScaleDownBehaviorTerminateAtTaskCompletion is a ScaleDownBehavior enum value
18998	ScaleDownBehaviorTerminateAtTaskCompletion = "TERMINATE_AT_TASK_COMPLETION"
18999)
19000
19001// ScaleDownBehavior_Values returns all elements of the ScaleDownBehavior enum
19002func ScaleDownBehavior_Values() []string {
19003	return []string{
19004		ScaleDownBehaviorTerminateAtInstanceHour,
19005		ScaleDownBehaviorTerminateAtTaskCompletion,
19006	}
19007}
19008
19009const (
19010	// SpotProvisioningAllocationStrategyCapacityOptimized is a SpotProvisioningAllocationStrategy enum value
19011	SpotProvisioningAllocationStrategyCapacityOptimized = "capacity-optimized"
19012)
19013
19014// SpotProvisioningAllocationStrategy_Values returns all elements of the SpotProvisioningAllocationStrategy enum
19015func SpotProvisioningAllocationStrategy_Values() []string {
19016	return []string{
19017		SpotProvisioningAllocationStrategyCapacityOptimized,
19018	}
19019}
19020
19021const (
19022	// SpotProvisioningTimeoutActionSwitchToOnDemand is a SpotProvisioningTimeoutAction enum value
19023	SpotProvisioningTimeoutActionSwitchToOnDemand = "SWITCH_TO_ON_DEMAND"
19024
19025	// SpotProvisioningTimeoutActionTerminateCluster is a SpotProvisioningTimeoutAction enum value
19026	SpotProvisioningTimeoutActionTerminateCluster = "TERMINATE_CLUSTER"
19027)
19028
19029// SpotProvisioningTimeoutAction_Values returns all elements of the SpotProvisioningTimeoutAction enum
19030func SpotProvisioningTimeoutAction_Values() []string {
19031	return []string{
19032		SpotProvisioningTimeoutActionSwitchToOnDemand,
19033		SpotProvisioningTimeoutActionTerminateCluster,
19034	}
19035}
19036
19037const (
19038	// StatisticSampleCount is a Statistic enum value
19039	StatisticSampleCount = "SAMPLE_COUNT"
19040
19041	// StatisticAverage is a Statistic enum value
19042	StatisticAverage = "AVERAGE"
19043
19044	// StatisticSum is a Statistic enum value
19045	StatisticSum = "SUM"
19046
19047	// StatisticMinimum is a Statistic enum value
19048	StatisticMinimum = "MINIMUM"
19049
19050	// StatisticMaximum is a Statistic enum value
19051	StatisticMaximum = "MAXIMUM"
19052)
19053
19054// Statistic_Values returns all elements of the Statistic enum
19055func Statistic_Values() []string {
19056	return []string{
19057		StatisticSampleCount,
19058		StatisticAverage,
19059		StatisticSum,
19060		StatisticMinimum,
19061		StatisticMaximum,
19062	}
19063}
19064
19065const (
19066	// StepCancellationOptionSendInterrupt is a StepCancellationOption enum value
19067	StepCancellationOptionSendInterrupt = "SEND_INTERRUPT"
19068
19069	// StepCancellationOptionTerminateProcess is a StepCancellationOption enum value
19070	StepCancellationOptionTerminateProcess = "TERMINATE_PROCESS"
19071)
19072
19073// StepCancellationOption_Values returns all elements of the StepCancellationOption enum
19074func StepCancellationOption_Values() []string {
19075	return []string{
19076		StepCancellationOptionSendInterrupt,
19077		StepCancellationOptionTerminateProcess,
19078	}
19079}
19080
19081const (
19082	// StepExecutionStatePending is a StepExecutionState enum value
19083	StepExecutionStatePending = "PENDING"
19084
19085	// StepExecutionStateRunning is a StepExecutionState enum value
19086	StepExecutionStateRunning = "RUNNING"
19087
19088	// StepExecutionStateContinue is a StepExecutionState enum value
19089	StepExecutionStateContinue = "CONTINUE"
19090
19091	// StepExecutionStateCompleted is a StepExecutionState enum value
19092	StepExecutionStateCompleted = "COMPLETED"
19093
19094	// StepExecutionStateCancelled is a StepExecutionState enum value
19095	StepExecutionStateCancelled = "CANCELLED"
19096
19097	// StepExecutionStateFailed is a StepExecutionState enum value
19098	StepExecutionStateFailed = "FAILED"
19099
19100	// StepExecutionStateInterrupted is a StepExecutionState enum value
19101	StepExecutionStateInterrupted = "INTERRUPTED"
19102)
19103
19104// StepExecutionState_Values returns all elements of the StepExecutionState enum
19105func StepExecutionState_Values() []string {
19106	return []string{
19107		StepExecutionStatePending,
19108		StepExecutionStateRunning,
19109		StepExecutionStateContinue,
19110		StepExecutionStateCompleted,
19111		StepExecutionStateCancelled,
19112		StepExecutionStateFailed,
19113		StepExecutionStateInterrupted,
19114	}
19115}
19116
19117const (
19118	// StepStatePending is a StepState enum value
19119	StepStatePending = "PENDING"
19120
19121	// StepStateCancelPending is a StepState enum value
19122	StepStateCancelPending = "CANCEL_PENDING"
19123
19124	// StepStateRunning is a StepState enum value
19125	StepStateRunning = "RUNNING"
19126
19127	// StepStateCompleted is a StepState enum value
19128	StepStateCompleted = "COMPLETED"
19129
19130	// StepStateCancelled is a StepState enum value
19131	StepStateCancelled = "CANCELLED"
19132
19133	// StepStateFailed is a StepState enum value
19134	StepStateFailed = "FAILED"
19135
19136	// StepStateInterrupted is a StepState enum value
19137	StepStateInterrupted = "INTERRUPTED"
19138)
19139
19140// StepState_Values returns all elements of the StepState enum
19141func StepState_Values() []string {
19142	return []string{
19143		StepStatePending,
19144		StepStateCancelPending,
19145		StepStateRunning,
19146		StepStateCompleted,
19147		StepStateCancelled,
19148		StepStateFailed,
19149		StepStateInterrupted,
19150	}
19151}
19152
19153const (
19154	// StepStateChangeReasonCodeNone is a StepStateChangeReasonCode enum value
19155	StepStateChangeReasonCodeNone = "NONE"
19156)
19157
19158// StepStateChangeReasonCode_Values returns all elements of the StepStateChangeReasonCode enum
19159func StepStateChangeReasonCode_Values() []string {
19160	return []string{
19161		StepStateChangeReasonCodeNone,
19162	}
19163}
19164
19165const (
19166	// UnitNone is a Unit enum value
19167	UnitNone = "NONE"
19168
19169	// UnitSeconds is a Unit enum value
19170	UnitSeconds = "SECONDS"
19171
19172	// UnitMicroSeconds is a Unit enum value
19173	UnitMicroSeconds = "MICRO_SECONDS"
19174
19175	// UnitMilliSeconds is a Unit enum value
19176	UnitMilliSeconds = "MILLI_SECONDS"
19177
19178	// UnitBytes is a Unit enum value
19179	UnitBytes = "BYTES"
19180
19181	// UnitKiloBytes is a Unit enum value
19182	UnitKiloBytes = "KILO_BYTES"
19183
19184	// UnitMegaBytes is a Unit enum value
19185	UnitMegaBytes = "MEGA_BYTES"
19186
19187	// UnitGigaBytes is a Unit enum value
19188	UnitGigaBytes = "GIGA_BYTES"
19189
19190	// UnitTeraBytes is a Unit enum value
19191	UnitTeraBytes = "TERA_BYTES"
19192
19193	// UnitBits is a Unit enum value
19194	UnitBits = "BITS"
19195
19196	// UnitKiloBits is a Unit enum value
19197	UnitKiloBits = "KILO_BITS"
19198
19199	// UnitMegaBits is a Unit enum value
19200	UnitMegaBits = "MEGA_BITS"
19201
19202	// UnitGigaBits is a Unit enum value
19203	UnitGigaBits = "GIGA_BITS"
19204
19205	// UnitTeraBits is a Unit enum value
19206	UnitTeraBits = "TERA_BITS"
19207
19208	// UnitPercent is a Unit enum value
19209	UnitPercent = "PERCENT"
19210
19211	// UnitCount is a Unit enum value
19212	UnitCount = "COUNT"
19213
19214	// UnitBytesPerSecond is a Unit enum value
19215	UnitBytesPerSecond = "BYTES_PER_SECOND"
19216
19217	// UnitKiloBytesPerSecond is a Unit enum value
19218	UnitKiloBytesPerSecond = "KILO_BYTES_PER_SECOND"
19219
19220	// UnitMegaBytesPerSecond is a Unit enum value
19221	UnitMegaBytesPerSecond = "MEGA_BYTES_PER_SECOND"
19222
19223	// UnitGigaBytesPerSecond is a Unit enum value
19224	UnitGigaBytesPerSecond = "GIGA_BYTES_PER_SECOND"
19225
19226	// UnitTeraBytesPerSecond is a Unit enum value
19227	UnitTeraBytesPerSecond = "TERA_BYTES_PER_SECOND"
19228
19229	// UnitBitsPerSecond is a Unit enum value
19230	UnitBitsPerSecond = "BITS_PER_SECOND"
19231
19232	// UnitKiloBitsPerSecond is a Unit enum value
19233	UnitKiloBitsPerSecond = "KILO_BITS_PER_SECOND"
19234
19235	// UnitMegaBitsPerSecond is a Unit enum value
19236	UnitMegaBitsPerSecond = "MEGA_BITS_PER_SECOND"
19237
19238	// UnitGigaBitsPerSecond is a Unit enum value
19239	UnitGigaBitsPerSecond = "GIGA_BITS_PER_SECOND"
19240
19241	// UnitTeraBitsPerSecond is a Unit enum value
19242	UnitTeraBitsPerSecond = "TERA_BITS_PER_SECOND"
19243
19244	// UnitCountPerSecond is a Unit enum value
19245	UnitCountPerSecond = "COUNT_PER_SECOND"
19246)
19247
19248// Unit_Values returns all elements of the Unit enum
19249func Unit_Values() []string {
19250	return []string{
19251		UnitNone,
19252		UnitSeconds,
19253		UnitMicroSeconds,
19254		UnitMilliSeconds,
19255		UnitBytes,
19256		UnitKiloBytes,
19257		UnitMegaBytes,
19258		UnitGigaBytes,
19259		UnitTeraBytes,
19260		UnitBits,
19261		UnitKiloBits,
19262		UnitMegaBits,
19263		UnitGigaBits,
19264		UnitTeraBits,
19265		UnitPercent,
19266		UnitCount,
19267		UnitBytesPerSecond,
19268		UnitKiloBytesPerSecond,
19269		UnitMegaBytesPerSecond,
19270		UnitGigaBytesPerSecond,
19271		UnitTeraBytesPerSecond,
19272		UnitBitsPerSecond,
19273		UnitKiloBitsPerSecond,
19274		UnitMegaBitsPerSecond,
19275		UnitGigaBitsPerSecond,
19276		UnitTeraBitsPerSecond,
19277		UnitCountPerSecond,
19278	}
19279}
19280