1// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
2
3package devicefarm
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 opCreateDevicePool = "CreateDevicePool"
17
18// CreateDevicePoolRequest generates a "aws/request.Request" representing the
19// client's request for the CreateDevicePool 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 CreateDevicePool for more information on using the CreateDevicePool
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 CreateDevicePoolRequest method.
34//    req, resp := client.CreateDevicePoolRequest(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/devicefarm-2015-06-23/CreateDevicePool
42func (c *DeviceFarm) CreateDevicePoolRequest(input *CreateDevicePoolInput) (req *request.Request, output *CreateDevicePoolOutput) {
43	op := &request.Operation{
44		Name:       opCreateDevicePool,
45		HTTPMethod: "POST",
46		HTTPPath:   "/",
47	}
48
49	if input == nil {
50		input = &CreateDevicePoolInput{}
51	}
52
53	output = &CreateDevicePoolOutput{}
54	req = c.newRequest(op, input, output)
55	return
56}
57
58// CreateDevicePool API operation for AWS Device Farm.
59//
60// Creates a device pool.
61//
62// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
63// with awserr.Error's Code and Message methods to get detailed information about
64// the error.
65//
66// See the AWS API reference guide for AWS Device Farm's
67// API operation CreateDevicePool for usage and error information.
68//
69// Returned Error Codes:
70//   * ErrCodeArgumentException "ArgumentException"
71//   An invalid argument was specified.
72//
73//   * ErrCodeNotFoundException "NotFoundException"
74//   The specified entity was not found.
75//
76//   * ErrCodeLimitExceededException "LimitExceededException"
77//   A limit was exceeded.
78//
79//   * ErrCodeServiceAccountException "ServiceAccountException"
80//   There was a problem with the service account.
81//
82// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/CreateDevicePool
83func (c *DeviceFarm) CreateDevicePool(input *CreateDevicePoolInput) (*CreateDevicePoolOutput, error) {
84	req, out := c.CreateDevicePoolRequest(input)
85	return out, req.Send()
86}
87
88// CreateDevicePoolWithContext is the same as CreateDevicePool with the addition of
89// the ability to pass a context and additional request options.
90//
91// See CreateDevicePool for details on how to use this API operation.
92//
93// The context must be non-nil and will be used for request cancellation. If
94// the context is nil a panic will occur. In the future the SDK may create
95// sub-contexts for http.Requests. See https://golang.org/pkg/context/
96// for more information on using Contexts.
97func (c *DeviceFarm) CreateDevicePoolWithContext(ctx aws.Context, input *CreateDevicePoolInput, opts ...request.Option) (*CreateDevicePoolOutput, error) {
98	req, out := c.CreateDevicePoolRequest(input)
99	req.SetContext(ctx)
100	req.ApplyOptions(opts...)
101	return out, req.Send()
102}
103
104const opCreateInstanceProfile = "CreateInstanceProfile"
105
106// CreateInstanceProfileRequest generates a "aws/request.Request" representing the
107// client's request for the CreateInstanceProfile operation. The "output" return
108// value will be populated with the request's response once the request completes
109// successfully.
110//
111// Use "Send" method on the returned Request to send the API call to the service.
112// the "output" return value is not valid until after Send returns without error.
113//
114// See CreateInstanceProfile for more information on using the CreateInstanceProfile
115// API call, and error handling.
116//
117// This method is useful when you want to inject custom logic or configuration
118// into the SDK's request lifecycle. Such as custom headers, or retry logic.
119//
120//
121//    // Example sending a request using the CreateInstanceProfileRequest method.
122//    req, resp := client.CreateInstanceProfileRequest(params)
123//
124//    err := req.Send()
125//    if err == nil { // resp is now filled
126//        fmt.Println(resp)
127//    }
128//
129// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/CreateInstanceProfile
130func (c *DeviceFarm) CreateInstanceProfileRequest(input *CreateInstanceProfileInput) (req *request.Request, output *CreateInstanceProfileOutput) {
131	op := &request.Operation{
132		Name:       opCreateInstanceProfile,
133		HTTPMethod: "POST",
134		HTTPPath:   "/",
135	}
136
137	if input == nil {
138		input = &CreateInstanceProfileInput{}
139	}
140
141	output = &CreateInstanceProfileOutput{}
142	req = c.newRequest(op, input, output)
143	return
144}
145
146// CreateInstanceProfile API operation for AWS Device Farm.
147//
148// Creates a profile that can be applied to one or more private fleet device
149// instances.
150//
151// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
152// with awserr.Error's Code and Message methods to get detailed information about
153// the error.
154//
155// See the AWS API reference guide for AWS Device Farm's
156// API operation CreateInstanceProfile for usage and error information.
157//
158// Returned Error Codes:
159//   * ErrCodeArgumentException "ArgumentException"
160//   An invalid argument was specified.
161//
162//   * ErrCodeNotFoundException "NotFoundException"
163//   The specified entity was not found.
164//
165//   * ErrCodeLimitExceededException "LimitExceededException"
166//   A limit was exceeded.
167//
168//   * ErrCodeServiceAccountException "ServiceAccountException"
169//   There was a problem with the service account.
170//
171// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/CreateInstanceProfile
172func (c *DeviceFarm) CreateInstanceProfile(input *CreateInstanceProfileInput) (*CreateInstanceProfileOutput, error) {
173	req, out := c.CreateInstanceProfileRequest(input)
174	return out, req.Send()
175}
176
177// CreateInstanceProfileWithContext is the same as CreateInstanceProfile with the addition of
178// the ability to pass a context and additional request options.
179//
180// See CreateInstanceProfile for details on how to use this API operation.
181//
182// The context must be non-nil and will be used for request cancellation. If
183// the context is nil a panic will occur. In the future the SDK may create
184// sub-contexts for http.Requests. See https://golang.org/pkg/context/
185// for more information on using Contexts.
186func (c *DeviceFarm) CreateInstanceProfileWithContext(ctx aws.Context, input *CreateInstanceProfileInput, opts ...request.Option) (*CreateInstanceProfileOutput, error) {
187	req, out := c.CreateInstanceProfileRequest(input)
188	req.SetContext(ctx)
189	req.ApplyOptions(opts...)
190	return out, req.Send()
191}
192
193const opCreateNetworkProfile = "CreateNetworkProfile"
194
195// CreateNetworkProfileRequest generates a "aws/request.Request" representing the
196// client's request for the CreateNetworkProfile operation. The "output" return
197// value will be populated with the request's response once the request completes
198// successfully.
199//
200// Use "Send" method on the returned Request to send the API call to the service.
201// the "output" return value is not valid until after Send returns without error.
202//
203// See CreateNetworkProfile for more information on using the CreateNetworkProfile
204// API call, and error handling.
205//
206// This method is useful when you want to inject custom logic or configuration
207// into the SDK's request lifecycle. Such as custom headers, or retry logic.
208//
209//
210//    // Example sending a request using the CreateNetworkProfileRequest method.
211//    req, resp := client.CreateNetworkProfileRequest(params)
212//
213//    err := req.Send()
214//    if err == nil { // resp is now filled
215//        fmt.Println(resp)
216//    }
217//
218// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/CreateNetworkProfile
219func (c *DeviceFarm) CreateNetworkProfileRequest(input *CreateNetworkProfileInput) (req *request.Request, output *CreateNetworkProfileOutput) {
220	op := &request.Operation{
221		Name:       opCreateNetworkProfile,
222		HTTPMethod: "POST",
223		HTTPPath:   "/",
224	}
225
226	if input == nil {
227		input = &CreateNetworkProfileInput{}
228	}
229
230	output = &CreateNetworkProfileOutput{}
231	req = c.newRequest(op, input, output)
232	return
233}
234
235// CreateNetworkProfile API operation for AWS Device Farm.
236//
237// Creates a network profile.
238//
239// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
240// with awserr.Error's Code and Message methods to get detailed information about
241// the error.
242//
243// See the AWS API reference guide for AWS Device Farm's
244// API operation CreateNetworkProfile for usage and error information.
245//
246// Returned Error Codes:
247//   * ErrCodeArgumentException "ArgumentException"
248//   An invalid argument was specified.
249//
250//   * ErrCodeNotFoundException "NotFoundException"
251//   The specified entity was not found.
252//
253//   * ErrCodeLimitExceededException "LimitExceededException"
254//   A limit was exceeded.
255//
256//   * ErrCodeServiceAccountException "ServiceAccountException"
257//   There was a problem with the service account.
258//
259// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/CreateNetworkProfile
260func (c *DeviceFarm) CreateNetworkProfile(input *CreateNetworkProfileInput) (*CreateNetworkProfileOutput, error) {
261	req, out := c.CreateNetworkProfileRequest(input)
262	return out, req.Send()
263}
264
265// CreateNetworkProfileWithContext is the same as CreateNetworkProfile with the addition of
266// the ability to pass a context and additional request options.
267//
268// See CreateNetworkProfile for details on how to use this API operation.
269//
270// The context must be non-nil and will be used for request cancellation. If
271// the context is nil a panic will occur. In the future the SDK may create
272// sub-contexts for http.Requests. See https://golang.org/pkg/context/
273// for more information on using Contexts.
274func (c *DeviceFarm) CreateNetworkProfileWithContext(ctx aws.Context, input *CreateNetworkProfileInput, opts ...request.Option) (*CreateNetworkProfileOutput, error) {
275	req, out := c.CreateNetworkProfileRequest(input)
276	req.SetContext(ctx)
277	req.ApplyOptions(opts...)
278	return out, req.Send()
279}
280
281const opCreateProject = "CreateProject"
282
283// CreateProjectRequest generates a "aws/request.Request" representing the
284// client's request for the CreateProject operation. The "output" return
285// value will be populated with the request's response once the request completes
286// successfully.
287//
288// Use "Send" method on the returned Request to send the API call to the service.
289// the "output" return value is not valid until after Send returns without error.
290//
291// See CreateProject for more information on using the CreateProject
292// API call, and error handling.
293//
294// This method is useful when you want to inject custom logic or configuration
295// into the SDK's request lifecycle. Such as custom headers, or retry logic.
296//
297//
298//    // Example sending a request using the CreateProjectRequest method.
299//    req, resp := client.CreateProjectRequest(params)
300//
301//    err := req.Send()
302//    if err == nil { // resp is now filled
303//        fmt.Println(resp)
304//    }
305//
306// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/CreateProject
307func (c *DeviceFarm) CreateProjectRequest(input *CreateProjectInput) (req *request.Request, output *CreateProjectOutput) {
308	op := &request.Operation{
309		Name:       opCreateProject,
310		HTTPMethod: "POST",
311		HTTPPath:   "/",
312	}
313
314	if input == nil {
315		input = &CreateProjectInput{}
316	}
317
318	output = &CreateProjectOutput{}
319	req = c.newRequest(op, input, output)
320	return
321}
322
323// CreateProject API operation for AWS Device Farm.
324//
325// Creates a project.
326//
327// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
328// with awserr.Error's Code and Message methods to get detailed information about
329// the error.
330//
331// See the AWS API reference guide for AWS Device Farm's
332// API operation CreateProject for usage and error information.
333//
334// Returned Error Codes:
335//   * ErrCodeArgumentException "ArgumentException"
336//   An invalid argument was specified.
337//
338//   * ErrCodeNotFoundException "NotFoundException"
339//   The specified entity was not found.
340//
341//   * ErrCodeLimitExceededException "LimitExceededException"
342//   A limit was exceeded.
343//
344//   * ErrCodeServiceAccountException "ServiceAccountException"
345//   There was a problem with the service account.
346//
347//   * ErrCodeTagOperationException "TagOperationException"
348//   The operation was not successful. Try again.
349//
350// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/CreateProject
351func (c *DeviceFarm) CreateProject(input *CreateProjectInput) (*CreateProjectOutput, error) {
352	req, out := c.CreateProjectRequest(input)
353	return out, req.Send()
354}
355
356// CreateProjectWithContext is the same as CreateProject with the addition of
357// the ability to pass a context and additional request options.
358//
359// See CreateProject for details on how to use this API operation.
360//
361// The context must be non-nil and will be used for request cancellation. If
362// the context is nil a panic will occur. In the future the SDK may create
363// sub-contexts for http.Requests. See https://golang.org/pkg/context/
364// for more information on using Contexts.
365func (c *DeviceFarm) CreateProjectWithContext(ctx aws.Context, input *CreateProjectInput, opts ...request.Option) (*CreateProjectOutput, error) {
366	req, out := c.CreateProjectRequest(input)
367	req.SetContext(ctx)
368	req.ApplyOptions(opts...)
369	return out, req.Send()
370}
371
372const opCreateRemoteAccessSession = "CreateRemoteAccessSession"
373
374// CreateRemoteAccessSessionRequest generates a "aws/request.Request" representing the
375// client's request for the CreateRemoteAccessSession operation. The "output" return
376// value will be populated with the request's response once the request completes
377// successfully.
378//
379// Use "Send" method on the returned Request to send the API call to the service.
380// the "output" return value is not valid until after Send returns without error.
381//
382// See CreateRemoteAccessSession for more information on using the CreateRemoteAccessSession
383// API call, and error handling.
384//
385// This method is useful when you want to inject custom logic or configuration
386// into the SDK's request lifecycle. Such as custom headers, or retry logic.
387//
388//
389//    // Example sending a request using the CreateRemoteAccessSessionRequest method.
390//    req, resp := client.CreateRemoteAccessSessionRequest(params)
391//
392//    err := req.Send()
393//    if err == nil { // resp is now filled
394//        fmt.Println(resp)
395//    }
396//
397// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/CreateRemoteAccessSession
398func (c *DeviceFarm) CreateRemoteAccessSessionRequest(input *CreateRemoteAccessSessionInput) (req *request.Request, output *CreateRemoteAccessSessionOutput) {
399	op := &request.Operation{
400		Name:       opCreateRemoteAccessSession,
401		HTTPMethod: "POST",
402		HTTPPath:   "/",
403	}
404
405	if input == nil {
406		input = &CreateRemoteAccessSessionInput{}
407	}
408
409	output = &CreateRemoteAccessSessionOutput{}
410	req = c.newRequest(op, input, output)
411	return
412}
413
414// CreateRemoteAccessSession API operation for AWS Device Farm.
415//
416// Specifies and starts a remote access session.
417//
418// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
419// with awserr.Error's Code and Message methods to get detailed information about
420// the error.
421//
422// See the AWS API reference guide for AWS Device Farm's
423// API operation CreateRemoteAccessSession for usage and error information.
424//
425// Returned Error Codes:
426//   * ErrCodeArgumentException "ArgumentException"
427//   An invalid argument was specified.
428//
429//   * ErrCodeNotFoundException "NotFoundException"
430//   The specified entity was not found.
431//
432//   * ErrCodeLimitExceededException "LimitExceededException"
433//   A limit was exceeded.
434//
435//   * ErrCodeServiceAccountException "ServiceAccountException"
436//   There was a problem with the service account.
437//
438// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/CreateRemoteAccessSession
439func (c *DeviceFarm) CreateRemoteAccessSession(input *CreateRemoteAccessSessionInput) (*CreateRemoteAccessSessionOutput, error) {
440	req, out := c.CreateRemoteAccessSessionRequest(input)
441	return out, req.Send()
442}
443
444// CreateRemoteAccessSessionWithContext is the same as CreateRemoteAccessSession with the addition of
445// the ability to pass a context and additional request options.
446//
447// See CreateRemoteAccessSession 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 *DeviceFarm) CreateRemoteAccessSessionWithContext(ctx aws.Context, input *CreateRemoteAccessSessionInput, opts ...request.Option) (*CreateRemoteAccessSessionOutput, error) {
454	req, out := c.CreateRemoteAccessSessionRequest(input)
455	req.SetContext(ctx)
456	req.ApplyOptions(opts...)
457	return out, req.Send()
458}
459
460const opCreateTestGridProject = "CreateTestGridProject"
461
462// CreateTestGridProjectRequest generates a "aws/request.Request" representing the
463// client's request for the CreateTestGridProject 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 CreateTestGridProject for more information on using the CreateTestGridProject
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 CreateTestGridProjectRequest method.
478//    req, resp := client.CreateTestGridProjectRequest(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/devicefarm-2015-06-23/CreateTestGridProject
486func (c *DeviceFarm) CreateTestGridProjectRequest(input *CreateTestGridProjectInput) (req *request.Request, output *CreateTestGridProjectOutput) {
487	op := &request.Operation{
488		Name:       opCreateTestGridProject,
489		HTTPMethod: "POST",
490		HTTPPath:   "/",
491	}
492
493	if input == nil {
494		input = &CreateTestGridProjectInput{}
495	}
496
497	output = &CreateTestGridProjectOutput{}
498	req = c.newRequest(op, input, output)
499	return
500}
501
502// CreateTestGridProject API operation for AWS Device Farm.
503//
504// Creates a Selenium testing project. Projects are used to track TestGridSession
505// instances.
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 AWS Device Farm's
512// API operation CreateTestGridProject for usage and error information.
513//
514// Returned Error Codes:
515//   * ErrCodeInternalServiceException "InternalServiceException"
516//   An internal exception was raised in the service. Contact aws-devicefarm-support@amazon.com
517//   (mailto:aws-devicefarm-support@amazon.com) if you see this error.
518//
519// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/CreateTestGridProject
520func (c *DeviceFarm) CreateTestGridProject(input *CreateTestGridProjectInput) (*CreateTestGridProjectOutput, error) {
521	req, out := c.CreateTestGridProjectRequest(input)
522	return out, req.Send()
523}
524
525// CreateTestGridProjectWithContext is the same as CreateTestGridProject with the addition of
526// the ability to pass a context and additional request options.
527//
528// See CreateTestGridProject for details on how to use this API operation.
529//
530// The context must be non-nil and will be used for request cancellation. If
531// the context is nil a panic will occur. In the future the SDK may create
532// sub-contexts for http.Requests. See https://golang.org/pkg/context/
533// for more information on using Contexts.
534func (c *DeviceFarm) CreateTestGridProjectWithContext(ctx aws.Context, input *CreateTestGridProjectInput, opts ...request.Option) (*CreateTestGridProjectOutput, error) {
535	req, out := c.CreateTestGridProjectRequest(input)
536	req.SetContext(ctx)
537	req.ApplyOptions(opts...)
538	return out, req.Send()
539}
540
541const opCreateTestGridUrl = "CreateTestGridUrl"
542
543// CreateTestGridUrlRequest generates a "aws/request.Request" representing the
544// client's request for the CreateTestGridUrl operation. The "output" return
545// value will be populated with the request's response once the request completes
546// successfully.
547//
548// Use "Send" method on the returned Request to send the API call to the service.
549// the "output" return value is not valid until after Send returns without error.
550//
551// See CreateTestGridUrl for more information on using the CreateTestGridUrl
552// API call, and error handling.
553//
554// This method is useful when you want to inject custom logic or configuration
555// into the SDK's request lifecycle. Such as custom headers, or retry logic.
556//
557//
558//    // Example sending a request using the CreateTestGridUrlRequest method.
559//    req, resp := client.CreateTestGridUrlRequest(params)
560//
561//    err := req.Send()
562//    if err == nil { // resp is now filled
563//        fmt.Println(resp)
564//    }
565//
566// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/CreateTestGridUrl
567func (c *DeviceFarm) CreateTestGridUrlRequest(input *CreateTestGridUrlInput) (req *request.Request, output *CreateTestGridUrlOutput) {
568	op := &request.Operation{
569		Name:       opCreateTestGridUrl,
570		HTTPMethod: "POST",
571		HTTPPath:   "/",
572	}
573
574	if input == nil {
575		input = &CreateTestGridUrlInput{}
576	}
577
578	output = &CreateTestGridUrlOutput{}
579	req = c.newRequest(op, input, output)
580	return
581}
582
583// CreateTestGridUrl API operation for AWS Device Farm.
584//
585// Creates a signed, short-term URL that can be passed to a Selenium RemoteWebDriver
586// constructor.
587//
588// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
589// with awserr.Error's Code and Message methods to get detailed information about
590// the error.
591//
592// See the AWS API reference guide for AWS Device Farm's
593// API operation CreateTestGridUrl for usage and error information.
594//
595// Returned Error Codes:
596//   * ErrCodeNotFoundException "NotFoundException"
597//   The specified entity was not found.
598//
599//   * ErrCodeArgumentException "ArgumentException"
600//   An invalid argument was specified.
601//
602//   * ErrCodeInternalServiceException "InternalServiceException"
603//   An internal exception was raised in the service. Contact aws-devicefarm-support@amazon.com
604//   (mailto:aws-devicefarm-support@amazon.com) if you see this error.
605//
606// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/CreateTestGridUrl
607func (c *DeviceFarm) CreateTestGridUrl(input *CreateTestGridUrlInput) (*CreateTestGridUrlOutput, error) {
608	req, out := c.CreateTestGridUrlRequest(input)
609	return out, req.Send()
610}
611
612// CreateTestGridUrlWithContext is the same as CreateTestGridUrl with the addition of
613// the ability to pass a context and additional request options.
614//
615// See CreateTestGridUrl for details on how to use this API operation.
616//
617// The context must be non-nil and will be used for request cancellation. If
618// the context is nil a panic will occur. In the future the SDK may create
619// sub-contexts for http.Requests. See https://golang.org/pkg/context/
620// for more information on using Contexts.
621func (c *DeviceFarm) CreateTestGridUrlWithContext(ctx aws.Context, input *CreateTestGridUrlInput, opts ...request.Option) (*CreateTestGridUrlOutput, error) {
622	req, out := c.CreateTestGridUrlRequest(input)
623	req.SetContext(ctx)
624	req.ApplyOptions(opts...)
625	return out, req.Send()
626}
627
628const opCreateUpload = "CreateUpload"
629
630// CreateUploadRequest generates a "aws/request.Request" representing the
631// client's request for the CreateUpload operation. The "output" return
632// value will be populated with the request's response once the request completes
633// successfully.
634//
635// Use "Send" method on the returned Request to send the API call to the service.
636// the "output" return value is not valid until after Send returns without error.
637//
638// See CreateUpload for more information on using the CreateUpload
639// API call, and error handling.
640//
641// This method is useful when you want to inject custom logic or configuration
642// into the SDK's request lifecycle. Such as custom headers, or retry logic.
643//
644//
645//    // Example sending a request using the CreateUploadRequest method.
646//    req, resp := client.CreateUploadRequest(params)
647//
648//    err := req.Send()
649//    if err == nil { // resp is now filled
650//        fmt.Println(resp)
651//    }
652//
653// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/CreateUpload
654func (c *DeviceFarm) CreateUploadRequest(input *CreateUploadInput) (req *request.Request, output *CreateUploadOutput) {
655	op := &request.Operation{
656		Name:       opCreateUpload,
657		HTTPMethod: "POST",
658		HTTPPath:   "/",
659	}
660
661	if input == nil {
662		input = &CreateUploadInput{}
663	}
664
665	output = &CreateUploadOutput{}
666	req = c.newRequest(op, input, output)
667	return
668}
669
670// CreateUpload API operation for AWS Device Farm.
671//
672// Uploads an app or test scripts.
673//
674// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
675// with awserr.Error's Code and Message methods to get detailed information about
676// the error.
677//
678// See the AWS API reference guide for AWS Device Farm's
679// API operation CreateUpload for usage and error information.
680//
681// Returned Error Codes:
682//   * ErrCodeArgumentException "ArgumentException"
683//   An invalid argument was specified.
684//
685//   * ErrCodeNotFoundException "NotFoundException"
686//   The specified entity was not found.
687//
688//   * ErrCodeLimitExceededException "LimitExceededException"
689//   A limit was exceeded.
690//
691//   * ErrCodeServiceAccountException "ServiceAccountException"
692//   There was a problem with the service account.
693//
694// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/CreateUpload
695func (c *DeviceFarm) CreateUpload(input *CreateUploadInput) (*CreateUploadOutput, error) {
696	req, out := c.CreateUploadRequest(input)
697	return out, req.Send()
698}
699
700// CreateUploadWithContext is the same as CreateUpload with the addition of
701// the ability to pass a context and additional request options.
702//
703// See CreateUpload 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 *DeviceFarm) CreateUploadWithContext(ctx aws.Context, input *CreateUploadInput, opts ...request.Option) (*CreateUploadOutput, error) {
710	req, out := c.CreateUploadRequest(input)
711	req.SetContext(ctx)
712	req.ApplyOptions(opts...)
713	return out, req.Send()
714}
715
716const opCreateVPCEConfiguration = "CreateVPCEConfiguration"
717
718// CreateVPCEConfigurationRequest generates a "aws/request.Request" representing the
719// client's request for the CreateVPCEConfiguration 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 CreateVPCEConfiguration for more information on using the CreateVPCEConfiguration
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 CreateVPCEConfigurationRequest method.
734//    req, resp := client.CreateVPCEConfigurationRequest(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/devicefarm-2015-06-23/CreateVPCEConfiguration
742func (c *DeviceFarm) CreateVPCEConfigurationRequest(input *CreateVPCEConfigurationInput) (req *request.Request, output *CreateVPCEConfigurationOutput) {
743	op := &request.Operation{
744		Name:       opCreateVPCEConfiguration,
745		HTTPMethod: "POST",
746		HTTPPath:   "/",
747	}
748
749	if input == nil {
750		input = &CreateVPCEConfigurationInput{}
751	}
752
753	output = &CreateVPCEConfigurationOutput{}
754	req = c.newRequest(op, input, output)
755	return
756}
757
758// CreateVPCEConfiguration API operation for AWS Device Farm.
759//
760// Creates a configuration record in Device Farm for your Amazon Virtual Private
761// Cloud (VPC) endpoint.
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 AWS Device Farm's
768// API operation CreateVPCEConfiguration for usage and error information.
769//
770// Returned Error Codes:
771//   * ErrCodeArgumentException "ArgumentException"
772//   An invalid argument was specified.
773//
774//   * ErrCodeLimitExceededException "LimitExceededException"
775//   A limit was exceeded.
776//
777//   * ErrCodeServiceAccountException "ServiceAccountException"
778//   There was a problem with the service account.
779//
780// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/CreateVPCEConfiguration
781func (c *DeviceFarm) CreateVPCEConfiguration(input *CreateVPCEConfigurationInput) (*CreateVPCEConfigurationOutput, error) {
782	req, out := c.CreateVPCEConfigurationRequest(input)
783	return out, req.Send()
784}
785
786// CreateVPCEConfigurationWithContext is the same as CreateVPCEConfiguration with the addition of
787// the ability to pass a context and additional request options.
788//
789// See CreateVPCEConfiguration for details on how to use this API operation.
790//
791// The context must be non-nil and will be used for request cancellation. If
792// the context is nil a panic will occur. In the future the SDK may create
793// sub-contexts for http.Requests. See https://golang.org/pkg/context/
794// for more information on using Contexts.
795func (c *DeviceFarm) CreateVPCEConfigurationWithContext(ctx aws.Context, input *CreateVPCEConfigurationInput, opts ...request.Option) (*CreateVPCEConfigurationOutput, error) {
796	req, out := c.CreateVPCEConfigurationRequest(input)
797	req.SetContext(ctx)
798	req.ApplyOptions(opts...)
799	return out, req.Send()
800}
801
802const opDeleteDevicePool = "DeleteDevicePool"
803
804// DeleteDevicePoolRequest generates a "aws/request.Request" representing the
805// client's request for the DeleteDevicePool operation. The "output" return
806// value will be populated with the request's response once the request completes
807// successfully.
808//
809// Use "Send" method on the returned Request to send the API call to the service.
810// the "output" return value is not valid until after Send returns without error.
811//
812// See DeleteDevicePool for more information on using the DeleteDevicePool
813// API call, and error handling.
814//
815// This method is useful when you want to inject custom logic or configuration
816// into the SDK's request lifecycle. Such as custom headers, or retry logic.
817//
818//
819//    // Example sending a request using the DeleteDevicePoolRequest method.
820//    req, resp := client.DeleteDevicePoolRequest(params)
821//
822//    err := req.Send()
823//    if err == nil { // resp is now filled
824//        fmt.Println(resp)
825//    }
826//
827// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/DeleteDevicePool
828func (c *DeviceFarm) DeleteDevicePoolRequest(input *DeleteDevicePoolInput) (req *request.Request, output *DeleteDevicePoolOutput) {
829	op := &request.Operation{
830		Name:       opDeleteDevicePool,
831		HTTPMethod: "POST",
832		HTTPPath:   "/",
833	}
834
835	if input == nil {
836		input = &DeleteDevicePoolInput{}
837	}
838
839	output = &DeleteDevicePoolOutput{}
840	req = c.newRequest(op, input, output)
841	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
842	return
843}
844
845// DeleteDevicePool API operation for AWS Device Farm.
846//
847// Deletes a device pool given the pool ARN. Does not allow deletion of curated
848// pools owned by the system.
849//
850// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
851// with awserr.Error's Code and Message methods to get detailed information about
852// the error.
853//
854// See the AWS API reference guide for AWS Device Farm's
855// API operation DeleteDevicePool for usage and error information.
856//
857// Returned Error Codes:
858//   * ErrCodeArgumentException "ArgumentException"
859//   An invalid argument was specified.
860//
861//   * ErrCodeNotFoundException "NotFoundException"
862//   The specified entity was not found.
863//
864//   * ErrCodeLimitExceededException "LimitExceededException"
865//   A limit was exceeded.
866//
867//   * ErrCodeServiceAccountException "ServiceAccountException"
868//   There was a problem with the service account.
869//
870// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/DeleteDevicePool
871func (c *DeviceFarm) DeleteDevicePool(input *DeleteDevicePoolInput) (*DeleteDevicePoolOutput, error) {
872	req, out := c.DeleteDevicePoolRequest(input)
873	return out, req.Send()
874}
875
876// DeleteDevicePoolWithContext is the same as DeleteDevicePool with the addition of
877// the ability to pass a context and additional request options.
878//
879// See DeleteDevicePool for details on how to use this API operation.
880//
881// The context must be non-nil and will be used for request cancellation. If
882// the context is nil a panic will occur. In the future the SDK may create
883// sub-contexts for http.Requests. See https://golang.org/pkg/context/
884// for more information on using Contexts.
885func (c *DeviceFarm) DeleteDevicePoolWithContext(ctx aws.Context, input *DeleteDevicePoolInput, opts ...request.Option) (*DeleteDevicePoolOutput, error) {
886	req, out := c.DeleteDevicePoolRequest(input)
887	req.SetContext(ctx)
888	req.ApplyOptions(opts...)
889	return out, req.Send()
890}
891
892const opDeleteInstanceProfile = "DeleteInstanceProfile"
893
894// DeleteInstanceProfileRequest generates a "aws/request.Request" representing the
895// client's request for the DeleteInstanceProfile operation. The "output" return
896// value will be populated with the request's response once the request completes
897// successfully.
898//
899// Use "Send" method on the returned Request to send the API call to the service.
900// the "output" return value is not valid until after Send returns without error.
901//
902// See DeleteInstanceProfile for more information on using the DeleteInstanceProfile
903// API call, and error handling.
904//
905// This method is useful when you want to inject custom logic or configuration
906// into the SDK's request lifecycle. Such as custom headers, or retry logic.
907//
908//
909//    // Example sending a request using the DeleteInstanceProfileRequest method.
910//    req, resp := client.DeleteInstanceProfileRequest(params)
911//
912//    err := req.Send()
913//    if err == nil { // resp is now filled
914//        fmt.Println(resp)
915//    }
916//
917// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/DeleteInstanceProfile
918func (c *DeviceFarm) DeleteInstanceProfileRequest(input *DeleteInstanceProfileInput) (req *request.Request, output *DeleteInstanceProfileOutput) {
919	op := &request.Operation{
920		Name:       opDeleteInstanceProfile,
921		HTTPMethod: "POST",
922		HTTPPath:   "/",
923	}
924
925	if input == nil {
926		input = &DeleteInstanceProfileInput{}
927	}
928
929	output = &DeleteInstanceProfileOutput{}
930	req = c.newRequest(op, input, output)
931	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
932	return
933}
934
935// DeleteInstanceProfile API operation for AWS Device Farm.
936//
937// Deletes a profile that can be applied to one or more private device instances.
938//
939// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
940// with awserr.Error's Code and Message methods to get detailed information about
941// the error.
942//
943// See the AWS API reference guide for AWS Device Farm's
944// API operation DeleteInstanceProfile for usage and error information.
945//
946// Returned Error Codes:
947//   * ErrCodeArgumentException "ArgumentException"
948//   An invalid argument was specified.
949//
950//   * ErrCodeNotFoundException "NotFoundException"
951//   The specified entity was not found.
952//
953//   * ErrCodeLimitExceededException "LimitExceededException"
954//   A limit was exceeded.
955//
956//   * ErrCodeServiceAccountException "ServiceAccountException"
957//   There was a problem with the service account.
958//
959// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/DeleteInstanceProfile
960func (c *DeviceFarm) DeleteInstanceProfile(input *DeleteInstanceProfileInput) (*DeleteInstanceProfileOutput, error) {
961	req, out := c.DeleteInstanceProfileRequest(input)
962	return out, req.Send()
963}
964
965// DeleteInstanceProfileWithContext is the same as DeleteInstanceProfile with the addition of
966// the ability to pass a context and additional request options.
967//
968// See DeleteInstanceProfile for details on how to use this API operation.
969//
970// The context must be non-nil and will be used for request cancellation. If
971// the context is nil a panic will occur. In the future the SDK may create
972// sub-contexts for http.Requests. See https://golang.org/pkg/context/
973// for more information on using Contexts.
974func (c *DeviceFarm) DeleteInstanceProfileWithContext(ctx aws.Context, input *DeleteInstanceProfileInput, opts ...request.Option) (*DeleteInstanceProfileOutput, error) {
975	req, out := c.DeleteInstanceProfileRequest(input)
976	req.SetContext(ctx)
977	req.ApplyOptions(opts...)
978	return out, req.Send()
979}
980
981const opDeleteNetworkProfile = "DeleteNetworkProfile"
982
983// DeleteNetworkProfileRequest generates a "aws/request.Request" representing the
984// client's request for the DeleteNetworkProfile operation. The "output" return
985// value will be populated with the request's response once the request completes
986// successfully.
987//
988// Use "Send" method on the returned Request to send the API call to the service.
989// the "output" return value is not valid until after Send returns without error.
990//
991// See DeleteNetworkProfile for more information on using the DeleteNetworkProfile
992// API call, and error handling.
993//
994// This method is useful when you want to inject custom logic or configuration
995// into the SDK's request lifecycle. Such as custom headers, or retry logic.
996//
997//
998//    // Example sending a request using the DeleteNetworkProfileRequest method.
999//    req, resp := client.DeleteNetworkProfileRequest(params)
1000//
1001//    err := req.Send()
1002//    if err == nil { // resp is now filled
1003//        fmt.Println(resp)
1004//    }
1005//
1006// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/DeleteNetworkProfile
1007func (c *DeviceFarm) DeleteNetworkProfileRequest(input *DeleteNetworkProfileInput) (req *request.Request, output *DeleteNetworkProfileOutput) {
1008	op := &request.Operation{
1009		Name:       opDeleteNetworkProfile,
1010		HTTPMethod: "POST",
1011		HTTPPath:   "/",
1012	}
1013
1014	if input == nil {
1015		input = &DeleteNetworkProfileInput{}
1016	}
1017
1018	output = &DeleteNetworkProfileOutput{}
1019	req = c.newRequest(op, input, output)
1020	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1021	return
1022}
1023
1024// DeleteNetworkProfile API operation for AWS Device Farm.
1025//
1026// Deletes a network profile.
1027//
1028// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1029// with awserr.Error's Code and Message methods to get detailed information about
1030// the error.
1031//
1032// See the AWS API reference guide for AWS Device Farm's
1033// API operation DeleteNetworkProfile for usage and error information.
1034//
1035// Returned Error Codes:
1036//   * ErrCodeArgumentException "ArgumentException"
1037//   An invalid argument was specified.
1038//
1039//   * ErrCodeNotFoundException "NotFoundException"
1040//   The specified entity was not found.
1041//
1042//   * ErrCodeLimitExceededException "LimitExceededException"
1043//   A limit was exceeded.
1044//
1045//   * ErrCodeServiceAccountException "ServiceAccountException"
1046//   There was a problem with the service account.
1047//
1048// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/DeleteNetworkProfile
1049func (c *DeviceFarm) DeleteNetworkProfile(input *DeleteNetworkProfileInput) (*DeleteNetworkProfileOutput, error) {
1050	req, out := c.DeleteNetworkProfileRequest(input)
1051	return out, req.Send()
1052}
1053
1054// DeleteNetworkProfileWithContext is the same as DeleteNetworkProfile with the addition of
1055// the ability to pass a context and additional request options.
1056//
1057// See DeleteNetworkProfile for details on how to use this API operation.
1058//
1059// The context must be non-nil and will be used for request cancellation. If
1060// the context is nil a panic will occur. In the future the SDK may create
1061// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1062// for more information on using Contexts.
1063func (c *DeviceFarm) DeleteNetworkProfileWithContext(ctx aws.Context, input *DeleteNetworkProfileInput, opts ...request.Option) (*DeleteNetworkProfileOutput, error) {
1064	req, out := c.DeleteNetworkProfileRequest(input)
1065	req.SetContext(ctx)
1066	req.ApplyOptions(opts...)
1067	return out, req.Send()
1068}
1069
1070const opDeleteProject = "DeleteProject"
1071
1072// DeleteProjectRequest generates a "aws/request.Request" representing the
1073// client's request for the DeleteProject operation. The "output" return
1074// value will be populated with the request's response once the request completes
1075// successfully.
1076//
1077// Use "Send" method on the returned Request to send the API call to the service.
1078// the "output" return value is not valid until after Send returns without error.
1079//
1080// See DeleteProject for more information on using the DeleteProject
1081// API call, and error handling.
1082//
1083// This method is useful when you want to inject custom logic or configuration
1084// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1085//
1086//
1087//    // Example sending a request using the DeleteProjectRequest method.
1088//    req, resp := client.DeleteProjectRequest(params)
1089//
1090//    err := req.Send()
1091//    if err == nil { // resp is now filled
1092//        fmt.Println(resp)
1093//    }
1094//
1095// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/DeleteProject
1096func (c *DeviceFarm) DeleteProjectRequest(input *DeleteProjectInput) (req *request.Request, output *DeleteProjectOutput) {
1097	op := &request.Operation{
1098		Name:       opDeleteProject,
1099		HTTPMethod: "POST",
1100		HTTPPath:   "/",
1101	}
1102
1103	if input == nil {
1104		input = &DeleteProjectInput{}
1105	}
1106
1107	output = &DeleteProjectOutput{}
1108	req = c.newRequest(op, input, output)
1109	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1110	return
1111}
1112
1113// DeleteProject API operation for AWS Device Farm.
1114//
1115// Deletes an AWS Device Farm project, given the project ARN.
1116//
1117// Deleting this resource does not stop an in-progress run.
1118//
1119// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1120// with awserr.Error's Code and Message methods to get detailed information about
1121// the error.
1122//
1123// See the AWS API reference guide for AWS Device Farm's
1124// API operation DeleteProject for usage and error information.
1125//
1126// Returned Error Codes:
1127//   * ErrCodeArgumentException "ArgumentException"
1128//   An invalid argument was specified.
1129//
1130//   * ErrCodeNotFoundException "NotFoundException"
1131//   The specified entity was not found.
1132//
1133//   * ErrCodeLimitExceededException "LimitExceededException"
1134//   A limit was exceeded.
1135//
1136//   * ErrCodeServiceAccountException "ServiceAccountException"
1137//   There was a problem with the service account.
1138//
1139// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/DeleteProject
1140func (c *DeviceFarm) DeleteProject(input *DeleteProjectInput) (*DeleteProjectOutput, error) {
1141	req, out := c.DeleteProjectRequest(input)
1142	return out, req.Send()
1143}
1144
1145// DeleteProjectWithContext is the same as DeleteProject with the addition of
1146// the ability to pass a context and additional request options.
1147//
1148// See DeleteProject for details on how to use this API operation.
1149//
1150// The context must be non-nil and will be used for request cancellation. If
1151// the context is nil a panic will occur. In the future the SDK may create
1152// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1153// for more information on using Contexts.
1154func (c *DeviceFarm) DeleteProjectWithContext(ctx aws.Context, input *DeleteProjectInput, opts ...request.Option) (*DeleteProjectOutput, error) {
1155	req, out := c.DeleteProjectRequest(input)
1156	req.SetContext(ctx)
1157	req.ApplyOptions(opts...)
1158	return out, req.Send()
1159}
1160
1161const opDeleteRemoteAccessSession = "DeleteRemoteAccessSession"
1162
1163// DeleteRemoteAccessSessionRequest generates a "aws/request.Request" representing the
1164// client's request for the DeleteRemoteAccessSession operation. The "output" return
1165// value will be populated with the request's response once the request completes
1166// successfully.
1167//
1168// Use "Send" method on the returned Request to send the API call to the service.
1169// the "output" return value is not valid until after Send returns without error.
1170//
1171// See DeleteRemoteAccessSession for more information on using the DeleteRemoteAccessSession
1172// API call, and error handling.
1173//
1174// This method is useful when you want to inject custom logic or configuration
1175// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1176//
1177//
1178//    // Example sending a request using the DeleteRemoteAccessSessionRequest method.
1179//    req, resp := client.DeleteRemoteAccessSessionRequest(params)
1180//
1181//    err := req.Send()
1182//    if err == nil { // resp is now filled
1183//        fmt.Println(resp)
1184//    }
1185//
1186// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/DeleteRemoteAccessSession
1187func (c *DeviceFarm) DeleteRemoteAccessSessionRequest(input *DeleteRemoteAccessSessionInput) (req *request.Request, output *DeleteRemoteAccessSessionOutput) {
1188	op := &request.Operation{
1189		Name:       opDeleteRemoteAccessSession,
1190		HTTPMethod: "POST",
1191		HTTPPath:   "/",
1192	}
1193
1194	if input == nil {
1195		input = &DeleteRemoteAccessSessionInput{}
1196	}
1197
1198	output = &DeleteRemoteAccessSessionOutput{}
1199	req = c.newRequest(op, input, output)
1200	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1201	return
1202}
1203
1204// DeleteRemoteAccessSession API operation for AWS Device Farm.
1205//
1206// Deletes a completed remote access session and its results.
1207//
1208// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1209// with awserr.Error's Code and Message methods to get detailed information about
1210// the error.
1211//
1212// See the AWS API reference guide for AWS Device Farm's
1213// API operation DeleteRemoteAccessSession for usage and error information.
1214//
1215// Returned Error Codes:
1216//   * ErrCodeArgumentException "ArgumentException"
1217//   An invalid argument was specified.
1218//
1219//   * ErrCodeNotFoundException "NotFoundException"
1220//   The specified entity was not found.
1221//
1222//   * ErrCodeLimitExceededException "LimitExceededException"
1223//   A limit was exceeded.
1224//
1225//   * ErrCodeServiceAccountException "ServiceAccountException"
1226//   There was a problem with the service account.
1227//
1228// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/DeleteRemoteAccessSession
1229func (c *DeviceFarm) DeleteRemoteAccessSession(input *DeleteRemoteAccessSessionInput) (*DeleteRemoteAccessSessionOutput, error) {
1230	req, out := c.DeleteRemoteAccessSessionRequest(input)
1231	return out, req.Send()
1232}
1233
1234// DeleteRemoteAccessSessionWithContext is the same as DeleteRemoteAccessSession with the addition of
1235// the ability to pass a context and additional request options.
1236//
1237// See DeleteRemoteAccessSession for details on how to use this API operation.
1238//
1239// The context must be non-nil and will be used for request cancellation. If
1240// the context is nil a panic will occur. In the future the SDK may create
1241// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1242// for more information on using Contexts.
1243func (c *DeviceFarm) DeleteRemoteAccessSessionWithContext(ctx aws.Context, input *DeleteRemoteAccessSessionInput, opts ...request.Option) (*DeleteRemoteAccessSessionOutput, error) {
1244	req, out := c.DeleteRemoteAccessSessionRequest(input)
1245	req.SetContext(ctx)
1246	req.ApplyOptions(opts...)
1247	return out, req.Send()
1248}
1249
1250const opDeleteRun = "DeleteRun"
1251
1252// DeleteRunRequest generates a "aws/request.Request" representing the
1253// client's request for the DeleteRun operation. The "output" return
1254// value will be populated with the request's response once the request completes
1255// successfully.
1256//
1257// Use "Send" method on the returned Request to send the API call to the service.
1258// the "output" return value is not valid until after Send returns without error.
1259//
1260// See DeleteRun for more information on using the DeleteRun
1261// API call, and error handling.
1262//
1263// This method is useful when you want to inject custom logic or configuration
1264// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1265//
1266//
1267//    // Example sending a request using the DeleteRunRequest method.
1268//    req, resp := client.DeleteRunRequest(params)
1269//
1270//    err := req.Send()
1271//    if err == nil { // resp is now filled
1272//        fmt.Println(resp)
1273//    }
1274//
1275// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/DeleteRun
1276func (c *DeviceFarm) DeleteRunRequest(input *DeleteRunInput) (req *request.Request, output *DeleteRunOutput) {
1277	op := &request.Operation{
1278		Name:       opDeleteRun,
1279		HTTPMethod: "POST",
1280		HTTPPath:   "/",
1281	}
1282
1283	if input == nil {
1284		input = &DeleteRunInput{}
1285	}
1286
1287	output = &DeleteRunOutput{}
1288	req = c.newRequest(op, input, output)
1289	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1290	return
1291}
1292
1293// DeleteRun API operation for AWS Device Farm.
1294//
1295// Deletes the run, given the run ARN.
1296//
1297// Deleting this resource does not stop an in-progress run.
1298//
1299// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1300// with awserr.Error's Code and Message methods to get detailed information about
1301// the error.
1302//
1303// See the AWS API reference guide for AWS Device Farm's
1304// API operation DeleteRun for usage and error information.
1305//
1306// Returned Error Codes:
1307//   * ErrCodeArgumentException "ArgumentException"
1308//   An invalid argument was specified.
1309//
1310//   * ErrCodeNotFoundException "NotFoundException"
1311//   The specified entity was not found.
1312//
1313//   * ErrCodeLimitExceededException "LimitExceededException"
1314//   A limit was exceeded.
1315//
1316//   * ErrCodeServiceAccountException "ServiceAccountException"
1317//   There was a problem with the service account.
1318//
1319// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/DeleteRun
1320func (c *DeviceFarm) DeleteRun(input *DeleteRunInput) (*DeleteRunOutput, error) {
1321	req, out := c.DeleteRunRequest(input)
1322	return out, req.Send()
1323}
1324
1325// DeleteRunWithContext is the same as DeleteRun with the addition of
1326// the ability to pass a context and additional request options.
1327//
1328// See DeleteRun for details on how to use this API operation.
1329//
1330// The context must be non-nil and will be used for request cancellation. If
1331// the context is nil a panic will occur. In the future the SDK may create
1332// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1333// for more information on using Contexts.
1334func (c *DeviceFarm) DeleteRunWithContext(ctx aws.Context, input *DeleteRunInput, opts ...request.Option) (*DeleteRunOutput, error) {
1335	req, out := c.DeleteRunRequest(input)
1336	req.SetContext(ctx)
1337	req.ApplyOptions(opts...)
1338	return out, req.Send()
1339}
1340
1341const opDeleteTestGridProject = "DeleteTestGridProject"
1342
1343// DeleteTestGridProjectRequest generates a "aws/request.Request" representing the
1344// client's request for the DeleteTestGridProject operation. The "output" return
1345// value will be populated with the request's response once the request completes
1346// successfully.
1347//
1348// Use "Send" method on the returned Request to send the API call to the service.
1349// the "output" return value is not valid until after Send returns without error.
1350//
1351// See DeleteTestGridProject for more information on using the DeleteTestGridProject
1352// API call, and error handling.
1353//
1354// This method is useful when you want to inject custom logic or configuration
1355// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1356//
1357//
1358//    // Example sending a request using the DeleteTestGridProjectRequest method.
1359//    req, resp := client.DeleteTestGridProjectRequest(params)
1360//
1361//    err := req.Send()
1362//    if err == nil { // resp is now filled
1363//        fmt.Println(resp)
1364//    }
1365//
1366// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/DeleteTestGridProject
1367func (c *DeviceFarm) DeleteTestGridProjectRequest(input *DeleteTestGridProjectInput) (req *request.Request, output *DeleteTestGridProjectOutput) {
1368	op := &request.Operation{
1369		Name:       opDeleteTestGridProject,
1370		HTTPMethod: "POST",
1371		HTTPPath:   "/",
1372	}
1373
1374	if input == nil {
1375		input = &DeleteTestGridProjectInput{}
1376	}
1377
1378	output = &DeleteTestGridProjectOutput{}
1379	req = c.newRequest(op, input, output)
1380	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1381	return
1382}
1383
1384// DeleteTestGridProject API operation for AWS Device Farm.
1385//
1386// Deletes a Selenium testing project and all content generated under it.
1387//
1388// You cannot undo this operation.
1389//
1390// You cannot delete a project if it has active sessions.
1391//
1392// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1393// with awserr.Error's Code and Message methods to get detailed information about
1394// the error.
1395//
1396// See the AWS API reference guide for AWS Device Farm's
1397// API operation DeleteTestGridProject for usage and error information.
1398//
1399// Returned Error Codes:
1400//   * ErrCodeNotFoundException "NotFoundException"
1401//   The specified entity was not found.
1402//
1403//   * ErrCodeArgumentException "ArgumentException"
1404//   An invalid argument was specified.
1405//
1406//   * ErrCodeCannotDeleteException "CannotDeleteException"
1407//   The requested object could not be deleted.
1408//
1409//   * ErrCodeInternalServiceException "InternalServiceException"
1410//   An internal exception was raised in the service. Contact aws-devicefarm-support@amazon.com
1411//   (mailto:aws-devicefarm-support@amazon.com) if you see this error.
1412//
1413// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/DeleteTestGridProject
1414func (c *DeviceFarm) DeleteTestGridProject(input *DeleteTestGridProjectInput) (*DeleteTestGridProjectOutput, error) {
1415	req, out := c.DeleteTestGridProjectRequest(input)
1416	return out, req.Send()
1417}
1418
1419// DeleteTestGridProjectWithContext is the same as DeleteTestGridProject with the addition of
1420// the ability to pass a context and additional request options.
1421//
1422// See DeleteTestGridProject for details on how to use this API operation.
1423//
1424// The context must be non-nil and will be used for request cancellation. If
1425// the context is nil a panic will occur. In the future the SDK may create
1426// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1427// for more information on using Contexts.
1428func (c *DeviceFarm) DeleteTestGridProjectWithContext(ctx aws.Context, input *DeleteTestGridProjectInput, opts ...request.Option) (*DeleteTestGridProjectOutput, error) {
1429	req, out := c.DeleteTestGridProjectRequest(input)
1430	req.SetContext(ctx)
1431	req.ApplyOptions(opts...)
1432	return out, req.Send()
1433}
1434
1435const opDeleteUpload = "DeleteUpload"
1436
1437// DeleteUploadRequest generates a "aws/request.Request" representing the
1438// client's request for the DeleteUpload operation. The "output" return
1439// value will be populated with the request's response once the request completes
1440// successfully.
1441//
1442// Use "Send" method on the returned Request to send the API call to the service.
1443// the "output" return value is not valid until after Send returns without error.
1444//
1445// See DeleteUpload for more information on using the DeleteUpload
1446// API call, and error handling.
1447//
1448// This method is useful when you want to inject custom logic or configuration
1449// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1450//
1451//
1452//    // Example sending a request using the DeleteUploadRequest method.
1453//    req, resp := client.DeleteUploadRequest(params)
1454//
1455//    err := req.Send()
1456//    if err == nil { // resp is now filled
1457//        fmt.Println(resp)
1458//    }
1459//
1460// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/DeleteUpload
1461func (c *DeviceFarm) DeleteUploadRequest(input *DeleteUploadInput) (req *request.Request, output *DeleteUploadOutput) {
1462	op := &request.Operation{
1463		Name:       opDeleteUpload,
1464		HTTPMethod: "POST",
1465		HTTPPath:   "/",
1466	}
1467
1468	if input == nil {
1469		input = &DeleteUploadInput{}
1470	}
1471
1472	output = &DeleteUploadOutput{}
1473	req = c.newRequest(op, input, output)
1474	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1475	return
1476}
1477
1478// DeleteUpload API operation for AWS Device Farm.
1479//
1480// Deletes an upload given the upload ARN.
1481//
1482// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1483// with awserr.Error's Code and Message methods to get detailed information about
1484// the error.
1485//
1486// See the AWS API reference guide for AWS Device Farm's
1487// API operation DeleteUpload for usage and error information.
1488//
1489// Returned Error Codes:
1490//   * ErrCodeArgumentException "ArgumentException"
1491//   An invalid argument was specified.
1492//
1493//   * ErrCodeNotFoundException "NotFoundException"
1494//   The specified entity was not found.
1495//
1496//   * ErrCodeLimitExceededException "LimitExceededException"
1497//   A limit was exceeded.
1498//
1499//   * ErrCodeServiceAccountException "ServiceAccountException"
1500//   There was a problem with the service account.
1501//
1502// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/DeleteUpload
1503func (c *DeviceFarm) DeleteUpload(input *DeleteUploadInput) (*DeleteUploadOutput, error) {
1504	req, out := c.DeleteUploadRequest(input)
1505	return out, req.Send()
1506}
1507
1508// DeleteUploadWithContext is the same as DeleteUpload with the addition of
1509// the ability to pass a context and additional request options.
1510//
1511// See DeleteUpload for details on how to use this API operation.
1512//
1513// The context must be non-nil and will be used for request cancellation. If
1514// the context is nil a panic will occur. In the future the SDK may create
1515// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1516// for more information on using Contexts.
1517func (c *DeviceFarm) DeleteUploadWithContext(ctx aws.Context, input *DeleteUploadInput, opts ...request.Option) (*DeleteUploadOutput, error) {
1518	req, out := c.DeleteUploadRequest(input)
1519	req.SetContext(ctx)
1520	req.ApplyOptions(opts...)
1521	return out, req.Send()
1522}
1523
1524const opDeleteVPCEConfiguration = "DeleteVPCEConfiguration"
1525
1526// DeleteVPCEConfigurationRequest generates a "aws/request.Request" representing the
1527// client's request for the DeleteVPCEConfiguration operation. The "output" return
1528// value will be populated with the request's response once the request completes
1529// successfully.
1530//
1531// Use "Send" method on the returned Request to send the API call to the service.
1532// the "output" return value is not valid until after Send returns without error.
1533//
1534// See DeleteVPCEConfiguration for more information on using the DeleteVPCEConfiguration
1535// API call, and error handling.
1536//
1537// This method is useful when you want to inject custom logic or configuration
1538// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1539//
1540//
1541//    // Example sending a request using the DeleteVPCEConfigurationRequest method.
1542//    req, resp := client.DeleteVPCEConfigurationRequest(params)
1543//
1544//    err := req.Send()
1545//    if err == nil { // resp is now filled
1546//        fmt.Println(resp)
1547//    }
1548//
1549// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/DeleteVPCEConfiguration
1550func (c *DeviceFarm) DeleteVPCEConfigurationRequest(input *DeleteVPCEConfigurationInput) (req *request.Request, output *DeleteVPCEConfigurationOutput) {
1551	op := &request.Operation{
1552		Name:       opDeleteVPCEConfiguration,
1553		HTTPMethod: "POST",
1554		HTTPPath:   "/",
1555	}
1556
1557	if input == nil {
1558		input = &DeleteVPCEConfigurationInput{}
1559	}
1560
1561	output = &DeleteVPCEConfigurationOutput{}
1562	req = c.newRequest(op, input, output)
1563	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1564	return
1565}
1566
1567// DeleteVPCEConfiguration API operation for AWS Device Farm.
1568//
1569// Deletes a configuration for your Amazon Virtual Private Cloud (VPC) endpoint.
1570//
1571// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1572// with awserr.Error's Code and Message methods to get detailed information about
1573// the error.
1574//
1575// See the AWS API reference guide for AWS Device Farm's
1576// API operation DeleteVPCEConfiguration for usage and error information.
1577//
1578// Returned Error Codes:
1579//   * ErrCodeArgumentException "ArgumentException"
1580//   An invalid argument was specified.
1581//
1582//   * ErrCodeNotFoundException "NotFoundException"
1583//   The specified entity was not found.
1584//
1585//   * ErrCodeServiceAccountException "ServiceAccountException"
1586//   There was a problem with the service account.
1587//
1588//   * ErrCodeInvalidOperationException "InvalidOperationException"
1589//   There was an error with the update request, or you do not have sufficient
1590//   permissions to update this VPC endpoint configuration.
1591//
1592// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/DeleteVPCEConfiguration
1593func (c *DeviceFarm) DeleteVPCEConfiguration(input *DeleteVPCEConfigurationInput) (*DeleteVPCEConfigurationOutput, error) {
1594	req, out := c.DeleteVPCEConfigurationRequest(input)
1595	return out, req.Send()
1596}
1597
1598// DeleteVPCEConfigurationWithContext is the same as DeleteVPCEConfiguration with the addition of
1599// the ability to pass a context and additional request options.
1600//
1601// See DeleteVPCEConfiguration for details on how to use this API operation.
1602//
1603// The context must be non-nil and will be used for request cancellation. If
1604// the context is nil a panic will occur. In the future the SDK may create
1605// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1606// for more information on using Contexts.
1607func (c *DeviceFarm) DeleteVPCEConfigurationWithContext(ctx aws.Context, input *DeleteVPCEConfigurationInput, opts ...request.Option) (*DeleteVPCEConfigurationOutput, error) {
1608	req, out := c.DeleteVPCEConfigurationRequest(input)
1609	req.SetContext(ctx)
1610	req.ApplyOptions(opts...)
1611	return out, req.Send()
1612}
1613
1614const opGetAccountSettings = "GetAccountSettings"
1615
1616// GetAccountSettingsRequest generates a "aws/request.Request" representing the
1617// client's request for the GetAccountSettings operation. The "output" return
1618// value will be populated with the request's response once the request completes
1619// successfully.
1620//
1621// Use "Send" method on the returned Request to send the API call to the service.
1622// the "output" return value is not valid until after Send returns without error.
1623//
1624// See GetAccountSettings for more information on using the GetAccountSettings
1625// API call, and error handling.
1626//
1627// This method is useful when you want to inject custom logic or configuration
1628// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1629//
1630//
1631//    // Example sending a request using the GetAccountSettingsRequest method.
1632//    req, resp := client.GetAccountSettingsRequest(params)
1633//
1634//    err := req.Send()
1635//    if err == nil { // resp is now filled
1636//        fmt.Println(resp)
1637//    }
1638//
1639// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetAccountSettings
1640func (c *DeviceFarm) GetAccountSettingsRequest(input *GetAccountSettingsInput) (req *request.Request, output *GetAccountSettingsOutput) {
1641	op := &request.Operation{
1642		Name:       opGetAccountSettings,
1643		HTTPMethod: "POST",
1644		HTTPPath:   "/",
1645	}
1646
1647	if input == nil {
1648		input = &GetAccountSettingsInput{}
1649	}
1650
1651	output = &GetAccountSettingsOutput{}
1652	req = c.newRequest(op, input, output)
1653	return
1654}
1655
1656// GetAccountSettings API operation for AWS Device Farm.
1657//
1658// Returns the number of unmetered iOS or unmetered Android devices that have
1659// been purchased by the account.
1660//
1661// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1662// with awserr.Error's Code and Message methods to get detailed information about
1663// the error.
1664//
1665// See the AWS API reference guide for AWS Device Farm's
1666// API operation GetAccountSettings for usage and error information.
1667//
1668// Returned Error Codes:
1669//   * ErrCodeArgumentException "ArgumentException"
1670//   An invalid argument was specified.
1671//
1672//   * ErrCodeNotFoundException "NotFoundException"
1673//   The specified entity was not found.
1674//
1675//   * ErrCodeLimitExceededException "LimitExceededException"
1676//   A limit was exceeded.
1677//
1678//   * ErrCodeServiceAccountException "ServiceAccountException"
1679//   There was a problem with the service account.
1680//
1681// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetAccountSettings
1682func (c *DeviceFarm) GetAccountSettings(input *GetAccountSettingsInput) (*GetAccountSettingsOutput, error) {
1683	req, out := c.GetAccountSettingsRequest(input)
1684	return out, req.Send()
1685}
1686
1687// GetAccountSettingsWithContext is the same as GetAccountSettings with the addition of
1688// the ability to pass a context and additional request options.
1689//
1690// See GetAccountSettings for details on how to use this API operation.
1691//
1692// The context must be non-nil and will be used for request cancellation. If
1693// the context is nil a panic will occur. In the future the SDK may create
1694// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1695// for more information on using Contexts.
1696func (c *DeviceFarm) GetAccountSettingsWithContext(ctx aws.Context, input *GetAccountSettingsInput, opts ...request.Option) (*GetAccountSettingsOutput, error) {
1697	req, out := c.GetAccountSettingsRequest(input)
1698	req.SetContext(ctx)
1699	req.ApplyOptions(opts...)
1700	return out, req.Send()
1701}
1702
1703const opGetDevice = "GetDevice"
1704
1705// GetDeviceRequest generates a "aws/request.Request" representing the
1706// client's request for the GetDevice operation. The "output" return
1707// value will be populated with the request's response once the request completes
1708// successfully.
1709//
1710// Use "Send" method on the returned Request to send the API call to the service.
1711// the "output" return value is not valid until after Send returns without error.
1712//
1713// See GetDevice for more information on using the GetDevice
1714// API call, and error handling.
1715//
1716// This method is useful when you want to inject custom logic or configuration
1717// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1718//
1719//
1720//    // Example sending a request using the GetDeviceRequest method.
1721//    req, resp := client.GetDeviceRequest(params)
1722//
1723//    err := req.Send()
1724//    if err == nil { // resp is now filled
1725//        fmt.Println(resp)
1726//    }
1727//
1728// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetDevice
1729func (c *DeviceFarm) GetDeviceRequest(input *GetDeviceInput) (req *request.Request, output *GetDeviceOutput) {
1730	op := &request.Operation{
1731		Name:       opGetDevice,
1732		HTTPMethod: "POST",
1733		HTTPPath:   "/",
1734	}
1735
1736	if input == nil {
1737		input = &GetDeviceInput{}
1738	}
1739
1740	output = &GetDeviceOutput{}
1741	req = c.newRequest(op, input, output)
1742	return
1743}
1744
1745// GetDevice API operation for AWS Device Farm.
1746//
1747// Gets information about a unique device type.
1748//
1749// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1750// with awserr.Error's Code and Message methods to get detailed information about
1751// the error.
1752//
1753// See the AWS API reference guide for AWS Device Farm's
1754// API operation GetDevice for usage and error information.
1755//
1756// Returned Error Codes:
1757//   * ErrCodeArgumentException "ArgumentException"
1758//   An invalid argument was specified.
1759//
1760//   * ErrCodeNotFoundException "NotFoundException"
1761//   The specified entity was not found.
1762//
1763//   * ErrCodeLimitExceededException "LimitExceededException"
1764//   A limit was exceeded.
1765//
1766//   * ErrCodeServiceAccountException "ServiceAccountException"
1767//   There was a problem with the service account.
1768//
1769// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetDevice
1770func (c *DeviceFarm) GetDevice(input *GetDeviceInput) (*GetDeviceOutput, error) {
1771	req, out := c.GetDeviceRequest(input)
1772	return out, req.Send()
1773}
1774
1775// GetDeviceWithContext is the same as GetDevice with the addition of
1776// the ability to pass a context and additional request options.
1777//
1778// See GetDevice for details on how to use this API operation.
1779//
1780// The context must be non-nil and will be used for request cancellation. If
1781// the context is nil a panic will occur. In the future the SDK may create
1782// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1783// for more information on using Contexts.
1784func (c *DeviceFarm) GetDeviceWithContext(ctx aws.Context, input *GetDeviceInput, opts ...request.Option) (*GetDeviceOutput, error) {
1785	req, out := c.GetDeviceRequest(input)
1786	req.SetContext(ctx)
1787	req.ApplyOptions(opts...)
1788	return out, req.Send()
1789}
1790
1791const opGetDeviceInstance = "GetDeviceInstance"
1792
1793// GetDeviceInstanceRequest generates a "aws/request.Request" representing the
1794// client's request for the GetDeviceInstance operation. The "output" return
1795// value will be populated with the request's response once the request completes
1796// successfully.
1797//
1798// Use "Send" method on the returned Request to send the API call to the service.
1799// the "output" return value is not valid until after Send returns without error.
1800//
1801// See GetDeviceInstance for more information on using the GetDeviceInstance
1802// API call, and error handling.
1803//
1804// This method is useful when you want to inject custom logic or configuration
1805// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1806//
1807//
1808//    // Example sending a request using the GetDeviceInstanceRequest method.
1809//    req, resp := client.GetDeviceInstanceRequest(params)
1810//
1811//    err := req.Send()
1812//    if err == nil { // resp is now filled
1813//        fmt.Println(resp)
1814//    }
1815//
1816// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetDeviceInstance
1817func (c *DeviceFarm) GetDeviceInstanceRequest(input *GetDeviceInstanceInput) (req *request.Request, output *GetDeviceInstanceOutput) {
1818	op := &request.Operation{
1819		Name:       opGetDeviceInstance,
1820		HTTPMethod: "POST",
1821		HTTPPath:   "/",
1822	}
1823
1824	if input == nil {
1825		input = &GetDeviceInstanceInput{}
1826	}
1827
1828	output = &GetDeviceInstanceOutput{}
1829	req = c.newRequest(op, input, output)
1830	return
1831}
1832
1833// GetDeviceInstance API operation for AWS Device Farm.
1834//
1835// Returns information about a device instance that belongs to a private device
1836// fleet.
1837//
1838// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1839// with awserr.Error's Code and Message methods to get detailed information about
1840// the error.
1841//
1842// See the AWS API reference guide for AWS Device Farm's
1843// API operation GetDeviceInstance for usage and error information.
1844//
1845// Returned Error Codes:
1846//   * ErrCodeArgumentException "ArgumentException"
1847//   An invalid argument was specified.
1848//
1849//   * ErrCodeNotFoundException "NotFoundException"
1850//   The specified entity was not found.
1851//
1852//   * ErrCodeLimitExceededException "LimitExceededException"
1853//   A limit was exceeded.
1854//
1855//   * ErrCodeServiceAccountException "ServiceAccountException"
1856//   There was a problem with the service account.
1857//
1858// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetDeviceInstance
1859func (c *DeviceFarm) GetDeviceInstance(input *GetDeviceInstanceInput) (*GetDeviceInstanceOutput, error) {
1860	req, out := c.GetDeviceInstanceRequest(input)
1861	return out, req.Send()
1862}
1863
1864// GetDeviceInstanceWithContext is the same as GetDeviceInstance with the addition of
1865// the ability to pass a context and additional request options.
1866//
1867// See GetDeviceInstance for details on how to use this API operation.
1868//
1869// The context must be non-nil and will be used for request cancellation. If
1870// the context is nil a panic will occur. In the future the SDK may create
1871// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1872// for more information on using Contexts.
1873func (c *DeviceFarm) GetDeviceInstanceWithContext(ctx aws.Context, input *GetDeviceInstanceInput, opts ...request.Option) (*GetDeviceInstanceOutput, error) {
1874	req, out := c.GetDeviceInstanceRequest(input)
1875	req.SetContext(ctx)
1876	req.ApplyOptions(opts...)
1877	return out, req.Send()
1878}
1879
1880const opGetDevicePool = "GetDevicePool"
1881
1882// GetDevicePoolRequest generates a "aws/request.Request" representing the
1883// client's request for the GetDevicePool operation. The "output" return
1884// value will be populated with the request's response once the request completes
1885// successfully.
1886//
1887// Use "Send" method on the returned Request to send the API call to the service.
1888// the "output" return value is not valid until after Send returns without error.
1889//
1890// See GetDevicePool for more information on using the GetDevicePool
1891// API call, and error handling.
1892//
1893// This method is useful when you want to inject custom logic or configuration
1894// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1895//
1896//
1897//    // Example sending a request using the GetDevicePoolRequest method.
1898//    req, resp := client.GetDevicePoolRequest(params)
1899//
1900//    err := req.Send()
1901//    if err == nil { // resp is now filled
1902//        fmt.Println(resp)
1903//    }
1904//
1905// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetDevicePool
1906func (c *DeviceFarm) GetDevicePoolRequest(input *GetDevicePoolInput) (req *request.Request, output *GetDevicePoolOutput) {
1907	op := &request.Operation{
1908		Name:       opGetDevicePool,
1909		HTTPMethod: "POST",
1910		HTTPPath:   "/",
1911	}
1912
1913	if input == nil {
1914		input = &GetDevicePoolInput{}
1915	}
1916
1917	output = &GetDevicePoolOutput{}
1918	req = c.newRequest(op, input, output)
1919	return
1920}
1921
1922// GetDevicePool API operation for AWS Device Farm.
1923//
1924// Gets information about a device pool.
1925//
1926// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1927// with awserr.Error's Code and Message methods to get detailed information about
1928// the error.
1929//
1930// See the AWS API reference guide for AWS Device Farm's
1931// API operation GetDevicePool for usage and error information.
1932//
1933// Returned Error Codes:
1934//   * ErrCodeArgumentException "ArgumentException"
1935//   An invalid argument was specified.
1936//
1937//   * ErrCodeNotFoundException "NotFoundException"
1938//   The specified entity was not found.
1939//
1940//   * ErrCodeLimitExceededException "LimitExceededException"
1941//   A limit was exceeded.
1942//
1943//   * ErrCodeServiceAccountException "ServiceAccountException"
1944//   There was a problem with the service account.
1945//
1946// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetDevicePool
1947func (c *DeviceFarm) GetDevicePool(input *GetDevicePoolInput) (*GetDevicePoolOutput, error) {
1948	req, out := c.GetDevicePoolRequest(input)
1949	return out, req.Send()
1950}
1951
1952// GetDevicePoolWithContext is the same as GetDevicePool with the addition of
1953// the ability to pass a context and additional request options.
1954//
1955// See GetDevicePool for details on how to use this API operation.
1956//
1957// The context must be non-nil and will be used for request cancellation. If
1958// the context is nil a panic will occur. In the future the SDK may create
1959// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1960// for more information on using Contexts.
1961func (c *DeviceFarm) GetDevicePoolWithContext(ctx aws.Context, input *GetDevicePoolInput, opts ...request.Option) (*GetDevicePoolOutput, error) {
1962	req, out := c.GetDevicePoolRequest(input)
1963	req.SetContext(ctx)
1964	req.ApplyOptions(opts...)
1965	return out, req.Send()
1966}
1967
1968const opGetDevicePoolCompatibility = "GetDevicePoolCompatibility"
1969
1970// GetDevicePoolCompatibilityRequest generates a "aws/request.Request" representing the
1971// client's request for the GetDevicePoolCompatibility operation. The "output" return
1972// value will be populated with the request's response once the request completes
1973// successfully.
1974//
1975// Use "Send" method on the returned Request to send the API call to the service.
1976// the "output" return value is not valid until after Send returns without error.
1977//
1978// See GetDevicePoolCompatibility for more information on using the GetDevicePoolCompatibility
1979// API call, and error handling.
1980//
1981// This method is useful when you want to inject custom logic or configuration
1982// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1983//
1984//
1985//    // Example sending a request using the GetDevicePoolCompatibilityRequest method.
1986//    req, resp := client.GetDevicePoolCompatibilityRequest(params)
1987//
1988//    err := req.Send()
1989//    if err == nil { // resp is now filled
1990//        fmt.Println(resp)
1991//    }
1992//
1993// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetDevicePoolCompatibility
1994func (c *DeviceFarm) GetDevicePoolCompatibilityRequest(input *GetDevicePoolCompatibilityInput) (req *request.Request, output *GetDevicePoolCompatibilityOutput) {
1995	op := &request.Operation{
1996		Name:       opGetDevicePoolCompatibility,
1997		HTTPMethod: "POST",
1998		HTTPPath:   "/",
1999	}
2000
2001	if input == nil {
2002		input = &GetDevicePoolCompatibilityInput{}
2003	}
2004
2005	output = &GetDevicePoolCompatibilityOutput{}
2006	req = c.newRequest(op, input, output)
2007	return
2008}
2009
2010// GetDevicePoolCompatibility API operation for AWS Device Farm.
2011//
2012// Gets information about compatibility with a device pool.
2013//
2014// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2015// with awserr.Error's Code and Message methods to get detailed information about
2016// the error.
2017//
2018// See the AWS API reference guide for AWS Device Farm's
2019// API operation GetDevicePoolCompatibility for usage and error information.
2020//
2021// Returned Error Codes:
2022//   * ErrCodeArgumentException "ArgumentException"
2023//   An invalid argument was specified.
2024//
2025//   * ErrCodeNotFoundException "NotFoundException"
2026//   The specified entity was not found.
2027//
2028//   * ErrCodeLimitExceededException "LimitExceededException"
2029//   A limit was exceeded.
2030//
2031//   * ErrCodeServiceAccountException "ServiceAccountException"
2032//   There was a problem with the service account.
2033//
2034// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetDevicePoolCompatibility
2035func (c *DeviceFarm) GetDevicePoolCompatibility(input *GetDevicePoolCompatibilityInput) (*GetDevicePoolCompatibilityOutput, error) {
2036	req, out := c.GetDevicePoolCompatibilityRequest(input)
2037	return out, req.Send()
2038}
2039
2040// GetDevicePoolCompatibilityWithContext is the same as GetDevicePoolCompatibility with the addition of
2041// the ability to pass a context and additional request options.
2042//
2043// See GetDevicePoolCompatibility for details on how to use this API operation.
2044//
2045// The context must be non-nil and will be used for request cancellation. If
2046// the context is nil a panic will occur. In the future the SDK may create
2047// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2048// for more information on using Contexts.
2049func (c *DeviceFarm) GetDevicePoolCompatibilityWithContext(ctx aws.Context, input *GetDevicePoolCompatibilityInput, opts ...request.Option) (*GetDevicePoolCompatibilityOutput, error) {
2050	req, out := c.GetDevicePoolCompatibilityRequest(input)
2051	req.SetContext(ctx)
2052	req.ApplyOptions(opts...)
2053	return out, req.Send()
2054}
2055
2056const opGetInstanceProfile = "GetInstanceProfile"
2057
2058// GetInstanceProfileRequest generates a "aws/request.Request" representing the
2059// client's request for the GetInstanceProfile operation. The "output" return
2060// value will be populated with the request's response once the request completes
2061// successfully.
2062//
2063// Use "Send" method on the returned Request to send the API call to the service.
2064// the "output" return value is not valid until after Send returns without error.
2065//
2066// See GetInstanceProfile for more information on using the GetInstanceProfile
2067// API call, and error handling.
2068//
2069// This method is useful when you want to inject custom logic or configuration
2070// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2071//
2072//
2073//    // Example sending a request using the GetInstanceProfileRequest method.
2074//    req, resp := client.GetInstanceProfileRequest(params)
2075//
2076//    err := req.Send()
2077//    if err == nil { // resp is now filled
2078//        fmt.Println(resp)
2079//    }
2080//
2081// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetInstanceProfile
2082func (c *DeviceFarm) GetInstanceProfileRequest(input *GetInstanceProfileInput) (req *request.Request, output *GetInstanceProfileOutput) {
2083	op := &request.Operation{
2084		Name:       opGetInstanceProfile,
2085		HTTPMethod: "POST",
2086		HTTPPath:   "/",
2087	}
2088
2089	if input == nil {
2090		input = &GetInstanceProfileInput{}
2091	}
2092
2093	output = &GetInstanceProfileOutput{}
2094	req = c.newRequest(op, input, output)
2095	return
2096}
2097
2098// GetInstanceProfile API operation for AWS Device Farm.
2099//
2100// Returns information about the specified instance profile.
2101//
2102// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2103// with awserr.Error's Code and Message methods to get detailed information about
2104// the error.
2105//
2106// See the AWS API reference guide for AWS Device Farm's
2107// API operation GetInstanceProfile for usage and error information.
2108//
2109// Returned Error Codes:
2110//   * ErrCodeArgumentException "ArgumentException"
2111//   An invalid argument was specified.
2112//
2113//   * ErrCodeNotFoundException "NotFoundException"
2114//   The specified entity was not found.
2115//
2116//   * ErrCodeLimitExceededException "LimitExceededException"
2117//   A limit was exceeded.
2118//
2119//   * ErrCodeServiceAccountException "ServiceAccountException"
2120//   There was a problem with the service account.
2121//
2122// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetInstanceProfile
2123func (c *DeviceFarm) GetInstanceProfile(input *GetInstanceProfileInput) (*GetInstanceProfileOutput, error) {
2124	req, out := c.GetInstanceProfileRequest(input)
2125	return out, req.Send()
2126}
2127
2128// GetInstanceProfileWithContext is the same as GetInstanceProfile with the addition of
2129// the ability to pass a context and additional request options.
2130//
2131// See GetInstanceProfile for details on how to use this API operation.
2132//
2133// The context must be non-nil and will be used for request cancellation. If
2134// the context is nil a panic will occur. In the future the SDK may create
2135// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2136// for more information on using Contexts.
2137func (c *DeviceFarm) GetInstanceProfileWithContext(ctx aws.Context, input *GetInstanceProfileInput, opts ...request.Option) (*GetInstanceProfileOutput, error) {
2138	req, out := c.GetInstanceProfileRequest(input)
2139	req.SetContext(ctx)
2140	req.ApplyOptions(opts...)
2141	return out, req.Send()
2142}
2143
2144const opGetJob = "GetJob"
2145
2146// GetJobRequest generates a "aws/request.Request" representing the
2147// client's request for the GetJob operation. The "output" return
2148// value will be populated with the request's response once the request completes
2149// successfully.
2150//
2151// Use "Send" method on the returned Request to send the API call to the service.
2152// the "output" return value is not valid until after Send returns without error.
2153//
2154// See GetJob for more information on using the GetJob
2155// API call, and error handling.
2156//
2157// This method is useful when you want to inject custom logic or configuration
2158// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2159//
2160//
2161//    // Example sending a request using the GetJobRequest method.
2162//    req, resp := client.GetJobRequest(params)
2163//
2164//    err := req.Send()
2165//    if err == nil { // resp is now filled
2166//        fmt.Println(resp)
2167//    }
2168//
2169// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetJob
2170func (c *DeviceFarm) GetJobRequest(input *GetJobInput) (req *request.Request, output *GetJobOutput) {
2171	op := &request.Operation{
2172		Name:       opGetJob,
2173		HTTPMethod: "POST",
2174		HTTPPath:   "/",
2175	}
2176
2177	if input == nil {
2178		input = &GetJobInput{}
2179	}
2180
2181	output = &GetJobOutput{}
2182	req = c.newRequest(op, input, output)
2183	return
2184}
2185
2186// GetJob API operation for AWS Device Farm.
2187//
2188// Gets information about a job.
2189//
2190// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2191// with awserr.Error's Code and Message methods to get detailed information about
2192// the error.
2193//
2194// See the AWS API reference guide for AWS Device Farm's
2195// API operation GetJob for usage and error information.
2196//
2197// Returned Error Codes:
2198//   * ErrCodeArgumentException "ArgumentException"
2199//   An invalid argument was specified.
2200//
2201//   * ErrCodeNotFoundException "NotFoundException"
2202//   The specified entity was not found.
2203//
2204//   * ErrCodeLimitExceededException "LimitExceededException"
2205//   A limit was exceeded.
2206//
2207//   * ErrCodeServiceAccountException "ServiceAccountException"
2208//   There was a problem with the service account.
2209//
2210// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetJob
2211func (c *DeviceFarm) GetJob(input *GetJobInput) (*GetJobOutput, error) {
2212	req, out := c.GetJobRequest(input)
2213	return out, req.Send()
2214}
2215
2216// GetJobWithContext is the same as GetJob with the addition of
2217// the ability to pass a context and additional request options.
2218//
2219// See GetJob for details on how to use this API operation.
2220//
2221// The context must be non-nil and will be used for request cancellation. If
2222// the context is nil a panic will occur. In the future the SDK may create
2223// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2224// for more information on using Contexts.
2225func (c *DeviceFarm) GetJobWithContext(ctx aws.Context, input *GetJobInput, opts ...request.Option) (*GetJobOutput, error) {
2226	req, out := c.GetJobRequest(input)
2227	req.SetContext(ctx)
2228	req.ApplyOptions(opts...)
2229	return out, req.Send()
2230}
2231
2232const opGetNetworkProfile = "GetNetworkProfile"
2233
2234// GetNetworkProfileRequest generates a "aws/request.Request" representing the
2235// client's request for the GetNetworkProfile operation. The "output" return
2236// value will be populated with the request's response once the request completes
2237// successfully.
2238//
2239// Use "Send" method on the returned Request to send the API call to the service.
2240// the "output" return value is not valid until after Send returns without error.
2241//
2242// See GetNetworkProfile for more information on using the GetNetworkProfile
2243// API call, and error handling.
2244//
2245// This method is useful when you want to inject custom logic or configuration
2246// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2247//
2248//
2249//    // Example sending a request using the GetNetworkProfileRequest method.
2250//    req, resp := client.GetNetworkProfileRequest(params)
2251//
2252//    err := req.Send()
2253//    if err == nil { // resp is now filled
2254//        fmt.Println(resp)
2255//    }
2256//
2257// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetNetworkProfile
2258func (c *DeviceFarm) GetNetworkProfileRequest(input *GetNetworkProfileInput) (req *request.Request, output *GetNetworkProfileOutput) {
2259	op := &request.Operation{
2260		Name:       opGetNetworkProfile,
2261		HTTPMethod: "POST",
2262		HTTPPath:   "/",
2263	}
2264
2265	if input == nil {
2266		input = &GetNetworkProfileInput{}
2267	}
2268
2269	output = &GetNetworkProfileOutput{}
2270	req = c.newRequest(op, input, output)
2271	return
2272}
2273
2274// GetNetworkProfile API operation for AWS Device Farm.
2275//
2276// Returns information about a network profile.
2277//
2278// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2279// with awserr.Error's Code and Message methods to get detailed information about
2280// the error.
2281//
2282// See the AWS API reference guide for AWS Device Farm's
2283// API operation GetNetworkProfile for usage and error information.
2284//
2285// Returned Error Codes:
2286//   * ErrCodeArgumentException "ArgumentException"
2287//   An invalid argument was specified.
2288//
2289//   * ErrCodeNotFoundException "NotFoundException"
2290//   The specified entity was not found.
2291//
2292//   * ErrCodeLimitExceededException "LimitExceededException"
2293//   A limit was exceeded.
2294//
2295//   * ErrCodeServiceAccountException "ServiceAccountException"
2296//   There was a problem with the service account.
2297//
2298// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetNetworkProfile
2299func (c *DeviceFarm) GetNetworkProfile(input *GetNetworkProfileInput) (*GetNetworkProfileOutput, error) {
2300	req, out := c.GetNetworkProfileRequest(input)
2301	return out, req.Send()
2302}
2303
2304// GetNetworkProfileWithContext is the same as GetNetworkProfile with the addition of
2305// the ability to pass a context and additional request options.
2306//
2307// See GetNetworkProfile for details on how to use this API operation.
2308//
2309// The context must be non-nil and will be used for request cancellation. If
2310// the context is nil a panic will occur. In the future the SDK may create
2311// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2312// for more information on using Contexts.
2313func (c *DeviceFarm) GetNetworkProfileWithContext(ctx aws.Context, input *GetNetworkProfileInput, opts ...request.Option) (*GetNetworkProfileOutput, error) {
2314	req, out := c.GetNetworkProfileRequest(input)
2315	req.SetContext(ctx)
2316	req.ApplyOptions(opts...)
2317	return out, req.Send()
2318}
2319
2320const opGetOfferingStatus = "GetOfferingStatus"
2321
2322// GetOfferingStatusRequest generates a "aws/request.Request" representing the
2323// client's request for the GetOfferingStatus operation. The "output" return
2324// value will be populated with the request's response once the request completes
2325// successfully.
2326//
2327// Use "Send" method on the returned Request to send the API call to the service.
2328// the "output" return value is not valid until after Send returns without error.
2329//
2330// See GetOfferingStatus for more information on using the GetOfferingStatus
2331// API call, and error handling.
2332//
2333// This method is useful when you want to inject custom logic or configuration
2334// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2335//
2336//
2337//    // Example sending a request using the GetOfferingStatusRequest method.
2338//    req, resp := client.GetOfferingStatusRequest(params)
2339//
2340//    err := req.Send()
2341//    if err == nil { // resp is now filled
2342//        fmt.Println(resp)
2343//    }
2344//
2345// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetOfferingStatus
2346func (c *DeviceFarm) GetOfferingStatusRequest(input *GetOfferingStatusInput) (req *request.Request, output *GetOfferingStatusOutput) {
2347	op := &request.Operation{
2348		Name:       opGetOfferingStatus,
2349		HTTPMethod: "POST",
2350		HTTPPath:   "/",
2351		Paginator: &request.Paginator{
2352			InputTokens:     []string{"nextToken"},
2353			OutputTokens:    []string{"nextToken"},
2354			LimitToken:      "",
2355			TruncationToken: "",
2356		},
2357	}
2358
2359	if input == nil {
2360		input = &GetOfferingStatusInput{}
2361	}
2362
2363	output = &GetOfferingStatusOutput{}
2364	req = c.newRequest(op, input, output)
2365	return
2366}
2367
2368// GetOfferingStatus API operation for AWS Device Farm.
2369//
2370// Gets the current status and future status of all offerings purchased by an
2371// AWS account. The response indicates how many offerings are currently available
2372// and the offerings that will be available in the next period. The API returns
2373// a NotEligible error if the user is not permitted to invoke the operation.
2374// If you must be able to invoke this operation, contact aws-devicefarm-support@amazon.com
2375// (mailto:aws-devicefarm-support@amazon.com).
2376//
2377// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2378// with awserr.Error's Code and Message methods to get detailed information about
2379// the error.
2380//
2381// See the AWS API reference guide for AWS Device Farm's
2382// API operation GetOfferingStatus for usage and error information.
2383//
2384// Returned Error Codes:
2385//   * ErrCodeArgumentException "ArgumentException"
2386//   An invalid argument was specified.
2387//
2388//   * ErrCodeNotFoundException "NotFoundException"
2389//   The specified entity was not found.
2390//
2391//   * ErrCodeNotEligibleException "NotEligibleException"
2392//   Exception gets thrown when a user is not eligible to perform the specified
2393//   transaction.
2394//
2395//   * ErrCodeLimitExceededException "LimitExceededException"
2396//   A limit was exceeded.
2397//
2398//   * ErrCodeServiceAccountException "ServiceAccountException"
2399//   There was a problem with the service account.
2400//
2401// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetOfferingStatus
2402func (c *DeviceFarm) GetOfferingStatus(input *GetOfferingStatusInput) (*GetOfferingStatusOutput, error) {
2403	req, out := c.GetOfferingStatusRequest(input)
2404	return out, req.Send()
2405}
2406
2407// GetOfferingStatusWithContext is the same as GetOfferingStatus with the addition of
2408// the ability to pass a context and additional request options.
2409//
2410// See GetOfferingStatus for details on how to use this API operation.
2411//
2412// The context must be non-nil and will be used for request cancellation. If
2413// the context is nil a panic will occur. In the future the SDK may create
2414// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2415// for more information on using Contexts.
2416func (c *DeviceFarm) GetOfferingStatusWithContext(ctx aws.Context, input *GetOfferingStatusInput, opts ...request.Option) (*GetOfferingStatusOutput, error) {
2417	req, out := c.GetOfferingStatusRequest(input)
2418	req.SetContext(ctx)
2419	req.ApplyOptions(opts...)
2420	return out, req.Send()
2421}
2422
2423// GetOfferingStatusPages iterates over the pages of a GetOfferingStatus operation,
2424// calling the "fn" function with the response data for each page. To stop
2425// iterating, return false from the fn function.
2426//
2427// See GetOfferingStatus method for more information on how to use this operation.
2428//
2429// Note: This operation can generate multiple requests to a service.
2430//
2431//    // Example iterating over at most 3 pages of a GetOfferingStatus operation.
2432//    pageNum := 0
2433//    err := client.GetOfferingStatusPages(params,
2434//        func(page *devicefarm.GetOfferingStatusOutput, lastPage bool) bool {
2435//            pageNum++
2436//            fmt.Println(page)
2437//            return pageNum <= 3
2438//        })
2439//
2440func (c *DeviceFarm) GetOfferingStatusPages(input *GetOfferingStatusInput, fn func(*GetOfferingStatusOutput, bool) bool) error {
2441	return c.GetOfferingStatusPagesWithContext(aws.BackgroundContext(), input, fn)
2442}
2443
2444// GetOfferingStatusPagesWithContext same as GetOfferingStatusPages except
2445// it takes a Context and allows setting request options on the pages.
2446//
2447// The context must be non-nil and will be used for request cancellation. If
2448// the context is nil a panic will occur. In the future the SDK may create
2449// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2450// for more information on using Contexts.
2451func (c *DeviceFarm) GetOfferingStatusPagesWithContext(ctx aws.Context, input *GetOfferingStatusInput, fn func(*GetOfferingStatusOutput, bool) bool, opts ...request.Option) error {
2452	p := request.Pagination{
2453		NewRequest: func() (*request.Request, error) {
2454			var inCpy *GetOfferingStatusInput
2455			if input != nil {
2456				tmp := *input
2457				inCpy = &tmp
2458			}
2459			req, _ := c.GetOfferingStatusRequest(inCpy)
2460			req.SetContext(ctx)
2461			req.ApplyOptions(opts...)
2462			return req, nil
2463		},
2464	}
2465
2466	for p.Next() {
2467		if !fn(p.Page().(*GetOfferingStatusOutput), !p.HasNextPage()) {
2468			break
2469		}
2470	}
2471
2472	return p.Err()
2473}
2474
2475const opGetProject = "GetProject"
2476
2477// GetProjectRequest generates a "aws/request.Request" representing the
2478// client's request for the GetProject operation. The "output" return
2479// value will be populated with the request's response once the request completes
2480// successfully.
2481//
2482// Use "Send" method on the returned Request to send the API call to the service.
2483// the "output" return value is not valid until after Send returns without error.
2484//
2485// See GetProject for more information on using the GetProject
2486// API call, and error handling.
2487//
2488// This method is useful when you want to inject custom logic or configuration
2489// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2490//
2491//
2492//    // Example sending a request using the GetProjectRequest method.
2493//    req, resp := client.GetProjectRequest(params)
2494//
2495//    err := req.Send()
2496//    if err == nil { // resp is now filled
2497//        fmt.Println(resp)
2498//    }
2499//
2500// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetProject
2501func (c *DeviceFarm) GetProjectRequest(input *GetProjectInput) (req *request.Request, output *GetProjectOutput) {
2502	op := &request.Operation{
2503		Name:       opGetProject,
2504		HTTPMethod: "POST",
2505		HTTPPath:   "/",
2506	}
2507
2508	if input == nil {
2509		input = &GetProjectInput{}
2510	}
2511
2512	output = &GetProjectOutput{}
2513	req = c.newRequest(op, input, output)
2514	return
2515}
2516
2517// GetProject API operation for AWS Device Farm.
2518//
2519// Gets information about a project.
2520//
2521// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2522// with awserr.Error's Code and Message methods to get detailed information about
2523// the error.
2524//
2525// See the AWS API reference guide for AWS Device Farm's
2526// API operation GetProject for usage and error information.
2527//
2528// Returned Error Codes:
2529//   * ErrCodeArgumentException "ArgumentException"
2530//   An invalid argument was specified.
2531//
2532//   * ErrCodeNotFoundException "NotFoundException"
2533//   The specified entity was not found.
2534//
2535//   * ErrCodeLimitExceededException "LimitExceededException"
2536//   A limit was exceeded.
2537//
2538//   * ErrCodeServiceAccountException "ServiceAccountException"
2539//   There was a problem with the service account.
2540//
2541// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetProject
2542func (c *DeviceFarm) GetProject(input *GetProjectInput) (*GetProjectOutput, error) {
2543	req, out := c.GetProjectRequest(input)
2544	return out, req.Send()
2545}
2546
2547// GetProjectWithContext is the same as GetProject with the addition of
2548// the ability to pass a context and additional request options.
2549//
2550// See GetProject for details on how to use this API operation.
2551//
2552// The context must be non-nil and will be used for request cancellation. If
2553// the context is nil a panic will occur. In the future the SDK may create
2554// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2555// for more information on using Contexts.
2556func (c *DeviceFarm) GetProjectWithContext(ctx aws.Context, input *GetProjectInput, opts ...request.Option) (*GetProjectOutput, error) {
2557	req, out := c.GetProjectRequest(input)
2558	req.SetContext(ctx)
2559	req.ApplyOptions(opts...)
2560	return out, req.Send()
2561}
2562
2563const opGetRemoteAccessSession = "GetRemoteAccessSession"
2564
2565// GetRemoteAccessSessionRequest generates a "aws/request.Request" representing the
2566// client's request for the GetRemoteAccessSession operation. The "output" return
2567// value will be populated with the request's response once the request completes
2568// successfully.
2569//
2570// Use "Send" method on the returned Request to send the API call to the service.
2571// the "output" return value is not valid until after Send returns without error.
2572//
2573// See GetRemoteAccessSession for more information on using the GetRemoteAccessSession
2574// API call, and error handling.
2575//
2576// This method is useful when you want to inject custom logic or configuration
2577// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2578//
2579//
2580//    // Example sending a request using the GetRemoteAccessSessionRequest method.
2581//    req, resp := client.GetRemoteAccessSessionRequest(params)
2582//
2583//    err := req.Send()
2584//    if err == nil { // resp is now filled
2585//        fmt.Println(resp)
2586//    }
2587//
2588// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetRemoteAccessSession
2589func (c *DeviceFarm) GetRemoteAccessSessionRequest(input *GetRemoteAccessSessionInput) (req *request.Request, output *GetRemoteAccessSessionOutput) {
2590	op := &request.Operation{
2591		Name:       opGetRemoteAccessSession,
2592		HTTPMethod: "POST",
2593		HTTPPath:   "/",
2594	}
2595
2596	if input == nil {
2597		input = &GetRemoteAccessSessionInput{}
2598	}
2599
2600	output = &GetRemoteAccessSessionOutput{}
2601	req = c.newRequest(op, input, output)
2602	return
2603}
2604
2605// GetRemoteAccessSession API operation for AWS Device Farm.
2606//
2607// Returns a link to a currently running remote access session.
2608//
2609// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2610// with awserr.Error's Code and Message methods to get detailed information about
2611// the error.
2612//
2613// See the AWS API reference guide for AWS Device Farm's
2614// API operation GetRemoteAccessSession for usage and error information.
2615//
2616// Returned Error Codes:
2617//   * ErrCodeArgumentException "ArgumentException"
2618//   An invalid argument was specified.
2619//
2620//   * ErrCodeNotFoundException "NotFoundException"
2621//   The specified entity was not found.
2622//
2623//   * ErrCodeLimitExceededException "LimitExceededException"
2624//   A limit was exceeded.
2625//
2626//   * ErrCodeServiceAccountException "ServiceAccountException"
2627//   There was a problem with the service account.
2628//
2629// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetRemoteAccessSession
2630func (c *DeviceFarm) GetRemoteAccessSession(input *GetRemoteAccessSessionInput) (*GetRemoteAccessSessionOutput, error) {
2631	req, out := c.GetRemoteAccessSessionRequest(input)
2632	return out, req.Send()
2633}
2634
2635// GetRemoteAccessSessionWithContext is the same as GetRemoteAccessSession with the addition of
2636// the ability to pass a context and additional request options.
2637//
2638// See GetRemoteAccessSession for details on how to use this API operation.
2639//
2640// The context must be non-nil and will be used for request cancellation. If
2641// the context is nil a panic will occur. In the future the SDK may create
2642// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2643// for more information on using Contexts.
2644func (c *DeviceFarm) GetRemoteAccessSessionWithContext(ctx aws.Context, input *GetRemoteAccessSessionInput, opts ...request.Option) (*GetRemoteAccessSessionOutput, error) {
2645	req, out := c.GetRemoteAccessSessionRequest(input)
2646	req.SetContext(ctx)
2647	req.ApplyOptions(opts...)
2648	return out, req.Send()
2649}
2650
2651const opGetRun = "GetRun"
2652
2653// GetRunRequest generates a "aws/request.Request" representing the
2654// client's request for the GetRun operation. The "output" return
2655// value will be populated with the request's response once the request completes
2656// successfully.
2657//
2658// Use "Send" method on the returned Request to send the API call to the service.
2659// the "output" return value is not valid until after Send returns without error.
2660//
2661// See GetRun for more information on using the GetRun
2662// API call, and error handling.
2663//
2664// This method is useful when you want to inject custom logic or configuration
2665// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2666//
2667//
2668//    // Example sending a request using the GetRunRequest method.
2669//    req, resp := client.GetRunRequest(params)
2670//
2671//    err := req.Send()
2672//    if err == nil { // resp is now filled
2673//        fmt.Println(resp)
2674//    }
2675//
2676// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetRun
2677func (c *DeviceFarm) GetRunRequest(input *GetRunInput) (req *request.Request, output *GetRunOutput) {
2678	op := &request.Operation{
2679		Name:       opGetRun,
2680		HTTPMethod: "POST",
2681		HTTPPath:   "/",
2682	}
2683
2684	if input == nil {
2685		input = &GetRunInput{}
2686	}
2687
2688	output = &GetRunOutput{}
2689	req = c.newRequest(op, input, output)
2690	return
2691}
2692
2693// GetRun API operation for AWS Device Farm.
2694//
2695// Gets information about a run.
2696//
2697// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2698// with awserr.Error's Code and Message methods to get detailed information about
2699// the error.
2700//
2701// See the AWS API reference guide for AWS Device Farm's
2702// API operation GetRun for usage and error information.
2703//
2704// Returned Error Codes:
2705//   * ErrCodeArgumentException "ArgumentException"
2706//   An invalid argument was specified.
2707//
2708//   * ErrCodeNotFoundException "NotFoundException"
2709//   The specified entity was not found.
2710//
2711//   * ErrCodeLimitExceededException "LimitExceededException"
2712//   A limit was exceeded.
2713//
2714//   * ErrCodeServiceAccountException "ServiceAccountException"
2715//   There was a problem with the service account.
2716//
2717// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetRun
2718func (c *DeviceFarm) GetRun(input *GetRunInput) (*GetRunOutput, error) {
2719	req, out := c.GetRunRequest(input)
2720	return out, req.Send()
2721}
2722
2723// GetRunWithContext is the same as GetRun with the addition of
2724// the ability to pass a context and additional request options.
2725//
2726// See GetRun for details on how to use this API operation.
2727//
2728// The context must be non-nil and will be used for request cancellation. If
2729// the context is nil a panic will occur. In the future the SDK may create
2730// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2731// for more information on using Contexts.
2732func (c *DeviceFarm) GetRunWithContext(ctx aws.Context, input *GetRunInput, opts ...request.Option) (*GetRunOutput, error) {
2733	req, out := c.GetRunRequest(input)
2734	req.SetContext(ctx)
2735	req.ApplyOptions(opts...)
2736	return out, req.Send()
2737}
2738
2739const opGetSuite = "GetSuite"
2740
2741// GetSuiteRequest generates a "aws/request.Request" representing the
2742// client's request for the GetSuite operation. The "output" return
2743// value will be populated with the request's response once the request completes
2744// successfully.
2745//
2746// Use "Send" method on the returned Request to send the API call to the service.
2747// the "output" return value is not valid until after Send returns without error.
2748//
2749// See GetSuite for more information on using the GetSuite
2750// API call, and error handling.
2751//
2752// This method is useful when you want to inject custom logic or configuration
2753// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2754//
2755//
2756//    // Example sending a request using the GetSuiteRequest method.
2757//    req, resp := client.GetSuiteRequest(params)
2758//
2759//    err := req.Send()
2760//    if err == nil { // resp is now filled
2761//        fmt.Println(resp)
2762//    }
2763//
2764// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetSuite
2765func (c *DeviceFarm) GetSuiteRequest(input *GetSuiteInput) (req *request.Request, output *GetSuiteOutput) {
2766	op := &request.Operation{
2767		Name:       opGetSuite,
2768		HTTPMethod: "POST",
2769		HTTPPath:   "/",
2770	}
2771
2772	if input == nil {
2773		input = &GetSuiteInput{}
2774	}
2775
2776	output = &GetSuiteOutput{}
2777	req = c.newRequest(op, input, output)
2778	return
2779}
2780
2781// GetSuite API operation for AWS Device Farm.
2782//
2783// Gets information about a suite.
2784//
2785// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2786// with awserr.Error's Code and Message methods to get detailed information about
2787// the error.
2788//
2789// See the AWS API reference guide for AWS Device Farm's
2790// API operation GetSuite for usage and error information.
2791//
2792// Returned Error Codes:
2793//   * ErrCodeArgumentException "ArgumentException"
2794//   An invalid argument was specified.
2795//
2796//   * ErrCodeNotFoundException "NotFoundException"
2797//   The specified entity was not found.
2798//
2799//   * ErrCodeLimitExceededException "LimitExceededException"
2800//   A limit was exceeded.
2801//
2802//   * ErrCodeServiceAccountException "ServiceAccountException"
2803//   There was a problem with the service account.
2804//
2805// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetSuite
2806func (c *DeviceFarm) GetSuite(input *GetSuiteInput) (*GetSuiteOutput, error) {
2807	req, out := c.GetSuiteRequest(input)
2808	return out, req.Send()
2809}
2810
2811// GetSuiteWithContext is the same as GetSuite with the addition of
2812// the ability to pass a context and additional request options.
2813//
2814// See GetSuite for details on how to use this API operation.
2815//
2816// The context must be non-nil and will be used for request cancellation. If
2817// the context is nil a panic will occur. In the future the SDK may create
2818// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2819// for more information on using Contexts.
2820func (c *DeviceFarm) GetSuiteWithContext(ctx aws.Context, input *GetSuiteInput, opts ...request.Option) (*GetSuiteOutput, error) {
2821	req, out := c.GetSuiteRequest(input)
2822	req.SetContext(ctx)
2823	req.ApplyOptions(opts...)
2824	return out, req.Send()
2825}
2826
2827const opGetTest = "GetTest"
2828
2829// GetTestRequest generates a "aws/request.Request" representing the
2830// client's request for the GetTest operation. The "output" return
2831// value will be populated with the request's response once the request completes
2832// successfully.
2833//
2834// Use "Send" method on the returned Request to send the API call to the service.
2835// the "output" return value is not valid until after Send returns without error.
2836//
2837// See GetTest for more information on using the GetTest
2838// API call, and error handling.
2839//
2840// This method is useful when you want to inject custom logic or configuration
2841// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2842//
2843//
2844//    // Example sending a request using the GetTestRequest method.
2845//    req, resp := client.GetTestRequest(params)
2846//
2847//    err := req.Send()
2848//    if err == nil { // resp is now filled
2849//        fmt.Println(resp)
2850//    }
2851//
2852// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetTest
2853func (c *DeviceFarm) GetTestRequest(input *GetTestInput) (req *request.Request, output *GetTestOutput) {
2854	op := &request.Operation{
2855		Name:       opGetTest,
2856		HTTPMethod: "POST",
2857		HTTPPath:   "/",
2858	}
2859
2860	if input == nil {
2861		input = &GetTestInput{}
2862	}
2863
2864	output = &GetTestOutput{}
2865	req = c.newRequest(op, input, output)
2866	return
2867}
2868
2869// GetTest API operation for AWS Device Farm.
2870//
2871// Gets information about a test.
2872//
2873// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2874// with awserr.Error's Code and Message methods to get detailed information about
2875// the error.
2876//
2877// See the AWS API reference guide for AWS Device Farm's
2878// API operation GetTest for usage and error information.
2879//
2880// Returned Error Codes:
2881//   * ErrCodeArgumentException "ArgumentException"
2882//   An invalid argument was specified.
2883//
2884//   * ErrCodeNotFoundException "NotFoundException"
2885//   The specified entity was not found.
2886//
2887//   * ErrCodeLimitExceededException "LimitExceededException"
2888//   A limit was exceeded.
2889//
2890//   * ErrCodeServiceAccountException "ServiceAccountException"
2891//   There was a problem with the service account.
2892//
2893// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetTest
2894func (c *DeviceFarm) GetTest(input *GetTestInput) (*GetTestOutput, error) {
2895	req, out := c.GetTestRequest(input)
2896	return out, req.Send()
2897}
2898
2899// GetTestWithContext is the same as GetTest with the addition of
2900// the ability to pass a context and additional request options.
2901//
2902// See GetTest for details on how to use this API operation.
2903//
2904// The context must be non-nil and will be used for request cancellation. If
2905// the context is nil a panic will occur. In the future the SDK may create
2906// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2907// for more information on using Contexts.
2908func (c *DeviceFarm) GetTestWithContext(ctx aws.Context, input *GetTestInput, opts ...request.Option) (*GetTestOutput, error) {
2909	req, out := c.GetTestRequest(input)
2910	req.SetContext(ctx)
2911	req.ApplyOptions(opts...)
2912	return out, req.Send()
2913}
2914
2915const opGetTestGridProject = "GetTestGridProject"
2916
2917// GetTestGridProjectRequest generates a "aws/request.Request" representing the
2918// client's request for the GetTestGridProject operation. The "output" return
2919// value will be populated with the request's response once the request completes
2920// successfully.
2921//
2922// Use "Send" method on the returned Request to send the API call to the service.
2923// the "output" return value is not valid until after Send returns without error.
2924//
2925// See GetTestGridProject for more information on using the GetTestGridProject
2926// API call, and error handling.
2927//
2928// This method is useful when you want to inject custom logic or configuration
2929// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2930//
2931//
2932//    // Example sending a request using the GetTestGridProjectRequest method.
2933//    req, resp := client.GetTestGridProjectRequest(params)
2934//
2935//    err := req.Send()
2936//    if err == nil { // resp is now filled
2937//        fmt.Println(resp)
2938//    }
2939//
2940// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetTestGridProject
2941func (c *DeviceFarm) GetTestGridProjectRequest(input *GetTestGridProjectInput) (req *request.Request, output *GetTestGridProjectOutput) {
2942	op := &request.Operation{
2943		Name:       opGetTestGridProject,
2944		HTTPMethod: "POST",
2945		HTTPPath:   "/",
2946	}
2947
2948	if input == nil {
2949		input = &GetTestGridProjectInput{}
2950	}
2951
2952	output = &GetTestGridProjectOutput{}
2953	req = c.newRequest(op, input, output)
2954	return
2955}
2956
2957// GetTestGridProject API operation for AWS Device Farm.
2958//
2959// Retrieves information about a Selenium testing project.
2960//
2961// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2962// with awserr.Error's Code and Message methods to get detailed information about
2963// the error.
2964//
2965// See the AWS API reference guide for AWS Device Farm's
2966// API operation GetTestGridProject for usage and error information.
2967//
2968// Returned Error Codes:
2969//   * ErrCodeNotFoundException "NotFoundException"
2970//   The specified entity was not found.
2971//
2972//   * ErrCodeArgumentException "ArgumentException"
2973//   An invalid argument was specified.
2974//
2975//   * ErrCodeInternalServiceException "InternalServiceException"
2976//   An internal exception was raised in the service. Contact aws-devicefarm-support@amazon.com
2977//   (mailto:aws-devicefarm-support@amazon.com) if you see this error.
2978//
2979// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetTestGridProject
2980func (c *DeviceFarm) GetTestGridProject(input *GetTestGridProjectInput) (*GetTestGridProjectOutput, error) {
2981	req, out := c.GetTestGridProjectRequest(input)
2982	return out, req.Send()
2983}
2984
2985// GetTestGridProjectWithContext is the same as GetTestGridProject with the addition of
2986// the ability to pass a context and additional request options.
2987//
2988// See GetTestGridProject for details on how to use this API operation.
2989//
2990// The context must be non-nil and will be used for request cancellation. If
2991// the context is nil a panic will occur. In the future the SDK may create
2992// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2993// for more information on using Contexts.
2994func (c *DeviceFarm) GetTestGridProjectWithContext(ctx aws.Context, input *GetTestGridProjectInput, opts ...request.Option) (*GetTestGridProjectOutput, error) {
2995	req, out := c.GetTestGridProjectRequest(input)
2996	req.SetContext(ctx)
2997	req.ApplyOptions(opts...)
2998	return out, req.Send()
2999}
3000
3001const opGetTestGridSession = "GetTestGridSession"
3002
3003// GetTestGridSessionRequest generates a "aws/request.Request" representing the
3004// client's request for the GetTestGridSession operation. The "output" return
3005// value will be populated with the request's response once the request completes
3006// successfully.
3007//
3008// Use "Send" method on the returned Request to send the API call to the service.
3009// the "output" return value is not valid until after Send returns without error.
3010//
3011// See GetTestGridSession for more information on using the GetTestGridSession
3012// API call, and error handling.
3013//
3014// This method is useful when you want to inject custom logic or configuration
3015// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3016//
3017//
3018//    // Example sending a request using the GetTestGridSessionRequest method.
3019//    req, resp := client.GetTestGridSessionRequest(params)
3020//
3021//    err := req.Send()
3022//    if err == nil { // resp is now filled
3023//        fmt.Println(resp)
3024//    }
3025//
3026// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetTestGridSession
3027func (c *DeviceFarm) GetTestGridSessionRequest(input *GetTestGridSessionInput) (req *request.Request, output *GetTestGridSessionOutput) {
3028	op := &request.Operation{
3029		Name:       opGetTestGridSession,
3030		HTTPMethod: "POST",
3031		HTTPPath:   "/",
3032	}
3033
3034	if input == nil {
3035		input = &GetTestGridSessionInput{}
3036	}
3037
3038	output = &GetTestGridSessionOutput{}
3039	req = c.newRequest(op, input, output)
3040	return
3041}
3042
3043// GetTestGridSession API operation for AWS Device Farm.
3044//
3045// A session is an instance of a browser created through a RemoteWebDriver with
3046// the URL from CreateTestGridUrlResult$url. You can use the following to look
3047// up sessions:
3048//
3049//    * The session ARN (GetTestGridSessionRequest$sessionArn).
3050//
3051//    * The project ARN and a session ID (GetTestGridSessionRequest$projectArn
3052//    and GetTestGridSessionRequest$sessionId).
3053//
3054// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3055// with awserr.Error's Code and Message methods to get detailed information about
3056// the error.
3057//
3058// See the AWS API reference guide for AWS Device Farm's
3059// API operation GetTestGridSession for usage and error information.
3060//
3061// Returned Error Codes:
3062//   * ErrCodeNotFoundException "NotFoundException"
3063//   The specified entity was not found.
3064//
3065//   * ErrCodeArgumentException "ArgumentException"
3066//   An invalid argument was specified.
3067//
3068//   * ErrCodeInternalServiceException "InternalServiceException"
3069//   An internal exception was raised in the service. Contact aws-devicefarm-support@amazon.com
3070//   (mailto:aws-devicefarm-support@amazon.com) if you see this error.
3071//
3072// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetTestGridSession
3073func (c *DeviceFarm) GetTestGridSession(input *GetTestGridSessionInput) (*GetTestGridSessionOutput, error) {
3074	req, out := c.GetTestGridSessionRequest(input)
3075	return out, req.Send()
3076}
3077
3078// GetTestGridSessionWithContext is the same as GetTestGridSession with the addition of
3079// the ability to pass a context and additional request options.
3080//
3081// See GetTestGridSession for details on how to use this API operation.
3082//
3083// The context must be non-nil and will be used for request cancellation. If
3084// the context is nil a panic will occur. In the future the SDK may create
3085// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3086// for more information on using Contexts.
3087func (c *DeviceFarm) GetTestGridSessionWithContext(ctx aws.Context, input *GetTestGridSessionInput, opts ...request.Option) (*GetTestGridSessionOutput, error) {
3088	req, out := c.GetTestGridSessionRequest(input)
3089	req.SetContext(ctx)
3090	req.ApplyOptions(opts...)
3091	return out, req.Send()
3092}
3093
3094const opGetUpload = "GetUpload"
3095
3096// GetUploadRequest generates a "aws/request.Request" representing the
3097// client's request for the GetUpload operation. The "output" return
3098// value will be populated with the request's response once the request completes
3099// successfully.
3100//
3101// Use "Send" method on the returned Request to send the API call to the service.
3102// the "output" return value is not valid until after Send returns without error.
3103//
3104// See GetUpload for more information on using the GetUpload
3105// API call, and error handling.
3106//
3107// This method is useful when you want to inject custom logic or configuration
3108// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3109//
3110//
3111//    // Example sending a request using the GetUploadRequest method.
3112//    req, resp := client.GetUploadRequest(params)
3113//
3114//    err := req.Send()
3115//    if err == nil { // resp is now filled
3116//        fmt.Println(resp)
3117//    }
3118//
3119// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetUpload
3120func (c *DeviceFarm) GetUploadRequest(input *GetUploadInput) (req *request.Request, output *GetUploadOutput) {
3121	op := &request.Operation{
3122		Name:       opGetUpload,
3123		HTTPMethod: "POST",
3124		HTTPPath:   "/",
3125	}
3126
3127	if input == nil {
3128		input = &GetUploadInput{}
3129	}
3130
3131	output = &GetUploadOutput{}
3132	req = c.newRequest(op, input, output)
3133	return
3134}
3135
3136// GetUpload API operation for AWS Device Farm.
3137//
3138// Gets information about an upload.
3139//
3140// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3141// with awserr.Error's Code and Message methods to get detailed information about
3142// the error.
3143//
3144// See the AWS API reference guide for AWS Device Farm's
3145// API operation GetUpload for usage and error information.
3146//
3147// Returned Error Codes:
3148//   * ErrCodeArgumentException "ArgumentException"
3149//   An invalid argument was specified.
3150//
3151//   * ErrCodeNotFoundException "NotFoundException"
3152//   The specified entity was not found.
3153//
3154//   * ErrCodeLimitExceededException "LimitExceededException"
3155//   A limit was exceeded.
3156//
3157//   * ErrCodeServiceAccountException "ServiceAccountException"
3158//   There was a problem with the service account.
3159//
3160// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetUpload
3161func (c *DeviceFarm) GetUpload(input *GetUploadInput) (*GetUploadOutput, error) {
3162	req, out := c.GetUploadRequest(input)
3163	return out, req.Send()
3164}
3165
3166// GetUploadWithContext is the same as GetUpload with the addition of
3167// the ability to pass a context and additional request options.
3168//
3169// See GetUpload for details on how to use this API operation.
3170//
3171// The context must be non-nil and will be used for request cancellation. If
3172// the context is nil a panic will occur. In the future the SDK may create
3173// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3174// for more information on using Contexts.
3175func (c *DeviceFarm) GetUploadWithContext(ctx aws.Context, input *GetUploadInput, opts ...request.Option) (*GetUploadOutput, error) {
3176	req, out := c.GetUploadRequest(input)
3177	req.SetContext(ctx)
3178	req.ApplyOptions(opts...)
3179	return out, req.Send()
3180}
3181
3182const opGetVPCEConfiguration = "GetVPCEConfiguration"
3183
3184// GetVPCEConfigurationRequest generates a "aws/request.Request" representing the
3185// client's request for the GetVPCEConfiguration operation. The "output" return
3186// value will be populated with the request's response once the request completes
3187// successfully.
3188//
3189// Use "Send" method on the returned Request to send the API call to the service.
3190// the "output" return value is not valid until after Send returns without error.
3191//
3192// See GetVPCEConfiguration for more information on using the GetVPCEConfiguration
3193// API call, and error handling.
3194//
3195// This method is useful when you want to inject custom logic or configuration
3196// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3197//
3198//
3199//    // Example sending a request using the GetVPCEConfigurationRequest method.
3200//    req, resp := client.GetVPCEConfigurationRequest(params)
3201//
3202//    err := req.Send()
3203//    if err == nil { // resp is now filled
3204//        fmt.Println(resp)
3205//    }
3206//
3207// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetVPCEConfiguration
3208func (c *DeviceFarm) GetVPCEConfigurationRequest(input *GetVPCEConfigurationInput) (req *request.Request, output *GetVPCEConfigurationOutput) {
3209	op := &request.Operation{
3210		Name:       opGetVPCEConfiguration,
3211		HTTPMethod: "POST",
3212		HTTPPath:   "/",
3213	}
3214
3215	if input == nil {
3216		input = &GetVPCEConfigurationInput{}
3217	}
3218
3219	output = &GetVPCEConfigurationOutput{}
3220	req = c.newRequest(op, input, output)
3221	return
3222}
3223
3224// GetVPCEConfiguration API operation for AWS Device Farm.
3225//
3226// Returns information about the configuration settings for your Amazon Virtual
3227// Private Cloud (VPC) endpoint.
3228//
3229// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3230// with awserr.Error's Code and Message methods to get detailed information about
3231// the error.
3232//
3233// See the AWS API reference guide for AWS Device Farm's
3234// API operation GetVPCEConfiguration for usage and error information.
3235//
3236// Returned Error Codes:
3237//   * ErrCodeArgumentException "ArgumentException"
3238//   An invalid argument was specified.
3239//
3240//   * ErrCodeNotFoundException "NotFoundException"
3241//   The specified entity was not found.
3242//
3243//   * ErrCodeServiceAccountException "ServiceAccountException"
3244//   There was a problem with the service account.
3245//
3246// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetVPCEConfiguration
3247func (c *DeviceFarm) GetVPCEConfiguration(input *GetVPCEConfigurationInput) (*GetVPCEConfigurationOutput, error) {
3248	req, out := c.GetVPCEConfigurationRequest(input)
3249	return out, req.Send()
3250}
3251
3252// GetVPCEConfigurationWithContext is the same as GetVPCEConfiguration with the addition of
3253// the ability to pass a context and additional request options.
3254//
3255// See GetVPCEConfiguration for details on how to use this API operation.
3256//
3257// The context must be non-nil and will be used for request cancellation. If
3258// the context is nil a panic will occur. In the future the SDK may create
3259// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3260// for more information on using Contexts.
3261func (c *DeviceFarm) GetVPCEConfigurationWithContext(ctx aws.Context, input *GetVPCEConfigurationInput, opts ...request.Option) (*GetVPCEConfigurationOutput, error) {
3262	req, out := c.GetVPCEConfigurationRequest(input)
3263	req.SetContext(ctx)
3264	req.ApplyOptions(opts...)
3265	return out, req.Send()
3266}
3267
3268const opInstallToRemoteAccessSession = "InstallToRemoteAccessSession"
3269
3270// InstallToRemoteAccessSessionRequest generates a "aws/request.Request" representing the
3271// client's request for the InstallToRemoteAccessSession operation. The "output" return
3272// value will be populated with the request's response once the request completes
3273// successfully.
3274//
3275// Use "Send" method on the returned Request to send the API call to the service.
3276// the "output" return value is not valid until after Send returns without error.
3277//
3278// See InstallToRemoteAccessSession for more information on using the InstallToRemoteAccessSession
3279// API call, and error handling.
3280//
3281// This method is useful when you want to inject custom logic or configuration
3282// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3283//
3284//
3285//    // Example sending a request using the InstallToRemoteAccessSessionRequest method.
3286//    req, resp := client.InstallToRemoteAccessSessionRequest(params)
3287//
3288//    err := req.Send()
3289//    if err == nil { // resp is now filled
3290//        fmt.Println(resp)
3291//    }
3292//
3293// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/InstallToRemoteAccessSession
3294func (c *DeviceFarm) InstallToRemoteAccessSessionRequest(input *InstallToRemoteAccessSessionInput) (req *request.Request, output *InstallToRemoteAccessSessionOutput) {
3295	op := &request.Operation{
3296		Name:       opInstallToRemoteAccessSession,
3297		HTTPMethod: "POST",
3298		HTTPPath:   "/",
3299	}
3300
3301	if input == nil {
3302		input = &InstallToRemoteAccessSessionInput{}
3303	}
3304
3305	output = &InstallToRemoteAccessSessionOutput{}
3306	req = c.newRequest(op, input, output)
3307	return
3308}
3309
3310// InstallToRemoteAccessSession API operation for AWS Device Farm.
3311//
3312// Installs an application to the device in a remote access session. For Android
3313// applications, the file must be in .apk format. For iOS applications, the
3314// file must be in .ipa format.
3315//
3316// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3317// with awserr.Error's Code and Message methods to get detailed information about
3318// the error.
3319//
3320// See the AWS API reference guide for AWS Device Farm's
3321// API operation InstallToRemoteAccessSession for usage and error information.
3322//
3323// Returned Error Codes:
3324//   * ErrCodeArgumentException "ArgumentException"
3325//   An invalid argument was specified.
3326//
3327//   * ErrCodeNotFoundException "NotFoundException"
3328//   The specified entity was not found.
3329//
3330//   * ErrCodeLimitExceededException "LimitExceededException"
3331//   A limit was exceeded.
3332//
3333//   * ErrCodeServiceAccountException "ServiceAccountException"
3334//   There was a problem with the service account.
3335//
3336// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/InstallToRemoteAccessSession
3337func (c *DeviceFarm) InstallToRemoteAccessSession(input *InstallToRemoteAccessSessionInput) (*InstallToRemoteAccessSessionOutput, error) {
3338	req, out := c.InstallToRemoteAccessSessionRequest(input)
3339	return out, req.Send()
3340}
3341
3342// InstallToRemoteAccessSessionWithContext is the same as InstallToRemoteAccessSession with the addition of
3343// the ability to pass a context and additional request options.
3344//
3345// See InstallToRemoteAccessSession for details on how to use this API operation.
3346//
3347// The context must be non-nil and will be used for request cancellation. If
3348// the context is nil a panic will occur. In the future the SDK may create
3349// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3350// for more information on using Contexts.
3351func (c *DeviceFarm) InstallToRemoteAccessSessionWithContext(ctx aws.Context, input *InstallToRemoteAccessSessionInput, opts ...request.Option) (*InstallToRemoteAccessSessionOutput, error) {
3352	req, out := c.InstallToRemoteAccessSessionRequest(input)
3353	req.SetContext(ctx)
3354	req.ApplyOptions(opts...)
3355	return out, req.Send()
3356}
3357
3358const opListArtifacts = "ListArtifacts"
3359
3360// ListArtifactsRequest generates a "aws/request.Request" representing the
3361// client's request for the ListArtifacts operation. The "output" return
3362// value will be populated with the request's response once the request completes
3363// successfully.
3364//
3365// Use "Send" method on the returned Request to send the API call to the service.
3366// the "output" return value is not valid until after Send returns without error.
3367//
3368// See ListArtifacts for more information on using the ListArtifacts
3369// API call, and error handling.
3370//
3371// This method is useful when you want to inject custom logic or configuration
3372// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3373//
3374//
3375//    // Example sending a request using the ListArtifactsRequest method.
3376//    req, resp := client.ListArtifactsRequest(params)
3377//
3378//    err := req.Send()
3379//    if err == nil { // resp is now filled
3380//        fmt.Println(resp)
3381//    }
3382//
3383// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListArtifacts
3384func (c *DeviceFarm) ListArtifactsRequest(input *ListArtifactsInput) (req *request.Request, output *ListArtifactsOutput) {
3385	op := &request.Operation{
3386		Name:       opListArtifacts,
3387		HTTPMethod: "POST",
3388		HTTPPath:   "/",
3389		Paginator: &request.Paginator{
3390			InputTokens:     []string{"nextToken"},
3391			OutputTokens:    []string{"nextToken"},
3392			LimitToken:      "",
3393			TruncationToken: "",
3394		},
3395	}
3396
3397	if input == nil {
3398		input = &ListArtifactsInput{}
3399	}
3400
3401	output = &ListArtifactsOutput{}
3402	req = c.newRequest(op, input, output)
3403	return
3404}
3405
3406// ListArtifacts API operation for AWS Device Farm.
3407//
3408// Gets information about artifacts.
3409//
3410// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3411// with awserr.Error's Code and Message methods to get detailed information about
3412// the error.
3413//
3414// See the AWS API reference guide for AWS Device Farm's
3415// API operation ListArtifacts for usage and error information.
3416//
3417// Returned Error Codes:
3418//   * ErrCodeArgumentException "ArgumentException"
3419//   An invalid argument was specified.
3420//
3421//   * ErrCodeNotFoundException "NotFoundException"
3422//   The specified entity was not found.
3423//
3424//   * ErrCodeLimitExceededException "LimitExceededException"
3425//   A limit was exceeded.
3426//
3427//   * ErrCodeServiceAccountException "ServiceAccountException"
3428//   There was a problem with the service account.
3429//
3430// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListArtifacts
3431func (c *DeviceFarm) ListArtifacts(input *ListArtifactsInput) (*ListArtifactsOutput, error) {
3432	req, out := c.ListArtifactsRequest(input)
3433	return out, req.Send()
3434}
3435
3436// ListArtifactsWithContext is the same as ListArtifacts with the addition of
3437// the ability to pass a context and additional request options.
3438//
3439// See ListArtifacts for details on how to use this API operation.
3440//
3441// The context must be non-nil and will be used for request cancellation. If
3442// the context is nil a panic will occur. In the future the SDK may create
3443// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3444// for more information on using Contexts.
3445func (c *DeviceFarm) ListArtifactsWithContext(ctx aws.Context, input *ListArtifactsInput, opts ...request.Option) (*ListArtifactsOutput, error) {
3446	req, out := c.ListArtifactsRequest(input)
3447	req.SetContext(ctx)
3448	req.ApplyOptions(opts...)
3449	return out, req.Send()
3450}
3451
3452// ListArtifactsPages iterates over the pages of a ListArtifacts operation,
3453// calling the "fn" function with the response data for each page. To stop
3454// iterating, return false from the fn function.
3455//
3456// See ListArtifacts method for more information on how to use this operation.
3457//
3458// Note: This operation can generate multiple requests to a service.
3459//
3460//    // Example iterating over at most 3 pages of a ListArtifacts operation.
3461//    pageNum := 0
3462//    err := client.ListArtifactsPages(params,
3463//        func(page *devicefarm.ListArtifactsOutput, lastPage bool) bool {
3464//            pageNum++
3465//            fmt.Println(page)
3466//            return pageNum <= 3
3467//        })
3468//
3469func (c *DeviceFarm) ListArtifactsPages(input *ListArtifactsInput, fn func(*ListArtifactsOutput, bool) bool) error {
3470	return c.ListArtifactsPagesWithContext(aws.BackgroundContext(), input, fn)
3471}
3472
3473// ListArtifactsPagesWithContext same as ListArtifactsPages except
3474// it takes a Context and allows setting request options on the pages.
3475//
3476// The context must be non-nil and will be used for request cancellation. If
3477// the context is nil a panic will occur. In the future the SDK may create
3478// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3479// for more information on using Contexts.
3480func (c *DeviceFarm) ListArtifactsPagesWithContext(ctx aws.Context, input *ListArtifactsInput, fn func(*ListArtifactsOutput, bool) bool, opts ...request.Option) error {
3481	p := request.Pagination{
3482		NewRequest: func() (*request.Request, error) {
3483			var inCpy *ListArtifactsInput
3484			if input != nil {
3485				tmp := *input
3486				inCpy = &tmp
3487			}
3488			req, _ := c.ListArtifactsRequest(inCpy)
3489			req.SetContext(ctx)
3490			req.ApplyOptions(opts...)
3491			return req, nil
3492		},
3493	}
3494
3495	for p.Next() {
3496		if !fn(p.Page().(*ListArtifactsOutput), !p.HasNextPage()) {
3497			break
3498		}
3499	}
3500
3501	return p.Err()
3502}
3503
3504const opListDeviceInstances = "ListDeviceInstances"
3505
3506// ListDeviceInstancesRequest generates a "aws/request.Request" representing the
3507// client's request for the ListDeviceInstances operation. The "output" return
3508// value will be populated with the request's response once the request completes
3509// successfully.
3510//
3511// Use "Send" method on the returned Request to send the API call to the service.
3512// the "output" return value is not valid until after Send returns without error.
3513//
3514// See ListDeviceInstances for more information on using the ListDeviceInstances
3515// API call, and error handling.
3516//
3517// This method is useful when you want to inject custom logic or configuration
3518// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3519//
3520//
3521//    // Example sending a request using the ListDeviceInstancesRequest method.
3522//    req, resp := client.ListDeviceInstancesRequest(params)
3523//
3524//    err := req.Send()
3525//    if err == nil { // resp is now filled
3526//        fmt.Println(resp)
3527//    }
3528//
3529// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListDeviceInstances
3530func (c *DeviceFarm) ListDeviceInstancesRequest(input *ListDeviceInstancesInput) (req *request.Request, output *ListDeviceInstancesOutput) {
3531	op := &request.Operation{
3532		Name:       opListDeviceInstances,
3533		HTTPMethod: "POST",
3534		HTTPPath:   "/",
3535	}
3536
3537	if input == nil {
3538		input = &ListDeviceInstancesInput{}
3539	}
3540
3541	output = &ListDeviceInstancesOutput{}
3542	req = c.newRequest(op, input, output)
3543	return
3544}
3545
3546// ListDeviceInstances API operation for AWS Device Farm.
3547//
3548// Returns information about the private device instances associated with one
3549// or more AWS accounts.
3550//
3551// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3552// with awserr.Error's Code and Message methods to get detailed information about
3553// the error.
3554//
3555// See the AWS API reference guide for AWS Device Farm's
3556// API operation ListDeviceInstances for usage and error information.
3557//
3558// Returned Error Codes:
3559//   * ErrCodeArgumentException "ArgumentException"
3560//   An invalid argument was specified.
3561//
3562//   * ErrCodeNotFoundException "NotFoundException"
3563//   The specified entity was not found.
3564//
3565//   * ErrCodeLimitExceededException "LimitExceededException"
3566//   A limit was exceeded.
3567//
3568//   * ErrCodeServiceAccountException "ServiceAccountException"
3569//   There was a problem with the service account.
3570//
3571// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListDeviceInstances
3572func (c *DeviceFarm) ListDeviceInstances(input *ListDeviceInstancesInput) (*ListDeviceInstancesOutput, error) {
3573	req, out := c.ListDeviceInstancesRequest(input)
3574	return out, req.Send()
3575}
3576
3577// ListDeviceInstancesWithContext is the same as ListDeviceInstances with the addition of
3578// the ability to pass a context and additional request options.
3579//
3580// See ListDeviceInstances for details on how to use this API operation.
3581//
3582// The context must be non-nil and will be used for request cancellation. If
3583// the context is nil a panic will occur. In the future the SDK may create
3584// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3585// for more information on using Contexts.
3586func (c *DeviceFarm) ListDeviceInstancesWithContext(ctx aws.Context, input *ListDeviceInstancesInput, opts ...request.Option) (*ListDeviceInstancesOutput, error) {
3587	req, out := c.ListDeviceInstancesRequest(input)
3588	req.SetContext(ctx)
3589	req.ApplyOptions(opts...)
3590	return out, req.Send()
3591}
3592
3593const opListDevicePools = "ListDevicePools"
3594
3595// ListDevicePoolsRequest generates a "aws/request.Request" representing the
3596// client's request for the ListDevicePools operation. The "output" return
3597// value will be populated with the request's response once the request completes
3598// successfully.
3599//
3600// Use "Send" method on the returned Request to send the API call to the service.
3601// the "output" return value is not valid until after Send returns without error.
3602//
3603// See ListDevicePools for more information on using the ListDevicePools
3604// API call, and error handling.
3605//
3606// This method is useful when you want to inject custom logic or configuration
3607// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3608//
3609//
3610//    // Example sending a request using the ListDevicePoolsRequest method.
3611//    req, resp := client.ListDevicePoolsRequest(params)
3612//
3613//    err := req.Send()
3614//    if err == nil { // resp is now filled
3615//        fmt.Println(resp)
3616//    }
3617//
3618// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListDevicePools
3619func (c *DeviceFarm) ListDevicePoolsRequest(input *ListDevicePoolsInput) (req *request.Request, output *ListDevicePoolsOutput) {
3620	op := &request.Operation{
3621		Name:       opListDevicePools,
3622		HTTPMethod: "POST",
3623		HTTPPath:   "/",
3624		Paginator: &request.Paginator{
3625			InputTokens:     []string{"nextToken"},
3626			OutputTokens:    []string{"nextToken"},
3627			LimitToken:      "",
3628			TruncationToken: "",
3629		},
3630	}
3631
3632	if input == nil {
3633		input = &ListDevicePoolsInput{}
3634	}
3635
3636	output = &ListDevicePoolsOutput{}
3637	req = c.newRequest(op, input, output)
3638	return
3639}
3640
3641// ListDevicePools API operation for AWS Device Farm.
3642//
3643// Gets information about device pools.
3644//
3645// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3646// with awserr.Error's Code and Message methods to get detailed information about
3647// the error.
3648//
3649// See the AWS API reference guide for AWS Device Farm's
3650// API operation ListDevicePools for usage and error information.
3651//
3652// Returned Error Codes:
3653//   * ErrCodeArgumentException "ArgumentException"
3654//   An invalid argument was specified.
3655//
3656//   * ErrCodeNotFoundException "NotFoundException"
3657//   The specified entity was not found.
3658//
3659//   * ErrCodeLimitExceededException "LimitExceededException"
3660//   A limit was exceeded.
3661//
3662//   * ErrCodeServiceAccountException "ServiceAccountException"
3663//   There was a problem with the service account.
3664//
3665// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListDevicePools
3666func (c *DeviceFarm) ListDevicePools(input *ListDevicePoolsInput) (*ListDevicePoolsOutput, error) {
3667	req, out := c.ListDevicePoolsRequest(input)
3668	return out, req.Send()
3669}
3670
3671// ListDevicePoolsWithContext is the same as ListDevicePools with the addition of
3672// the ability to pass a context and additional request options.
3673//
3674// See ListDevicePools for details on how to use this API operation.
3675//
3676// The context must be non-nil and will be used for request cancellation. If
3677// the context is nil a panic will occur. In the future the SDK may create
3678// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3679// for more information on using Contexts.
3680func (c *DeviceFarm) ListDevicePoolsWithContext(ctx aws.Context, input *ListDevicePoolsInput, opts ...request.Option) (*ListDevicePoolsOutput, error) {
3681	req, out := c.ListDevicePoolsRequest(input)
3682	req.SetContext(ctx)
3683	req.ApplyOptions(opts...)
3684	return out, req.Send()
3685}
3686
3687// ListDevicePoolsPages iterates over the pages of a ListDevicePools operation,
3688// calling the "fn" function with the response data for each page. To stop
3689// iterating, return false from the fn function.
3690//
3691// See ListDevicePools method for more information on how to use this operation.
3692//
3693// Note: This operation can generate multiple requests to a service.
3694//
3695//    // Example iterating over at most 3 pages of a ListDevicePools operation.
3696//    pageNum := 0
3697//    err := client.ListDevicePoolsPages(params,
3698//        func(page *devicefarm.ListDevicePoolsOutput, lastPage bool) bool {
3699//            pageNum++
3700//            fmt.Println(page)
3701//            return pageNum <= 3
3702//        })
3703//
3704func (c *DeviceFarm) ListDevicePoolsPages(input *ListDevicePoolsInput, fn func(*ListDevicePoolsOutput, bool) bool) error {
3705	return c.ListDevicePoolsPagesWithContext(aws.BackgroundContext(), input, fn)
3706}
3707
3708// ListDevicePoolsPagesWithContext same as ListDevicePoolsPages except
3709// it takes a Context and allows setting request options on the pages.
3710//
3711// The context must be non-nil and will be used for request cancellation. If
3712// the context is nil a panic will occur. In the future the SDK may create
3713// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3714// for more information on using Contexts.
3715func (c *DeviceFarm) ListDevicePoolsPagesWithContext(ctx aws.Context, input *ListDevicePoolsInput, fn func(*ListDevicePoolsOutput, bool) bool, opts ...request.Option) error {
3716	p := request.Pagination{
3717		NewRequest: func() (*request.Request, error) {
3718			var inCpy *ListDevicePoolsInput
3719			if input != nil {
3720				tmp := *input
3721				inCpy = &tmp
3722			}
3723			req, _ := c.ListDevicePoolsRequest(inCpy)
3724			req.SetContext(ctx)
3725			req.ApplyOptions(opts...)
3726			return req, nil
3727		},
3728	}
3729
3730	for p.Next() {
3731		if !fn(p.Page().(*ListDevicePoolsOutput), !p.HasNextPage()) {
3732			break
3733		}
3734	}
3735
3736	return p.Err()
3737}
3738
3739const opListDevices = "ListDevices"
3740
3741// ListDevicesRequest generates a "aws/request.Request" representing the
3742// client's request for the ListDevices operation. The "output" return
3743// value will be populated with the request's response once the request completes
3744// successfully.
3745//
3746// Use "Send" method on the returned Request to send the API call to the service.
3747// the "output" return value is not valid until after Send returns without error.
3748//
3749// See ListDevices for more information on using the ListDevices
3750// API call, and error handling.
3751//
3752// This method is useful when you want to inject custom logic or configuration
3753// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3754//
3755//
3756//    // Example sending a request using the ListDevicesRequest method.
3757//    req, resp := client.ListDevicesRequest(params)
3758//
3759//    err := req.Send()
3760//    if err == nil { // resp is now filled
3761//        fmt.Println(resp)
3762//    }
3763//
3764// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListDevices
3765func (c *DeviceFarm) ListDevicesRequest(input *ListDevicesInput) (req *request.Request, output *ListDevicesOutput) {
3766	op := &request.Operation{
3767		Name:       opListDevices,
3768		HTTPMethod: "POST",
3769		HTTPPath:   "/",
3770		Paginator: &request.Paginator{
3771			InputTokens:     []string{"nextToken"},
3772			OutputTokens:    []string{"nextToken"},
3773			LimitToken:      "",
3774			TruncationToken: "",
3775		},
3776	}
3777
3778	if input == nil {
3779		input = &ListDevicesInput{}
3780	}
3781
3782	output = &ListDevicesOutput{}
3783	req = c.newRequest(op, input, output)
3784	return
3785}
3786
3787// ListDevices API operation for AWS Device Farm.
3788//
3789// Gets information about unique device types.
3790//
3791// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3792// with awserr.Error's Code and Message methods to get detailed information about
3793// the error.
3794//
3795// See the AWS API reference guide for AWS Device Farm's
3796// API operation ListDevices for usage and error information.
3797//
3798// Returned Error Codes:
3799//   * ErrCodeArgumentException "ArgumentException"
3800//   An invalid argument was specified.
3801//
3802//   * ErrCodeNotFoundException "NotFoundException"
3803//   The specified entity was not found.
3804//
3805//   * ErrCodeLimitExceededException "LimitExceededException"
3806//   A limit was exceeded.
3807//
3808//   * ErrCodeServiceAccountException "ServiceAccountException"
3809//   There was a problem with the service account.
3810//
3811// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListDevices
3812func (c *DeviceFarm) ListDevices(input *ListDevicesInput) (*ListDevicesOutput, error) {
3813	req, out := c.ListDevicesRequest(input)
3814	return out, req.Send()
3815}
3816
3817// ListDevicesWithContext is the same as ListDevices with the addition of
3818// the ability to pass a context and additional request options.
3819//
3820// See ListDevices for details on how to use this API operation.
3821//
3822// The context must be non-nil and will be used for request cancellation. If
3823// the context is nil a panic will occur. In the future the SDK may create
3824// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3825// for more information on using Contexts.
3826func (c *DeviceFarm) ListDevicesWithContext(ctx aws.Context, input *ListDevicesInput, opts ...request.Option) (*ListDevicesOutput, error) {
3827	req, out := c.ListDevicesRequest(input)
3828	req.SetContext(ctx)
3829	req.ApplyOptions(opts...)
3830	return out, req.Send()
3831}
3832
3833// ListDevicesPages iterates over the pages of a ListDevices operation,
3834// calling the "fn" function with the response data for each page. To stop
3835// iterating, return false from the fn function.
3836//
3837// See ListDevices method for more information on how to use this operation.
3838//
3839// Note: This operation can generate multiple requests to a service.
3840//
3841//    // Example iterating over at most 3 pages of a ListDevices operation.
3842//    pageNum := 0
3843//    err := client.ListDevicesPages(params,
3844//        func(page *devicefarm.ListDevicesOutput, lastPage bool) bool {
3845//            pageNum++
3846//            fmt.Println(page)
3847//            return pageNum <= 3
3848//        })
3849//
3850func (c *DeviceFarm) ListDevicesPages(input *ListDevicesInput, fn func(*ListDevicesOutput, bool) bool) error {
3851	return c.ListDevicesPagesWithContext(aws.BackgroundContext(), input, fn)
3852}
3853
3854// ListDevicesPagesWithContext same as ListDevicesPages except
3855// it takes a Context and allows setting request options on the pages.
3856//
3857// The context must be non-nil and will be used for request cancellation. If
3858// the context is nil a panic will occur. In the future the SDK may create
3859// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3860// for more information on using Contexts.
3861func (c *DeviceFarm) ListDevicesPagesWithContext(ctx aws.Context, input *ListDevicesInput, fn func(*ListDevicesOutput, bool) bool, opts ...request.Option) error {
3862	p := request.Pagination{
3863		NewRequest: func() (*request.Request, error) {
3864			var inCpy *ListDevicesInput
3865			if input != nil {
3866				tmp := *input
3867				inCpy = &tmp
3868			}
3869			req, _ := c.ListDevicesRequest(inCpy)
3870			req.SetContext(ctx)
3871			req.ApplyOptions(opts...)
3872			return req, nil
3873		},
3874	}
3875
3876	for p.Next() {
3877		if !fn(p.Page().(*ListDevicesOutput), !p.HasNextPage()) {
3878			break
3879		}
3880	}
3881
3882	return p.Err()
3883}
3884
3885const opListInstanceProfiles = "ListInstanceProfiles"
3886
3887// ListInstanceProfilesRequest generates a "aws/request.Request" representing the
3888// client's request for the ListInstanceProfiles 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 ListInstanceProfiles for more information on using the ListInstanceProfiles
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 ListInstanceProfilesRequest method.
3903//    req, resp := client.ListInstanceProfilesRequest(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/devicefarm-2015-06-23/ListInstanceProfiles
3911func (c *DeviceFarm) ListInstanceProfilesRequest(input *ListInstanceProfilesInput) (req *request.Request, output *ListInstanceProfilesOutput) {
3912	op := &request.Operation{
3913		Name:       opListInstanceProfiles,
3914		HTTPMethod: "POST",
3915		HTTPPath:   "/",
3916	}
3917
3918	if input == nil {
3919		input = &ListInstanceProfilesInput{}
3920	}
3921
3922	output = &ListInstanceProfilesOutput{}
3923	req = c.newRequest(op, input, output)
3924	return
3925}
3926
3927// ListInstanceProfiles API operation for AWS Device Farm.
3928//
3929// Returns information about all the instance profiles in an AWS account.
3930//
3931// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3932// with awserr.Error's Code and Message methods to get detailed information about
3933// the error.
3934//
3935// See the AWS API reference guide for AWS Device Farm's
3936// API operation ListInstanceProfiles for usage and error information.
3937//
3938// Returned Error Codes:
3939//   * ErrCodeArgumentException "ArgumentException"
3940//   An invalid argument was specified.
3941//
3942//   * ErrCodeNotFoundException "NotFoundException"
3943//   The specified entity was not found.
3944//
3945//   * ErrCodeLimitExceededException "LimitExceededException"
3946//   A limit was exceeded.
3947//
3948//   * ErrCodeServiceAccountException "ServiceAccountException"
3949//   There was a problem with the service account.
3950//
3951// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListInstanceProfiles
3952func (c *DeviceFarm) ListInstanceProfiles(input *ListInstanceProfilesInput) (*ListInstanceProfilesOutput, error) {
3953	req, out := c.ListInstanceProfilesRequest(input)
3954	return out, req.Send()
3955}
3956
3957// ListInstanceProfilesWithContext is the same as ListInstanceProfiles with the addition of
3958// the ability to pass a context and additional request options.
3959//
3960// See ListInstanceProfiles for details on how to use this API operation.
3961//
3962// The context must be non-nil and will be used for request cancellation. If
3963// the context is nil a panic will occur. In the future the SDK may create
3964// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3965// for more information on using Contexts.
3966func (c *DeviceFarm) ListInstanceProfilesWithContext(ctx aws.Context, input *ListInstanceProfilesInput, opts ...request.Option) (*ListInstanceProfilesOutput, error) {
3967	req, out := c.ListInstanceProfilesRequest(input)
3968	req.SetContext(ctx)
3969	req.ApplyOptions(opts...)
3970	return out, req.Send()
3971}
3972
3973const opListJobs = "ListJobs"
3974
3975// ListJobsRequest generates a "aws/request.Request" representing the
3976// client's request for the ListJobs operation. The "output" return
3977// value will be populated with the request's response once the request completes
3978// successfully.
3979//
3980// Use "Send" method on the returned Request to send the API call to the service.
3981// the "output" return value is not valid until after Send returns without error.
3982//
3983// See ListJobs for more information on using the ListJobs
3984// API call, and error handling.
3985//
3986// This method is useful when you want to inject custom logic or configuration
3987// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3988//
3989//
3990//    // Example sending a request using the ListJobsRequest method.
3991//    req, resp := client.ListJobsRequest(params)
3992//
3993//    err := req.Send()
3994//    if err == nil { // resp is now filled
3995//        fmt.Println(resp)
3996//    }
3997//
3998// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListJobs
3999func (c *DeviceFarm) ListJobsRequest(input *ListJobsInput) (req *request.Request, output *ListJobsOutput) {
4000	op := &request.Operation{
4001		Name:       opListJobs,
4002		HTTPMethod: "POST",
4003		HTTPPath:   "/",
4004		Paginator: &request.Paginator{
4005			InputTokens:     []string{"nextToken"},
4006			OutputTokens:    []string{"nextToken"},
4007			LimitToken:      "",
4008			TruncationToken: "",
4009		},
4010	}
4011
4012	if input == nil {
4013		input = &ListJobsInput{}
4014	}
4015
4016	output = &ListJobsOutput{}
4017	req = c.newRequest(op, input, output)
4018	return
4019}
4020
4021// ListJobs API operation for AWS Device Farm.
4022//
4023// Gets information about jobs for a given test run.
4024//
4025// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4026// with awserr.Error's Code and Message methods to get detailed information about
4027// the error.
4028//
4029// See the AWS API reference guide for AWS Device Farm's
4030// API operation ListJobs for usage and error information.
4031//
4032// Returned Error Codes:
4033//   * ErrCodeArgumentException "ArgumentException"
4034//   An invalid argument was specified.
4035//
4036//   * ErrCodeNotFoundException "NotFoundException"
4037//   The specified entity was not found.
4038//
4039//   * ErrCodeLimitExceededException "LimitExceededException"
4040//   A limit was exceeded.
4041//
4042//   * ErrCodeServiceAccountException "ServiceAccountException"
4043//   There was a problem with the service account.
4044//
4045// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListJobs
4046func (c *DeviceFarm) ListJobs(input *ListJobsInput) (*ListJobsOutput, error) {
4047	req, out := c.ListJobsRequest(input)
4048	return out, req.Send()
4049}
4050
4051// ListJobsWithContext is the same as ListJobs with the addition of
4052// the ability to pass a context and additional request options.
4053//
4054// See ListJobs for details on how to use this API operation.
4055//
4056// The context must be non-nil and will be used for request cancellation. If
4057// the context is nil a panic will occur. In the future the SDK may create
4058// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4059// for more information on using Contexts.
4060func (c *DeviceFarm) ListJobsWithContext(ctx aws.Context, input *ListJobsInput, opts ...request.Option) (*ListJobsOutput, error) {
4061	req, out := c.ListJobsRequest(input)
4062	req.SetContext(ctx)
4063	req.ApplyOptions(opts...)
4064	return out, req.Send()
4065}
4066
4067// ListJobsPages iterates over the pages of a ListJobs operation,
4068// calling the "fn" function with the response data for each page. To stop
4069// iterating, return false from the fn function.
4070//
4071// See ListJobs method for more information on how to use this operation.
4072//
4073// Note: This operation can generate multiple requests to a service.
4074//
4075//    // Example iterating over at most 3 pages of a ListJobs operation.
4076//    pageNum := 0
4077//    err := client.ListJobsPages(params,
4078//        func(page *devicefarm.ListJobsOutput, lastPage bool) bool {
4079//            pageNum++
4080//            fmt.Println(page)
4081//            return pageNum <= 3
4082//        })
4083//
4084func (c *DeviceFarm) ListJobsPages(input *ListJobsInput, fn func(*ListJobsOutput, bool) bool) error {
4085	return c.ListJobsPagesWithContext(aws.BackgroundContext(), input, fn)
4086}
4087
4088// ListJobsPagesWithContext same as ListJobsPages except
4089// it takes a Context and allows setting request options on the pages.
4090//
4091// The context must be non-nil and will be used for request cancellation. If
4092// the context is nil a panic will occur. In the future the SDK may create
4093// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4094// for more information on using Contexts.
4095func (c *DeviceFarm) ListJobsPagesWithContext(ctx aws.Context, input *ListJobsInput, fn func(*ListJobsOutput, bool) bool, opts ...request.Option) error {
4096	p := request.Pagination{
4097		NewRequest: func() (*request.Request, error) {
4098			var inCpy *ListJobsInput
4099			if input != nil {
4100				tmp := *input
4101				inCpy = &tmp
4102			}
4103			req, _ := c.ListJobsRequest(inCpy)
4104			req.SetContext(ctx)
4105			req.ApplyOptions(opts...)
4106			return req, nil
4107		},
4108	}
4109
4110	for p.Next() {
4111		if !fn(p.Page().(*ListJobsOutput), !p.HasNextPage()) {
4112			break
4113		}
4114	}
4115
4116	return p.Err()
4117}
4118
4119const opListNetworkProfiles = "ListNetworkProfiles"
4120
4121// ListNetworkProfilesRequest generates a "aws/request.Request" representing the
4122// client's request for the ListNetworkProfiles operation. The "output" return
4123// value will be populated with the request's response once the request completes
4124// successfully.
4125//
4126// Use "Send" method on the returned Request to send the API call to the service.
4127// the "output" return value is not valid until after Send returns without error.
4128//
4129// See ListNetworkProfiles for more information on using the ListNetworkProfiles
4130// API call, and error handling.
4131//
4132// This method is useful when you want to inject custom logic or configuration
4133// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4134//
4135//
4136//    // Example sending a request using the ListNetworkProfilesRequest method.
4137//    req, resp := client.ListNetworkProfilesRequest(params)
4138//
4139//    err := req.Send()
4140//    if err == nil { // resp is now filled
4141//        fmt.Println(resp)
4142//    }
4143//
4144// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListNetworkProfiles
4145func (c *DeviceFarm) ListNetworkProfilesRequest(input *ListNetworkProfilesInput) (req *request.Request, output *ListNetworkProfilesOutput) {
4146	op := &request.Operation{
4147		Name:       opListNetworkProfiles,
4148		HTTPMethod: "POST",
4149		HTTPPath:   "/",
4150	}
4151
4152	if input == nil {
4153		input = &ListNetworkProfilesInput{}
4154	}
4155
4156	output = &ListNetworkProfilesOutput{}
4157	req = c.newRequest(op, input, output)
4158	return
4159}
4160
4161// ListNetworkProfiles API operation for AWS Device Farm.
4162//
4163// Returns the list of available network profiles.
4164//
4165// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4166// with awserr.Error's Code and Message methods to get detailed information about
4167// the error.
4168//
4169// See the AWS API reference guide for AWS Device Farm's
4170// API operation ListNetworkProfiles for usage and error information.
4171//
4172// Returned Error Codes:
4173//   * ErrCodeArgumentException "ArgumentException"
4174//   An invalid argument was specified.
4175//
4176//   * ErrCodeNotFoundException "NotFoundException"
4177//   The specified entity was not found.
4178//
4179//   * ErrCodeLimitExceededException "LimitExceededException"
4180//   A limit was exceeded.
4181//
4182//   * ErrCodeServiceAccountException "ServiceAccountException"
4183//   There was a problem with the service account.
4184//
4185// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListNetworkProfiles
4186func (c *DeviceFarm) ListNetworkProfiles(input *ListNetworkProfilesInput) (*ListNetworkProfilesOutput, error) {
4187	req, out := c.ListNetworkProfilesRequest(input)
4188	return out, req.Send()
4189}
4190
4191// ListNetworkProfilesWithContext is the same as ListNetworkProfiles with the addition of
4192// the ability to pass a context and additional request options.
4193//
4194// See ListNetworkProfiles for details on how to use this API operation.
4195//
4196// The context must be non-nil and will be used for request cancellation. If
4197// the context is nil a panic will occur. In the future the SDK may create
4198// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4199// for more information on using Contexts.
4200func (c *DeviceFarm) ListNetworkProfilesWithContext(ctx aws.Context, input *ListNetworkProfilesInput, opts ...request.Option) (*ListNetworkProfilesOutput, error) {
4201	req, out := c.ListNetworkProfilesRequest(input)
4202	req.SetContext(ctx)
4203	req.ApplyOptions(opts...)
4204	return out, req.Send()
4205}
4206
4207const opListOfferingPromotions = "ListOfferingPromotions"
4208
4209// ListOfferingPromotionsRequest generates a "aws/request.Request" representing the
4210// client's request for the ListOfferingPromotions operation. The "output" return
4211// value will be populated with the request's response once the request completes
4212// successfully.
4213//
4214// Use "Send" method on the returned Request to send the API call to the service.
4215// the "output" return value is not valid until after Send returns without error.
4216//
4217// See ListOfferingPromotions for more information on using the ListOfferingPromotions
4218// API call, and error handling.
4219//
4220// This method is useful when you want to inject custom logic or configuration
4221// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4222//
4223//
4224//    // Example sending a request using the ListOfferingPromotionsRequest method.
4225//    req, resp := client.ListOfferingPromotionsRequest(params)
4226//
4227//    err := req.Send()
4228//    if err == nil { // resp is now filled
4229//        fmt.Println(resp)
4230//    }
4231//
4232// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListOfferingPromotions
4233func (c *DeviceFarm) ListOfferingPromotionsRequest(input *ListOfferingPromotionsInput) (req *request.Request, output *ListOfferingPromotionsOutput) {
4234	op := &request.Operation{
4235		Name:       opListOfferingPromotions,
4236		HTTPMethod: "POST",
4237		HTTPPath:   "/",
4238	}
4239
4240	if input == nil {
4241		input = &ListOfferingPromotionsInput{}
4242	}
4243
4244	output = &ListOfferingPromotionsOutput{}
4245	req = c.newRequest(op, input, output)
4246	return
4247}
4248
4249// ListOfferingPromotions API operation for AWS Device Farm.
4250//
4251// Returns a list of offering promotions. Each offering promotion record contains
4252// the ID and description of the promotion. The API returns a NotEligible error
4253// if the caller is not permitted to invoke the operation. Contact aws-devicefarm-support@amazon.com
4254// (mailto:aws-devicefarm-support@amazon.com) if you must be able to invoke
4255// this operation.
4256//
4257// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4258// with awserr.Error's Code and Message methods to get detailed information about
4259// the error.
4260//
4261// See the AWS API reference guide for AWS Device Farm's
4262// API operation ListOfferingPromotions for usage and error information.
4263//
4264// Returned Error Codes:
4265//   * ErrCodeArgumentException "ArgumentException"
4266//   An invalid argument was specified.
4267//
4268//   * ErrCodeNotFoundException "NotFoundException"
4269//   The specified entity was not found.
4270//
4271//   * ErrCodeNotEligibleException "NotEligibleException"
4272//   Exception gets thrown when a user is not eligible to perform the specified
4273//   transaction.
4274//
4275//   * ErrCodeLimitExceededException "LimitExceededException"
4276//   A limit was exceeded.
4277//
4278//   * ErrCodeServiceAccountException "ServiceAccountException"
4279//   There was a problem with the service account.
4280//
4281// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListOfferingPromotions
4282func (c *DeviceFarm) ListOfferingPromotions(input *ListOfferingPromotionsInput) (*ListOfferingPromotionsOutput, error) {
4283	req, out := c.ListOfferingPromotionsRequest(input)
4284	return out, req.Send()
4285}
4286
4287// ListOfferingPromotionsWithContext is the same as ListOfferingPromotions with the addition of
4288// the ability to pass a context and additional request options.
4289//
4290// See ListOfferingPromotions for details on how to use this API operation.
4291//
4292// The context must be non-nil and will be used for request cancellation. If
4293// the context is nil a panic will occur. In the future the SDK may create
4294// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4295// for more information on using Contexts.
4296func (c *DeviceFarm) ListOfferingPromotionsWithContext(ctx aws.Context, input *ListOfferingPromotionsInput, opts ...request.Option) (*ListOfferingPromotionsOutput, error) {
4297	req, out := c.ListOfferingPromotionsRequest(input)
4298	req.SetContext(ctx)
4299	req.ApplyOptions(opts...)
4300	return out, req.Send()
4301}
4302
4303const opListOfferingTransactions = "ListOfferingTransactions"
4304
4305// ListOfferingTransactionsRequest generates a "aws/request.Request" representing the
4306// client's request for the ListOfferingTransactions operation. The "output" return
4307// value will be populated with the request's response once the request completes
4308// successfully.
4309//
4310// Use "Send" method on the returned Request to send the API call to the service.
4311// the "output" return value is not valid until after Send returns without error.
4312//
4313// See ListOfferingTransactions for more information on using the ListOfferingTransactions
4314// API call, and error handling.
4315//
4316// This method is useful when you want to inject custom logic or configuration
4317// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4318//
4319//
4320//    // Example sending a request using the ListOfferingTransactionsRequest method.
4321//    req, resp := client.ListOfferingTransactionsRequest(params)
4322//
4323//    err := req.Send()
4324//    if err == nil { // resp is now filled
4325//        fmt.Println(resp)
4326//    }
4327//
4328// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListOfferingTransactions
4329func (c *DeviceFarm) ListOfferingTransactionsRequest(input *ListOfferingTransactionsInput) (req *request.Request, output *ListOfferingTransactionsOutput) {
4330	op := &request.Operation{
4331		Name:       opListOfferingTransactions,
4332		HTTPMethod: "POST",
4333		HTTPPath:   "/",
4334		Paginator: &request.Paginator{
4335			InputTokens:     []string{"nextToken"},
4336			OutputTokens:    []string{"nextToken"},
4337			LimitToken:      "",
4338			TruncationToken: "",
4339		},
4340	}
4341
4342	if input == nil {
4343		input = &ListOfferingTransactionsInput{}
4344	}
4345
4346	output = &ListOfferingTransactionsOutput{}
4347	req = c.newRequest(op, input, output)
4348	return
4349}
4350
4351// ListOfferingTransactions API operation for AWS Device Farm.
4352//
4353// Returns a list of all historical purchases, renewals, and system renewal
4354// transactions for an AWS account. The list is paginated and ordered by a descending
4355// timestamp (most recent transactions are first). The API returns a NotEligible
4356// error if the user is not permitted to invoke the operation. If you must be
4357// able to invoke this operation, contact aws-devicefarm-support@amazon.com
4358// (mailto:aws-devicefarm-support@amazon.com).
4359//
4360// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4361// with awserr.Error's Code and Message methods to get detailed information about
4362// the error.
4363//
4364// See the AWS API reference guide for AWS Device Farm's
4365// API operation ListOfferingTransactions for usage and error information.
4366//
4367// Returned Error Codes:
4368//   * ErrCodeArgumentException "ArgumentException"
4369//   An invalid argument was specified.
4370//
4371//   * ErrCodeNotFoundException "NotFoundException"
4372//   The specified entity was not found.
4373//
4374//   * ErrCodeNotEligibleException "NotEligibleException"
4375//   Exception gets thrown when a user is not eligible to perform the specified
4376//   transaction.
4377//
4378//   * ErrCodeLimitExceededException "LimitExceededException"
4379//   A limit was exceeded.
4380//
4381//   * ErrCodeServiceAccountException "ServiceAccountException"
4382//   There was a problem with the service account.
4383//
4384// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListOfferingTransactions
4385func (c *DeviceFarm) ListOfferingTransactions(input *ListOfferingTransactionsInput) (*ListOfferingTransactionsOutput, error) {
4386	req, out := c.ListOfferingTransactionsRequest(input)
4387	return out, req.Send()
4388}
4389
4390// ListOfferingTransactionsWithContext is the same as ListOfferingTransactions with the addition of
4391// the ability to pass a context and additional request options.
4392//
4393// See ListOfferingTransactions for details on how to use this API operation.
4394//
4395// The context must be non-nil and will be used for request cancellation. If
4396// the context is nil a panic will occur. In the future the SDK may create
4397// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4398// for more information on using Contexts.
4399func (c *DeviceFarm) ListOfferingTransactionsWithContext(ctx aws.Context, input *ListOfferingTransactionsInput, opts ...request.Option) (*ListOfferingTransactionsOutput, error) {
4400	req, out := c.ListOfferingTransactionsRequest(input)
4401	req.SetContext(ctx)
4402	req.ApplyOptions(opts...)
4403	return out, req.Send()
4404}
4405
4406// ListOfferingTransactionsPages iterates over the pages of a ListOfferingTransactions operation,
4407// calling the "fn" function with the response data for each page. To stop
4408// iterating, return false from the fn function.
4409//
4410// See ListOfferingTransactions method for more information on how to use this operation.
4411//
4412// Note: This operation can generate multiple requests to a service.
4413//
4414//    // Example iterating over at most 3 pages of a ListOfferingTransactions operation.
4415//    pageNum := 0
4416//    err := client.ListOfferingTransactionsPages(params,
4417//        func(page *devicefarm.ListOfferingTransactionsOutput, lastPage bool) bool {
4418//            pageNum++
4419//            fmt.Println(page)
4420//            return pageNum <= 3
4421//        })
4422//
4423func (c *DeviceFarm) ListOfferingTransactionsPages(input *ListOfferingTransactionsInput, fn func(*ListOfferingTransactionsOutput, bool) bool) error {
4424	return c.ListOfferingTransactionsPagesWithContext(aws.BackgroundContext(), input, fn)
4425}
4426
4427// ListOfferingTransactionsPagesWithContext same as ListOfferingTransactionsPages except
4428// it takes a Context and allows setting request options on the pages.
4429//
4430// The context must be non-nil and will be used for request cancellation. If
4431// the context is nil a panic will occur. In the future the SDK may create
4432// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4433// for more information on using Contexts.
4434func (c *DeviceFarm) ListOfferingTransactionsPagesWithContext(ctx aws.Context, input *ListOfferingTransactionsInput, fn func(*ListOfferingTransactionsOutput, bool) bool, opts ...request.Option) error {
4435	p := request.Pagination{
4436		NewRequest: func() (*request.Request, error) {
4437			var inCpy *ListOfferingTransactionsInput
4438			if input != nil {
4439				tmp := *input
4440				inCpy = &tmp
4441			}
4442			req, _ := c.ListOfferingTransactionsRequest(inCpy)
4443			req.SetContext(ctx)
4444			req.ApplyOptions(opts...)
4445			return req, nil
4446		},
4447	}
4448
4449	for p.Next() {
4450		if !fn(p.Page().(*ListOfferingTransactionsOutput), !p.HasNextPage()) {
4451			break
4452		}
4453	}
4454
4455	return p.Err()
4456}
4457
4458const opListOfferings = "ListOfferings"
4459
4460// ListOfferingsRequest generates a "aws/request.Request" representing the
4461// client's request for the ListOfferings operation. The "output" return
4462// value will be populated with the request's response once the request completes
4463// successfully.
4464//
4465// Use "Send" method on the returned Request to send the API call to the service.
4466// the "output" return value is not valid until after Send returns without error.
4467//
4468// See ListOfferings for more information on using the ListOfferings
4469// API call, and error handling.
4470//
4471// This method is useful when you want to inject custom logic or configuration
4472// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4473//
4474//
4475//    // Example sending a request using the ListOfferingsRequest method.
4476//    req, resp := client.ListOfferingsRequest(params)
4477//
4478//    err := req.Send()
4479//    if err == nil { // resp is now filled
4480//        fmt.Println(resp)
4481//    }
4482//
4483// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListOfferings
4484func (c *DeviceFarm) ListOfferingsRequest(input *ListOfferingsInput) (req *request.Request, output *ListOfferingsOutput) {
4485	op := &request.Operation{
4486		Name:       opListOfferings,
4487		HTTPMethod: "POST",
4488		HTTPPath:   "/",
4489		Paginator: &request.Paginator{
4490			InputTokens:     []string{"nextToken"},
4491			OutputTokens:    []string{"nextToken"},
4492			LimitToken:      "",
4493			TruncationToken: "",
4494		},
4495	}
4496
4497	if input == nil {
4498		input = &ListOfferingsInput{}
4499	}
4500
4501	output = &ListOfferingsOutput{}
4502	req = c.newRequest(op, input, output)
4503	return
4504}
4505
4506// ListOfferings API operation for AWS Device Farm.
4507//
4508// Returns a list of products or offerings that the user can manage through
4509// the API. Each offering record indicates the recurring price per unit and
4510// the frequency for that offering. The API returns a NotEligible error if the
4511// user is not permitted to invoke the operation. If you must be able to invoke
4512// this operation, contact aws-devicefarm-support@amazon.com (mailto:aws-devicefarm-support@amazon.com).
4513//
4514// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4515// with awserr.Error's Code and Message methods to get detailed information about
4516// the error.
4517//
4518// See the AWS API reference guide for AWS Device Farm's
4519// API operation ListOfferings for usage and error information.
4520//
4521// Returned Error Codes:
4522//   * ErrCodeArgumentException "ArgumentException"
4523//   An invalid argument was specified.
4524//
4525//   * ErrCodeNotFoundException "NotFoundException"
4526//   The specified entity was not found.
4527//
4528//   * ErrCodeNotEligibleException "NotEligibleException"
4529//   Exception gets thrown when a user is not eligible to perform the specified
4530//   transaction.
4531//
4532//   * ErrCodeLimitExceededException "LimitExceededException"
4533//   A limit was exceeded.
4534//
4535//   * ErrCodeServiceAccountException "ServiceAccountException"
4536//   There was a problem with the service account.
4537//
4538// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListOfferings
4539func (c *DeviceFarm) ListOfferings(input *ListOfferingsInput) (*ListOfferingsOutput, error) {
4540	req, out := c.ListOfferingsRequest(input)
4541	return out, req.Send()
4542}
4543
4544// ListOfferingsWithContext is the same as ListOfferings with the addition of
4545// the ability to pass a context and additional request options.
4546//
4547// See ListOfferings for details on how to use this API operation.
4548//
4549// The context must be non-nil and will be used for request cancellation. If
4550// the context is nil a panic will occur. In the future the SDK may create
4551// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4552// for more information on using Contexts.
4553func (c *DeviceFarm) ListOfferingsWithContext(ctx aws.Context, input *ListOfferingsInput, opts ...request.Option) (*ListOfferingsOutput, error) {
4554	req, out := c.ListOfferingsRequest(input)
4555	req.SetContext(ctx)
4556	req.ApplyOptions(opts...)
4557	return out, req.Send()
4558}
4559
4560// ListOfferingsPages iterates over the pages of a ListOfferings operation,
4561// calling the "fn" function with the response data for each page. To stop
4562// iterating, return false from the fn function.
4563//
4564// See ListOfferings method for more information on how to use this operation.
4565//
4566// Note: This operation can generate multiple requests to a service.
4567//
4568//    // Example iterating over at most 3 pages of a ListOfferings operation.
4569//    pageNum := 0
4570//    err := client.ListOfferingsPages(params,
4571//        func(page *devicefarm.ListOfferingsOutput, lastPage bool) bool {
4572//            pageNum++
4573//            fmt.Println(page)
4574//            return pageNum <= 3
4575//        })
4576//
4577func (c *DeviceFarm) ListOfferingsPages(input *ListOfferingsInput, fn func(*ListOfferingsOutput, bool) bool) error {
4578	return c.ListOfferingsPagesWithContext(aws.BackgroundContext(), input, fn)
4579}
4580
4581// ListOfferingsPagesWithContext same as ListOfferingsPages except
4582// it takes a Context and allows setting request options on the pages.
4583//
4584// The context must be non-nil and will be used for request cancellation. If
4585// the context is nil a panic will occur. In the future the SDK may create
4586// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4587// for more information on using Contexts.
4588func (c *DeviceFarm) ListOfferingsPagesWithContext(ctx aws.Context, input *ListOfferingsInput, fn func(*ListOfferingsOutput, bool) bool, opts ...request.Option) error {
4589	p := request.Pagination{
4590		NewRequest: func() (*request.Request, error) {
4591			var inCpy *ListOfferingsInput
4592			if input != nil {
4593				tmp := *input
4594				inCpy = &tmp
4595			}
4596			req, _ := c.ListOfferingsRequest(inCpy)
4597			req.SetContext(ctx)
4598			req.ApplyOptions(opts...)
4599			return req, nil
4600		},
4601	}
4602
4603	for p.Next() {
4604		if !fn(p.Page().(*ListOfferingsOutput), !p.HasNextPage()) {
4605			break
4606		}
4607	}
4608
4609	return p.Err()
4610}
4611
4612const opListProjects = "ListProjects"
4613
4614// ListProjectsRequest generates a "aws/request.Request" representing the
4615// client's request for the ListProjects operation. The "output" return
4616// value will be populated with the request's response once the request completes
4617// successfully.
4618//
4619// Use "Send" method on the returned Request to send the API call to the service.
4620// the "output" return value is not valid until after Send returns without error.
4621//
4622// See ListProjects for more information on using the ListProjects
4623// API call, and error handling.
4624//
4625// This method is useful when you want to inject custom logic or configuration
4626// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4627//
4628//
4629//    // Example sending a request using the ListProjectsRequest method.
4630//    req, resp := client.ListProjectsRequest(params)
4631//
4632//    err := req.Send()
4633//    if err == nil { // resp is now filled
4634//        fmt.Println(resp)
4635//    }
4636//
4637// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListProjects
4638func (c *DeviceFarm) ListProjectsRequest(input *ListProjectsInput) (req *request.Request, output *ListProjectsOutput) {
4639	op := &request.Operation{
4640		Name:       opListProjects,
4641		HTTPMethod: "POST",
4642		HTTPPath:   "/",
4643		Paginator: &request.Paginator{
4644			InputTokens:     []string{"nextToken"},
4645			OutputTokens:    []string{"nextToken"},
4646			LimitToken:      "",
4647			TruncationToken: "",
4648		},
4649	}
4650
4651	if input == nil {
4652		input = &ListProjectsInput{}
4653	}
4654
4655	output = &ListProjectsOutput{}
4656	req = c.newRequest(op, input, output)
4657	return
4658}
4659
4660// ListProjects API operation for AWS Device Farm.
4661//
4662// Gets information about projects.
4663//
4664// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4665// with awserr.Error's Code and Message methods to get detailed information about
4666// the error.
4667//
4668// See the AWS API reference guide for AWS Device Farm's
4669// API operation ListProjects for usage and error information.
4670//
4671// Returned Error Codes:
4672//   * ErrCodeArgumentException "ArgumentException"
4673//   An invalid argument was specified.
4674//
4675//   * ErrCodeNotFoundException "NotFoundException"
4676//   The specified entity was not found.
4677//
4678//   * ErrCodeLimitExceededException "LimitExceededException"
4679//   A limit was exceeded.
4680//
4681//   * ErrCodeServiceAccountException "ServiceAccountException"
4682//   There was a problem with the service account.
4683//
4684// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListProjects
4685func (c *DeviceFarm) ListProjects(input *ListProjectsInput) (*ListProjectsOutput, error) {
4686	req, out := c.ListProjectsRequest(input)
4687	return out, req.Send()
4688}
4689
4690// ListProjectsWithContext is the same as ListProjects with the addition of
4691// the ability to pass a context and additional request options.
4692//
4693// See ListProjects for details on how to use this API operation.
4694//
4695// The context must be non-nil and will be used for request cancellation. If
4696// the context is nil a panic will occur. In the future the SDK may create
4697// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4698// for more information on using Contexts.
4699func (c *DeviceFarm) ListProjectsWithContext(ctx aws.Context, input *ListProjectsInput, opts ...request.Option) (*ListProjectsOutput, error) {
4700	req, out := c.ListProjectsRequest(input)
4701	req.SetContext(ctx)
4702	req.ApplyOptions(opts...)
4703	return out, req.Send()
4704}
4705
4706// ListProjectsPages iterates over the pages of a ListProjects operation,
4707// calling the "fn" function with the response data for each page. To stop
4708// iterating, return false from the fn function.
4709//
4710// See ListProjects method for more information on how to use this operation.
4711//
4712// Note: This operation can generate multiple requests to a service.
4713//
4714//    // Example iterating over at most 3 pages of a ListProjects operation.
4715//    pageNum := 0
4716//    err := client.ListProjectsPages(params,
4717//        func(page *devicefarm.ListProjectsOutput, lastPage bool) bool {
4718//            pageNum++
4719//            fmt.Println(page)
4720//            return pageNum <= 3
4721//        })
4722//
4723func (c *DeviceFarm) ListProjectsPages(input *ListProjectsInput, fn func(*ListProjectsOutput, bool) bool) error {
4724	return c.ListProjectsPagesWithContext(aws.BackgroundContext(), input, fn)
4725}
4726
4727// ListProjectsPagesWithContext same as ListProjectsPages except
4728// it takes a Context and allows setting request options on the pages.
4729//
4730// The context must be non-nil and will be used for request cancellation. If
4731// the context is nil a panic will occur. In the future the SDK may create
4732// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4733// for more information on using Contexts.
4734func (c *DeviceFarm) ListProjectsPagesWithContext(ctx aws.Context, input *ListProjectsInput, fn func(*ListProjectsOutput, bool) bool, opts ...request.Option) error {
4735	p := request.Pagination{
4736		NewRequest: func() (*request.Request, error) {
4737			var inCpy *ListProjectsInput
4738			if input != nil {
4739				tmp := *input
4740				inCpy = &tmp
4741			}
4742			req, _ := c.ListProjectsRequest(inCpy)
4743			req.SetContext(ctx)
4744			req.ApplyOptions(opts...)
4745			return req, nil
4746		},
4747	}
4748
4749	for p.Next() {
4750		if !fn(p.Page().(*ListProjectsOutput), !p.HasNextPage()) {
4751			break
4752		}
4753	}
4754
4755	return p.Err()
4756}
4757
4758const opListRemoteAccessSessions = "ListRemoteAccessSessions"
4759
4760// ListRemoteAccessSessionsRequest generates a "aws/request.Request" representing the
4761// client's request for the ListRemoteAccessSessions operation. The "output" return
4762// value will be populated with the request's response once the request completes
4763// successfully.
4764//
4765// Use "Send" method on the returned Request to send the API call to the service.
4766// the "output" return value is not valid until after Send returns without error.
4767//
4768// See ListRemoteAccessSessions for more information on using the ListRemoteAccessSessions
4769// API call, and error handling.
4770//
4771// This method is useful when you want to inject custom logic or configuration
4772// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4773//
4774//
4775//    // Example sending a request using the ListRemoteAccessSessionsRequest method.
4776//    req, resp := client.ListRemoteAccessSessionsRequest(params)
4777//
4778//    err := req.Send()
4779//    if err == nil { // resp is now filled
4780//        fmt.Println(resp)
4781//    }
4782//
4783// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListRemoteAccessSessions
4784func (c *DeviceFarm) ListRemoteAccessSessionsRequest(input *ListRemoteAccessSessionsInput) (req *request.Request, output *ListRemoteAccessSessionsOutput) {
4785	op := &request.Operation{
4786		Name:       opListRemoteAccessSessions,
4787		HTTPMethod: "POST",
4788		HTTPPath:   "/",
4789	}
4790
4791	if input == nil {
4792		input = &ListRemoteAccessSessionsInput{}
4793	}
4794
4795	output = &ListRemoteAccessSessionsOutput{}
4796	req = c.newRequest(op, input, output)
4797	return
4798}
4799
4800// ListRemoteAccessSessions API operation for AWS Device Farm.
4801//
4802// Returns a list of all currently running remote access sessions.
4803//
4804// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4805// with awserr.Error's Code and Message methods to get detailed information about
4806// the error.
4807//
4808// See the AWS API reference guide for AWS Device Farm's
4809// API operation ListRemoteAccessSessions for usage and error information.
4810//
4811// Returned Error Codes:
4812//   * ErrCodeArgumentException "ArgumentException"
4813//   An invalid argument was specified.
4814//
4815//   * ErrCodeNotFoundException "NotFoundException"
4816//   The specified entity was not found.
4817//
4818//   * ErrCodeLimitExceededException "LimitExceededException"
4819//   A limit was exceeded.
4820//
4821//   * ErrCodeServiceAccountException "ServiceAccountException"
4822//   There was a problem with the service account.
4823//
4824// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListRemoteAccessSessions
4825func (c *DeviceFarm) ListRemoteAccessSessions(input *ListRemoteAccessSessionsInput) (*ListRemoteAccessSessionsOutput, error) {
4826	req, out := c.ListRemoteAccessSessionsRequest(input)
4827	return out, req.Send()
4828}
4829
4830// ListRemoteAccessSessionsWithContext is the same as ListRemoteAccessSessions with the addition of
4831// the ability to pass a context and additional request options.
4832//
4833// See ListRemoteAccessSessions for details on how to use this API operation.
4834//
4835// The context must be non-nil and will be used for request cancellation. If
4836// the context is nil a panic will occur. In the future the SDK may create
4837// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4838// for more information on using Contexts.
4839func (c *DeviceFarm) ListRemoteAccessSessionsWithContext(ctx aws.Context, input *ListRemoteAccessSessionsInput, opts ...request.Option) (*ListRemoteAccessSessionsOutput, error) {
4840	req, out := c.ListRemoteAccessSessionsRequest(input)
4841	req.SetContext(ctx)
4842	req.ApplyOptions(opts...)
4843	return out, req.Send()
4844}
4845
4846const opListRuns = "ListRuns"
4847
4848// ListRunsRequest generates a "aws/request.Request" representing the
4849// client's request for the ListRuns operation. The "output" return
4850// value will be populated with the request's response once the request completes
4851// successfully.
4852//
4853// Use "Send" method on the returned Request to send the API call to the service.
4854// the "output" return value is not valid until after Send returns without error.
4855//
4856// See ListRuns for more information on using the ListRuns
4857// API call, and error handling.
4858//
4859// This method is useful when you want to inject custom logic or configuration
4860// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4861//
4862//
4863//    // Example sending a request using the ListRunsRequest method.
4864//    req, resp := client.ListRunsRequest(params)
4865//
4866//    err := req.Send()
4867//    if err == nil { // resp is now filled
4868//        fmt.Println(resp)
4869//    }
4870//
4871// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListRuns
4872func (c *DeviceFarm) ListRunsRequest(input *ListRunsInput) (req *request.Request, output *ListRunsOutput) {
4873	op := &request.Operation{
4874		Name:       opListRuns,
4875		HTTPMethod: "POST",
4876		HTTPPath:   "/",
4877		Paginator: &request.Paginator{
4878			InputTokens:     []string{"nextToken"},
4879			OutputTokens:    []string{"nextToken"},
4880			LimitToken:      "",
4881			TruncationToken: "",
4882		},
4883	}
4884
4885	if input == nil {
4886		input = &ListRunsInput{}
4887	}
4888
4889	output = &ListRunsOutput{}
4890	req = c.newRequest(op, input, output)
4891	return
4892}
4893
4894// ListRuns API operation for AWS Device Farm.
4895//
4896// Gets information about runs, given an AWS Device Farm project ARN.
4897//
4898// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4899// with awserr.Error's Code and Message methods to get detailed information about
4900// the error.
4901//
4902// See the AWS API reference guide for AWS Device Farm's
4903// API operation ListRuns for usage and error information.
4904//
4905// Returned Error Codes:
4906//   * ErrCodeArgumentException "ArgumentException"
4907//   An invalid argument was specified.
4908//
4909//   * ErrCodeNotFoundException "NotFoundException"
4910//   The specified entity was not found.
4911//
4912//   * ErrCodeLimitExceededException "LimitExceededException"
4913//   A limit was exceeded.
4914//
4915//   * ErrCodeServiceAccountException "ServiceAccountException"
4916//   There was a problem with the service account.
4917//
4918// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListRuns
4919func (c *DeviceFarm) ListRuns(input *ListRunsInput) (*ListRunsOutput, error) {
4920	req, out := c.ListRunsRequest(input)
4921	return out, req.Send()
4922}
4923
4924// ListRunsWithContext is the same as ListRuns with the addition of
4925// the ability to pass a context and additional request options.
4926//
4927// See ListRuns for details on how to use this API operation.
4928//
4929// The context must be non-nil and will be used for request cancellation. If
4930// the context is nil a panic will occur. In the future the SDK may create
4931// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4932// for more information on using Contexts.
4933func (c *DeviceFarm) ListRunsWithContext(ctx aws.Context, input *ListRunsInput, opts ...request.Option) (*ListRunsOutput, error) {
4934	req, out := c.ListRunsRequest(input)
4935	req.SetContext(ctx)
4936	req.ApplyOptions(opts...)
4937	return out, req.Send()
4938}
4939
4940// ListRunsPages iterates over the pages of a ListRuns operation,
4941// calling the "fn" function with the response data for each page. To stop
4942// iterating, return false from the fn function.
4943//
4944// See ListRuns method for more information on how to use this operation.
4945//
4946// Note: This operation can generate multiple requests to a service.
4947//
4948//    // Example iterating over at most 3 pages of a ListRuns operation.
4949//    pageNum := 0
4950//    err := client.ListRunsPages(params,
4951//        func(page *devicefarm.ListRunsOutput, lastPage bool) bool {
4952//            pageNum++
4953//            fmt.Println(page)
4954//            return pageNum <= 3
4955//        })
4956//
4957func (c *DeviceFarm) ListRunsPages(input *ListRunsInput, fn func(*ListRunsOutput, bool) bool) error {
4958	return c.ListRunsPagesWithContext(aws.BackgroundContext(), input, fn)
4959}
4960
4961// ListRunsPagesWithContext same as ListRunsPages except
4962// it takes a Context and allows setting request options on the pages.
4963//
4964// The context must be non-nil and will be used for request cancellation. If
4965// the context is nil a panic will occur. In the future the SDK may create
4966// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4967// for more information on using Contexts.
4968func (c *DeviceFarm) ListRunsPagesWithContext(ctx aws.Context, input *ListRunsInput, fn func(*ListRunsOutput, bool) bool, opts ...request.Option) error {
4969	p := request.Pagination{
4970		NewRequest: func() (*request.Request, error) {
4971			var inCpy *ListRunsInput
4972			if input != nil {
4973				tmp := *input
4974				inCpy = &tmp
4975			}
4976			req, _ := c.ListRunsRequest(inCpy)
4977			req.SetContext(ctx)
4978			req.ApplyOptions(opts...)
4979			return req, nil
4980		},
4981	}
4982
4983	for p.Next() {
4984		if !fn(p.Page().(*ListRunsOutput), !p.HasNextPage()) {
4985			break
4986		}
4987	}
4988
4989	return p.Err()
4990}
4991
4992const opListSamples = "ListSamples"
4993
4994// ListSamplesRequest generates a "aws/request.Request" representing the
4995// client's request for the ListSamples operation. The "output" return
4996// value will be populated with the request's response once the request completes
4997// successfully.
4998//
4999// Use "Send" method on the returned Request to send the API call to the service.
5000// the "output" return value is not valid until after Send returns without error.
5001//
5002// See ListSamples for more information on using the ListSamples
5003// API call, and error handling.
5004//
5005// This method is useful when you want to inject custom logic or configuration
5006// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5007//
5008//
5009//    // Example sending a request using the ListSamplesRequest method.
5010//    req, resp := client.ListSamplesRequest(params)
5011//
5012//    err := req.Send()
5013//    if err == nil { // resp is now filled
5014//        fmt.Println(resp)
5015//    }
5016//
5017// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListSamples
5018func (c *DeviceFarm) ListSamplesRequest(input *ListSamplesInput) (req *request.Request, output *ListSamplesOutput) {
5019	op := &request.Operation{
5020		Name:       opListSamples,
5021		HTTPMethod: "POST",
5022		HTTPPath:   "/",
5023		Paginator: &request.Paginator{
5024			InputTokens:     []string{"nextToken"},
5025			OutputTokens:    []string{"nextToken"},
5026			LimitToken:      "",
5027			TruncationToken: "",
5028		},
5029	}
5030
5031	if input == nil {
5032		input = &ListSamplesInput{}
5033	}
5034
5035	output = &ListSamplesOutput{}
5036	req = c.newRequest(op, input, output)
5037	return
5038}
5039
5040// ListSamples API operation for AWS Device Farm.
5041//
5042// Gets information about samples, given an AWS Device Farm job ARN.
5043//
5044// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5045// with awserr.Error's Code and Message methods to get detailed information about
5046// the error.
5047//
5048// See the AWS API reference guide for AWS Device Farm's
5049// API operation ListSamples for usage and error information.
5050//
5051// Returned Error Codes:
5052//   * ErrCodeArgumentException "ArgumentException"
5053//   An invalid argument was specified.
5054//
5055//   * ErrCodeNotFoundException "NotFoundException"
5056//   The specified entity was not found.
5057//
5058//   * ErrCodeLimitExceededException "LimitExceededException"
5059//   A limit was exceeded.
5060//
5061//   * ErrCodeServiceAccountException "ServiceAccountException"
5062//   There was a problem with the service account.
5063//
5064// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListSamples
5065func (c *DeviceFarm) ListSamples(input *ListSamplesInput) (*ListSamplesOutput, error) {
5066	req, out := c.ListSamplesRequest(input)
5067	return out, req.Send()
5068}
5069
5070// ListSamplesWithContext is the same as ListSamples with the addition of
5071// the ability to pass a context and additional request options.
5072//
5073// See ListSamples for details on how to use this API operation.
5074//
5075// The context must be non-nil and will be used for request cancellation. If
5076// the context is nil a panic will occur. In the future the SDK may create
5077// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5078// for more information on using Contexts.
5079func (c *DeviceFarm) ListSamplesWithContext(ctx aws.Context, input *ListSamplesInput, opts ...request.Option) (*ListSamplesOutput, error) {
5080	req, out := c.ListSamplesRequest(input)
5081	req.SetContext(ctx)
5082	req.ApplyOptions(opts...)
5083	return out, req.Send()
5084}
5085
5086// ListSamplesPages iterates over the pages of a ListSamples operation,
5087// calling the "fn" function with the response data for each page. To stop
5088// iterating, return false from the fn function.
5089//
5090// See ListSamples method for more information on how to use this operation.
5091//
5092// Note: This operation can generate multiple requests to a service.
5093//
5094//    // Example iterating over at most 3 pages of a ListSamples operation.
5095//    pageNum := 0
5096//    err := client.ListSamplesPages(params,
5097//        func(page *devicefarm.ListSamplesOutput, lastPage bool) bool {
5098//            pageNum++
5099//            fmt.Println(page)
5100//            return pageNum <= 3
5101//        })
5102//
5103func (c *DeviceFarm) ListSamplesPages(input *ListSamplesInput, fn func(*ListSamplesOutput, bool) bool) error {
5104	return c.ListSamplesPagesWithContext(aws.BackgroundContext(), input, fn)
5105}
5106
5107// ListSamplesPagesWithContext same as ListSamplesPages except
5108// it takes a Context and allows setting request options on the pages.
5109//
5110// The context must be non-nil and will be used for request cancellation. If
5111// the context is nil a panic will occur. In the future the SDK may create
5112// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5113// for more information on using Contexts.
5114func (c *DeviceFarm) ListSamplesPagesWithContext(ctx aws.Context, input *ListSamplesInput, fn func(*ListSamplesOutput, bool) bool, opts ...request.Option) error {
5115	p := request.Pagination{
5116		NewRequest: func() (*request.Request, error) {
5117			var inCpy *ListSamplesInput
5118			if input != nil {
5119				tmp := *input
5120				inCpy = &tmp
5121			}
5122			req, _ := c.ListSamplesRequest(inCpy)
5123			req.SetContext(ctx)
5124			req.ApplyOptions(opts...)
5125			return req, nil
5126		},
5127	}
5128
5129	for p.Next() {
5130		if !fn(p.Page().(*ListSamplesOutput), !p.HasNextPage()) {
5131			break
5132		}
5133	}
5134
5135	return p.Err()
5136}
5137
5138const opListSuites = "ListSuites"
5139
5140// ListSuitesRequest generates a "aws/request.Request" representing the
5141// client's request for the ListSuites operation. The "output" return
5142// value will be populated with the request's response once the request completes
5143// successfully.
5144//
5145// Use "Send" method on the returned Request to send the API call to the service.
5146// the "output" return value is not valid until after Send returns without error.
5147//
5148// See ListSuites for more information on using the ListSuites
5149// API call, and error handling.
5150//
5151// This method is useful when you want to inject custom logic or configuration
5152// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5153//
5154//
5155//    // Example sending a request using the ListSuitesRequest method.
5156//    req, resp := client.ListSuitesRequest(params)
5157//
5158//    err := req.Send()
5159//    if err == nil { // resp is now filled
5160//        fmt.Println(resp)
5161//    }
5162//
5163// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListSuites
5164func (c *DeviceFarm) ListSuitesRequest(input *ListSuitesInput) (req *request.Request, output *ListSuitesOutput) {
5165	op := &request.Operation{
5166		Name:       opListSuites,
5167		HTTPMethod: "POST",
5168		HTTPPath:   "/",
5169		Paginator: &request.Paginator{
5170			InputTokens:     []string{"nextToken"},
5171			OutputTokens:    []string{"nextToken"},
5172			LimitToken:      "",
5173			TruncationToken: "",
5174		},
5175	}
5176
5177	if input == nil {
5178		input = &ListSuitesInput{}
5179	}
5180
5181	output = &ListSuitesOutput{}
5182	req = c.newRequest(op, input, output)
5183	return
5184}
5185
5186// ListSuites API operation for AWS Device Farm.
5187//
5188// Gets information about test suites for a given job.
5189//
5190// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5191// with awserr.Error's Code and Message methods to get detailed information about
5192// the error.
5193//
5194// See the AWS API reference guide for AWS Device Farm's
5195// API operation ListSuites for usage and error information.
5196//
5197// Returned Error Codes:
5198//   * ErrCodeArgumentException "ArgumentException"
5199//   An invalid argument was specified.
5200//
5201//   * ErrCodeNotFoundException "NotFoundException"
5202//   The specified entity was not found.
5203//
5204//   * ErrCodeLimitExceededException "LimitExceededException"
5205//   A limit was exceeded.
5206//
5207//   * ErrCodeServiceAccountException "ServiceAccountException"
5208//   There was a problem with the service account.
5209//
5210// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListSuites
5211func (c *DeviceFarm) ListSuites(input *ListSuitesInput) (*ListSuitesOutput, error) {
5212	req, out := c.ListSuitesRequest(input)
5213	return out, req.Send()
5214}
5215
5216// ListSuitesWithContext is the same as ListSuites with the addition of
5217// the ability to pass a context and additional request options.
5218//
5219// See ListSuites for details on how to use this API operation.
5220//
5221// The context must be non-nil and will be used for request cancellation. If
5222// the context is nil a panic will occur. In the future the SDK may create
5223// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5224// for more information on using Contexts.
5225func (c *DeviceFarm) ListSuitesWithContext(ctx aws.Context, input *ListSuitesInput, opts ...request.Option) (*ListSuitesOutput, error) {
5226	req, out := c.ListSuitesRequest(input)
5227	req.SetContext(ctx)
5228	req.ApplyOptions(opts...)
5229	return out, req.Send()
5230}
5231
5232// ListSuitesPages iterates over the pages of a ListSuites operation,
5233// calling the "fn" function with the response data for each page. To stop
5234// iterating, return false from the fn function.
5235//
5236// See ListSuites method for more information on how to use this operation.
5237//
5238// Note: This operation can generate multiple requests to a service.
5239//
5240//    // Example iterating over at most 3 pages of a ListSuites operation.
5241//    pageNum := 0
5242//    err := client.ListSuitesPages(params,
5243//        func(page *devicefarm.ListSuitesOutput, lastPage bool) bool {
5244//            pageNum++
5245//            fmt.Println(page)
5246//            return pageNum <= 3
5247//        })
5248//
5249func (c *DeviceFarm) ListSuitesPages(input *ListSuitesInput, fn func(*ListSuitesOutput, bool) bool) error {
5250	return c.ListSuitesPagesWithContext(aws.BackgroundContext(), input, fn)
5251}
5252
5253// ListSuitesPagesWithContext same as ListSuitesPages except
5254// it takes a Context and allows setting request options on the pages.
5255//
5256// The context must be non-nil and will be used for request cancellation. If
5257// the context is nil a panic will occur. In the future the SDK may create
5258// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5259// for more information on using Contexts.
5260func (c *DeviceFarm) ListSuitesPagesWithContext(ctx aws.Context, input *ListSuitesInput, fn func(*ListSuitesOutput, bool) bool, opts ...request.Option) error {
5261	p := request.Pagination{
5262		NewRequest: func() (*request.Request, error) {
5263			var inCpy *ListSuitesInput
5264			if input != nil {
5265				tmp := *input
5266				inCpy = &tmp
5267			}
5268			req, _ := c.ListSuitesRequest(inCpy)
5269			req.SetContext(ctx)
5270			req.ApplyOptions(opts...)
5271			return req, nil
5272		},
5273	}
5274
5275	for p.Next() {
5276		if !fn(p.Page().(*ListSuitesOutput), !p.HasNextPage()) {
5277			break
5278		}
5279	}
5280
5281	return p.Err()
5282}
5283
5284const opListTagsForResource = "ListTagsForResource"
5285
5286// ListTagsForResourceRequest generates a "aws/request.Request" representing the
5287// client's request for the ListTagsForResource operation. The "output" return
5288// value will be populated with the request's response once the request completes
5289// successfully.
5290//
5291// Use "Send" method on the returned Request to send the API call to the service.
5292// the "output" return value is not valid until after Send returns without error.
5293//
5294// See ListTagsForResource for more information on using the ListTagsForResource
5295// API call, and error handling.
5296//
5297// This method is useful when you want to inject custom logic or configuration
5298// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5299//
5300//
5301//    // Example sending a request using the ListTagsForResourceRequest method.
5302//    req, resp := client.ListTagsForResourceRequest(params)
5303//
5304//    err := req.Send()
5305//    if err == nil { // resp is now filled
5306//        fmt.Println(resp)
5307//    }
5308//
5309// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListTagsForResource
5310func (c *DeviceFarm) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) {
5311	op := &request.Operation{
5312		Name:       opListTagsForResource,
5313		HTTPMethod: "POST",
5314		HTTPPath:   "/",
5315	}
5316
5317	if input == nil {
5318		input = &ListTagsForResourceInput{}
5319	}
5320
5321	output = &ListTagsForResourceOutput{}
5322	req = c.newRequest(op, input, output)
5323	return
5324}
5325
5326// ListTagsForResource API operation for AWS Device Farm.
5327//
5328// List the tags for an AWS Device Farm resource.
5329//
5330// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5331// with awserr.Error's Code and Message methods to get detailed information about
5332// the error.
5333//
5334// See the AWS API reference guide for AWS Device Farm's
5335// API operation ListTagsForResource for usage and error information.
5336//
5337// Returned Error Codes:
5338//   * ErrCodeArgumentException "ArgumentException"
5339//   An invalid argument was specified.
5340//
5341//   * ErrCodeNotFoundException "NotFoundException"
5342//   The specified entity was not found.
5343//
5344//   * ErrCodeTagOperationException "TagOperationException"
5345//   The operation was not successful. Try again.
5346//
5347// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListTagsForResource
5348func (c *DeviceFarm) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) {
5349	req, out := c.ListTagsForResourceRequest(input)
5350	return out, req.Send()
5351}
5352
5353// ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of
5354// the ability to pass a context and additional request options.
5355//
5356// See ListTagsForResource for details on how to use this API operation.
5357//
5358// The context must be non-nil and will be used for request cancellation. If
5359// the context is nil a panic will occur. In the future the SDK may create
5360// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5361// for more information on using Contexts.
5362func (c *DeviceFarm) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) {
5363	req, out := c.ListTagsForResourceRequest(input)
5364	req.SetContext(ctx)
5365	req.ApplyOptions(opts...)
5366	return out, req.Send()
5367}
5368
5369const opListTestGridProjects = "ListTestGridProjects"
5370
5371// ListTestGridProjectsRequest generates a "aws/request.Request" representing the
5372// client's request for the ListTestGridProjects operation. The "output" return
5373// value will be populated with the request's response once the request completes
5374// successfully.
5375//
5376// Use "Send" method on the returned Request to send the API call to the service.
5377// the "output" return value is not valid until after Send returns without error.
5378//
5379// See ListTestGridProjects for more information on using the ListTestGridProjects
5380// API call, and error handling.
5381//
5382// This method is useful when you want to inject custom logic or configuration
5383// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5384//
5385//
5386//    // Example sending a request using the ListTestGridProjectsRequest method.
5387//    req, resp := client.ListTestGridProjectsRequest(params)
5388//
5389//    err := req.Send()
5390//    if err == nil { // resp is now filled
5391//        fmt.Println(resp)
5392//    }
5393//
5394// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListTestGridProjects
5395func (c *DeviceFarm) ListTestGridProjectsRequest(input *ListTestGridProjectsInput) (req *request.Request, output *ListTestGridProjectsOutput) {
5396	op := &request.Operation{
5397		Name:       opListTestGridProjects,
5398		HTTPMethod: "POST",
5399		HTTPPath:   "/",
5400		Paginator: &request.Paginator{
5401			InputTokens:     []string{"nextToken"},
5402			OutputTokens:    []string{"nextToken"},
5403			LimitToken:      "maxResult",
5404			TruncationToken: "",
5405		},
5406	}
5407
5408	if input == nil {
5409		input = &ListTestGridProjectsInput{}
5410	}
5411
5412	output = &ListTestGridProjectsOutput{}
5413	req = c.newRequest(op, input, output)
5414	return
5415}
5416
5417// ListTestGridProjects API operation for AWS Device Farm.
5418//
5419// Gets a list of all Selenium testing projects in your account.
5420//
5421// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5422// with awserr.Error's Code and Message methods to get detailed information about
5423// the error.
5424//
5425// See the AWS API reference guide for AWS Device Farm's
5426// API operation ListTestGridProjects for usage and error information.
5427//
5428// Returned Error Codes:
5429//   * ErrCodeArgumentException "ArgumentException"
5430//   An invalid argument was specified.
5431//
5432//   * ErrCodeInternalServiceException "InternalServiceException"
5433//   An internal exception was raised in the service. Contact aws-devicefarm-support@amazon.com
5434//   (mailto:aws-devicefarm-support@amazon.com) if you see this error.
5435//
5436// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListTestGridProjects
5437func (c *DeviceFarm) ListTestGridProjects(input *ListTestGridProjectsInput) (*ListTestGridProjectsOutput, error) {
5438	req, out := c.ListTestGridProjectsRequest(input)
5439	return out, req.Send()
5440}
5441
5442// ListTestGridProjectsWithContext is the same as ListTestGridProjects with the addition of
5443// the ability to pass a context and additional request options.
5444//
5445// See ListTestGridProjects for details on how to use this API operation.
5446//
5447// The context must be non-nil and will be used for request cancellation. If
5448// the context is nil a panic will occur. In the future the SDK may create
5449// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5450// for more information on using Contexts.
5451func (c *DeviceFarm) ListTestGridProjectsWithContext(ctx aws.Context, input *ListTestGridProjectsInput, opts ...request.Option) (*ListTestGridProjectsOutput, error) {
5452	req, out := c.ListTestGridProjectsRequest(input)
5453	req.SetContext(ctx)
5454	req.ApplyOptions(opts...)
5455	return out, req.Send()
5456}
5457
5458// ListTestGridProjectsPages iterates over the pages of a ListTestGridProjects operation,
5459// calling the "fn" function with the response data for each page. To stop
5460// iterating, return false from the fn function.
5461//
5462// See ListTestGridProjects method for more information on how to use this operation.
5463//
5464// Note: This operation can generate multiple requests to a service.
5465//
5466//    // Example iterating over at most 3 pages of a ListTestGridProjects operation.
5467//    pageNum := 0
5468//    err := client.ListTestGridProjectsPages(params,
5469//        func(page *devicefarm.ListTestGridProjectsOutput, lastPage bool) bool {
5470//            pageNum++
5471//            fmt.Println(page)
5472//            return pageNum <= 3
5473//        })
5474//
5475func (c *DeviceFarm) ListTestGridProjectsPages(input *ListTestGridProjectsInput, fn func(*ListTestGridProjectsOutput, bool) bool) error {
5476	return c.ListTestGridProjectsPagesWithContext(aws.BackgroundContext(), input, fn)
5477}
5478
5479// ListTestGridProjectsPagesWithContext same as ListTestGridProjectsPages except
5480// it takes a Context and allows setting request options on the pages.
5481//
5482// The context must be non-nil and will be used for request cancellation. If
5483// the context is nil a panic will occur. In the future the SDK may create
5484// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5485// for more information on using Contexts.
5486func (c *DeviceFarm) ListTestGridProjectsPagesWithContext(ctx aws.Context, input *ListTestGridProjectsInput, fn func(*ListTestGridProjectsOutput, bool) bool, opts ...request.Option) error {
5487	p := request.Pagination{
5488		NewRequest: func() (*request.Request, error) {
5489			var inCpy *ListTestGridProjectsInput
5490			if input != nil {
5491				tmp := *input
5492				inCpy = &tmp
5493			}
5494			req, _ := c.ListTestGridProjectsRequest(inCpy)
5495			req.SetContext(ctx)
5496			req.ApplyOptions(opts...)
5497			return req, nil
5498		},
5499	}
5500
5501	for p.Next() {
5502		if !fn(p.Page().(*ListTestGridProjectsOutput), !p.HasNextPage()) {
5503			break
5504		}
5505	}
5506
5507	return p.Err()
5508}
5509
5510const opListTestGridSessionActions = "ListTestGridSessionActions"
5511
5512// ListTestGridSessionActionsRequest generates a "aws/request.Request" representing the
5513// client's request for the ListTestGridSessionActions operation. The "output" return
5514// value will be populated with the request's response once the request completes
5515// successfully.
5516//
5517// Use "Send" method on the returned Request to send the API call to the service.
5518// the "output" return value is not valid until after Send returns without error.
5519//
5520// See ListTestGridSessionActions for more information on using the ListTestGridSessionActions
5521// API call, and error handling.
5522//
5523// This method is useful when you want to inject custom logic or configuration
5524// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5525//
5526//
5527//    // Example sending a request using the ListTestGridSessionActionsRequest method.
5528//    req, resp := client.ListTestGridSessionActionsRequest(params)
5529//
5530//    err := req.Send()
5531//    if err == nil { // resp is now filled
5532//        fmt.Println(resp)
5533//    }
5534//
5535// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListTestGridSessionActions
5536func (c *DeviceFarm) ListTestGridSessionActionsRequest(input *ListTestGridSessionActionsInput) (req *request.Request, output *ListTestGridSessionActionsOutput) {
5537	op := &request.Operation{
5538		Name:       opListTestGridSessionActions,
5539		HTTPMethod: "POST",
5540		HTTPPath:   "/",
5541		Paginator: &request.Paginator{
5542			InputTokens:     []string{"nextToken"},
5543			OutputTokens:    []string{"nextToken"},
5544			LimitToken:      "maxResult",
5545			TruncationToken: "",
5546		},
5547	}
5548
5549	if input == nil {
5550		input = &ListTestGridSessionActionsInput{}
5551	}
5552
5553	output = &ListTestGridSessionActionsOutput{}
5554	req = c.newRequest(op, input, output)
5555	return
5556}
5557
5558// ListTestGridSessionActions API operation for AWS Device Farm.
5559//
5560// Returns a list of the actions taken in a TestGridSession.
5561//
5562// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5563// with awserr.Error's Code and Message methods to get detailed information about
5564// the error.
5565//
5566// See the AWS API reference guide for AWS Device Farm's
5567// API operation ListTestGridSessionActions for usage and error information.
5568//
5569// Returned Error Codes:
5570//   * ErrCodeNotFoundException "NotFoundException"
5571//   The specified entity was not found.
5572//
5573//   * ErrCodeArgumentException "ArgumentException"
5574//   An invalid argument was specified.
5575//
5576//   * ErrCodeInternalServiceException "InternalServiceException"
5577//   An internal exception was raised in the service. Contact aws-devicefarm-support@amazon.com
5578//   (mailto:aws-devicefarm-support@amazon.com) if you see this error.
5579//
5580// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListTestGridSessionActions
5581func (c *DeviceFarm) ListTestGridSessionActions(input *ListTestGridSessionActionsInput) (*ListTestGridSessionActionsOutput, error) {
5582	req, out := c.ListTestGridSessionActionsRequest(input)
5583	return out, req.Send()
5584}
5585
5586// ListTestGridSessionActionsWithContext is the same as ListTestGridSessionActions with the addition of
5587// the ability to pass a context and additional request options.
5588//
5589// See ListTestGridSessionActions for details on how to use this API operation.
5590//
5591// The context must be non-nil and will be used for request cancellation. If
5592// the context is nil a panic will occur. In the future the SDK may create
5593// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5594// for more information on using Contexts.
5595func (c *DeviceFarm) ListTestGridSessionActionsWithContext(ctx aws.Context, input *ListTestGridSessionActionsInput, opts ...request.Option) (*ListTestGridSessionActionsOutput, error) {
5596	req, out := c.ListTestGridSessionActionsRequest(input)
5597	req.SetContext(ctx)
5598	req.ApplyOptions(opts...)
5599	return out, req.Send()
5600}
5601
5602// ListTestGridSessionActionsPages iterates over the pages of a ListTestGridSessionActions operation,
5603// calling the "fn" function with the response data for each page. To stop
5604// iterating, return false from the fn function.
5605//
5606// See ListTestGridSessionActions method for more information on how to use this operation.
5607//
5608// Note: This operation can generate multiple requests to a service.
5609//
5610//    // Example iterating over at most 3 pages of a ListTestGridSessionActions operation.
5611//    pageNum := 0
5612//    err := client.ListTestGridSessionActionsPages(params,
5613//        func(page *devicefarm.ListTestGridSessionActionsOutput, lastPage bool) bool {
5614//            pageNum++
5615//            fmt.Println(page)
5616//            return pageNum <= 3
5617//        })
5618//
5619func (c *DeviceFarm) ListTestGridSessionActionsPages(input *ListTestGridSessionActionsInput, fn func(*ListTestGridSessionActionsOutput, bool) bool) error {
5620	return c.ListTestGridSessionActionsPagesWithContext(aws.BackgroundContext(), input, fn)
5621}
5622
5623// ListTestGridSessionActionsPagesWithContext same as ListTestGridSessionActionsPages except
5624// it takes a Context and allows setting request options on the pages.
5625//
5626// The context must be non-nil and will be used for request cancellation. If
5627// the context is nil a panic will occur. In the future the SDK may create
5628// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5629// for more information on using Contexts.
5630func (c *DeviceFarm) ListTestGridSessionActionsPagesWithContext(ctx aws.Context, input *ListTestGridSessionActionsInput, fn func(*ListTestGridSessionActionsOutput, bool) bool, opts ...request.Option) error {
5631	p := request.Pagination{
5632		NewRequest: func() (*request.Request, error) {
5633			var inCpy *ListTestGridSessionActionsInput
5634			if input != nil {
5635				tmp := *input
5636				inCpy = &tmp
5637			}
5638			req, _ := c.ListTestGridSessionActionsRequest(inCpy)
5639			req.SetContext(ctx)
5640			req.ApplyOptions(opts...)
5641			return req, nil
5642		},
5643	}
5644
5645	for p.Next() {
5646		if !fn(p.Page().(*ListTestGridSessionActionsOutput), !p.HasNextPage()) {
5647			break
5648		}
5649	}
5650
5651	return p.Err()
5652}
5653
5654const opListTestGridSessionArtifacts = "ListTestGridSessionArtifacts"
5655
5656// ListTestGridSessionArtifactsRequest generates a "aws/request.Request" representing the
5657// client's request for the ListTestGridSessionArtifacts operation. The "output" return
5658// value will be populated with the request's response once the request completes
5659// successfully.
5660//
5661// Use "Send" method on the returned Request to send the API call to the service.
5662// the "output" return value is not valid until after Send returns without error.
5663//
5664// See ListTestGridSessionArtifacts for more information on using the ListTestGridSessionArtifacts
5665// API call, and error handling.
5666//
5667// This method is useful when you want to inject custom logic or configuration
5668// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5669//
5670//
5671//    // Example sending a request using the ListTestGridSessionArtifactsRequest method.
5672//    req, resp := client.ListTestGridSessionArtifactsRequest(params)
5673//
5674//    err := req.Send()
5675//    if err == nil { // resp is now filled
5676//        fmt.Println(resp)
5677//    }
5678//
5679// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListTestGridSessionArtifacts
5680func (c *DeviceFarm) ListTestGridSessionArtifactsRequest(input *ListTestGridSessionArtifactsInput) (req *request.Request, output *ListTestGridSessionArtifactsOutput) {
5681	op := &request.Operation{
5682		Name:       opListTestGridSessionArtifacts,
5683		HTTPMethod: "POST",
5684		HTTPPath:   "/",
5685		Paginator: &request.Paginator{
5686			InputTokens:     []string{"nextToken"},
5687			OutputTokens:    []string{"nextToken"},
5688			LimitToken:      "maxResult",
5689			TruncationToken: "",
5690		},
5691	}
5692
5693	if input == nil {
5694		input = &ListTestGridSessionArtifactsInput{}
5695	}
5696
5697	output = &ListTestGridSessionArtifactsOutput{}
5698	req = c.newRequest(op, input, output)
5699	return
5700}
5701
5702// ListTestGridSessionArtifacts API operation for AWS Device Farm.
5703//
5704// Retrieves a list of artifacts created during the session.
5705//
5706// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5707// with awserr.Error's Code and Message methods to get detailed information about
5708// the error.
5709//
5710// See the AWS API reference guide for AWS Device Farm's
5711// API operation ListTestGridSessionArtifacts for usage and error information.
5712//
5713// Returned Error Codes:
5714//   * ErrCodeNotFoundException "NotFoundException"
5715//   The specified entity was not found.
5716//
5717//   * ErrCodeArgumentException "ArgumentException"
5718//   An invalid argument was specified.
5719//
5720//   * ErrCodeInternalServiceException "InternalServiceException"
5721//   An internal exception was raised in the service. Contact aws-devicefarm-support@amazon.com
5722//   (mailto:aws-devicefarm-support@amazon.com) if you see this error.
5723//
5724// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListTestGridSessionArtifacts
5725func (c *DeviceFarm) ListTestGridSessionArtifacts(input *ListTestGridSessionArtifactsInput) (*ListTestGridSessionArtifactsOutput, error) {
5726	req, out := c.ListTestGridSessionArtifactsRequest(input)
5727	return out, req.Send()
5728}
5729
5730// ListTestGridSessionArtifactsWithContext is the same as ListTestGridSessionArtifacts with the addition of
5731// the ability to pass a context and additional request options.
5732//
5733// See ListTestGridSessionArtifacts for details on how to use this API operation.
5734//
5735// The context must be non-nil and will be used for request cancellation. If
5736// the context is nil a panic will occur. In the future the SDK may create
5737// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5738// for more information on using Contexts.
5739func (c *DeviceFarm) ListTestGridSessionArtifactsWithContext(ctx aws.Context, input *ListTestGridSessionArtifactsInput, opts ...request.Option) (*ListTestGridSessionArtifactsOutput, error) {
5740	req, out := c.ListTestGridSessionArtifactsRequest(input)
5741	req.SetContext(ctx)
5742	req.ApplyOptions(opts...)
5743	return out, req.Send()
5744}
5745
5746// ListTestGridSessionArtifactsPages iterates over the pages of a ListTestGridSessionArtifacts operation,
5747// calling the "fn" function with the response data for each page. To stop
5748// iterating, return false from the fn function.
5749//
5750// See ListTestGridSessionArtifacts method for more information on how to use this operation.
5751//
5752// Note: This operation can generate multiple requests to a service.
5753//
5754//    // Example iterating over at most 3 pages of a ListTestGridSessionArtifacts operation.
5755//    pageNum := 0
5756//    err := client.ListTestGridSessionArtifactsPages(params,
5757//        func(page *devicefarm.ListTestGridSessionArtifactsOutput, lastPage bool) bool {
5758//            pageNum++
5759//            fmt.Println(page)
5760//            return pageNum <= 3
5761//        })
5762//
5763func (c *DeviceFarm) ListTestGridSessionArtifactsPages(input *ListTestGridSessionArtifactsInput, fn func(*ListTestGridSessionArtifactsOutput, bool) bool) error {
5764	return c.ListTestGridSessionArtifactsPagesWithContext(aws.BackgroundContext(), input, fn)
5765}
5766
5767// ListTestGridSessionArtifactsPagesWithContext same as ListTestGridSessionArtifactsPages except
5768// it takes a Context and allows setting request options on the pages.
5769//
5770// The context must be non-nil and will be used for request cancellation. If
5771// the context is nil a panic will occur. In the future the SDK may create
5772// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5773// for more information on using Contexts.
5774func (c *DeviceFarm) ListTestGridSessionArtifactsPagesWithContext(ctx aws.Context, input *ListTestGridSessionArtifactsInput, fn func(*ListTestGridSessionArtifactsOutput, bool) bool, opts ...request.Option) error {
5775	p := request.Pagination{
5776		NewRequest: func() (*request.Request, error) {
5777			var inCpy *ListTestGridSessionArtifactsInput
5778			if input != nil {
5779				tmp := *input
5780				inCpy = &tmp
5781			}
5782			req, _ := c.ListTestGridSessionArtifactsRequest(inCpy)
5783			req.SetContext(ctx)
5784			req.ApplyOptions(opts...)
5785			return req, nil
5786		},
5787	}
5788
5789	for p.Next() {
5790		if !fn(p.Page().(*ListTestGridSessionArtifactsOutput), !p.HasNextPage()) {
5791			break
5792		}
5793	}
5794
5795	return p.Err()
5796}
5797
5798const opListTestGridSessions = "ListTestGridSessions"
5799
5800// ListTestGridSessionsRequest generates a "aws/request.Request" representing the
5801// client's request for the ListTestGridSessions operation. The "output" return
5802// value will be populated with the request's response once the request completes
5803// successfully.
5804//
5805// Use "Send" method on the returned Request to send the API call to the service.
5806// the "output" return value is not valid until after Send returns without error.
5807//
5808// See ListTestGridSessions for more information on using the ListTestGridSessions
5809// API call, and error handling.
5810//
5811// This method is useful when you want to inject custom logic or configuration
5812// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5813//
5814//
5815//    // Example sending a request using the ListTestGridSessionsRequest method.
5816//    req, resp := client.ListTestGridSessionsRequest(params)
5817//
5818//    err := req.Send()
5819//    if err == nil { // resp is now filled
5820//        fmt.Println(resp)
5821//    }
5822//
5823// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListTestGridSessions
5824func (c *DeviceFarm) ListTestGridSessionsRequest(input *ListTestGridSessionsInput) (req *request.Request, output *ListTestGridSessionsOutput) {
5825	op := &request.Operation{
5826		Name:       opListTestGridSessions,
5827		HTTPMethod: "POST",
5828		HTTPPath:   "/",
5829		Paginator: &request.Paginator{
5830			InputTokens:     []string{"nextToken"},
5831			OutputTokens:    []string{"nextToken"},
5832			LimitToken:      "maxResult",
5833			TruncationToken: "",
5834		},
5835	}
5836
5837	if input == nil {
5838		input = &ListTestGridSessionsInput{}
5839	}
5840
5841	output = &ListTestGridSessionsOutput{}
5842	req = c.newRequest(op, input, output)
5843	return
5844}
5845
5846// ListTestGridSessions API operation for AWS Device Farm.
5847//
5848// Retrieves a list of sessions for a TestGridProject.
5849//
5850// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5851// with awserr.Error's Code and Message methods to get detailed information about
5852// the error.
5853//
5854// See the AWS API reference guide for AWS Device Farm's
5855// API operation ListTestGridSessions for usage and error information.
5856//
5857// Returned Error Codes:
5858//   * ErrCodeNotFoundException "NotFoundException"
5859//   The specified entity was not found.
5860//
5861//   * ErrCodeArgumentException "ArgumentException"
5862//   An invalid argument was specified.
5863//
5864//   * ErrCodeInternalServiceException "InternalServiceException"
5865//   An internal exception was raised in the service. Contact aws-devicefarm-support@amazon.com
5866//   (mailto:aws-devicefarm-support@amazon.com) if you see this error.
5867//
5868// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListTestGridSessions
5869func (c *DeviceFarm) ListTestGridSessions(input *ListTestGridSessionsInput) (*ListTestGridSessionsOutput, error) {
5870	req, out := c.ListTestGridSessionsRequest(input)
5871	return out, req.Send()
5872}
5873
5874// ListTestGridSessionsWithContext is the same as ListTestGridSessions with the addition of
5875// the ability to pass a context and additional request options.
5876//
5877// See ListTestGridSessions for details on how to use this API operation.
5878//
5879// The context must be non-nil and will be used for request cancellation. If
5880// the context is nil a panic will occur. In the future the SDK may create
5881// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5882// for more information on using Contexts.
5883func (c *DeviceFarm) ListTestGridSessionsWithContext(ctx aws.Context, input *ListTestGridSessionsInput, opts ...request.Option) (*ListTestGridSessionsOutput, error) {
5884	req, out := c.ListTestGridSessionsRequest(input)
5885	req.SetContext(ctx)
5886	req.ApplyOptions(opts...)
5887	return out, req.Send()
5888}
5889
5890// ListTestGridSessionsPages iterates over the pages of a ListTestGridSessions operation,
5891// calling the "fn" function with the response data for each page. To stop
5892// iterating, return false from the fn function.
5893//
5894// See ListTestGridSessions method for more information on how to use this operation.
5895//
5896// Note: This operation can generate multiple requests to a service.
5897//
5898//    // Example iterating over at most 3 pages of a ListTestGridSessions operation.
5899//    pageNum := 0
5900//    err := client.ListTestGridSessionsPages(params,
5901//        func(page *devicefarm.ListTestGridSessionsOutput, lastPage bool) bool {
5902//            pageNum++
5903//            fmt.Println(page)
5904//            return pageNum <= 3
5905//        })
5906//
5907func (c *DeviceFarm) ListTestGridSessionsPages(input *ListTestGridSessionsInput, fn func(*ListTestGridSessionsOutput, bool) bool) error {
5908	return c.ListTestGridSessionsPagesWithContext(aws.BackgroundContext(), input, fn)
5909}
5910
5911// ListTestGridSessionsPagesWithContext same as ListTestGridSessionsPages except
5912// it takes a Context and allows setting request options on the pages.
5913//
5914// The context must be non-nil and will be used for request cancellation. If
5915// the context is nil a panic will occur. In the future the SDK may create
5916// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5917// for more information on using Contexts.
5918func (c *DeviceFarm) ListTestGridSessionsPagesWithContext(ctx aws.Context, input *ListTestGridSessionsInput, fn func(*ListTestGridSessionsOutput, bool) bool, opts ...request.Option) error {
5919	p := request.Pagination{
5920		NewRequest: func() (*request.Request, error) {
5921			var inCpy *ListTestGridSessionsInput
5922			if input != nil {
5923				tmp := *input
5924				inCpy = &tmp
5925			}
5926			req, _ := c.ListTestGridSessionsRequest(inCpy)
5927			req.SetContext(ctx)
5928			req.ApplyOptions(opts...)
5929			return req, nil
5930		},
5931	}
5932
5933	for p.Next() {
5934		if !fn(p.Page().(*ListTestGridSessionsOutput), !p.HasNextPage()) {
5935			break
5936		}
5937	}
5938
5939	return p.Err()
5940}
5941
5942const opListTests = "ListTests"
5943
5944// ListTestsRequest generates a "aws/request.Request" representing the
5945// client's request for the ListTests operation. The "output" return
5946// value will be populated with the request's response once the request completes
5947// successfully.
5948//
5949// Use "Send" method on the returned Request to send the API call to the service.
5950// the "output" return value is not valid until after Send returns without error.
5951//
5952// See ListTests for more information on using the ListTests
5953// API call, and error handling.
5954//
5955// This method is useful when you want to inject custom logic or configuration
5956// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5957//
5958//
5959//    // Example sending a request using the ListTestsRequest method.
5960//    req, resp := client.ListTestsRequest(params)
5961//
5962//    err := req.Send()
5963//    if err == nil { // resp is now filled
5964//        fmt.Println(resp)
5965//    }
5966//
5967// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListTests
5968func (c *DeviceFarm) ListTestsRequest(input *ListTestsInput) (req *request.Request, output *ListTestsOutput) {
5969	op := &request.Operation{
5970		Name:       opListTests,
5971		HTTPMethod: "POST",
5972		HTTPPath:   "/",
5973		Paginator: &request.Paginator{
5974			InputTokens:     []string{"nextToken"},
5975			OutputTokens:    []string{"nextToken"},
5976			LimitToken:      "",
5977			TruncationToken: "",
5978		},
5979	}
5980
5981	if input == nil {
5982		input = &ListTestsInput{}
5983	}
5984
5985	output = &ListTestsOutput{}
5986	req = c.newRequest(op, input, output)
5987	return
5988}
5989
5990// ListTests API operation for AWS Device Farm.
5991//
5992// Gets information about tests in a given test suite.
5993//
5994// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5995// with awserr.Error's Code and Message methods to get detailed information about
5996// the error.
5997//
5998// See the AWS API reference guide for AWS Device Farm's
5999// API operation ListTests for usage and error information.
6000//
6001// Returned Error Codes:
6002//   * ErrCodeArgumentException "ArgumentException"
6003//   An invalid argument was specified.
6004//
6005//   * ErrCodeNotFoundException "NotFoundException"
6006//   The specified entity was not found.
6007//
6008//   * ErrCodeLimitExceededException "LimitExceededException"
6009//   A limit was exceeded.
6010//
6011//   * ErrCodeServiceAccountException "ServiceAccountException"
6012//   There was a problem with the service account.
6013//
6014// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListTests
6015func (c *DeviceFarm) ListTests(input *ListTestsInput) (*ListTestsOutput, error) {
6016	req, out := c.ListTestsRequest(input)
6017	return out, req.Send()
6018}
6019
6020// ListTestsWithContext is the same as ListTests with the addition of
6021// the ability to pass a context and additional request options.
6022//
6023// See ListTests for details on how to use this API operation.
6024//
6025// The context must be non-nil and will be used for request cancellation. If
6026// the context is nil a panic will occur. In the future the SDK may create
6027// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6028// for more information on using Contexts.
6029func (c *DeviceFarm) ListTestsWithContext(ctx aws.Context, input *ListTestsInput, opts ...request.Option) (*ListTestsOutput, error) {
6030	req, out := c.ListTestsRequest(input)
6031	req.SetContext(ctx)
6032	req.ApplyOptions(opts...)
6033	return out, req.Send()
6034}
6035
6036// ListTestsPages iterates over the pages of a ListTests operation,
6037// calling the "fn" function with the response data for each page. To stop
6038// iterating, return false from the fn function.
6039//
6040// See ListTests method for more information on how to use this operation.
6041//
6042// Note: This operation can generate multiple requests to a service.
6043//
6044//    // Example iterating over at most 3 pages of a ListTests operation.
6045//    pageNum := 0
6046//    err := client.ListTestsPages(params,
6047//        func(page *devicefarm.ListTestsOutput, lastPage bool) bool {
6048//            pageNum++
6049//            fmt.Println(page)
6050//            return pageNum <= 3
6051//        })
6052//
6053func (c *DeviceFarm) ListTestsPages(input *ListTestsInput, fn func(*ListTestsOutput, bool) bool) error {
6054	return c.ListTestsPagesWithContext(aws.BackgroundContext(), input, fn)
6055}
6056
6057// ListTestsPagesWithContext same as ListTestsPages except
6058// it takes a Context and allows setting request options on the pages.
6059//
6060// The context must be non-nil and will be used for request cancellation. If
6061// the context is nil a panic will occur. In the future the SDK may create
6062// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6063// for more information on using Contexts.
6064func (c *DeviceFarm) ListTestsPagesWithContext(ctx aws.Context, input *ListTestsInput, fn func(*ListTestsOutput, bool) bool, opts ...request.Option) error {
6065	p := request.Pagination{
6066		NewRequest: func() (*request.Request, error) {
6067			var inCpy *ListTestsInput
6068			if input != nil {
6069				tmp := *input
6070				inCpy = &tmp
6071			}
6072			req, _ := c.ListTestsRequest(inCpy)
6073			req.SetContext(ctx)
6074			req.ApplyOptions(opts...)
6075			return req, nil
6076		},
6077	}
6078
6079	for p.Next() {
6080		if !fn(p.Page().(*ListTestsOutput), !p.HasNextPage()) {
6081			break
6082		}
6083	}
6084
6085	return p.Err()
6086}
6087
6088const opListUniqueProblems = "ListUniqueProblems"
6089
6090// ListUniqueProblemsRequest generates a "aws/request.Request" representing the
6091// client's request for the ListUniqueProblems operation. The "output" return
6092// value will be populated with the request's response once the request completes
6093// successfully.
6094//
6095// Use "Send" method on the returned Request to send the API call to the service.
6096// the "output" return value is not valid until after Send returns without error.
6097//
6098// See ListUniqueProblems for more information on using the ListUniqueProblems
6099// API call, and error handling.
6100//
6101// This method is useful when you want to inject custom logic or configuration
6102// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6103//
6104//
6105//    // Example sending a request using the ListUniqueProblemsRequest method.
6106//    req, resp := client.ListUniqueProblemsRequest(params)
6107//
6108//    err := req.Send()
6109//    if err == nil { // resp is now filled
6110//        fmt.Println(resp)
6111//    }
6112//
6113// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListUniqueProblems
6114func (c *DeviceFarm) ListUniqueProblemsRequest(input *ListUniqueProblemsInput) (req *request.Request, output *ListUniqueProblemsOutput) {
6115	op := &request.Operation{
6116		Name:       opListUniqueProblems,
6117		HTTPMethod: "POST",
6118		HTTPPath:   "/",
6119		Paginator: &request.Paginator{
6120			InputTokens:     []string{"nextToken"},
6121			OutputTokens:    []string{"nextToken"},
6122			LimitToken:      "",
6123			TruncationToken: "",
6124		},
6125	}
6126
6127	if input == nil {
6128		input = &ListUniqueProblemsInput{}
6129	}
6130
6131	output = &ListUniqueProblemsOutput{}
6132	req = c.newRequest(op, input, output)
6133	return
6134}
6135
6136// ListUniqueProblems API operation for AWS Device Farm.
6137//
6138// Gets information about unique problems, such as exceptions or crashes.
6139//
6140// Unique problems are defined as a single instance of an error across a run,
6141// job, or suite. For example, if a call in your application consistently raises
6142// an exception (OutOfBoundsException in MyActivity.java:386), ListUniqueProblems
6143// returns a single entry instead of many individual entries for that exception.
6144//
6145// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6146// with awserr.Error's Code and Message methods to get detailed information about
6147// the error.
6148//
6149// See the AWS API reference guide for AWS Device Farm's
6150// API operation ListUniqueProblems for usage and error information.
6151//
6152// Returned Error Codes:
6153//   * ErrCodeArgumentException "ArgumentException"
6154//   An invalid argument was specified.
6155//
6156//   * ErrCodeNotFoundException "NotFoundException"
6157//   The specified entity was not found.
6158//
6159//   * ErrCodeLimitExceededException "LimitExceededException"
6160//   A limit was exceeded.
6161//
6162//   * ErrCodeServiceAccountException "ServiceAccountException"
6163//   There was a problem with the service account.
6164//
6165// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListUniqueProblems
6166func (c *DeviceFarm) ListUniqueProblems(input *ListUniqueProblemsInput) (*ListUniqueProblemsOutput, error) {
6167	req, out := c.ListUniqueProblemsRequest(input)
6168	return out, req.Send()
6169}
6170
6171// ListUniqueProblemsWithContext is the same as ListUniqueProblems with the addition of
6172// the ability to pass a context and additional request options.
6173//
6174// See ListUniqueProblems for details on how to use this API operation.
6175//
6176// The context must be non-nil and will be used for request cancellation. If
6177// the context is nil a panic will occur. In the future the SDK may create
6178// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6179// for more information on using Contexts.
6180func (c *DeviceFarm) ListUniqueProblemsWithContext(ctx aws.Context, input *ListUniqueProblemsInput, opts ...request.Option) (*ListUniqueProblemsOutput, error) {
6181	req, out := c.ListUniqueProblemsRequest(input)
6182	req.SetContext(ctx)
6183	req.ApplyOptions(opts...)
6184	return out, req.Send()
6185}
6186
6187// ListUniqueProblemsPages iterates over the pages of a ListUniqueProblems operation,
6188// calling the "fn" function with the response data for each page. To stop
6189// iterating, return false from the fn function.
6190//
6191// See ListUniqueProblems method for more information on how to use this operation.
6192//
6193// Note: This operation can generate multiple requests to a service.
6194//
6195//    // Example iterating over at most 3 pages of a ListUniqueProblems operation.
6196//    pageNum := 0
6197//    err := client.ListUniqueProblemsPages(params,
6198//        func(page *devicefarm.ListUniqueProblemsOutput, lastPage bool) bool {
6199//            pageNum++
6200//            fmt.Println(page)
6201//            return pageNum <= 3
6202//        })
6203//
6204func (c *DeviceFarm) ListUniqueProblemsPages(input *ListUniqueProblemsInput, fn func(*ListUniqueProblemsOutput, bool) bool) error {
6205	return c.ListUniqueProblemsPagesWithContext(aws.BackgroundContext(), input, fn)
6206}
6207
6208// ListUniqueProblemsPagesWithContext same as ListUniqueProblemsPages except
6209// it takes a Context and allows setting request options on the pages.
6210//
6211// The context must be non-nil and will be used for request cancellation. If
6212// the context is nil a panic will occur. In the future the SDK may create
6213// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6214// for more information on using Contexts.
6215func (c *DeviceFarm) ListUniqueProblemsPagesWithContext(ctx aws.Context, input *ListUniqueProblemsInput, fn func(*ListUniqueProblemsOutput, bool) bool, opts ...request.Option) error {
6216	p := request.Pagination{
6217		NewRequest: func() (*request.Request, error) {
6218			var inCpy *ListUniqueProblemsInput
6219			if input != nil {
6220				tmp := *input
6221				inCpy = &tmp
6222			}
6223			req, _ := c.ListUniqueProblemsRequest(inCpy)
6224			req.SetContext(ctx)
6225			req.ApplyOptions(opts...)
6226			return req, nil
6227		},
6228	}
6229
6230	for p.Next() {
6231		if !fn(p.Page().(*ListUniqueProblemsOutput), !p.HasNextPage()) {
6232			break
6233		}
6234	}
6235
6236	return p.Err()
6237}
6238
6239const opListUploads = "ListUploads"
6240
6241// ListUploadsRequest generates a "aws/request.Request" representing the
6242// client's request for the ListUploads operation. The "output" return
6243// value will be populated with the request's response once the request completes
6244// successfully.
6245//
6246// Use "Send" method on the returned Request to send the API call to the service.
6247// the "output" return value is not valid until after Send returns without error.
6248//
6249// See ListUploads for more information on using the ListUploads
6250// API call, and error handling.
6251//
6252// This method is useful when you want to inject custom logic or configuration
6253// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6254//
6255//
6256//    // Example sending a request using the ListUploadsRequest method.
6257//    req, resp := client.ListUploadsRequest(params)
6258//
6259//    err := req.Send()
6260//    if err == nil { // resp is now filled
6261//        fmt.Println(resp)
6262//    }
6263//
6264// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListUploads
6265func (c *DeviceFarm) ListUploadsRequest(input *ListUploadsInput) (req *request.Request, output *ListUploadsOutput) {
6266	op := &request.Operation{
6267		Name:       opListUploads,
6268		HTTPMethod: "POST",
6269		HTTPPath:   "/",
6270		Paginator: &request.Paginator{
6271			InputTokens:     []string{"nextToken"},
6272			OutputTokens:    []string{"nextToken"},
6273			LimitToken:      "",
6274			TruncationToken: "",
6275		},
6276	}
6277
6278	if input == nil {
6279		input = &ListUploadsInput{}
6280	}
6281
6282	output = &ListUploadsOutput{}
6283	req = c.newRequest(op, input, output)
6284	return
6285}
6286
6287// ListUploads API operation for AWS Device Farm.
6288//
6289// Gets information about uploads, given an AWS Device Farm project ARN.
6290//
6291// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6292// with awserr.Error's Code and Message methods to get detailed information about
6293// the error.
6294//
6295// See the AWS API reference guide for AWS Device Farm's
6296// API operation ListUploads for usage and error information.
6297//
6298// Returned Error Codes:
6299//   * ErrCodeArgumentException "ArgumentException"
6300//   An invalid argument was specified.
6301//
6302//   * ErrCodeNotFoundException "NotFoundException"
6303//   The specified entity was not found.
6304//
6305//   * ErrCodeLimitExceededException "LimitExceededException"
6306//   A limit was exceeded.
6307//
6308//   * ErrCodeServiceAccountException "ServiceAccountException"
6309//   There was a problem with the service account.
6310//
6311// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListUploads
6312func (c *DeviceFarm) ListUploads(input *ListUploadsInput) (*ListUploadsOutput, error) {
6313	req, out := c.ListUploadsRequest(input)
6314	return out, req.Send()
6315}
6316
6317// ListUploadsWithContext is the same as ListUploads with the addition of
6318// the ability to pass a context and additional request options.
6319//
6320// See ListUploads for details on how to use this API operation.
6321//
6322// The context must be non-nil and will be used for request cancellation. If
6323// the context is nil a panic will occur. In the future the SDK may create
6324// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6325// for more information on using Contexts.
6326func (c *DeviceFarm) ListUploadsWithContext(ctx aws.Context, input *ListUploadsInput, opts ...request.Option) (*ListUploadsOutput, error) {
6327	req, out := c.ListUploadsRequest(input)
6328	req.SetContext(ctx)
6329	req.ApplyOptions(opts...)
6330	return out, req.Send()
6331}
6332
6333// ListUploadsPages iterates over the pages of a ListUploads operation,
6334// calling the "fn" function with the response data for each page. To stop
6335// iterating, return false from the fn function.
6336//
6337// See ListUploads method for more information on how to use this operation.
6338//
6339// Note: This operation can generate multiple requests to a service.
6340//
6341//    // Example iterating over at most 3 pages of a ListUploads operation.
6342//    pageNum := 0
6343//    err := client.ListUploadsPages(params,
6344//        func(page *devicefarm.ListUploadsOutput, lastPage bool) bool {
6345//            pageNum++
6346//            fmt.Println(page)
6347//            return pageNum <= 3
6348//        })
6349//
6350func (c *DeviceFarm) ListUploadsPages(input *ListUploadsInput, fn func(*ListUploadsOutput, bool) bool) error {
6351	return c.ListUploadsPagesWithContext(aws.BackgroundContext(), input, fn)
6352}
6353
6354// ListUploadsPagesWithContext same as ListUploadsPages except
6355// it takes a Context and allows setting request options on the pages.
6356//
6357// The context must be non-nil and will be used for request cancellation. If
6358// the context is nil a panic will occur. In the future the SDK may create
6359// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6360// for more information on using Contexts.
6361func (c *DeviceFarm) ListUploadsPagesWithContext(ctx aws.Context, input *ListUploadsInput, fn func(*ListUploadsOutput, bool) bool, opts ...request.Option) error {
6362	p := request.Pagination{
6363		NewRequest: func() (*request.Request, error) {
6364			var inCpy *ListUploadsInput
6365			if input != nil {
6366				tmp := *input
6367				inCpy = &tmp
6368			}
6369			req, _ := c.ListUploadsRequest(inCpy)
6370			req.SetContext(ctx)
6371			req.ApplyOptions(opts...)
6372			return req, nil
6373		},
6374	}
6375
6376	for p.Next() {
6377		if !fn(p.Page().(*ListUploadsOutput), !p.HasNextPage()) {
6378			break
6379		}
6380	}
6381
6382	return p.Err()
6383}
6384
6385const opListVPCEConfigurations = "ListVPCEConfigurations"
6386
6387// ListVPCEConfigurationsRequest generates a "aws/request.Request" representing the
6388// client's request for the ListVPCEConfigurations operation. The "output" return
6389// value will be populated with the request's response once the request completes
6390// successfully.
6391//
6392// Use "Send" method on the returned Request to send the API call to the service.
6393// the "output" return value is not valid until after Send returns without error.
6394//
6395// See ListVPCEConfigurations for more information on using the ListVPCEConfigurations
6396// API call, and error handling.
6397//
6398// This method is useful when you want to inject custom logic or configuration
6399// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6400//
6401//
6402//    // Example sending a request using the ListVPCEConfigurationsRequest method.
6403//    req, resp := client.ListVPCEConfigurationsRequest(params)
6404//
6405//    err := req.Send()
6406//    if err == nil { // resp is now filled
6407//        fmt.Println(resp)
6408//    }
6409//
6410// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListVPCEConfigurations
6411func (c *DeviceFarm) ListVPCEConfigurationsRequest(input *ListVPCEConfigurationsInput) (req *request.Request, output *ListVPCEConfigurationsOutput) {
6412	op := &request.Operation{
6413		Name:       opListVPCEConfigurations,
6414		HTTPMethod: "POST",
6415		HTTPPath:   "/",
6416	}
6417
6418	if input == nil {
6419		input = &ListVPCEConfigurationsInput{}
6420	}
6421
6422	output = &ListVPCEConfigurationsOutput{}
6423	req = c.newRequest(op, input, output)
6424	return
6425}
6426
6427// ListVPCEConfigurations API operation for AWS Device Farm.
6428//
6429// Returns information about all Amazon Virtual Private Cloud (VPC) endpoint
6430// configurations in the AWS account.
6431//
6432// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6433// with awserr.Error's Code and Message methods to get detailed information about
6434// the error.
6435//
6436// See the AWS API reference guide for AWS Device Farm's
6437// API operation ListVPCEConfigurations for usage and error information.
6438//
6439// Returned Error Codes:
6440//   * ErrCodeArgumentException "ArgumentException"
6441//   An invalid argument was specified.
6442//
6443//   * ErrCodeServiceAccountException "ServiceAccountException"
6444//   There was a problem with the service account.
6445//
6446// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListVPCEConfigurations
6447func (c *DeviceFarm) ListVPCEConfigurations(input *ListVPCEConfigurationsInput) (*ListVPCEConfigurationsOutput, error) {
6448	req, out := c.ListVPCEConfigurationsRequest(input)
6449	return out, req.Send()
6450}
6451
6452// ListVPCEConfigurationsWithContext is the same as ListVPCEConfigurations with the addition of
6453// the ability to pass a context and additional request options.
6454//
6455// See ListVPCEConfigurations for details on how to use this API operation.
6456//
6457// The context must be non-nil and will be used for request cancellation. If
6458// the context is nil a panic will occur. In the future the SDK may create
6459// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6460// for more information on using Contexts.
6461func (c *DeviceFarm) ListVPCEConfigurationsWithContext(ctx aws.Context, input *ListVPCEConfigurationsInput, opts ...request.Option) (*ListVPCEConfigurationsOutput, error) {
6462	req, out := c.ListVPCEConfigurationsRequest(input)
6463	req.SetContext(ctx)
6464	req.ApplyOptions(opts...)
6465	return out, req.Send()
6466}
6467
6468const opPurchaseOffering = "PurchaseOffering"
6469
6470// PurchaseOfferingRequest generates a "aws/request.Request" representing the
6471// client's request for the PurchaseOffering operation. The "output" return
6472// value will be populated with the request's response once the request completes
6473// successfully.
6474//
6475// Use "Send" method on the returned Request to send the API call to the service.
6476// the "output" return value is not valid until after Send returns without error.
6477//
6478// See PurchaseOffering for more information on using the PurchaseOffering
6479// API call, and error handling.
6480//
6481// This method is useful when you want to inject custom logic or configuration
6482// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6483//
6484//
6485//    // Example sending a request using the PurchaseOfferingRequest method.
6486//    req, resp := client.PurchaseOfferingRequest(params)
6487//
6488//    err := req.Send()
6489//    if err == nil { // resp is now filled
6490//        fmt.Println(resp)
6491//    }
6492//
6493// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/PurchaseOffering
6494func (c *DeviceFarm) PurchaseOfferingRequest(input *PurchaseOfferingInput) (req *request.Request, output *PurchaseOfferingOutput) {
6495	op := &request.Operation{
6496		Name:       opPurchaseOffering,
6497		HTTPMethod: "POST",
6498		HTTPPath:   "/",
6499	}
6500
6501	if input == nil {
6502		input = &PurchaseOfferingInput{}
6503	}
6504
6505	output = &PurchaseOfferingOutput{}
6506	req = c.newRequest(op, input, output)
6507	return
6508}
6509
6510// PurchaseOffering API operation for AWS Device Farm.
6511//
6512// Immediately purchases offerings for an AWS account. Offerings renew with
6513// the latest total purchased quantity for an offering, unless the renewal was
6514// overridden. The API returns a NotEligible error if the user is not permitted
6515// to invoke the operation. If you must be able to invoke this operation, contact
6516// aws-devicefarm-support@amazon.com (mailto:aws-devicefarm-support@amazon.com).
6517//
6518// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6519// with awserr.Error's Code and Message methods to get detailed information about
6520// the error.
6521//
6522// See the AWS API reference guide for AWS Device Farm's
6523// API operation PurchaseOffering for usage and error information.
6524//
6525// Returned Error Codes:
6526//   * ErrCodeArgumentException "ArgumentException"
6527//   An invalid argument was specified.
6528//
6529//   * ErrCodeNotFoundException "NotFoundException"
6530//   The specified entity was not found.
6531//
6532//   * ErrCodeNotEligibleException "NotEligibleException"
6533//   Exception gets thrown when a user is not eligible to perform the specified
6534//   transaction.
6535//
6536//   * ErrCodeLimitExceededException "LimitExceededException"
6537//   A limit was exceeded.
6538//
6539//   * ErrCodeServiceAccountException "ServiceAccountException"
6540//   There was a problem with the service account.
6541//
6542// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/PurchaseOffering
6543func (c *DeviceFarm) PurchaseOffering(input *PurchaseOfferingInput) (*PurchaseOfferingOutput, error) {
6544	req, out := c.PurchaseOfferingRequest(input)
6545	return out, req.Send()
6546}
6547
6548// PurchaseOfferingWithContext is the same as PurchaseOffering with the addition of
6549// the ability to pass a context and additional request options.
6550//
6551// See PurchaseOffering for details on how to use this API operation.
6552//
6553// The context must be non-nil and will be used for request cancellation. If
6554// the context is nil a panic will occur. In the future the SDK may create
6555// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6556// for more information on using Contexts.
6557func (c *DeviceFarm) PurchaseOfferingWithContext(ctx aws.Context, input *PurchaseOfferingInput, opts ...request.Option) (*PurchaseOfferingOutput, error) {
6558	req, out := c.PurchaseOfferingRequest(input)
6559	req.SetContext(ctx)
6560	req.ApplyOptions(opts...)
6561	return out, req.Send()
6562}
6563
6564const opRenewOffering = "RenewOffering"
6565
6566// RenewOfferingRequest generates a "aws/request.Request" representing the
6567// client's request for the RenewOffering operation. The "output" return
6568// value will be populated with the request's response once the request completes
6569// successfully.
6570//
6571// Use "Send" method on the returned Request to send the API call to the service.
6572// the "output" return value is not valid until after Send returns without error.
6573//
6574// See RenewOffering for more information on using the RenewOffering
6575// API call, and error handling.
6576//
6577// This method is useful when you want to inject custom logic or configuration
6578// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6579//
6580//
6581//    // Example sending a request using the RenewOfferingRequest method.
6582//    req, resp := client.RenewOfferingRequest(params)
6583//
6584//    err := req.Send()
6585//    if err == nil { // resp is now filled
6586//        fmt.Println(resp)
6587//    }
6588//
6589// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/RenewOffering
6590func (c *DeviceFarm) RenewOfferingRequest(input *RenewOfferingInput) (req *request.Request, output *RenewOfferingOutput) {
6591	op := &request.Operation{
6592		Name:       opRenewOffering,
6593		HTTPMethod: "POST",
6594		HTTPPath:   "/",
6595	}
6596
6597	if input == nil {
6598		input = &RenewOfferingInput{}
6599	}
6600
6601	output = &RenewOfferingOutput{}
6602	req = c.newRequest(op, input, output)
6603	return
6604}
6605
6606// RenewOffering API operation for AWS Device Farm.
6607//
6608// Explicitly sets the quantity of devices to renew for an offering, starting
6609// from the effectiveDate of the next period. The API returns a NotEligible
6610// error if the user is not permitted to invoke the operation. If you must be
6611// able to invoke this operation, contact aws-devicefarm-support@amazon.com
6612// (mailto:aws-devicefarm-support@amazon.com).
6613//
6614// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6615// with awserr.Error's Code and Message methods to get detailed information about
6616// the error.
6617//
6618// See the AWS API reference guide for AWS Device Farm's
6619// API operation RenewOffering for usage and error information.
6620//
6621// Returned Error Codes:
6622//   * ErrCodeArgumentException "ArgumentException"
6623//   An invalid argument was specified.
6624//
6625//   * ErrCodeNotFoundException "NotFoundException"
6626//   The specified entity was not found.
6627//
6628//   * ErrCodeNotEligibleException "NotEligibleException"
6629//   Exception gets thrown when a user is not eligible to perform the specified
6630//   transaction.
6631//
6632//   * ErrCodeLimitExceededException "LimitExceededException"
6633//   A limit was exceeded.
6634//
6635//   * ErrCodeServiceAccountException "ServiceAccountException"
6636//   There was a problem with the service account.
6637//
6638// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/RenewOffering
6639func (c *DeviceFarm) RenewOffering(input *RenewOfferingInput) (*RenewOfferingOutput, error) {
6640	req, out := c.RenewOfferingRequest(input)
6641	return out, req.Send()
6642}
6643
6644// RenewOfferingWithContext is the same as RenewOffering with the addition of
6645// the ability to pass a context and additional request options.
6646//
6647// See RenewOffering for details on how to use this API operation.
6648//
6649// The context must be non-nil and will be used for request cancellation. If
6650// the context is nil a panic will occur. In the future the SDK may create
6651// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6652// for more information on using Contexts.
6653func (c *DeviceFarm) RenewOfferingWithContext(ctx aws.Context, input *RenewOfferingInput, opts ...request.Option) (*RenewOfferingOutput, error) {
6654	req, out := c.RenewOfferingRequest(input)
6655	req.SetContext(ctx)
6656	req.ApplyOptions(opts...)
6657	return out, req.Send()
6658}
6659
6660const opScheduleRun = "ScheduleRun"
6661
6662// ScheduleRunRequest generates a "aws/request.Request" representing the
6663// client's request for the ScheduleRun operation. The "output" return
6664// value will be populated with the request's response once the request completes
6665// successfully.
6666//
6667// Use "Send" method on the returned Request to send the API call to the service.
6668// the "output" return value is not valid until after Send returns without error.
6669//
6670// See ScheduleRun for more information on using the ScheduleRun
6671// API call, and error handling.
6672//
6673// This method is useful when you want to inject custom logic or configuration
6674// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6675//
6676//
6677//    // Example sending a request using the ScheduleRunRequest method.
6678//    req, resp := client.ScheduleRunRequest(params)
6679//
6680//    err := req.Send()
6681//    if err == nil { // resp is now filled
6682//        fmt.Println(resp)
6683//    }
6684//
6685// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ScheduleRun
6686func (c *DeviceFarm) ScheduleRunRequest(input *ScheduleRunInput) (req *request.Request, output *ScheduleRunOutput) {
6687	op := &request.Operation{
6688		Name:       opScheduleRun,
6689		HTTPMethod: "POST",
6690		HTTPPath:   "/",
6691	}
6692
6693	if input == nil {
6694		input = &ScheduleRunInput{}
6695	}
6696
6697	output = &ScheduleRunOutput{}
6698	req = c.newRequest(op, input, output)
6699	return
6700}
6701
6702// ScheduleRun API operation for AWS Device Farm.
6703//
6704// Schedules a run.
6705//
6706// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6707// with awserr.Error's Code and Message methods to get detailed information about
6708// the error.
6709//
6710// See the AWS API reference guide for AWS Device Farm's
6711// API operation ScheduleRun for usage and error information.
6712//
6713// Returned Error Codes:
6714//   * ErrCodeArgumentException "ArgumentException"
6715//   An invalid argument was specified.
6716//
6717//   * ErrCodeNotFoundException "NotFoundException"
6718//   The specified entity was not found.
6719//
6720//   * ErrCodeLimitExceededException "LimitExceededException"
6721//   A limit was exceeded.
6722//
6723//   * ErrCodeIdempotencyException "IdempotencyException"
6724//   An entity with the same name already exists.
6725//
6726//   * ErrCodeServiceAccountException "ServiceAccountException"
6727//   There was a problem with the service account.
6728//
6729// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ScheduleRun
6730func (c *DeviceFarm) ScheduleRun(input *ScheduleRunInput) (*ScheduleRunOutput, error) {
6731	req, out := c.ScheduleRunRequest(input)
6732	return out, req.Send()
6733}
6734
6735// ScheduleRunWithContext is the same as ScheduleRun with the addition of
6736// the ability to pass a context and additional request options.
6737//
6738// See ScheduleRun for details on how to use this API operation.
6739//
6740// The context must be non-nil and will be used for request cancellation. If
6741// the context is nil a panic will occur. In the future the SDK may create
6742// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6743// for more information on using Contexts.
6744func (c *DeviceFarm) ScheduleRunWithContext(ctx aws.Context, input *ScheduleRunInput, opts ...request.Option) (*ScheduleRunOutput, error) {
6745	req, out := c.ScheduleRunRequest(input)
6746	req.SetContext(ctx)
6747	req.ApplyOptions(opts...)
6748	return out, req.Send()
6749}
6750
6751const opStopJob = "StopJob"
6752
6753// StopJobRequest generates a "aws/request.Request" representing the
6754// client's request for the StopJob operation. The "output" return
6755// value will be populated with the request's response once the request completes
6756// successfully.
6757//
6758// Use "Send" method on the returned Request to send the API call to the service.
6759// the "output" return value is not valid until after Send returns without error.
6760//
6761// See StopJob for more information on using the StopJob
6762// API call, and error handling.
6763//
6764// This method is useful when you want to inject custom logic or configuration
6765// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6766//
6767//
6768//    // Example sending a request using the StopJobRequest method.
6769//    req, resp := client.StopJobRequest(params)
6770//
6771//    err := req.Send()
6772//    if err == nil { // resp is now filled
6773//        fmt.Println(resp)
6774//    }
6775//
6776// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/StopJob
6777func (c *DeviceFarm) StopJobRequest(input *StopJobInput) (req *request.Request, output *StopJobOutput) {
6778	op := &request.Operation{
6779		Name:       opStopJob,
6780		HTTPMethod: "POST",
6781		HTTPPath:   "/",
6782	}
6783
6784	if input == nil {
6785		input = &StopJobInput{}
6786	}
6787
6788	output = &StopJobOutput{}
6789	req = c.newRequest(op, input, output)
6790	return
6791}
6792
6793// StopJob API operation for AWS Device Farm.
6794//
6795// Initiates a stop request for the current job. AWS Device Farm immediately
6796// stops the job on the device where tests have not started. You are not billed
6797// for this device. On the device where tests have started, setup suite and
6798// teardown suite tests run to completion on the device. You are billed for
6799// setup, teardown, and any tests that were in progress or already completed.
6800//
6801// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6802// with awserr.Error's Code and Message methods to get detailed information about
6803// the error.
6804//
6805// See the AWS API reference guide for AWS Device Farm's
6806// API operation StopJob for usage and error information.
6807//
6808// Returned Error Codes:
6809//   * ErrCodeArgumentException "ArgumentException"
6810//   An invalid argument was specified.
6811//
6812//   * ErrCodeNotFoundException "NotFoundException"
6813//   The specified entity was not found.
6814//
6815//   * ErrCodeLimitExceededException "LimitExceededException"
6816//   A limit was exceeded.
6817//
6818//   * ErrCodeServiceAccountException "ServiceAccountException"
6819//   There was a problem with the service account.
6820//
6821// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/StopJob
6822func (c *DeviceFarm) StopJob(input *StopJobInput) (*StopJobOutput, error) {
6823	req, out := c.StopJobRequest(input)
6824	return out, req.Send()
6825}
6826
6827// StopJobWithContext is the same as StopJob with the addition of
6828// the ability to pass a context and additional request options.
6829//
6830// See StopJob for details on how to use this API operation.
6831//
6832// The context must be non-nil and will be used for request cancellation. If
6833// the context is nil a panic will occur. In the future the SDK may create
6834// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6835// for more information on using Contexts.
6836func (c *DeviceFarm) StopJobWithContext(ctx aws.Context, input *StopJobInput, opts ...request.Option) (*StopJobOutput, error) {
6837	req, out := c.StopJobRequest(input)
6838	req.SetContext(ctx)
6839	req.ApplyOptions(opts...)
6840	return out, req.Send()
6841}
6842
6843const opStopRemoteAccessSession = "StopRemoteAccessSession"
6844
6845// StopRemoteAccessSessionRequest generates a "aws/request.Request" representing the
6846// client's request for the StopRemoteAccessSession operation. The "output" return
6847// value will be populated with the request's response once the request completes
6848// successfully.
6849//
6850// Use "Send" method on the returned Request to send the API call to the service.
6851// the "output" return value is not valid until after Send returns without error.
6852//
6853// See StopRemoteAccessSession for more information on using the StopRemoteAccessSession
6854// API call, and error handling.
6855//
6856// This method is useful when you want to inject custom logic or configuration
6857// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6858//
6859//
6860//    // Example sending a request using the StopRemoteAccessSessionRequest method.
6861//    req, resp := client.StopRemoteAccessSessionRequest(params)
6862//
6863//    err := req.Send()
6864//    if err == nil { // resp is now filled
6865//        fmt.Println(resp)
6866//    }
6867//
6868// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/StopRemoteAccessSession
6869func (c *DeviceFarm) StopRemoteAccessSessionRequest(input *StopRemoteAccessSessionInput) (req *request.Request, output *StopRemoteAccessSessionOutput) {
6870	op := &request.Operation{
6871		Name:       opStopRemoteAccessSession,
6872		HTTPMethod: "POST",
6873		HTTPPath:   "/",
6874	}
6875
6876	if input == nil {
6877		input = &StopRemoteAccessSessionInput{}
6878	}
6879
6880	output = &StopRemoteAccessSessionOutput{}
6881	req = c.newRequest(op, input, output)
6882	return
6883}
6884
6885// StopRemoteAccessSession API operation for AWS Device Farm.
6886//
6887// Ends a specified remote access session.
6888//
6889// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6890// with awserr.Error's Code and Message methods to get detailed information about
6891// the error.
6892//
6893// See the AWS API reference guide for AWS Device Farm's
6894// API operation StopRemoteAccessSession for usage and error information.
6895//
6896// Returned Error Codes:
6897//   * ErrCodeArgumentException "ArgumentException"
6898//   An invalid argument was specified.
6899//
6900//   * ErrCodeNotFoundException "NotFoundException"
6901//   The specified entity was not found.
6902//
6903//   * ErrCodeLimitExceededException "LimitExceededException"
6904//   A limit was exceeded.
6905//
6906//   * ErrCodeServiceAccountException "ServiceAccountException"
6907//   There was a problem with the service account.
6908//
6909// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/StopRemoteAccessSession
6910func (c *DeviceFarm) StopRemoteAccessSession(input *StopRemoteAccessSessionInput) (*StopRemoteAccessSessionOutput, error) {
6911	req, out := c.StopRemoteAccessSessionRequest(input)
6912	return out, req.Send()
6913}
6914
6915// StopRemoteAccessSessionWithContext is the same as StopRemoteAccessSession with the addition of
6916// the ability to pass a context and additional request options.
6917//
6918// See StopRemoteAccessSession for details on how to use this API operation.
6919//
6920// The context must be non-nil and will be used for request cancellation. If
6921// the context is nil a panic will occur. In the future the SDK may create
6922// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6923// for more information on using Contexts.
6924func (c *DeviceFarm) StopRemoteAccessSessionWithContext(ctx aws.Context, input *StopRemoteAccessSessionInput, opts ...request.Option) (*StopRemoteAccessSessionOutput, error) {
6925	req, out := c.StopRemoteAccessSessionRequest(input)
6926	req.SetContext(ctx)
6927	req.ApplyOptions(opts...)
6928	return out, req.Send()
6929}
6930
6931const opStopRun = "StopRun"
6932
6933// StopRunRequest generates a "aws/request.Request" representing the
6934// client's request for the StopRun operation. The "output" return
6935// value will be populated with the request's response once the request completes
6936// successfully.
6937//
6938// Use "Send" method on the returned Request to send the API call to the service.
6939// the "output" return value is not valid until after Send returns without error.
6940//
6941// See StopRun for more information on using the StopRun
6942// API call, and error handling.
6943//
6944// This method is useful when you want to inject custom logic or configuration
6945// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6946//
6947//
6948//    // Example sending a request using the StopRunRequest method.
6949//    req, resp := client.StopRunRequest(params)
6950//
6951//    err := req.Send()
6952//    if err == nil { // resp is now filled
6953//        fmt.Println(resp)
6954//    }
6955//
6956// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/StopRun
6957func (c *DeviceFarm) StopRunRequest(input *StopRunInput) (req *request.Request, output *StopRunOutput) {
6958	op := &request.Operation{
6959		Name:       opStopRun,
6960		HTTPMethod: "POST",
6961		HTTPPath:   "/",
6962	}
6963
6964	if input == nil {
6965		input = &StopRunInput{}
6966	}
6967
6968	output = &StopRunOutput{}
6969	req = c.newRequest(op, input, output)
6970	return
6971}
6972
6973// StopRun API operation for AWS Device Farm.
6974//
6975// Initiates a stop request for the current test run. AWS Device Farm immediately
6976// stops the run on devices where tests have not started. You are not billed
6977// for these devices. On devices where tests have started executing, setup suite
6978// and teardown suite tests run to completion on those devices. You are billed
6979// for setup, teardown, and any tests that were in progress or already completed.
6980//
6981// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6982// with awserr.Error's Code and Message methods to get detailed information about
6983// the error.
6984//
6985// See the AWS API reference guide for AWS Device Farm's
6986// API operation StopRun for usage and error information.
6987//
6988// Returned Error Codes:
6989//   * ErrCodeArgumentException "ArgumentException"
6990//   An invalid argument was specified.
6991//
6992//   * ErrCodeNotFoundException "NotFoundException"
6993//   The specified entity was not found.
6994//
6995//   * ErrCodeLimitExceededException "LimitExceededException"
6996//   A limit was exceeded.
6997//
6998//   * ErrCodeServiceAccountException "ServiceAccountException"
6999//   There was a problem with the service account.
7000//
7001// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/StopRun
7002func (c *DeviceFarm) StopRun(input *StopRunInput) (*StopRunOutput, error) {
7003	req, out := c.StopRunRequest(input)
7004	return out, req.Send()
7005}
7006
7007// StopRunWithContext is the same as StopRun with the addition of
7008// the ability to pass a context and additional request options.
7009//
7010// See StopRun for details on how to use this API operation.
7011//
7012// The context must be non-nil and will be used for request cancellation. If
7013// the context is nil a panic will occur. In the future the SDK may create
7014// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7015// for more information on using Contexts.
7016func (c *DeviceFarm) StopRunWithContext(ctx aws.Context, input *StopRunInput, opts ...request.Option) (*StopRunOutput, error) {
7017	req, out := c.StopRunRequest(input)
7018	req.SetContext(ctx)
7019	req.ApplyOptions(opts...)
7020	return out, req.Send()
7021}
7022
7023const opTagResource = "TagResource"
7024
7025// TagResourceRequest generates a "aws/request.Request" representing the
7026// client's request for the TagResource operation. The "output" return
7027// value will be populated with the request's response once the request completes
7028// successfully.
7029//
7030// Use "Send" method on the returned Request to send the API call to the service.
7031// the "output" return value is not valid until after Send returns without error.
7032//
7033// See TagResource for more information on using the TagResource
7034// API call, and error handling.
7035//
7036// This method is useful when you want to inject custom logic or configuration
7037// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7038//
7039//
7040//    // Example sending a request using the TagResourceRequest method.
7041//    req, resp := client.TagResourceRequest(params)
7042//
7043//    err := req.Send()
7044//    if err == nil { // resp is now filled
7045//        fmt.Println(resp)
7046//    }
7047//
7048// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/TagResource
7049func (c *DeviceFarm) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) {
7050	op := &request.Operation{
7051		Name:       opTagResource,
7052		HTTPMethod: "POST",
7053		HTTPPath:   "/",
7054	}
7055
7056	if input == nil {
7057		input = &TagResourceInput{}
7058	}
7059
7060	output = &TagResourceOutput{}
7061	req = c.newRequest(op, input, output)
7062	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
7063	return
7064}
7065
7066// TagResource API operation for AWS Device Farm.
7067//
7068// Associates the specified tags to a resource with the specified resourceArn.
7069// If existing tags on a resource are not specified in the request parameters,
7070// they are not changed. When a resource is deleted, the tags associated with
7071// that resource are also deleted.
7072//
7073// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7074// with awserr.Error's Code and Message methods to get detailed information about
7075// the error.
7076//
7077// See the AWS API reference guide for AWS Device Farm's
7078// API operation TagResource for usage and error information.
7079//
7080// Returned Error Codes:
7081//   * ErrCodeArgumentException "ArgumentException"
7082//   An invalid argument was specified.
7083//
7084//   * ErrCodeNotFoundException "NotFoundException"
7085//   The specified entity was not found.
7086//
7087//   * ErrCodeTagOperationException "TagOperationException"
7088//   The operation was not successful. Try again.
7089//
7090//   * ErrCodeTooManyTagsException "TooManyTagsException"
7091//   The list of tags on the repository is over the limit. The maximum number
7092//   of tags that can be applied to a repository is 50.
7093//
7094//   * ErrCodeTagPolicyException "TagPolicyException"
7095//   The request doesn't comply with the AWS Identity and Access Management (IAM)
7096//   tag policy. Correct your request and then retry it.
7097//
7098// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/TagResource
7099func (c *DeviceFarm) TagResource(input *TagResourceInput) (*TagResourceOutput, error) {
7100	req, out := c.TagResourceRequest(input)
7101	return out, req.Send()
7102}
7103
7104// TagResourceWithContext is the same as TagResource with the addition of
7105// the ability to pass a context and additional request options.
7106//
7107// See TagResource for details on how to use this API operation.
7108//
7109// The context must be non-nil and will be used for request cancellation. If
7110// the context is nil a panic will occur. In the future the SDK may create
7111// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7112// for more information on using Contexts.
7113func (c *DeviceFarm) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) {
7114	req, out := c.TagResourceRequest(input)
7115	req.SetContext(ctx)
7116	req.ApplyOptions(opts...)
7117	return out, req.Send()
7118}
7119
7120const opUntagResource = "UntagResource"
7121
7122// UntagResourceRequest generates a "aws/request.Request" representing the
7123// client's request for the UntagResource operation. The "output" return
7124// value will be populated with the request's response once the request completes
7125// successfully.
7126//
7127// Use "Send" method on the returned Request to send the API call to the service.
7128// the "output" return value is not valid until after Send returns without error.
7129//
7130// See UntagResource for more information on using the UntagResource
7131// API call, and error handling.
7132//
7133// This method is useful when you want to inject custom logic or configuration
7134// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7135//
7136//
7137//    // Example sending a request using the UntagResourceRequest method.
7138//    req, resp := client.UntagResourceRequest(params)
7139//
7140//    err := req.Send()
7141//    if err == nil { // resp is now filled
7142//        fmt.Println(resp)
7143//    }
7144//
7145// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/UntagResource
7146func (c *DeviceFarm) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) {
7147	op := &request.Operation{
7148		Name:       opUntagResource,
7149		HTTPMethod: "POST",
7150		HTTPPath:   "/",
7151	}
7152
7153	if input == nil {
7154		input = &UntagResourceInput{}
7155	}
7156
7157	output = &UntagResourceOutput{}
7158	req = c.newRequest(op, input, output)
7159	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
7160	return
7161}
7162
7163// UntagResource API operation for AWS Device Farm.
7164//
7165// Deletes the specified tags from a resource.
7166//
7167// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7168// with awserr.Error's Code and Message methods to get detailed information about
7169// the error.
7170//
7171// See the AWS API reference guide for AWS Device Farm's
7172// API operation UntagResource for usage and error information.
7173//
7174// Returned Error Codes:
7175//   * ErrCodeArgumentException "ArgumentException"
7176//   An invalid argument was specified.
7177//
7178//   * ErrCodeNotFoundException "NotFoundException"
7179//   The specified entity was not found.
7180//
7181//   * ErrCodeTagOperationException "TagOperationException"
7182//   The operation was not successful. Try again.
7183//
7184// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/UntagResource
7185func (c *DeviceFarm) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) {
7186	req, out := c.UntagResourceRequest(input)
7187	return out, req.Send()
7188}
7189
7190// UntagResourceWithContext is the same as UntagResource with the addition of
7191// the ability to pass a context and additional request options.
7192//
7193// See UntagResource for details on how to use this API operation.
7194//
7195// The context must be non-nil and will be used for request cancellation. If
7196// the context is nil a panic will occur. In the future the SDK may create
7197// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7198// for more information on using Contexts.
7199func (c *DeviceFarm) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) {
7200	req, out := c.UntagResourceRequest(input)
7201	req.SetContext(ctx)
7202	req.ApplyOptions(opts...)
7203	return out, req.Send()
7204}
7205
7206const opUpdateDeviceInstance = "UpdateDeviceInstance"
7207
7208// UpdateDeviceInstanceRequest generates a "aws/request.Request" representing the
7209// client's request for the UpdateDeviceInstance operation. The "output" return
7210// value will be populated with the request's response once the request completes
7211// successfully.
7212//
7213// Use "Send" method on the returned Request to send the API call to the service.
7214// the "output" return value is not valid until after Send returns without error.
7215//
7216// See UpdateDeviceInstance for more information on using the UpdateDeviceInstance
7217// API call, and error handling.
7218//
7219// This method is useful when you want to inject custom logic or configuration
7220// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7221//
7222//
7223//    // Example sending a request using the UpdateDeviceInstanceRequest method.
7224//    req, resp := client.UpdateDeviceInstanceRequest(params)
7225//
7226//    err := req.Send()
7227//    if err == nil { // resp is now filled
7228//        fmt.Println(resp)
7229//    }
7230//
7231// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/UpdateDeviceInstance
7232func (c *DeviceFarm) UpdateDeviceInstanceRequest(input *UpdateDeviceInstanceInput) (req *request.Request, output *UpdateDeviceInstanceOutput) {
7233	op := &request.Operation{
7234		Name:       opUpdateDeviceInstance,
7235		HTTPMethod: "POST",
7236		HTTPPath:   "/",
7237	}
7238
7239	if input == nil {
7240		input = &UpdateDeviceInstanceInput{}
7241	}
7242
7243	output = &UpdateDeviceInstanceOutput{}
7244	req = c.newRequest(op, input, output)
7245	return
7246}
7247
7248// UpdateDeviceInstance API operation for AWS Device Farm.
7249//
7250// Updates information about a private device instance.
7251//
7252// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7253// with awserr.Error's Code and Message methods to get detailed information about
7254// the error.
7255//
7256// See the AWS API reference guide for AWS Device Farm's
7257// API operation UpdateDeviceInstance for usage and error information.
7258//
7259// Returned Error Codes:
7260//   * ErrCodeArgumentException "ArgumentException"
7261//   An invalid argument was specified.
7262//
7263//   * ErrCodeNotFoundException "NotFoundException"
7264//   The specified entity was not found.
7265//
7266//   * ErrCodeLimitExceededException "LimitExceededException"
7267//   A limit was exceeded.
7268//
7269//   * ErrCodeServiceAccountException "ServiceAccountException"
7270//   There was a problem with the service account.
7271//
7272// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/UpdateDeviceInstance
7273func (c *DeviceFarm) UpdateDeviceInstance(input *UpdateDeviceInstanceInput) (*UpdateDeviceInstanceOutput, error) {
7274	req, out := c.UpdateDeviceInstanceRequest(input)
7275	return out, req.Send()
7276}
7277
7278// UpdateDeviceInstanceWithContext is the same as UpdateDeviceInstance with the addition of
7279// the ability to pass a context and additional request options.
7280//
7281// See UpdateDeviceInstance for details on how to use this API operation.
7282//
7283// The context must be non-nil and will be used for request cancellation. If
7284// the context is nil a panic will occur. In the future the SDK may create
7285// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7286// for more information on using Contexts.
7287func (c *DeviceFarm) UpdateDeviceInstanceWithContext(ctx aws.Context, input *UpdateDeviceInstanceInput, opts ...request.Option) (*UpdateDeviceInstanceOutput, error) {
7288	req, out := c.UpdateDeviceInstanceRequest(input)
7289	req.SetContext(ctx)
7290	req.ApplyOptions(opts...)
7291	return out, req.Send()
7292}
7293
7294const opUpdateDevicePool = "UpdateDevicePool"
7295
7296// UpdateDevicePoolRequest generates a "aws/request.Request" representing the
7297// client's request for the UpdateDevicePool operation. The "output" return
7298// value will be populated with the request's response once the request completes
7299// successfully.
7300//
7301// Use "Send" method on the returned Request to send the API call to the service.
7302// the "output" return value is not valid until after Send returns without error.
7303//
7304// See UpdateDevicePool for more information on using the UpdateDevicePool
7305// API call, and error handling.
7306//
7307// This method is useful when you want to inject custom logic or configuration
7308// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7309//
7310//
7311//    // Example sending a request using the UpdateDevicePoolRequest method.
7312//    req, resp := client.UpdateDevicePoolRequest(params)
7313//
7314//    err := req.Send()
7315//    if err == nil { // resp is now filled
7316//        fmt.Println(resp)
7317//    }
7318//
7319// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/UpdateDevicePool
7320func (c *DeviceFarm) UpdateDevicePoolRequest(input *UpdateDevicePoolInput) (req *request.Request, output *UpdateDevicePoolOutput) {
7321	op := &request.Operation{
7322		Name:       opUpdateDevicePool,
7323		HTTPMethod: "POST",
7324		HTTPPath:   "/",
7325	}
7326
7327	if input == nil {
7328		input = &UpdateDevicePoolInput{}
7329	}
7330
7331	output = &UpdateDevicePoolOutput{}
7332	req = c.newRequest(op, input, output)
7333	return
7334}
7335
7336// UpdateDevicePool API operation for AWS Device Farm.
7337//
7338// Modifies the name, description, and rules in a device pool given the attributes
7339// and the pool ARN. Rule updates are all-or-nothing, meaning they can only
7340// be updated as a whole (or not at all).
7341//
7342// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7343// with awserr.Error's Code and Message methods to get detailed information about
7344// the error.
7345//
7346// See the AWS API reference guide for AWS Device Farm's
7347// API operation UpdateDevicePool for usage and error information.
7348//
7349// Returned Error Codes:
7350//   * ErrCodeArgumentException "ArgumentException"
7351//   An invalid argument was specified.
7352//
7353//   * ErrCodeNotFoundException "NotFoundException"
7354//   The specified entity was not found.
7355//
7356//   * ErrCodeLimitExceededException "LimitExceededException"
7357//   A limit was exceeded.
7358//
7359//   * ErrCodeServiceAccountException "ServiceAccountException"
7360//   There was a problem with the service account.
7361//
7362// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/UpdateDevicePool
7363func (c *DeviceFarm) UpdateDevicePool(input *UpdateDevicePoolInput) (*UpdateDevicePoolOutput, error) {
7364	req, out := c.UpdateDevicePoolRequest(input)
7365	return out, req.Send()
7366}
7367
7368// UpdateDevicePoolWithContext is the same as UpdateDevicePool with the addition of
7369// the ability to pass a context and additional request options.
7370//
7371// See UpdateDevicePool for details on how to use this API operation.
7372//
7373// The context must be non-nil and will be used for request cancellation. If
7374// the context is nil a panic will occur. In the future the SDK may create
7375// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7376// for more information on using Contexts.
7377func (c *DeviceFarm) UpdateDevicePoolWithContext(ctx aws.Context, input *UpdateDevicePoolInput, opts ...request.Option) (*UpdateDevicePoolOutput, error) {
7378	req, out := c.UpdateDevicePoolRequest(input)
7379	req.SetContext(ctx)
7380	req.ApplyOptions(opts...)
7381	return out, req.Send()
7382}
7383
7384const opUpdateInstanceProfile = "UpdateInstanceProfile"
7385
7386// UpdateInstanceProfileRequest generates a "aws/request.Request" representing the
7387// client's request for the UpdateInstanceProfile operation. The "output" return
7388// value will be populated with the request's response once the request completes
7389// successfully.
7390//
7391// Use "Send" method on the returned Request to send the API call to the service.
7392// the "output" return value is not valid until after Send returns without error.
7393//
7394// See UpdateInstanceProfile for more information on using the UpdateInstanceProfile
7395// API call, and error handling.
7396//
7397// This method is useful when you want to inject custom logic or configuration
7398// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7399//
7400//
7401//    // Example sending a request using the UpdateInstanceProfileRequest method.
7402//    req, resp := client.UpdateInstanceProfileRequest(params)
7403//
7404//    err := req.Send()
7405//    if err == nil { // resp is now filled
7406//        fmt.Println(resp)
7407//    }
7408//
7409// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/UpdateInstanceProfile
7410func (c *DeviceFarm) UpdateInstanceProfileRequest(input *UpdateInstanceProfileInput) (req *request.Request, output *UpdateInstanceProfileOutput) {
7411	op := &request.Operation{
7412		Name:       opUpdateInstanceProfile,
7413		HTTPMethod: "POST",
7414		HTTPPath:   "/",
7415	}
7416
7417	if input == nil {
7418		input = &UpdateInstanceProfileInput{}
7419	}
7420
7421	output = &UpdateInstanceProfileOutput{}
7422	req = c.newRequest(op, input, output)
7423	return
7424}
7425
7426// UpdateInstanceProfile API operation for AWS Device Farm.
7427//
7428// Updates information about an existing private device instance profile.
7429//
7430// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7431// with awserr.Error's Code and Message methods to get detailed information about
7432// the error.
7433//
7434// See the AWS API reference guide for AWS Device Farm's
7435// API operation UpdateInstanceProfile for usage and error information.
7436//
7437// Returned Error Codes:
7438//   * ErrCodeArgumentException "ArgumentException"
7439//   An invalid argument was specified.
7440//
7441//   * ErrCodeNotFoundException "NotFoundException"
7442//   The specified entity was not found.
7443//
7444//   * ErrCodeLimitExceededException "LimitExceededException"
7445//   A limit was exceeded.
7446//
7447//   * ErrCodeServiceAccountException "ServiceAccountException"
7448//   There was a problem with the service account.
7449//
7450// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/UpdateInstanceProfile
7451func (c *DeviceFarm) UpdateInstanceProfile(input *UpdateInstanceProfileInput) (*UpdateInstanceProfileOutput, error) {
7452	req, out := c.UpdateInstanceProfileRequest(input)
7453	return out, req.Send()
7454}
7455
7456// UpdateInstanceProfileWithContext is the same as UpdateInstanceProfile with the addition of
7457// the ability to pass a context and additional request options.
7458//
7459// See UpdateInstanceProfile for details on how to use this API operation.
7460//
7461// The context must be non-nil and will be used for request cancellation. If
7462// the context is nil a panic will occur. In the future the SDK may create
7463// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7464// for more information on using Contexts.
7465func (c *DeviceFarm) UpdateInstanceProfileWithContext(ctx aws.Context, input *UpdateInstanceProfileInput, opts ...request.Option) (*UpdateInstanceProfileOutput, error) {
7466	req, out := c.UpdateInstanceProfileRequest(input)
7467	req.SetContext(ctx)
7468	req.ApplyOptions(opts...)
7469	return out, req.Send()
7470}
7471
7472const opUpdateNetworkProfile = "UpdateNetworkProfile"
7473
7474// UpdateNetworkProfileRequest generates a "aws/request.Request" representing the
7475// client's request for the UpdateNetworkProfile operation. The "output" return
7476// value will be populated with the request's response once the request completes
7477// successfully.
7478//
7479// Use "Send" method on the returned Request to send the API call to the service.
7480// the "output" return value is not valid until after Send returns without error.
7481//
7482// See UpdateNetworkProfile for more information on using the UpdateNetworkProfile
7483// API call, and error handling.
7484//
7485// This method is useful when you want to inject custom logic or configuration
7486// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7487//
7488//
7489//    // Example sending a request using the UpdateNetworkProfileRequest method.
7490//    req, resp := client.UpdateNetworkProfileRequest(params)
7491//
7492//    err := req.Send()
7493//    if err == nil { // resp is now filled
7494//        fmt.Println(resp)
7495//    }
7496//
7497// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/UpdateNetworkProfile
7498func (c *DeviceFarm) UpdateNetworkProfileRequest(input *UpdateNetworkProfileInput) (req *request.Request, output *UpdateNetworkProfileOutput) {
7499	op := &request.Operation{
7500		Name:       opUpdateNetworkProfile,
7501		HTTPMethod: "POST",
7502		HTTPPath:   "/",
7503	}
7504
7505	if input == nil {
7506		input = &UpdateNetworkProfileInput{}
7507	}
7508
7509	output = &UpdateNetworkProfileOutput{}
7510	req = c.newRequest(op, input, output)
7511	return
7512}
7513
7514// UpdateNetworkProfile API operation for AWS Device Farm.
7515//
7516// Updates the network profile.
7517//
7518// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7519// with awserr.Error's Code and Message methods to get detailed information about
7520// the error.
7521//
7522// See the AWS API reference guide for AWS Device Farm's
7523// API operation UpdateNetworkProfile for usage and error information.
7524//
7525// Returned Error Codes:
7526//   * ErrCodeArgumentException "ArgumentException"
7527//   An invalid argument was specified.
7528//
7529//   * ErrCodeNotFoundException "NotFoundException"
7530//   The specified entity was not found.
7531//
7532//   * ErrCodeLimitExceededException "LimitExceededException"
7533//   A limit was exceeded.
7534//
7535//   * ErrCodeServiceAccountException "ServiceAccountException"
7536//   There was a problem with the service account.
7537//
7538// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/UpdateNetworkProfile
7539func (c *DeviceFarm) UpdateNetworkProfile(input *UpdateNetworkProfileInput) (*UpdateNetworkProfileOutput, error) {
7540	req, out := c.UpdateNetworkProfileRequest(input)
7541	return out, req.Send()
7542}
7543
7544// UpdateNetworkProfileWithContext is the same as UpdateNetworkProfile with the addition of
7545// the ability to pass a context and additional request options.
7546//
7547// See UpdateNetworkProfile for details on how to use this API operation.
7548//
7549// The context must be non-nil and will be used for request cancellation. If
7550// the context is nil a panic will occur. In the future the SDK may create
7551// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7552// for more information on using Contexts.
7553func (c *DeviceFarm) UpdateNetworkProfileWithContext(ctx aws.Context, input *UpdateNetworkProfileInput, opts ...request.Option) (*UpdateNetworkProfileOutput, error) {
7554	req, out := c.UpdateNetworkProfileRequest(input)
7555	req.SetContext(ctx)
7556	req.ApplyOptions(opts...)
7557	return out, req.Send()
7558}
7559
7560const opUpdateProject = "UpdateProject"
7561
7562// UpdateProjectRequest generates a "aws/request.Request" representing the
7563// client's request for the UpdateProject operation. The "output" return
7564// value will be populated with the request's response once the request completes
7565// successfully.
7566//
7567// Use "Send" method on the returned Request to send the API call to the service.
7568// the "output" return value is not valid until after Send returns without error.
7569//
7570// See UpdateProject for more information on using the UpdateProject
7571// API call, and error handling.
7572//
7573// This method is useful when you want to inject custom logic or configuration
7574// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7575//
7576//
7577//    // Example sending a request using the UpdateProjectRequest method.
7578//    req, resp := client.UpdateProjectRequest(params)
7579//
7580//    err := req.Send()
7581//    if err == nil { // resp is now filled
7582//        fmt.Println(resp)
7583//    }
7584//
7585// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/UpdateProject
7586func (c *DeviceFarm) UpdateProjectRequest(input *UpdateProjectInput) (req *request.Request, output *UpdateProjectOutput) {
7587	op := &request.Operation{
7588		Name:       opUpdateProject,
7589		HTTPMethod: "POST",
7590		HTTPPath:   "/",
7591	}
7592
7593	if input == nil {
7594		input = &UpdateProjectInput{}
7595	}
7596
7597	output = &UpdateProjectOutput{}
7598	req = c.newRequest(op, input, output)
7599	return
7600}
7601
7602// UpdateProject API operation for AWS Device Farm.
7603//
7604// Modifies the specified project name, given the project ARN and a new name.
7605//
7606// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7607// with awserr.Error's Code and Message methods to get detailed information about
7608// the error.
7609//
7610// See the AWS API reference guide for AWS Device Farm's
7611// API operation UpdateProject for usage and error information.
7612//
7613// Returned Error Codes:
7614//   * ErrCodeArgumentException "ArgumentException"
7615//   An invalid argument was specified.
7616//
7617//   * ErrCodeNotFoundException "NotFoundException"
7618//   The specified entity was not found.
7619//
7620//   * ErrCodeLimitExceededException "LimitExceededException"
7621//   A limit was exceeded.
7622//
7623//   * ErrCodeServiceAccountException "ServiceAccountException"
7624//   There was a problem with the service account.
7625//
7626// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/UpdateProject
7627func (c *DeviceFarm) UpdateProject(input *UpdateProjectInput) (*UpdateProjectOutput, error) {
7628	req, out := c.UpdateProjectRequest(input)
7629	return out, req.Send()
7630}
7631
7632// UpdateProjectWithContext is the same as UpdateProject with the addition of
7633// the ability to pass a context and additional request options.
7634//
7635// See UpdateProject for details on how to use this API operation.
7636//
7637// The context must be non-nil and will be used for request cancellation. If
7638// the context is nil a panic will occur. In the future the SDK may create
7639// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7640// for more information on using Contexts.
7641func (c *DeviceFarm) UpdateProjectWithContext(ctx aws.Context, input *UpdateProjectInput, opts ...request.Option) (*UpdateProjectOutput, error) {
7642	req, out := c.UpdateProjectRequest(input)
7643	req.SetContext(ctx)
7644	req.ApplyOptions(opts...)
7645	return out, req.Send()
7646}
7647
7648const opUpdateTestGridProject = "UpdateTestGridProject"
7649
7650// UpdateTestGridProjectRequest generates a "aws/request.Request" representing the
7651// client's request for the UpdateTestGridProject operation. The "output" return
7652// value will be populated with the request's response once the request completes
7653// successfully.
7654//
7655// Use "Send" method on the returned Request to send the API call to the service.
7656// the "output" return value is not valid until after Send returns without error.
7657//
7658// See UpdateTestGridProject for more information on using the UpdateTestGridProject
7659// API call, and error handling.
7660//
7661// This method is useful when you want to inject custom logic or configuration
7662// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7663//
7664//
7665//    // Example sending a request using the UpdateTestGridProjectRequest method.
7666//    req, resp := client.UpdateTestGridProjectRequest(params)
7667//
7668//    err := req.Send()
7669//    if err == nil { // resp is now filled
7670//        fmt.Println(resp)
7671//    }
7672//
7673// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/UpdateTestGridProject
7674func (c *DeviceFarm) UpdateTestGridProjectRequest(input *UpdateTestGridProjectInput) (req *request.Request, output *UpdateTestGridProjectOutput) {
7675	op := &request.Operation{
7676		Name:       opUpdateTestGridProject,
7677		HTTPMethod: "POST",
7678		HTTPPath:   "/",
7679	}
7680
7681	if input == nil {
7682		input = &UpdateTestGridProjectInput{}
7683	}
7684
7685	output = &UpdateTestGridProjectOutput{}
7686	req = c.newRequest(op, input, output)
7687	return
7688}
7689
7690// UpdateTestGridProject API operation for AWS Device Farm.
7691//
7692// Change details of a project.
7693//
7694// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7695// with awserr.Error's Code and Message methods to get detailed information about
7696// the error.
7697//
7698// See the AWS API reference guide for AWS Device Farm's
7699// API operation UpdateTestGridProject for usage and error information.
7700//
7701// Returned Error Codes:
7702//   * ErrCodeNotFoundException "NotFoundException"
7703//   The specified entity was not found.
7704//
7705//   * ErrCodeArgumentException "ArgumentException"
7706//   An invalid argument was specified.
7707//
7708//   * ErrCodeInternalServiceException "InternalServiceException"
7709//   An internal exception was raised in the service. Contact aws-devicefarm-support@amazon.com
7710//   (mailto:aws-devicefarm-support@amazon.com) if you see this error.
7711//
7712// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/UpdateTestGridProject
7713func (c *DeviceFarm) UpdateTestGridProject(input *UpdateTestGridProjectInput) (*UpdateTestGridProjectOutput, error) {
7714	req, out := c.UpdateTestGridProjectRequest(input)
7715	return out, req.Send()
7716}
7717
7718// UpdateTestGridProjectWithContext is the same as UpdateTestGridProject with the addition of
7719// the ability to pass a context and additional request options.
7720//
7721// See UpdateTestGridProject for details on how to use this API operation.
7722//
7723// The context must be non-nil and will be used for request cancellation. If
7724// the context is nil a panic will occur. In the future the SDK may create
7725// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7726// for more information on using Contexts.
7727func (c *DeviceFarm) UpdateTestGridProjectWithContext(ctx aws.Context, input *UpdateTestGridProjectInput, opts ...request.Option) (*UpdateTestGridProjectOutput, error) {
7728	req, out := c.UpdateTestGridProjectRequest(input)
7729	req.SetContext(ctx)
7730	req.ApplyOptions(opts...)
7731	return out, req.Send()
7732}
7733
7734const opUpdateUpload = "UpdateUpload"
7735
7736// UpdateUploadRequest generates a "aws/request.Request" representing the
7737// client's request for the UpdateUpload operation. The "output" return
7738// value will be populated with the request's response once the request completes
7739// successfully.
7740//
7741// Use "Send" method on the returned Request to send the API call to the service.
7742// the "output" return value is not valid until after Send returns without error.
7743//
7744// See UpdateUpload for more information on using the UpdateUpload
7745// API call, and error handling.
7746//
7747// This method is useful when you want to inject custom logic or configuration
7748// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7749//
7750//
7751//    // Example sending a request using the UpdateUploadRequest method.
7752//    req, resp := client.UpdateUploadRequest(params)
7753//
7754//    err := req.Send()
7755//    if err == nil { // resp is now filled
7756//        fmt.Println(resp)
7757//    }
7758//
7759// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/UpdateUpload
7760func (c *DeviceFarm) UpdateUploadRequest(input *UpdateUploadInput) (req *request.Request, output *UpdateUploadOutput) {
7761	op := &request.Operation{
7762		Name:       opUpdateUpload,
7763		HTTPMethod: "POST",
7764		HTTPPath:   "/",
7765	}
7766
7767	if input == nil {
7768		input = &UpdateUploadInput{}
7769	}
7770
7771	output = &UpdateUploadOutput{}
7772	req = c.newRequest(op, input, output)
7773	return
7774}
7775
7776// UpdateUpload API operation for AWS Device Farm.
7777//
7778// Updates an uploaded test spec.
7779//
7780// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7781// with awserr.Error's Code and Message methods to get detailed information about
7782// the error.
7783//
7784// See the AWS API reference guide for AWS Device Farm's
7785// API operation UpdateUpload for usage and error information.
7786//
7787// Returned Error Codes:
7788//   * ErrCodeArgumentException "ArgumentException"
7789//   An invalid argument was specified.
7790//
7791//   * ErrCodeNotFoundException "NotFoundException"
7792//   The specified entity was not found.
7793//
7794//   * ErrCodeLimitExceededException "LimitExceededException"
7795//   A limit was exceeded.
7796//
7797//   * ErrCodeServiceAccountException "ServiceAccountException"
7798//   There was a problem with the service account.
7799//
7800// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/UpdateUpload
7801func (c *DeviceFarm) UpdateUpload(input *UpdateUploadInput) (*UpdateUploadOutput, error) {
7802	req, out := c.UpdateUploadRequest(input)
7803	return out, req.Send()
7804}
7805
7806// UpdateUploadWithContext is the same as UpdateUpload with the addition of
7807// the ability to pass a context and additional request options.
7808//
7809// See UpdateUpload for details on how to use this API operation.
7810//
7811// The context must be non-nil and will be used for request cancellation. If
7812// the context is nil a panic will occur. In the future the SDK may create
7813// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7814// for more information on using Contexts.
7815func (c *DeviceFarm) UpdateUploadWithContext(ctx aws.Context, input *UpdateUploadInput, opts ...request.Option) (*UpdateUploadOutput, error) {
7816	req, out := c.UpdateUploadRequest(input)
7817	req.SetContext(ctx)
7818	req.ApplyOptions(opts...)
7819	return out, req.Send()
7820}
7821
7822const opUpdateVPCEConfiguration = "UpdateVPCEConfiguration"
7823
7824// UpdateVPCEConfigurationRequest generates a "aws/request.Request" representing the
7825// client's request for the UpdateVPCEConfiguration operation. The "output" return
7826// value will be populated with the request's response once the request completes
7827// successfully.
7828//
7829// Use "Send" method on the returned Request to send the API call to the service.
7830// the "output" return value is not valid until after Send returns without error.
7831//
7832// See UpdateVPCEConfiguration for more information on using the UpdateVPCEConfiguration
7833// API call, and error handling.
7834//
7835// This method is useful when you want to inject custom logic or configuration
7836// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7837//
7838//
7839//    // Example sending a request using the UpdateVPCEConfigurationRequest method.
7840//    req, resp := client.UpdateVPCEConfigurationRequest(params)
7841//
7842//    err := req.Send()
7843//    if err == nil { // resp is now filled
7844//        fmt.Println(resp)
7845//    }
7846//
7847// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/UpdateVPCEConfiguration
7848func (c *DeviceFarm) UpdateVPCEConfigurationRequest(input *UpdateVPCEConfigurationInput) (req *request.Request, output *UpdateVPCEConfigurationOutput) {
7849	op := &request.Operation{
7850		Name:       opUpdateVPCEConfiguration,
7851		HTTPMethod: "POST",
7852		HTTPPath:   "/",
7853	}
7854
7855	if input == nil {
7856		input = &UpdateVPCEConfigurationInput{}
7857	}
7858
7859	output = &UpdateVPCEConfigurationOutput{}
7860	req = c.newRequest(op, input, output)
7861	return
7862}
7863
7864// UpdateVPCEConfiguration API operation for AWS Device Farm.
7865//
7866// Updates information about an Amazon Virtual Private Cloud (VPC) endpoint
7867// configuration.
7868//
7869// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7870// with awserr.Error's Code and Message methods to get detailed information about
7871// the error.
7872//
7873// See the AWS API reference guide for AWS Device Farm's
7874// API operation UpdateVPCEConfiguration for usage and error information.
7875//
7876// Returned Error Codes:
7877//   * ErrCodeArgumentException "ArgumentException"
7878//   An invalid argument was specified.
7879//
7880//   * ErrCodeNotFoundException "NotFoundException"
7881//   The specified entity was not found.
7882//
7883//   * ErrCodeServiceAccountException "ServiceAccountException"
7884//   There was a problem with the service account.
7885//
7886//   * ErrCodeInvalidOperationException "InvalidOperationException"
7887//   There was an error with the update request, or you do not have sufficient
7888//   permissions to update this VPC endpoint configuration.
7889//
7890// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/UpdateVPCEConfiguration
7891func (c *DeviceFarm) UpdateVPCEConfiguration(input *UpdateVPCEConfigurationInput) (*UpdateVPCEConfigurationOutput, error) {
7892	req, out := c.UpdateVPCEConfigurationRequest(input)
7893	return out, req.Send()
7894}
7895
7896// UpdateVPCEConfigurationWithContext is the same as UpdateVPCEConfiguration with the addition of
7897// the ability to pass a context and additional request options.
7898//
7899// See UpdateVPCEConfiguration for details on how to use this API operation.
7900//
7901// The context must be non-nil and will be used for request cancellation. If
7902// the context is nil a panic will occur. In the future the SDK may create
7903// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7904// for more information on using Contexts.
7905func (c *DeviceFarm) UpdateVPCEConfigurationWithContext(ctx aws.Context, input *UpdateVPCEConfigurationInput, opts ...request.Option) (*UpdateVPCEConfigurationOutput, error) {
7906	req, out := c.UpdateVPCEConfigurationRequest(input)
7907	req.SetContext(ctx)
7908	req.ApplyOptions(opts...)
7909	return out, req.Send()
7910}
7911
7912// A container for account-level settings in AWS Device Farm.
7913type AccountSettings struct {
7914	_ struct{} `type:"structure"`
7915
7916	// The AWS account number specified in the AccountSettings container.
7917	AwsAccountNumber *string `locationName:"awsAccountNumber" min:"2" type:"string"`
7918
7919	// The default number of minutes (at the account level) a test run executes
7920	// before it times out. The default value is 150 minutes.
7921	DefaultJobTimeoutMinutes *int64 `locationName:"defaultJobTimeoutMinutes" type:"integer"`
7922
7923	// The maximum number of minutes a test run executes before it times out.
7924	MaxJobTimeoutMinutes *int64 `locationName:"maxJobTimeoutMinutes" type:"integer"`
7925
7926	// The maximum number of device slots that the AWS account can purchase. Each
7927	// maximum is expressed as an offering-id:number pair, where the offering-id
7928	// represents one of the IDs returned by the ListOfferings command.
7929	MaxSlots map[string]*int64 `locationName:"maxSlots" type:"map"`
7930
7931	// When set to true, for private devices, Device Farm does not sign your app
7932	// again. For public devices, Device Farm always signs your apps again.
7933	//
7934	// For more information about how Device Farm re-signs your apps, see Do you
7935	// modify my app? (https://aws.amazon.com/device-farm/faq/) in the AWS Device
7936	// Farm FAQs.
7937	SkipAppResign *bool `locationName:"skipAppResign" type:"boolean"`
7938
7939	// Information about an AWS account's usage of free trial device minutes.
7940	TrialMinutes *TrialMinutes `locationName:"trialMinutes" type:"structure"`
7941
7942	// Returns the unmetered devices you have purchased or want to purchase.
7943	UnmeteredDevices map[string]*int64 `locationName:"unmeteredDevices" type:"map"`
7944
7945	// Returns the unmetered remote access devices you have purchased or want to
7946	// purchase.
7947	UnmeteredRemoteAccessDevices map[string]*int64 `locationName:"unmeteredRemoteAccessDevices" type:"map"`
7948}
7949
7950// String returns the string representation
7951func (s AccountSettings) String() string {
7952	return awsutil.Prettify(s)
7953}
7954
7955// GoString returns the string representation
7956func (s AccountSettings) GoString() string {
7957	return s.String()
7958}
7959
7960// SetAwsAccountNumber sets the AwsAccountNumber field's value.
7961func (s *AccountSettings) SetAwsAccountNumber(v string) *AccountSettings {
7962	s.AwsAccountNumber = &v
7963	return s
7964}
7965
7966// SetDefaultJobTimeoutMinutes sets the DefaultJobTimeoutMinutes field's value.
7967func (s *AccountSettings) SetDefaultJobTimeoutMinutes(v int64) *AccountSettings {
7968	s.DefaultJobTimeoutMinutes = &v
7969	return s
7970}
7971
7972// SetMaxJobTimeoutMinutes sets the MaxJobTimeoutMinutes field's value.
7973func (s *AccountSettings) SetMaxJobTimeoutMinutes(v int64) *AccountSettings {
7974	s.MaxJobTimeoutMinutes = &v
7975	return s
7976}
7977
7978// SetMaxSlots sets the MaxSlots field's value.
7979func (s *AccountSettings) SetMaxSlots(v map[string]*int64) *AccountSettings {
7980	s.MaxSlots = v
7981	return s
7982}
7983
7984// SetSkipAppResign sets the SkipAppResign field's value.
7985func (s *AccountSettings) SetSkipAppResign(v bool) *AccountSettings {
7986	s.SkipAppResign = &v
7987	return s
7988}
7989
7990// SetTrialMinutes sets the TrialMinutes field's value.
7991func (s *AccountSettings) SetTrialMinutes(v *TrialMinutes) *AccountSettings {
7992	s.TrialMinutes = v
7993	return s
7994}
7995
7996// SetUnmeteredDevices sets the UnmeteredDevices field's value.
7997func (s *AccountSettings) SetUnmeteredDevices(v map[string]*int64) *AccountSettings {
7998	s.UnmeteredDevices = v
7999	return s
8000}
8001
8002// SetUnmeteredRemoteAccessDevices sets the UnmeteredRemoteAccessDevices field's value.
8003func (s *AccountSettings) SetUnmeteredRemoteAccessDevices(v map[string]*int64) *AccountSettings {
8004	s.UnmeteredRemoteAccessDevices = v
8005	return s
8006}
8007
8008// Represents the output of a test. Examples of artifacts include logs and screenshots.
8009type Artifact struct {
8010	_ struct{} `type:"structure"`
8011
8012	// The artifact's ARN.
8013	Arn *string `locationName:"arn" min:"32" type:"string"`
8014
8015	// The artifact's file extension.
8016	Extension *string `locationName:"extension" type:"string"`
8017
8018	// The artifact's name.
8019	Name *string `locationName:"name" type:"string"`
8020
8021	// The artifact's type.
8022	//
8023	// Allowed values include the following:
8024	//
8025	//    * UNKNOWN
8026	//
8027	//    * SCREENSHOT
8028	//
8029	//    * DEVICE_LOG
8030	//
8031	//    * MESSAGE_LOG
8032	//
8033	//    * VIDEO_LOG
8034	//
8035	//    * RESULT_LOG
8036	//
8037	//    * SERVICE_LOG
8038	//
8039	//    * WEBKIT_LOG
8040	//
8041	//    * INSTRUMENTATION_OUTPUT
8042	//
8043	//    * EXERCISER_MONKEY_OUTPUT: the artifact (log) generated by an Android
8044	//    fuzz test.
8045	//
8046	//    * CALABASH_JSON_OUTPUT
8047	//
8048	//    * CALABASH_PRETTY_OUTPUT
8049	//
8050	//    * CALABASH_STANDARD_OUTPUT
8051	//
8052	//    * CALABASH_JAVA_XML_OUTPUT
8053	//
8054	//    * AUTOMATION_OUTPUT
8055	//
8056	//    * APPIUM_SERVER_OUTPUT
8057	//
8058	//    * APPIUM_JAVA_OUTPUT
8059	//
8060	//    * APPIUM_JAVA_XML_OUTPUT
8061	//
8062	//    * APPIUM_PYTHON_OUTPUT
8063	//
8064	//    * APPIUM_PYTHON_XML_OUTPUT
8065	//
8066	//    * EXPLORER_EVENT_LOG
8067	//
8068	//    * EXPLORER_SUMMARY_LOG
8069	//
8070	//    * APPLICATION_CRASH_REPORT
8071	//
8072	//    * XCTEST_LOG
8073	//
8074	//    * VIDEO
8075	//
8076	//    * CUSTOMER_ARTIFACT
8077	//
8078	//    * CUSTOMER_ARTIFACT_LOG
8079	//
8080	//    * TESTSPEC_OUTPUT
8081	Type *string `locationName:"type" type:"string" enum:"ArtifactType"`
8082
8083	// The presigned Amazon S3 URL that can be used with a GET request to download
8084	// the artifact's file.
8085	Url *string `locationName:"url" type:"string"`
8086}
8087
8088// String returns the string representation
8089func (s Artifact) String() string {
8090	return awsutil.Prettify(s)
8091}
8092
8093// GoString returns the string representation
8094func (s Artifact) GoString() string {
8095	return s.String()
8096}
8097
8098// SetArn sets the Arn field's value.
8099func (s *Artifact) SetArn(v string) *Artifact {
8100	s.Arn = &v
8101	return s
8102}
8103
8104// SetExtension sets the Extension field's value.
8105func (s *Artifact) SetExtension(v string) *Artifact {
8106	s.Extension = &v
8107	return s
8108}
8109
8110// SetName sets the Name field's value.
8111func (s *Artifact) SetName(v string) *Artifact {
8112	s.Name = &v
8113	return s
8114}
8115
8116// SetType sets the Type field's value.
8117func (s *Artifact) SetType(v string) *Artifact {
8118	s.Type = &v
8119	return s
8120}
8121
8122// SetUrl sets the Url field's value.
8123func (s *Artifact) SetUrl(v string) *Artifact {
8124	s.Url = &v
8125	return s
8126}
8127
8128// Represents the amount of CPU that an app is using on a physical device. Does
8129// not represent system-wide CPU usage.
8130type CPU struct {
8131	_ struct{} `type:"structure"`
8132
8133	// The CPU's architecture (for example, x86 or ARM).
8134	Architecture *string `locationName:"architecture" type:"string"`
8135
8136	// The clock speed of the device's CPU, expressed in hertz (Hz). For example,
8137	// a 1.2 GHz CPU is expressed as 1200000000.
8138	Clock *float64 `locationName:"clock" type:"double"`
8139
8140	// The CPU's frequency.
8141	Frequency *string `locationName:"frequency" type:"string"`
8142}
8143
8144// String returns the string representation
8145func (s CPU) String() string {
8146	return awsutil.Prettify(s)
8147}
8148
8149// GoString returns the string representation
8150func (s CPU) GoString() string {
8151	return s.String()
8152}
8153
8154// SetArchitecture sets the Architecture field's value.
8155func (s *CPU) SetArchitecture(v string) *CPU {
8156	s.Architecture = &v
8157	return s
8158}
8159
8160// SetClock sets the Clock field's value.
8161func (s *CPU) SetClock(v float64) *CPU {
8162	s.Clock = &v
8163	return s
8164}
8165
8166// SetFrequency sets the Frequency field's value.
8167func (s *CPU) SetFrequency(v string) *CPU {
8168	s.Frequency = &v
8169	return s
8170}
8171
8172// Represents entity counters.
8173type Counters struct {
8174	_ struct{} `type:"structure"`
8175
8176	// The number of errored entities.
8177	Errored *int64 `locationName:"errored" type:"integer"`
8178
8179	// The number of failed entities.
8180	Failed *int64 `locationName:"failed" type:"integer"`
8181
8182	// The number of passed entities.
8183	Passed *int64 `locationName:"passed" type:"integer"`
8184
8185	// The number of skipped entities.
8186	Skipped *int64 `locationName:"skipped" type:"integer"`
8187
8188	// The number of stopped entities.
8189	Stopped *int64 `locationName:"stopped" type:"integer"`
8190
8191	// The total number of entities.
8192	Total *int64 `locationName:"total" type:"integer"`
8193
8194	// The number of warned entities.
8195	Warned *int64 `locationName:"warned" type:"integer"`
8196}
8197
8198// String returns the string representation
8199func (s Counters) String() string {
8200	return awsutil.Prettify(s)
8201}
8202
8203// GoString returns the string representation
8204func (s Counters) GoString() string {
8205	return s.String()
8206}
8207
8208// SetErrored sets the Errored field's value.
8209func (s *Counters) SetErrored(v int64) *Counters {
8210	s.Errored = &v
8211	return s
8212}
8213
8214// SetFailed sets the Failed field's value.
8215func (s *Counters) SetFailed(v int64) *Counters {
8216	s.Failed = &v
8217	return s
8218}
8219
8220// SetPassed sets the Passed field's value.
8221func (s *Counters) SetPassed(v int64) *Counters {
8222	s.Passed = &v
8223	return s
8224}
8225
8226// SetSkipped sets the Skipped field's value.
8227func (s *Counters) SetSkipped(v int64) *Counters {
8228	s.Skipped = &v
8229	return s
8230}
8231
8232// SetStopped sets the Stopped field's value.
8233func (s *Counters) SetStopped(v int64) *Counters {
8234	s.Stopped = &v
8235	return s
8236}
8237
8238// SetTotal sets the Total field's value.
8239func (s *Counters) SetTotal(v int64) *Counters {
8240	s.Total = &v
8241	return s
8242}
8243
8244// SetWarned sets the Warned field's value.
8245func (s *Counters) SetWarned(v int64) *Counters {
8246	s.Warned = &v
8247	return s
8248}
8249
8250// Represents a request to the create device pool operation.
8251type CreateDevicePoolInput struct {
8252	_ struct{} `type:"structure"`
8253
8254	// The device pool's description.
8255	Description *string `locationName:"description" type:"string"`
8256
8257	// The number of devices that Device Farm can add to your device pool. Device
8258	// Farm adds devices that are available and meet the criteria that you assign
8259	// for the rules parameter. Depending on how many devices meet these constraints,
8260	// your device pool might contain fewer devices than the value for this parameter.
8261	//
8262	// By specifying the maximum number of devices, you can control the costs that
8263	// you incur by running tests.
8264	MaxDevices *int64 `locationName:"maxDevices" type:"integer"`
8265
8266	// The device pool's name.
8267	//
8268	// Name is a required field
8269	Name *string `locationName:"name" type:"string" required:"true"`
8270
8271	// The ARN of the project for the device pool.
8272	//
8273	// ProjectArn is a required field
8274	ProjectArn *string `locationName:"projectArn" min:"32" type:"string" required:"true"`
8275
8276	// The device pool's rules.
8277	//
8278	// Rules is a required field
8279	Rules []*Rule `locationName:"rules" type:"list" required:"true"`
8280}
8281
8282// String returns the string representation
8283func (s CreateDevicePoolInput) String() string {
8284	return awsutil.Prettify(s)
8285}
8286
8287// GoString returns the string representation
8288func (s CreateDevicePoolInput) GoString() string {
8289	return s.String()
8290}
8291
8292// Validate inspects the fields of the type to determine if they are valid.
8293func (s *CreateDevicePoolInput) Validate() error {
8294	invalidParams := request.ErrInvalidParams{Context: "CreateDevicePoolInput"}
8295	if s.Name == nil {
8296		invalidParams.Add(request.NewErrParamRequired("Name"))
8297	}
8298	if s.ProjectArn == nil {
8299		invalidParams.Add(request.NewErrParamRequired("ProjectArn"))
8300	}
8301	if s.ProjectArn != nil && len(*s.ProjectArn) < 32 {
8302		invalidParams.Add(request.NewErrParamMinLen("ProjectArn", 32))
8303	}
8304	if s.Rules == nil {
8305		invalidParams.Add(request.NewErrParamRequired("Rules"))
8306	}
8307
8308	if invalidParams.Len() > 0 {
8309		return invalidParams
8310	}
8311	return nil
8312}
8313
8314// SetDescription sets the Description field's value.
8315func (s *CreateDevicePoolInput) SetDescription(v string) *CreateDevicePoolInput {
8316	s.Description = &v
8317	return s
8318}
8319
8320// SetMaxDevices sets the MaxDevices field's value.
8321func (s *CreateDevicePoolInput) SetMaxDevices(v int64) *CreateDevicePoolInput {
8322	s.MaxDevices = &v
8323	return s
8324}
8325
8326// SetName sets the Name field's value.
8327func (s *CreateDevicePoolInput) SetName(v string) *CreateDevicePoolInput {
8328	s.Name = &v
8329	return s
8330}
8331
8332// SetProjectArn sets the ProjectArn field's value.
8333func (s *CreateDevicePoolInput) SetProjectArn(v string) *CreateDevicePoolInput {
8334	s.ProjectArn = &v
8335	return s
8336}
8337
8338// SetRules sets the Rules field's value.
8339func (s *CreateDevicePoolInput) SetRules(v []*Rule) *CreateDevicePoolInput {
8340	s.Rules = v
8341	return s
8342}
8343
8344// Represents the result of a create device pool request.
8345type CreateDevicePoolOutput struct {
8346	_ struct{} `type:"structure"`
8347
8348	// The newly created device pool.
8349	DevicePool *DevicePool `locationName:"devicePool" type:"structure"`
8350}
8351
8352// String returns the string representation
8353func (s CreateDevicePoolOutput) String() string {
8354	return awsutil.Prettify(s)
8355}
8356
8357// GoString returns the string representation
8358func (s CreateDevicePoolOutput) GoString() string {
8359	return s.String()
8360}
8361
8362// SetDevicePool sets the DevicePool field's value.
8363func (s *CreateDevicePoolOutput) SetDevicePool(v *DevicePool) *CreateDevicePoolOutput {
8364	s.DevicePool = v
8365	return s
8366}
8367
8368type CreateInstanceProfileInput struct {
8369	_ struct{} `type:"structure"`
8370
8371	// The description of your instance profile.
8372	Description *string `locationName:"description" type:"string"`
8373
8374	// An array of strings that specifies the list of app packages that should not
8375	// be cleaned up from the device after a test run.
8376	//
8377	// The list of packages is considered only if you set packageCleanup to true.
8378	ExcludeAppPackagesFromCleanup []*string `locationName:"excludeAppPackagesFromCleanup" type:"list"`
8379
8380	// The name of your instance profile.
8381	//
8382	// Name is a required field
8383	Name *string `locationName:"name" type:"string" required:"true"`
8384
8385	// When set to true, Device Farm removes app packages after a test run. The
8386	// default value is false for private devices.
8387	PackageCleanup *bool `locationName:"packageCleanup" type:"boolean"`
8388
8389	// When set to true, Device Farm reboots the instance after a test run. The
8390	// default value is true.
8391	RebootAfterUse *bool `locationName:"rebootAfterUse" type:"boolean"`
8392}
8393
8394// String returns the string representation
8395func (s CreateInstanceProfileInput) String() string {
8396	return awsutil.Prettify(s)
8397}
8398
8399// GoString returns the string representation
8400func (s CreateInstanceProfileInput) GoString() string {
8401	return s.String()
8402}
8403
8404// Validate inspects the fields of the type to determine if they are valid.
8405func (s *CreateInstanceProfileInput) Validate() error {
8406	invalidParams := request.ErrInvalidParams{Context: "CreateInstanceProfileInput"}
8407	if s.Name == nil {
8408		invalidParams.Add(request.NewErrParamRequired("Name"))
8409	}
8410
8411	if invalidParams.Len() > 0 {
8412		return invalidParams
8413	}
8414	return nil
8415}
8416
8417// SetDescription sets the Description field's value.
8418func (s *CreateInstanceProfileInput) SetDescription(v string) *CreateInstanceProfileInput {
8419	s.Description = &v
8420	return s
8421}
8422
8423// SetExcludeAppPackagesFromCleanup sets the ExcludeAppPackagesFromCleanup field's value.
8424func (s *CreateInstanceProfileInput) SetExcludeAppPackagesFromCleanup(v []*string) *CreateInstanceProfileInput {
8425	s.ExcludeAppPackagesFromCleanup = v
8426	return s
8427}
8428
8429// SetName sets the Name field's value.
8430func (s *CreateInstanceProfileInput) SetName(v string) *CreateInstanceProfileInput {
8431	s.Name = &v
8432	return s
8433}
8434
8435// SetPackageCleanup sets the PackageCleanup field's value.
8436func (s *CreateInstanceProfileInput) SetPackageCleanup(v bool) *CreateInstanceProfileInput {
8437	s.PackageCleanup = &v
8438	return s
8439}
8440
8441// SetRebootAfterUse sets the RebootAfterUse field's value.
8442func (s *CreateInstanceProfileInput) SetRebootAfterUse(v bool) *CreateInstanceProfileInput {
8443	s.RebootAfterUse = &v
8444	return s
8445}
8446
8447type CreateInstanceProfileOutput struct {
8448	_ struct{} `type:"structure"`
8449
8450	// An object that contains information about your instance profile.
8451	InstanceProfile *InstanceProfile `locationName:"instanceProfile" type:"structure"`
8452}
8453
8454// String returns the string representation
8455func (s CreateInstanceProfileOutput) String() string {
8456	return awsutil.Prettify(s)
8457}
8458
8459// GoString returns the string representation
8460func (s CreateInstanceProfileOutput) GoString() string {
8461	return s.String()
8462}
8463
8464// SetInstanceProfile sets the InstanceProfile field's value.
8465func (s *CreateInstanceProfileOutput) SetInstanceProfile(v *InstanceProfile) *CreateInstanceProfileOutput {
8466	s.InstanceProfile = v
8467	return s
8468}
8469
8470type CreateNetworkProfileInput struct {
8471	_ struct{} `type:"structure"`
8472
8473	// The description of the network profile.
8474	Description *string `locationName:"description" type:"string"`
8475
8476	// The data throughput rate in bits per second, as an integer from 0 to 104857600.
8477	DownlinkBandwidthBits *int64 `locationName:"downlinkBandwidthBits" type:"long"`
8478
8479	// Delay time for all packets to destination in milliseconds as an integer from
8480	// 0 to 2000.
8481	DownlinkDelayMs *int64 `locationName:"downlinkDelayMs" type:"long"`
8482
8483	// Time variation in the delay of received packets in milliseconds as an integer
8484	// from 0 to 2000.
8485	DownlinkJitterMs *int64 `locationName:"downlinkJitterMs" type:"long"`
8486
8487	// Proportion of received packets that fail to arrive from 0 to 100 percent.
8488	DownlinkLossPercent *int64 `locationName:"downlinkLossPercent" type:"integer"`
8489
8490	// The name for the new network profile.
8491	//
8492	// Name is a required field
8493	Name *string `locationName:"name" type:"string" required:"true"`
8494
8495	// The Amazon Resource Name (ARN) of the project for which you want to create
8496	// a network profile.
8497	//
8498	// ProjectArn is a required field
8499	ProjectArn *string `locationName:"projectArn" min:"32" type:"string" required:"true"`
8500
8501	// The type of network profile to create. Valid values are listed here.
8502	Type *string `locationName:"type" type:"string" enum:"NetworkProfileType"`
8503
8504	// The data throughput rate in bits per second, as an integer from 0 to 104857600.
8505	UplinkBandwidthBits *int64 `locationName:"uplinkBandwidthBits" type:"long"`
8506
8507	// Delay time for all packets to destination in milliseconds as an integer from
8508	// 0 to 2000.
8509	UplinkDelayMs *int64 `locationName:"uplinkDelayMs" type:"long"`
8510
8511	// Time variation in the delay of received packets in milliseconds as an integer
8512	// from 0 to 2000.
8513	UplinkJitterMs *int64 `locationName:"uplinkJitterMs" type:"long"`
8514
8515	// Proportion of transmitted packets that fail to arrive from 0 to 100 percent.
8516	UplinkLossPercent *int64 `locationName:"uplinkLossPercent" type:"integer"`
8517}
8518
8519// String returns the string representation
8520func (s CreateNetworkProfileInput) String() string {
8521	return awsutil.Prettify(s)
8522}
8523
8524// GoString returns the string representation
8525func (s CreateNetworkProfileInput) GoString() string {
8526	return s.String()
8527}
8528
8529// Validate inspects the fields of the type to determine if they are valid.
8530func (s *CreateNetworkProfileInput) Validate() error {
8531	invalidParams := request.ErrInvalidParams{Context: "CreateNetworkProfileInput"}
8532	if s.Name == nil {
8533		invalidParams.Add(request.NewErrParamRequired("Name"))
8534	}
8535	if s.ProjectArn == nil {
8536		invalidParams.Add(request.NewErrParamRequired("ProjectArn"))
8537	}
8538	if s.ProjectArn != nil && len(*s.ProjectArn) < 32 {
8539		invalidParams.Add(request.NewErrParamMinLen("ProjectArn", 32))
8540	}
8541
8542	if invalidParams.Len() > 0 {
8543		return invalidParams
8544	}
8545	return nil
8546}
8547
8548// SetDescription sets the Description field's value.
8549func (s *CreateNetworkProfileInput) SetDescription(v string) *CreateNetworkProfileInput {
8550	s.Description = &v
8551	return s
8552}
8553
8554// SetDownlinkBandwidthBits sets the DownlinkBandwidthBits field's value.
8555func (s *CreateNetworkProfileInput) SetDownlinkBandwidthBits(v int64) *CreateNetworkProfileInput {
8556	s.DownlinkBandwidthBits = &v
8557	return s
8558}
8559
8560// SetDownlinkDelayMs sets the DownlinkDelayMs field's value.
8561func (s *CreateNetworkProfileInput) SetDownlinkDelayMs(v int64) *CreateNetworkProfileInput {
8562	s.DownlinkDelayMs = &v
8563	return s
8564}
8565
8566// SetDownlinkJitterMs sets the DownlinkJitterMs field's value.
8567func (s *CreateNetworkProfileInput) SetDownlinkJitterMs(v int64) *CreateNetworkProfileInput {
8568	s.DownlinkJitterMs = &v
8569	return s
8570}
8571
8572// SetDownlinkLossPercent sets the DownlinkLossPercent field's value.
8573func (s *CreateNetworkProfileInput) SetDownlinkLossPercent(v int64) *CreateNetworkProfileInput {
8574	s.DownlinkLossPercent = &v
8575	return s
8576}
8577
8578// SetName sets the Name field's value.
8579func (s *CreateNetworkProfileInput) SetName(v string) *CreateNetworkProfileInput {
8580	s.Name = &v
8581	return s
8582}
8583
8584// SetProjectArn sets the ProjectArn field's value.
8585func (s *CreateNetworkProfileInput) SetProjectArn(v string) *CreateNetworkProfileInput {
8586	s.ProjectArn = &v
8587	return s
8588}
8589
8590// SetType sets the Type field's value.
8591func (s *CreateNetworkProfileInput) SetType(v string) *CreateNetworkProfileInput {
8592	s.Type = &v
8593	return s
8594}
8595
8596// SetUplinkBandwidthBits sets the UplinkBandwidthBits field's value.
8597func (s *CreateNetworkProfileInput) SetUplinkBandwidthBits(v int64) *CreateNetworkProfileInput {
8598	s.UplinkBandwidthBits = &v
8599	return s
8600}
8601
8602// SetUplinkDelayMs sets the UplinkDelayMs field's value.
8603func (s *CreateNetworkProfileInput) SetUplinkDelayMs(v int64) *CreateNetworkProfileInput {
8604	s.UplinkDelayMs = &v
8605	return s
8606}
8607
8608// SetUplinkJitterMs sets the UplinkJitterMs field's value.
8609func (s *CreateNetworkProfileInput) SetUplinkJitterMs(v int64) *CreateNetworkProfileInput {
8610	s.UplinkJitterMs = &v
8611	return s
8612}
8613
8614// SetUplinkLossPercent sets the UplinkLossPercent field's value.
8615func (s *CreateNetworkProfileInput) SetUplinkLossPercent(v int64) *CreateNetworkProfileInput {
8616	s.UplinkLossPercent = &v
8617	return s
8618}
8619
8620type CreateNetworkProfileOutput struct {
8621	_ struct{} `type:"structure"`
8622
8623	// The network profile that is returned by the create network profile request.
8624	NetworkProfile *NetworkProfile `locationName:"networkProfile" type:"structure"`
8625}
8626
8627// String returns the string representation
8628func (s CreateNetworkProfileOutput) String() string {
8629	return awsutil.Prettify(s)
8630}
8631
8632// GoString returns the string representation
8633func (s CreateNetworkProfileOutput) GoString() string {
8634	return s.String()
8635}
8636
8637// SetNetworkProfile sets the NetworkProfile field's value.
8638func (s *CreateNetworkProfileOutput) SetNetworkProfile(v *NetworkProfile) *CreateNetworkProfileOutput {
8639	s.NetworkProfile = v
8640	return s
8641}
8642
8643// Represents a request to the create project operation.
8644type CreateProjectInput struct {
8645	_ struct{} `type:"structure"`
8646
8647	// Sets the execution timeout value (in minutes) for a project. All test runs
8648	// in this project use the specified execution timeout value unless overridden
8649	// when scheduling a run.
8650	DefaultJobTimeoutMinutes *int64 `locationName:"defaultJobTimeoutMinutes" type:"integer"`
8651
8652	// The project's name.
8653	//
8654	// Name is a required field
8655	Name *string `locationName:"name" type:"string" required:"true"`
8656}
8657
8658// String returns the string representation
8659func (s CreateProjectInput) String() string {
8660	return awsutil.Prettify(s)
8661}
8662
8663// GoString returns the string representation
8664func (s CreateProjectInput) GoString() string {
8665	return s.String()
8666}
8667
8668// Validate inspects the fields of the type to determine if they are valid.
8669func (s *CreateProjectInput) Validate() error {
8670	invalidParams := request.ErrInvalidParams{Context: "CreateProjectInput"}
8671	if s.Name == nil {
8672		invalidParams.Add(request.NewErrParamRequired("Name"))
8673	}
8674
8675	if invalidParams.Len() > 0 {
8676		return invalidParams
8677	}
8678	return nil
8679}
8680
8681// SetDefaultJobTimeoutMinutes sets the DefaultJobTimeoutMinutes field's value.
8682func (s *CreateProjectInput) SetDefaultJobTimeoutMinutes(v int64) *CreateProjectInput {
8683	s.DefaultJobTimeoutMinutes = &v
8684	return s
8685}
8686
8687// SetName sets the Name field's value.
8688func (s *CreateProjectInput) SetName(v string) *CreateProjectInput {
8689	s.Name = &v
8690	return s
8691}
8692
8693// Represents the result of a create project request.
8694type CreateProjectOutput struct {
8695	_ struct{} `type:"structure"`
8696
8697	// The newly created project.
8698	Project *Project `locationName:"project" type:"structure"`
8699}
8700
8701// String returns the string representation
8702func (s CreateProjectOutput) String() string {
8703	return awsutil.Prettify(s)
8704}
8705
8706// GoString returns the string representation
8707func (s CreateProjectOutput) GoString() string {
8708	return s.String()
8709}
8710
8711// SetProject sets the Project field's value.
8712func (s *CreateProjectOutput) SetProject(v *Project) *CreateProjectOutput {
8713	s.Project = v
8714	return s
8715}
8716
8717// Configuration settings for a remote access session, including billing method.
8718type CreateRemoteAccessSessionConfiguration struct {
8719	_ struct{} `type:"structure"`
8720
8721	// The billing method for the remote access session.
8722	BillingMethod *string `locationName:"billingMethod" type:"string" enum:"BillingMethod"`
8723
8724	// An array of ARNs included in the VPC endpoint configuration.
8725	VpceConfigurationArns []*string `locationName:"vpceConfigurationArns" type:"list"`
8726}
8727
8728// String returns the string representation
8729func (s CreateRemoteAccessSessionConfiguration) String() string {
8730	return awsutil.Prettify(s)
8731}
8732
8733// GoString returns the string representation
8734func (s CreateRemoteAccessSessionConfiguration) GoString() string {
8735	return s.String()
8736}
8737
8738// SetBillingMethod sets the BillingMethod field's value.
8739func (s *CreateRemoteAccessSessionConfiguration) SetBillingMethod(v string) *CreateRemoteAccessSessionConfiguration {
8740	s.BillingMethod = &v
8741	return s
8742}
8743
8744// SetVpceConfigurationArns sets the VpceConfigurationArns field's value.
8745func (s *CreateRemoteAccessSessionConfiguration) SetVpceConfigurationArns(v []*string) *CreateRemoteAccessSessionConfiguration {
8746	s.VpceConfigurationArns = v
8747	return s
8748}
8749
8750// Creates and submits a request to start a remote access session.
8751type CreateRemoteAccessSessionInput struct {
8752	_ struct{} `type:"structure"`
8753
8754	// Unique identifier for the client. If you want access to multiple devices
8755	// on the same client, you should pass the same clientId value in each call
8756	// to CreateRemoteAccessSession. This identifier is required only if remoteDebugEnabled
8757	// is set to true.
8758	//
8759	// Remote debugging is no longer supported (https://docs.aws.amazon.com/devicefarm/latest/developerguide/history.html).
8760	ClientId *string `locationName:"clientId" type:"string"`
8761
8762	// The configuration information for the remote access session request.
8763	Configuration *CreateRemoteAccessSessionConfiguration `locationName:"configuration" type:"structure"`
8764
8765	// The ARN of the device for which you want to create a remote access session.
8766	//
8767	// DeviceArn is a required field
8768	DeviceArn *string `locationName:"deviceArn" min:"32" type:"string" required:"true"`
8769
8770	// The Amazon Resource Name (ARN) of the device instance for which you want
8771	// to create a remote access session.
8772	InstanceArn *string `locationName:"instanceArn" min:"32" type:"string"`
8773
8774	// The interaction mode of the remote access session. Valid values are:
8775	//
8776	//    * INTERACTIVE: You can interact with the iOS device by viewing, touching,
8777	//    and rotating the screen. You cannot run XCUITest framework-based tests
8778	//    in this mode.
8779	//
8780	//    * NO_VIDEO: You are connected to the device, but cannot interact with
8781	//    it or view the screen. This mode has the fastest test execution speed.
8782	//    You can run XCUITest framework-based tests in this mode.
8783	//
8784	//    * VIDEO_ONLY: You can view the screen, but cannot touch or rotate it.
8785	//    You can run XCUITest framework-based tests and watch the screen in this
8786	//    mode.
8787	InteractionMode *string `locationName:"interactionMode" type:"string" enum:"InteractionMode"`
8788
8789	// The name of the remote access session to create.
8790	Name *string `locationName:"name" type:"string"`
8791
8792	// The Amazon Resource Name (ARN) of the project for which you want to create
8793	// a remote access session.
8794	//
8795	// ProjectArn is a required field
8796	ProjectArn *string `locationName:"projectArn" min:"32" type:"string" required:"true"`
8797
8798	// Set to true if you want to access devices remotely for debugging in your
8799	// remote access session.
8800	//
8801	// Remote debugging is no longer supported (https://docs.aws.amazon.com/devicefarm/latest/developerguide/history.html).
8802	RemoteDebugEnabled *bool `locationName:"remoteDebugEnabled" type:"boolean"`
8803
8804	// The Amazon Resource Name (ARN) for the app to be recorded in the remote access
8805	// session.
8806	RemoteRecordAppArn *string `locationName:"remoteRecordAppArn" min:"32" type:"string"`
8807
8808	// Set to true to enable remote recording for the remote access session.
8809	RemoteRecordEnabled *bool `locationName:"remoteRecordEnabled" type:"boolean"`
8810
8811	// When set to true, for private devices, Device Farm does not sign your app
8812	// again. For public devices, Device Farm always signs your apps again.
8813	//
8814	// For more information on how Device Farm modifies your uploads during tests,
8815	// see Do you modify my app? (https://aws.amazon.com/device-farm/faq/)
8816	SkipAppResign *bool `locationName:"skipAppResign" type:"boolean"`
8817
8818	// Ignored. The public key of the ssh key pair you want to use for connecting
8819	// to remote devices in your remote debugging session. This key is required
8820	// only if remoteDebugEnabled is set to true.
8821	//
8822	// Remote debugging is no longer supported (https://docs.aws.amazon.com/devicefarm/latest/developerguide/history.html).
8823	SshPublicKey *string `locationName:"sshPublicKey" type:"string"`
8824}
8825
8826// String returns the string representation
8827func (s CreateRemoteAccessSessionInput) String() string {
8828	return awsutil.Prettify(s)
8829}
8830
8831// GoString returns the string representation
8832func (s CreateRemoteAccessSessionInput) GoString() string {
8833	return s.String()
8834}
8835
8836// Validate inspects the fields of the type to determine if they are valid.
8837func (s *CreateRemoteAccessSessionInput) Validate() error {
8838	invalidParams := request.ErrInvalidParams{Context: "CreateRemoteAccessSessionInput"}
8839	if s.DeviceArn == nil {
8840		invalidParams.Add(request.NewErrParamRequired("DeviceArn"))
8841	}
8842	if s.DeviceArn != nil && len(*s.DeviceArn) < 32 {
8843		invalidParams.Add(request.NewErrParamMinLen("DeviceArn", 32))
8844	}
8845	if s.InstanceArn != nil && len(*s.InstanceArn) < 32 {
8846		invalidParams.Add(request.NewErrParamMinLen("InstanceArn", 32))
8847	}
8848	if s.ProjectArn == nil {
8849		invalidParams.Add(request.NewErrParamRequired("ProjectArn"))
8850	}
8851	if s.ProjectArn != nil && len(*s.ProjectArn) < 32 {
8852		invalidParams.Add(request.NewErrParamMinLen("ProjectArn", 32))
8853	}
8854	if s.RemoteRecordAppArn != nil && len(*s.RemoteRecordAppArn) < 32 {
8855		invalidParams.Add(request.NewErrParamMinLen("RemoteRecordAppArn", 32))
8856	}
8857
8858	if invalidParams.Len() > 0 {
8859		return invalidParams
8860	}
8861	return nil
8862}
8863
8864// SetClientId sets the ClientId field's value.
8865func (s *CreateRemoteAccessSessionInput) SetClientId(v string) *CreateRemoteAccessSessionInput {
8866	s.ClientId = &v
8867	return s
8868}
8869
8870// SetConfiguration sets the Configuration field's value.
8871func (s *CreateRemoteAccessSessionInput) SetConfiguration(v *CreateRemoteAccessSessionConfiguration) *CreateRemoteAccessSessionInput {
8872	s.Configuration = v
8873	return s
8874}
8875
8876// SetDeviceArn sets the DeviceArn field's value.
8877func (s *CreateRemoteAccessSessionInput) SetDeviceArn(v string) *CreateRemoteAccessSessionInput {
8878	s.DeviceArn = &v
8879	return s
8880}
8881
8882// SetInstanceArn sets the InstanceArn field's value.
8883func (s *CreateRemoteAccessSessionInput) SetInstanceArn(v string) *CreateRemoteAccessSessionInput {
8884	s.InstanceArn = &v
8885	return s
8886}
8887
8888// SetInteractionMode sets the InteractionMode field's value.
8889func (s *CreateRemoteAccessSessionInput) SetInteractionMode(v string) *CreateRemoteAccessSessionInput {
8890	s.InteractionMode = &v
8891	return s
8892}
8893
8894// SetName sets the Name field's value.
8895func (s *CreateRemoteAccessSessionInput) SetName(v string) *CreateRemoteAccessSessionInput {
8896	s.Name = &v
8897	return s
8898}
8899
8900// SetProjectArn sets the ProjectArn field's value.
8901func (s *CreateRemoteAccessSessionInput) SetProjectArn(v string) *CreateRemoteAccessSessionInput {
8902	s.ProjectArn = &v
8903	return s
8904}
8905
8906// SetRemoteDebugEnabled sets the RemoteDebugEnabled field's value.
8907func (s *CreateRemoteAccessSessionInput) SetRemoteDebugEnabled(v bool) *CreateRemoteAccessSessionInput {
8908	s.RemoteDebugEnabled = &v
8909	return s
8910}
8911
8912// SetRemoteRecordAppArn sets the RemoteRecordAppArn field's value.
8913func (s *CreateRemoteAccessSessionInput) SetRemoteRecordAppArn(v string) *CreateRemoteAccessSessionInput {
8914	s.RemoteRecordAppArn = &v
8915	return s
8916}
8917
8918// SetRemoteRecordEnabled sets the RemoteRecordEnabled field's value.
8919func (s *CreateRemoteAccessSessionInput) SetRemoteRecordEnabled(v bool) *CreateRemoteAccessSessionInput {
8920	s.RemoteRecordEnabled = &v
8921	return s
8922}
8923
8924// SetSkipAppResign sets the SkipAppResign field's value.
8925func (s *CreateRemoteAccessSessionInput) SetSkipAppResign(v bool) *CreateRemoteAccessSessionInput {
8926	s.SkipAppResign = &v
8927	return s
8928}
8929
8930// SetSshPublicKey sets the SshPublicKey field's value.
8931func (s *CreateRemoteAccessSessionInput) SetSshPublicKey(v string) *CreateRemoteAccessSessionInput {
8932	s.SshPublicKey = &v
8933	return s
8934}
8935
8936// Represents the server response from a request to create a remote access session.
8937type CreateRemoteAccessSessionOutput struct {
8938	_ struct{} `type:"structure"`
8939
8940	// A container that describes the remote access session when the request to
8941	// create a remote access session is sent.
8942	RemoteAccessSession *RemoteAccessSession `locationName:"remoteAccessSession" type:"structure"`
8943}
8944
8945// String returns the string representation
8946func (s CreateRemoteAccessSessionOutput) String() string {
8947	return awsutil.Prettify(s)
8948}
8949
8950// GoString returns the string representation
8951func (s CreateRemoteAccessSessionOutput) GoString() string {
8952	return s.String()
8953}
8954
8955// SetRemoteAccessSession sets the RemoteAccessSession field's value.
8956func (s *CreateRemoteAccessSessionOutput) SetRemoteAccessSession(v *RemoteAccessSession) *CreateRemoteAccessSessionOutput {
8957	s.RemoteAccessSession = v
8958	return s
8959}
8960
8961type CreateTestGridProjectInput struct {
8962	_ struct{} `type:"structure"`
8963
8964	// Human-readable description of the project.
8965	Description *string `locationName:"description" min:"1" type:"string"`
8966
8967	// Human-readable name of the Selenium testing project.
8968	//
8969	// Name is a required field
8970	Name *string `locationName:"name" min:"1" type:"string" required:"true"`
8971}
8972
8973// String returns the string representation
8974func (s CreateTestGridProjectInput) String() string {
8975	return awsutil.Prettify(s)
8976}
8977
8978// GoString returns the string representation
8979func (s CreateTestGridProjectInput) GoString() string {
8980	return s.String()
8981}
8982
8983// Validate inspects the fields of the type to determine if they are valid.
8984func (s *CreateTestGridProjectInput) Validate() error {
8985	invalidParams := request.ErrInvalidParams{Context: "CreateTestGridProjectInput"}
8986	if s.Description != nil && len(*s.Description) < 1 {
8987		invalidParams.Add(request.NewErrParamMinLen("Description", 1))
8988	}
8989	if s.Name == nil {
8990		invalidParams.Add(request.NewErrParamRequired("Name"))
8991	}
8992	if s.Name != nil && len(*s.Name) < 1 {
8993		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
8994	}
8995
8996	if invalidParams.Len() > 0 {
8997		return invalidParams
8998	}
8999	return nil
9000}
9001
9002// SetDescription sets the Description field's value.
9003func (s *CreateTestGridProjectInput) SetDescription(v string) *CreateTestGridProjectInput {
9004	s.Description = &v
9005	return s
9006}
9007
9008// SetName sets the Name field's value.
9009func (s *CreateTestGridProjectInput) SetName(v string) *CreateTestGridProjectInput {
9010	s.Name = &v
9011	return s
9012}
9013
9014type CreateTestGridProjectOutput struct {
9015	_ struct{} `type:"structure"`
9016
9017	// ARN of the Selenium testing project that was created.
9018	TestGridProject *TestGridProject `locationName:"testGridProject" type:"structure"`
9019}
9020
9021// String returns the string representation
9022func (s CreateTestGridProjectOutput) String() string {
9023	return awsutil.Prettify(s)
9024}
9025
9026// GoString returns the string representation
9027func (s CreateTestGridProjectOutput) GoString() string {
9028	return s.String()
9029}
9030
9031// SetTestGridProject sets the TestGridProject field's value.
9032func (s *CreateTestGridProjectOutput) SetTestGridProject(v *TestGridProject) *CreateTestGridProjectOutput {
9033	s.TestGridProject = v
9034	return s
9035}
9036
9037type CreateTestGridUrlInput struct {
9038	_ struct{} `type:"structure"`
9039
9040	// Lifetime, in seconds, of the URL.
9041	//
9042	// ExpiresInSeconds is a required field
9043	ExpiresInSeconds *int64 `locationName:"expiresInSeconds" min:"60" type:"integer" required:"true"`
9044
9045	// ARN (from CreateTestGridProject or ListTestGridProjects) to associate with
9046	// the short-term URL.
9047	//
9048	// ProjectArn is a required field
9049	ProjectArn *string `locationName:"projectArn" min:"32" type:"string" required:"true"`
9050}
9051
9052// String returns the string representation
9053func (s CreateTestGridUrlInput) String() string {
9054	return awsutil.Prettify(s)
9055}
9056
9057// GoString returns the string representation
9058func (s CreateTestGridUrlInput) GoString() string {
9059	return s.String()
9060}
9061
9062// Validate inspects the fields of the type to determine if they are valid.
9063func (s *CreateTestGridUrlInput) Validate() error {
9064	invalidParams := request.ErrInvalidParams{Context: "CreateTestGridUrlInput"}
9065	if s.ExpiresInSeconds == nil {
9066		invalidParams.Add(request.NewErrParamRequired("ExpiresInSeconds"))
9067	}
9068	if s.ExpiresInSeconds != nil && *s.ExpiresInSeconds < 60 {
9069		invalidParams.Add(request.NewErrParamMinValue("ExpiresInSeconds", 60))
9070	}
9071	if s.ProjectArn == nil {
9072		invalidParams.Add(request.NewErrParamRequired("ProjectArn"))
9073	}
9074	if s.ProjectArn != nil && len(*s.ProjectArn) < 32 {
9075		invalidParams.Add(request.NewErrParamMinLen("ProjectArn", 32))
9076	}
9077
9078	if invalidParams.Len() > 0 {
9079		return invalidParams
9080	}
9081	return nil
9082}
9083
9084// SetExpiresInSeconds sets the ExpiresInSeconds field's value.
9085func (s *CreateTestGridUrlInput) SetExpiresInSeconds(v int64) *CreateTestGridUrlInput {
9086	s.ExpiresInSeconds = &v
9087	return s
9088}
9089
9090// SetProjectArn sets the ProjectArn field's value.
9091func (s *CreateTestGridUrlInput) SetProjectArn(v string) *CreateTestGridUrlInput {
9092	s.ProjectArn = &v
9093	return s
9094}
9095
9096type CreateTestGridUrlOutput struct {
9097	_ struct{} `type:"structure"`
9098
9099	// The number of seconds the URL from CreateTestGridUrlResult$url stays active.
9100	Expires *time.Time `locationName:"expires" type:"timestamp"`
9101
9102	// A signed URL, expiring in CreateTestGridUrlRequest$expiresInSeconds seconds,
9103	// to be passed to a RemoteWebDriver.
9104	Url *string `locationName:"url" type:"string"`
9105}
9106
9107// String returns the string representation
9108func (s CreateTestGridUrlOutput) String() string {
9109	return awsutil.Prettify(s)
9110}
9111
9112// GoString returns the string representation
9113func (s CreateTestGridUrlOutput) GoString() string {
9114	return s.String()
9115}
9116
9117// SetExpires sets the Expires field's value.
9118func (s *CreateTestGridUrlOutput) SetExpires(v time.Time) *CreateTestGridUrlOutput {
9119	s.Expires = &v
9120	return s
9121}
9122
9123// SetUrl sets the Url field's value.
9124func (s *CreateTestGridUrlOutput) SetUrl(v string) *CreateTestGridUrlOutput {
9125	s.Url = &v
9126	return s
9127}
9128
9129// Represents a request to the create upload operation.
9130type CreateUploadInput struct {
9131	_ struct{} `type:"structure"`
9132
9133	// The upload's content type (for example, application/octet-stream).
9134	ContentType *string `locationName:"contentType" type:"string"`
9135
9136	// The upload's file name. The name should not contain any forward slashes (/).
9137	// If you are uploading an iOS app, the file name must end with the .ipa extension.
9138	// If you are uploading an Android app, the file name must end with the .apk
9139	// extension. For all others, the file name must end with the .zip file extension.
9140	//
9141	// Name is a required field
9142	Name *string `locationName:"name" type:"string" required:"true"`
9143
9144	// The ARN of the project for the upload.
9145	//
9146	// ProjectArn is a required field
9147	ProjectArn *string `locationName:"projectArn" min:"32" type:"string" required:"true"`
9148
9149	// The upload's upload type.
9150	//
9151	// Must be one of the following values:
9152	//
9153	//    * ANDROID_APP
9154	//
9155	//    * IOS_APP
9156	//
9157	//    * WEB_APP
9158	//
9159	//    * EXTERNAL_DATA
9160	//
9161	//    * APPIUM_JAVA_JUNIT_TEST_PACKAGE
9162	//
9163	//    * APPIUM_JAVA_TESTNG_TEST_PACKAGE
9164	//
9165	//    * APPIUM_PYTHON_TEST_PACKAGE
9166	//
9167	//    * APPIUM_NODE_TEST_PACKAGE
9168	//
9169	//    * APPIUM_RUBY_TEST_PACKAGE
9170	//
9171	//    * APPIUM_WEB_JAVA_JUNIT_TEST_PACKAGE
9172	//
9173	//    * APPIUM_WEB_JAVA_TESTNG_TEST_PACKAGE
9174	//
9175	//    * APPIUM_WEB_PYTHON_TEST_PACKAGE
9176	//
9177	//    * APPIUM_WEB_NODE_TEST_PACKAGE
9178	//
9179	//    * APPIUM_WEB_RUBY_TEST_PACKAGE
9180	//
9181	//    * CALABASH_TEST_PACKAGE
9182	//
9183	//    * INSTRUMENTATION_TEST_PACKAGE
9184	//
9185	//    * UIAUTOMATION_TEST_PACKAGE
9186	//
9187	//    * UIAUTOMATOR_TEST_PACKAGE
9188	//
9189	//    * XCTEST_TEST_PACKAGE
9190	//
9191	//    * XCTEST_UI_TEST_PACKAGE
9192	//
9193	//    * APPIUM_JAVA_JUNIT_TEST_SPEC
9194	//
9195	//    * APPIUM_JAVA_TESTNG_TEST_SPEC
9196	//
9197	//    * APPIUM_PYTHON_TEST_SPEC
9198	//
9199	//    * APPIUM_NODE_TEST_SPEC
9200	//
9201	//    * APPIUM_RUBY_TEST_SPEC
9202	//
9203	//    * APPIUM_WEB_JAVA_JUNIT_TEST_SPEC
9204	//
9205	//    * APPIUM_WEB_JAVA_TESTNG_TEST_SPEC
9206	//
9207	//    * APPIUM_WEB_PYTHON_TEST_SPEC
9208	//
9209	//    * APPIUM_WEB_NODE_TEST_SPEC
9210	//
9211	//    * APPIUM_WEB_RUBY_TEST_SPEC
9212	//
9213	//    * INSTRUMENTATION_TEST_SPEC
9214	//
9215	//    * XCTEST_UI_TEST_SPEC
9216	//
9217	// If you call CreateUpload with WEB_APP specified, AWS Device Farm throws an
9218	// ArgumentException error.
9219	//
9220	// Type is a required field
9221	Type *string `locationName:"type" type:"string" required:"true" enum:"UploadType"`
9222}
9223
9224// String returns the string representation
9225func (s CreateUploadInput) String() string {
9226	return awsutil.Prettify(s)
9227}
9228
9229// GoString returns the string representation
9230func (s CreateUploadInput) GoString() string {
9231	return s.String()
9232}
9233
9234// Validate inspects the fields of the type to determine if they are valid.
9235func (s *CreateUploadInput) Validate() error {
9236	invalidParams := request.ErrInvalidParams{Context: "CreateUploadInput"}
9237	if s.Name == nil {
9238		invalidParams.Add(request.NewErrParamRequired("Name"))
9239	}
9240	if s.ProjectArn == nil {
9241		invalidParams.Add(request.NewErrParamRequired("ProjectArn"))
9242	}
9243	if s.ProjectArn != nil && len(*s.ProjectArn) < 32 {
9244		invalidParams.Add(request.NewErrParamMinLen("ProjectArn", 32))
9245	}
9246	if s.Type == nil {
9247		invalidParams.Add(request.NewErrParamRequired("Type"))
9248	}
9249
9250	if invalidParams.Len() > 0 {
9251		return invalidParams
9252	}
9253	return nil
9254}
9255
9256// SetContentType sets the ContentType field's value.
9257func (s *CreateUploadInput) SetContentType(v string) *CreateUploadInput {
9258	s.ContentType = &v
9259	return s
9260}
9261
9262// SetName sets the Name field's value.
9263func (s *CreateUploadInput) SetName(v string) *CreateUploadInput {
9264	s.Name = &v
9265	return s
9266}
9267
9268// SetProjectArn sets the ProjectArn field's value.
9269func (s *CreateUploadInput) SetProjectArn(v string) *CreateUploadInput {
9270	s.ProjectArn = &v
9271	return s
9272}
9273
9274// SetType sets the Type field's value.
9275func (s *CreateUploadInput) SetType(v string) *CreateUploadInput {
9276	s.Type = &v
9277	return s
9278}
9279
9280// Represents the result of a create upload request.
9281type CreateUploadOutput struct {
9282	_ struct{} `type:"structure"`
9283
9284	// The newly created upload.
9285	Upload *Upload `locationName:"upload" type:"structure"`
9286}
9287
9288// String returns the string representation
9289func (s CreateUploadOutput) String() string {
9290	return awsutil.Prettify(s)
9291}
9292
9293// GoString returns the string representation
9294func (s CreateUploadOutput) GoString() string {
9295	return s.String()
9296}
9297
9298// SetUpload sets the Upload field's value.
9299func (s *CreateUploadOutput) SetUpload(v *Upload) *CreateUploadOutput {
9300	s.Upload = v
9301	return s
9302}
9303
9304type CreateVPCEConfigurationInput struct {
9305	_ struct{} `type:"structure"`
9306
9307	// The DNS name of the service running in your VPC that you want Device Farm
9308	// to test.
9309	//
9310	// ServiceDnsName is a required field
9311	ServiceDnsName *string `locationName:"serviceDnsName" type:"string" required:"true"`
9312
9313	// An optional description that provides details about your VPC endpoint configuration.
9314	VpceConfigurationDescription *string `locationName:"vpceConfigurationDescription" type:"string"`
9315
9316	// The friendly name you give to your VPC endpoint configuration, to manage
9317	// your configurations more easily.
9318	//
9319	// VpceConfigurationName is a required field
9320	VpceConfigurationName *string `locationName:"vpceConfigurationName" type:"string" required:"true"`
9321
9322	// The name of the VPC endpoint service running in your AWS account that you
9323	// want Device Farm to test.
9324	//
9325	// VpceServiceName is a required field
9326	VpceServiceName *string `locationName:"vpceServiceName" type:"string" required:"true"`
9327}
9328
9329// String returns the string representation
9330func (s CreateVPCEConfigurationInput) String() string {
9331	return awsutil.Prettify(s)
9332}
9333
9334// GoString returns the string representation
9335func (s CreateVPCEConfigurationInput) GoString() string {
9336	return s.String()
9337}
9338
9339// Validate inspects the fields of the type to determine if they are valid.
9340func (s *CreateVPCEConfigurationInput) Validate() error {
9341	invalidParams := request.ErrInvalidParams{Context: "CreateVPCEConfigurationInput"}
9342	if s.ServiceDnsName == nil {
9343		invalidParams.Add(request.NewErrParamRequired("ServiceDnsName"))
9344	}
9345	if s.VpceConfigurationName == nil {
9346		invalidParams.Add(request.NewErrParamRequired("VpceConfigurationName"))
9347	}
9348	if s.VpceServiceName == nil {
9349		invalidParams.Add(request.NewErrParamRequired("VpceServiceName"))
9350	}
9351
9352	if invalidParams.Len() > 0 {
9353		return invalidParams
9354	}
9355	return nil
9356}
9357
9358// SetServiceDnsName sets the ServiceDnsName field's value.
9359func (s *CreateVPCEConfigurationInput) SetServiceDnsName(v string) *CreateVPCEConfigurationInput {
9360	s.ServiceDnsName = &v
9361	return s
9362}
9363
9364// SetVpceConfigurationDescription sets the VpceConfigurationDescription field's value.
9365func (s *CreateVPCEConfigurationInput) SetVpceConfigurationDescription(v string) *CreateVPCEConfigurationInput {
9366	s.VpceConfigurationDescription = &v
9367	return s
9368}
9369
9370// SetVpceConfigurationName sets the VpceConfigurationName field's value.
9371func (s *CreateVPCEConfigurationInput) SetVpceConfigurationName(v string) *CreateVPCEConfigurationInput {
9372	s.VpceConfigurationName = &v
9373	return s
9374}
9375
9376// SetVpceServiceName sets the VpceServiceName field's value.
9377func (s *CreateVPCEConfigurationInput) SetVpceServiceName(v string) *CreateVPCEConfigurationInput {
9378	s.VpceServiceName = &v
9379	return s
9380}
9381
9382type CreateVPCEConfigurationOutput struct {
9383	_ struct{} `type:"structure"`
9384
9385	// An object that contains information about your VPC endpoint configuration.
9386	VpceConfiguration *VPCEConfiguration `locationName:"vpceConfiguration" type:"structure"`
9387}
9388
9389// String returns the string representation
9390func (s CreateVPCEConfigurationOutput) String() string {
9391	return awsutil.Prettify(s)
9392}
9393
9394// GoString returns the string representation
9395func (s CreateVPCEConfigurationOutput) GoString() string {
9396	return s.String()
9397}
9398
9399// SetVpceConfiguration sets the VpceConfiguration field's value.
9400func (s *CreateVPCEConfigurationOutput) SetVpceConfiguration(v *VPCEConfiguration) *CreateVPCEConfigurationOutput {
9401	s.VpceConfiguration = v
9402	return s
9403}
9404
9405// A JSON object that specifies the paths where the artifacts generated by the
9406// customer's tests, on the device or in the test environment, are pulled from.
9407//
9408// Specify deviceHostPaths and optionally specify either iosPaths or androidPaths.
9409//
9410// For web app tests, you can specify both iosPaths and androidPaths.
9411type CustomerArtifactPaths struct {
9412	_ struct{} `type:"structure"`
9413
9414	// Comma-separated list of paths on the Android device where the artifacts generated
9415	// by the customer's tests are pulled from.
9416	AndroidPaths []*string `locationName:"androidPaths" type:"list"`
9417
9418	// Comma-separated list of paths in the test execution environment where the
9419	// artifacts generated by the customer's tests are pulled from.
9420	DeviceHostPaths []*string `locationName:"deviceHostPaths" type:"list"`
9421
9422	// Comma-separated list of paths on the iOS device where the artifacts generated
9423	// by the customer's tests are pulled from.
9424	IosPaths []*string `locationName:"iosPaths" type:"list"`
9425}
9426
9427// String returns the string representation
9428func (s CustomerArtifactPaths) String() string {
9429	return awsutil.Prettify(s)
9430}
9431
9432// GoString returns the string representation
9433func (s CustomerArtifactPaths) GoString() string {
9434	return s.String()
9435}
9436
9437// SetAndroidPaths sets the AndroidPaths field's value.
9438func (s *CustomerArtifactPaths) SetAndroidPaths(v []*string) *CustomerArtifactPaths {
9439	s.AndroidPaths = v
9440	return s
9441}
9442
9443// SetDeviceHostPaths sets the DeviceHostPaths field's value.
9444func (s *CustomerArtifactPaths) SetDeviceHostPaths(v []*string) *CustomerArtifactPaths {
9445	s.DeviceHostPaths = v
9446	return s
9447}
9448
9449// SetIosPaths sets the IosPaths field's value.
9450func (s *CustomerArtifactPaths) SetIosPaths(v []*string) *CustomerArtifactPaths {
9451	s.IosPaths = v
9452	return s
9453}
9454
9455// Represents a request to the delete device pool operation.
9456type DeleteDevicePoolInput struct {
9457	_ struct{} `type:"structure"`
9458
9459	// Represents the Amazon Resource Name (ARN) of the Device Farm device pool
9460	// to delete.
9461	//
9462	// Arn is a required field
9463	Arn *string `locationName:"arn" min:"32" type:"string" required:"true"`
9464}
9465
9466// String returns the string representation
9467func (s DeleteDevicePoolInput) String() string {
9468	return awsutil.Prettify(s)
9469}
9470
9471// GoString returns the string representation
9472func (s DeleteDevicePoolInput) GoString() string {
9473	return s.String()
9474}
9475
9476// Validate inspects the fields of the type to determine if they are valid.
9477func (s *DeleteDevicePoolInput) Validate() error {
9478	invalidParams := request.ErrInvalidParams{Context: "DeleteDevicePoolInput"}
9479	if s.Arn == nil {
9480		invalidParams.Add(request.NewErrParamRequired("Arn"))
9481	}
9482	if s.Arn != nil && len(*s.Arn) < 32 {
9483		invalidParams.Add(request.NewErrParamMinLen("Arn", 32))
9484	}
9485
9486	if invalidParams.Len() > 0 {
9487		return invalidParams
9488	}
9489	return nil
9490}
9491
9492// SetArn sets the Arn field's value.
9493func (s *DeleteDevicePoolInput) SetArn(v string) *DeleteDevicePoolInput {
9494	s.Arn = &v
9495	return s
9496}
9497
9498// Represents the result of a delete device pool request.
9499type DeleteDevicePoolOutput struct {
9500	_ struct{} `type:"structure"`
9501}
9502
9503// String returns the string representation
9504func (s DeleteDevicePoolOutput) String() string {
9505	return awsutil.Prettify(s)
9506}
9507
9508// GoString returns the string representation
9509func (s DeleteDevicePoolOutput) GoString() string {
9510	return s.String()
9511}
9512
9513type DeleteInstanceProfileInput struct {
9514	_ struct{} `type:"structure"`
9515
9516	// The Amazon Resource Name (ARN) of the instance profile you are requesting
9517	// to delete.
9518	//
9519	// Arn is a required field
9520	Arn *string `locationName:"arn" min:"32" type:"string" required:"true"`
9521}
9522
9523// String returns the string representation
9524func (s DeleteInstanceProfileInput) String() string {
9525	return awsutil.Prettify(s)
9526}
9527
9528// GoString returns the string representation
9529func (s DeleteInstanceProfileInput) GoString() string {
9530	return s.String()
9531}
9532
9533// Validate inspects the fields of the type to determine if they are valid.
9534func (s *DeleteInstanceProfileInput) Validate() error {
9535	invalidParams := request.ErrInvalidParams{Context: "DeleteInstanceProfileInput"}
9536	if s.Arn == nil {
9537		invalidParams.Add(request.NewErrParamRequired("Arn"))
9538	}
9539	if s.Arn != nil && len(*s.Arn) < 32 {
9540		invalidParams.Add(request.NewErrParamMinLen("Arn", 32))
9541	}
9542
9543	if invalidParams.Len() > 0 {
9544		return invalidParams
9545	}
9546	return nil
9547}
9548
9549// SetArn sets the Arn field's value.
9550func (s *DeleteInstanceProfileInput) SetArn(v string) *DeleteInstanceProfileInput {
9551	s.Arn = &v
9552	return s
9553}
9554
9555type DeleteInstanceProfileOutput struct {
9556	_ struct{} `type:"structure"`
9557}
9558
9559// String returns the string representation
9560func (s DeleteInstanceProfileOutput) String() string {
9561	return awsutil.Prettify(s)
9562}
9563
9564// GoString returns the string representation
9565func (s DeleteInstanceProfileOutput) GoString() string {
9566	return s.String()
9567}
9568
9569type DeleteNetworkProfileInput struct {
9570	_ struct{} `type:"structure"`
9571
9572	// The ARN of the network profile to delete.
9573	//
9574	// Arn is a required field
9575	Arn *string `locationName:"arn" min:"32" type:"string" required:"true"`
9576}
9577
9578// String returns the string representation
9579func (s DeleteNetworkProfileInput) String() string {
9580	return awsutil.Prettify(s)
9581}
9582
9583// GoString returns the string representation
9584func (s DeleteNetworkProfileInput) GoString() string {
9585	return s.String()
9586}
9587
9588// Validate inspects the fields of the type to determine if they are valid.
9589func (s *DeleteNetworkProfileInput) Validate() error {
9590	invalidParams := request.ErrInvalidParams{Context: "DeleteNetworkProfileInput"}
9591	if s.Arn == nil {
9592		invalidParams.Add(request.NewErrParamRequired("Arn"))
9593	}
9594	if s.Arn != nil && len(*s.Arn) < 32 {
9595		invalidParams.Add(request.NewErrParamMinLen("Arn", 32))
9596	}
9597
9598	if invalidParams.Len() > 0 {
9599		return invalidParams
9600	}
9601	return nil
9602}
9603
9604// SetArn sets the Arn field's value.
9605func (s *DeleteNetworkProfileInput) SetArn(v string) *DeleteNetworkProfileInput {
9606	s.Arn = &v
9607	return s
9608}
9609
9610type DeleteNetworkProfileOutput struct {
9611	_ struct{} `type:"structure"`
9612}
9613
9614// String returns the string representation
9615func (s DeleteNetworkProfileOutput) String() string {
9616	return awsutil.Prettify(s)
9617}
9618
9619// GoString returns the string representation
9620func (s DeleteNetworkProfileOutput) GoString() string {
9621	return s.String()
9622}
9623
9624// Represents a request to the delete project operation.
9625type DeleteProjectInput struct {
9626	_ struct{} `type:"structure"`
9627
9628	// Represents the Amazon Resource Name (ARN) of the Device Farm project to delete.
9629	//
9630	// Arn is a required field
9631	Arn *string `locationName:"arn" min:"32" type:"string" required:"true"`
9632}
9633
9634// String returns the string representation
9635func (s DeleteProjectInput) String() string {
9636	return awsutil.Prettify(s)
9637}
9638
9639// GoString returns the string representation
9640func (s DeleteProjectInput) GoString() string {
9641	return s.String()
9642}
9643
9644// Validate inspects the fields of the type to determine if they are valid.
9645func (s *DeleteProjectInput) Validate() error {
9646	invalidParams := request.ErrInvalidParams{Context: "DeleteProjectInput"}
9647	if s.Arn == nil {
9648		invalidParams.Add(request.NewErrParamRequired("Arn"))
9649	}
9650	if s.Arn != nil && len(*s.Arn) < 32 {
9651		invalidParams.Add(request.NewErrParamMinLen("Arn", 32))
9652	}
9653
9654	if invalidParams.Len() > 0 {
9655		return invalidParams
9656	}
9657	return nil
9658}
9659
9660// SetArn sets the Arn field's value.
9661func (s *DeleteProjectInput) SetArn(v string) *DeleteProjectInput {
9662	s.Arn = &v
9663	return s
9664}
9665
9666// Represents the result of a delete project request.
9667type DeleteProjectOutput struct {
9668	_ struct{} `type:"structure"`
9669}
9670
9671// String returns the string representation
9672func (s DeleteProjectOutput) String() string {
9673	return awsutil.Prettify(s)
9674}
9675
9676// GoString returns the string representation
9677func (s DeleteProjectOutput) GoString() string {
9678	return s.String()
9679}
9680
9681// Represents the request to delete the specified remote access session.
9682type DeleteRemoteAccessSessionInput struct {
9683	_ struct{} `type:"structure"`
9684
9685	// The Amazon Resource Name (ARN) of the session for which you want to delete
9686	// remote access.
9687	//
9688	// Arn is a required field
9689	Arn *string `locationName:"arn" min:"32" type:"string" required:"true"`
9690}
9691
9692// String returns the string representation
9693func (s DeleteRemoteAccessSessionInput) String() string {
9694	return awsutil.Prettify(s)
9695}
9696
9697// GoString returns the string representation
9698func (s DeleteRemoteAccessSessionInput) GoString() string {
9699	return s.String()
9700}
9701
9702// Validate inspects the fields of the type to determine if they are valid.
9703func (s *DeleteRemoteAccessSessionInput) Validate() error {
9704	invalidParams := request.ErrInvalidParams{Context: "DeleteRemoteAccessSessionInput"}
9705	if s.Arn == nil {
9706		invalidParams.Add(request.NewErrParamRequired("Arn"))
9707	}
9708	if s.Arn != nil && len(*s.Arn) < 32 {
9709		invalidParams.Add(request.NewErrParamMinLen("Arn", 32))
9710	}
9711
9712	if invalidParams.Len() > 0 {
9713		return invalidParams
9714	}
9715	return nil
9716}
9717
9718// SetArn sets the Arn field's value.
9719func (s *DeleteRemoteAccessSessionInput) SetArn(v string) *DeleteRemoteAccessSessionInput {
9720	s.Arn = &v
9721	return s
9722}
9723
9724// The response from the server when a request is made to delete the remote
9725// access session.
9726type DeleteRemoteAccessSessionOutput struct {
9727	_ struct{} `type:"structure"`
9728}
9729
9730// String returns the string representation
9731func (s DeleteRemoteAccessSessionOutput) String() string {
9732	return awsutil.Prettify(s)
9733}
9734
9735// GoString returns the string representation
9736func (s DeleteRemoteAccessSessionOutput) GoString() string {
9737	return s.String()
9738}
9739
9740// Represents a request to the delete run operation.
9741type DeleteRunInput struct {
9742	_ struct{} `type:"structure"`
9743
9744	// The Amazon Resource Name (ARN) for the run to delete.
9745	//
9746	// Arn is a required field
9747	Arn *string `locationName:"arn" min:"32" type:"string" required:"true"`
9748}
9749
9750// String returns the string representation
9751func (s DeleteRunInput) String() string {
9752	return awsutil.Prettify(s)
9753}
9754
9755// GoString returns the string representation
9756func (s DeleteRunInput) GoString() string {
9757	return s.String()
9758}
9759
9760// Validate inspects the fields of the type to determine if they are valid.
9761func (s *DeleteRunInput) Validate() error {
9762	invalidParams := request.ErrInvalidParams{Context: "DeleteRunInput"}
9763	if s.Arn == nil {
9764		invalidParams.Add(request.NewErrParamRequired("Arn"))
9765	}
9766	if s.Arn != nil && len(*s.Arn) < 32 {
9767		invalidParams.Add(request.NewErrParamMinLen("Arn", 32))
9768	}
9769
9770	if invalidParams.Len() > 0 {
9771		return invalidParams
9772	}
9773	return nil
9774}
9775
9776// SetArn sets the Arn field's value.
9777func (s *DeleteRunInput) SetArn(v string) *DeleteRunInput {
9778	s.Arn = &v
9779	return s
9780}
9781
9782// Represents the result of a delete run request.
9783type DeleteRunOutput struct {
9784	_ struct{} `type:"structure"`
9785}
9786
9787// String returns the string representation
9788func (s DeleteRunOutput) String() string {
9789	return awsutil.Prettify(s)
9790}
9791
9792// GoString returns the string representation
9793func (s DeleteRunOutput) GoString() string {
9794	return s.String()
9795}
9796
9797type DeleteTestGridProjectInput struct {
9798	_ struct{} `type:"structure"`
9799
9800	// The ARN of the project to delete, from CreateTestGridProject or ListTestGridProjects.
9801	//
9802	// ProjectArn is a required field
9803	ProjectArn *string `locationName:"projectArn" min:"32" type:"string" required:"true"`
9804}
9805
9806// String returns the string representation
9807func (s DeleteTestGridProjectInput) String() string {
9808	return awsutil.Prettify(s)
9809}
9810
9811// GoString returns the string representation
9812func (s DeleteTestGridProjectInput) GoString() string {
9813	return s.String()
9814}
9815
9816// Validate inspects the fields of the type to determine if they are valid.
9817func (s *DeleteTestGridProjectInput) Validate() error {
9818	invalidParams := request.ErrInvalidParams{Context: "DeleteTestGridProjectInput"}
9819	if s.ProjectArn == nil {
9820		invalidParams.Add(request.NewErrParamRequired("ProjectArn"))
9821	}
9822	if s.ProjectArn != nil && len(*s.ProjectArn) < 32 {
9823		invalidParams.Add(request.NewErrParamMinLen("ProjectArn", 32))
9824	}
9825
9826	if invalidParams.Len() > 0 {
9827		return invalidParams
9828	}
9829	return nil
9830}
9831
9832// SetProjectArn sets the ProjectArn field's value.
9833func (s *DeleteTestGridProjectInput) SetProjectArn(v string) *DeleteTestGridProjectInput {
9834	s.ProjectArn = &v
9835	return s
9836}
9837
9838type DeleteTestGridProjectOutput struct {
9839	_ struct{} `type:"structure"`
9840}
9841
9842// String returns the string representation
9843func (s DeleteTestGridProjectOutput) String() string {
9844	return awsutil.Prettify(s)
9845}
9846
9847// GoString returns the string representation
9848func (s DeleteTestGridProjectOutput) GoString() string {
9849	return s.String()
9850}
9851
9852// Represents a request to the delete upload operation.
9853type DeleteUploadInput struct {
9854	_ struct{} `type:"structure"`
9855
9856	// Represents the Amazon Resource Name (ARN) of the Device Farm upload to delete.
9857	//
9858	// Arn is a required field
9859	Arn *string `locationName:"arn" min:"32" type:"string" required:"true"`
9860}
9861
9862// String returns the string representation
9863func (s DeleteUploadInput) String() string {
9864	return awsutil.Prettify(s)
9865}
9866
9867// GoString returns the string representation
9868func (s DeleteUploadInput) GoString() string {
9869	return s.String()
9870}
9871
9872// Validate inspects the fields of the type to determine if they are valid.
9873func (s *DeleteUploadInput) Validate() error {
9874	invalidParams := request.ErrInvalidParams{Context: "DeleteUploadInput"}
9875	if s.Arn == nil {
9876		invalidParams.Add(request.NewErrParamRequired("Arn"))
9877	}
9878	if s.Arn != nil && len(*s.Arn) < 32 {
9879		invalidParams.Add(request.NewErrParamMinLen("Arn", 32))
9880	}
9881
9882	if invalidParams.Len() > 0 {
9883		return invalidParams
9884	}
9885	return nil
9886}
9887
9888// SetArn sets the Arn field's value.
9889func (s *DeleteUploadInput) SetArn(v string) *DeleteUploadInput {
9890	s.Arn = &v
9891	return s
9892}
9893
9894// Represents the result of a delete upload request.
9895type DeleteUploadOutput struct {
9896	_ struct{} `type:"structure"`
9897}
9898
9899// String returns the string representation
9900func (s DeleteUploadOutput) String() string {
9901	return awsutil.Prettify(s)
9902}
9903
9904// GoString returns the string representation
9905func (s DeleteUploadOutput) GoString() string {
9906	return s.String()
9907}
9908
9909type DeleteVPCEConfigurationInput struct {
9910	_ struct{} `type:"structure"`
9911
9912	// The Amazon Resource Name (ARN) of the VPC endpoint configuration you want
9913	// to delete.
9914	//
9915	// Arn is a required field
9916	Arn *string `locationName:"arn" min:"32" type:"string" required:"true"`
9917}
9918
9919// String returns the string representation
9920func (s DeleteVPCEConfigurationInput) String() string {
9921	return awsutil.Prettify(s)
9922}
9923
9924// GoString returns the string representation
9925func (s DeleteVPCEConfigurationInput) GoString() string {
9926	return s.String()
9927}
9928
9929// Validate inspects the fields of the type to determine if they are valid.
9930func (s *DeleteVPCEConfigurationInput) Validate() error {
9931	invalidParams := request.ErrInvalidParams{Context: "DeleteVPCEConfigurationInput"}
9932	if s.Arn == nil {
9933		invalidParams.Add(request.NewErrParamRequired("Arn"))
9934	}
9935	if s.Arn != nil && len(*s.Arn) < 32 {
9936		invalidParams.Add(request.NewErrParamMinLen("Arn", 32))
9937	}
9938
9939	if invalidParams.Len() > 0 {
9940		return invalidParams
9941	}
9942	return nil
9943}
9944
9945// SetArn sets the Arn field's value.
9946func (s *DeleteVPCEConfigurationInput) SetArn(v string) *DeleteVPCEConfigurationInput {
9947	s.Arn = &v
9948	return s
9949}
9950
9951type DeleteVPCEConfigurationOutput struct {
9952	_ struct{} `type:"structure"`
9953}
9954
9955// String returns the string representation
9956func (s DeleteVPCEConfigurationOutput) String() string {
9957	return awsutil.Prettify(s)
9958}
9959
9960// GoString returns the string representation
9961func (s DeleteVPCEConfigurationOutput) GoString() string {
9962	return s.String()
9963}
9964
9965// Represents a device type that an app is tested against.
9966type Device struct {
9967	_ struct{} `type:"structure"`
9968
9969	// The device's ARN.
9970	Arn *string `locationName:"arn" min:"32" type:"string"`
9971
9972	// Indicates how likely a device is available for a test run. Currently available
9973	// in the ListDevices and GetDevice API methods.
9974	Availability *string `locationName:"availability" type:"string" enum:"DeviceAvailability"`
9975
9976	// The device's carrier.
9977	Carrier *string `locationName:"carrier" type:"string"`
9978
9979	// Information about the device's CPU.
9980	Cpu *CPU `locationName:"cpu" type:"structure"`
9981
9982	// The name of the fleet to which this device belongs.
9983	FleetName *string `locationName:"fleetName" type:"string"`
9984
9985	// The type of fleet to which this device belongs. Possible values are PRIVATE
9986	// and PUBLIC.
9987	FleetType *string `locationName:"fleetType" type:"string"`
9988
9989	// The device's form factor.
9990	//
9991	// Allowed values include:
9992	//
9993	//    * PHONE
9994	//
9995	//    * TABLET
9996	FormFactor *string `locationName:"formFactor" type:"string" enum:"DeviceFormFactor"`
9997
9998	// The device's heap size, expressed in bytes.
9999	HeapSize *int64 `locationName:"heapSize" type:"long"`
10000
10001	// The device's image name.
10002	Image *string `locationName:"image" type:"string"`
10003
10004	// The instances that belong to this device.
10005	Instances []*DeviceInstance `locationName:"instances" type:"list"`
10006
10007	// The device's manufacturer name.
10008	Manufacturer *string `locationName:"manufacturer" type:"string"`
10009
10010	// The device's total memory size, expressed in bytes.
10011	Memory *int64 `locationName:"memory" type:"long"`
10012
10013	// The device's model name.
10014	Model *string `locationName:"model" type:"string"`
10015
10016	// The device's model ID.
10017	ModelId *string `locationName:"modelId" type:"string"`
10018
10019	// The device's display name.
10020	Name *string `locationName:"name" type:"string"`
10021
10022	// The device's operating system type.
10023	Os *string `locationName:"os" type:"string"`
10024
10025	// The device's platform.
10026	//
10027	// Allowed values include:
10028	//
10029	//    * ANDROID
10030	//
10031	//    * IOS
10032	Platform *string `locationName:"platform" type:"string" enum:"DevicePlatform"`
10033
10034	// The device's radio.
10035	Radio *string `locationName:"radio" type:"string"`
10036
10037	// Specifies whether remote access has been enabled for the specified device.
10038	RemoteAccessEnabled *bool `locationName:"remoteAccessEnabled" type:"boolean"`
10039
10040	// This flag is set to true if remote debugging is enabled for the device.
10041	//
10042	// Remote debugging is no longer supported (https://docs.aws.amazon.com/devicefarm/latest/developerguide/history.html).
10043	RemoteDebugEnabled *bool `locationName:"remoteDebugEnabled" type:"boolean"`
10044
10045	// The resolution of the device.
10046	Resolution *Resolution `locationName:"resolution" type:"structure"`
10047}
10048
10049// String returns the string representation
10050func (s Device) String() string {
10051	return awsutil.Prettify(s)
10052}
10053
10054// GoString returns the string representation
10055func (s Device) GoString() string {
10056	return s.String()
10057}
10058
10059// SetArn sets the Arn field's value.
10060func (s *Device) SetArn(v string) *Device {
10061	s.Arn = &v
10062	return s
10063}
10064
10065// SetAvailability sets the Availability field's value.
10066func (s *Device) SetAvailability(v string) *Device {
10067	s.Availability = &v
10068	return s
10069}
10070
10071// SetCarrier sets the Carrier field's value.
10072func (s *Device) SetCarrier(v string) *Device {
10073	s.Carrier = &v
10074	return s
10075}
10076
10077// SetCpu sets the Cpu field's value.
10078func (s *Device) SetCpu(v *CPU) *Device {
10079	s.Cpu = v
10080	return s
10081}
10082
10083// SetFleetName sets the FleetName field's value.
10084func (s *Device) SetFleetName(v string) *Device {
10085	s.FleetName = &v
10086	return s
10087}
10088
10089// SetFleetType sets the FleetType field's value.
10090func (s *Device) SetFleetType(v string) *Device {
10091	s.FleetType = &v
10092	return s
10093}
10094
10095// SetFormFactor sets the FormFactor field's value.
10096func (s *Device) SetFormFactor(v string) *Device {
10097	s.FormFactor = &v
10098	return s
10099}
10100
10101// SetHeapSize sets the HeapSize field's value.
10102func (s *Device) SetHeapSize(v int64) *Device {
10103	s.HeapSize = &v
10104	return s
10105}
10106
10107// SetImage sets the Image field's value.
10108func (s *Device) SetImage(v string) *Device {
10109	s.Image = &v
10110	return s
10111}
10112
10113// SetInstances sets the Instances field's value.
10114func (s *Device) SetInstances(v []*DeviceInstance) *Device {
10115	s.Instances = v
10116	return s
10117}
10118
10119// SetManufacturer sets the Manufacturer field's value.
10120func (s *Device) SetManufacturer(v string) *Device {
10121	s.Manufacturer = &v
10122	return s
10123}
10124
10125// SetMemory sets the Memory field's value.
10126func (s *Device) SetMemory(v int64) *Device {
10127	s.Memory = &v
10128	return s
10129}
10130
10131// SetModel sets the Model field's value.
10132func (s *Device) SetModel(v string) *Device {
10133	s.Model = &v
10134	return s
10135}
10136
10137// SetModelId sets the ModelId field's value.
10138func (s *Device) SetModelId(v string) *Device {
10139	s.ModelId = &v
10140	return s
10141}
10142
10143// SetName sets the Name field's value.
10144func (s *Device) SetName(v string) *Device {
10145	s.Name = &v
10146	return s
10147}
10148
10149// SetOs sets the Os field's value.
10150func (s *Device) SetOs(v string) *Device {
10151	s.Os = &v
10152	return s
10153}
10154
10155// SetPlatform sets the Platform field's value.
10156func (s *Device) SetPlatform(v string) *Device {
10157	s.Platform = &v
10158	return s
10159}
10160
10161// SetRadio sets the Radio field's value.
10162func (s *Device) SetRadio(v string) *Device {
10163	s.Radio = &v
10164	return s
10165}
10166
10167// SetRemoteAccessEnabled sets the RemoteAccessEnabled field's value.
10168func (s *Device) SetRemoteAccessEnabled(v bool) *Device {
10169	s.RemoteAccessEnabled = &v
10170	return s
10171}
10172
10173// SetRemoteDebugEnabled sets the RemoteDebugEnabled field's value.
10174func (s *Device) SetRemoteDebugEnabled(v bool) *Device {
10175	s.RemoteDebugEnabled = &v
10176	return s
10177}
10178
10179// SetResolution sets the Resolution field's value.
10180func (s *Device) SetResolution(v *Resolution) *Device {
10181	s.Resolution = v
10182	return s
10183}
10184
10185// Represents a device filter used to select a set of devices to be included
10186// in a test run. This data structure is passed in as the deviceSelectionConfiguration
10187// parameter to ScheduleRun. For an example of the JSON request syntax, see
10188// ScheduleRun.
10189//
10190// It is also passed in as the filters parameter to ListDevices. For an example
10191// of the JSON request syntax, see ListDevices.
10192type DeviceFilter struct {
10193	_ struct{} `type:"structure"`
10194
10195	// The aspect of a device such as platform or model used as the selection criteria
10196	// in a device filter.
10197	//
10198	// The supported operators for each attribute are provided in the following
10199	// list.
10200	//
10201	// ARN
10202	//
10203	// The Amazon Resource Name (ARN) of the device (for example, arn:aws:devicefarm:us-west-2::device:12345Example).
10204	//
10205	// Supported operators: EQUALS, IN, NOT_IN
10206	//
10207	// PLATFORM
10208	//
10209	// The device platform. Valid values are ANDROID or IOS.
10210	//
10211	// Supported operators: EQUALS
10212	//
10213	// OS_VERSION
10214	//
10215	// The operating system version (for example, 10.3.2).
10216	//
10217	// Supported operators: EQUALS, GREATER_THAN, GREATER_THAN_OR_EQUALS, IN, LESS_THAN,
10218	// LESS_THAN_OR_EQUALS, NOT_IN
10219	//
10220	// MODEL
10221	//
10222	// The device model (for example, iPad 5th Gen).
10223	//
10224	// Supported operators: CONTAINS, EQUALS, IN, NOT_IN
10225	//
10226	// AVAILABILITY
10227	//
10228	// The current availability of the device. Valid values are AVAILABLE, HIGHLY_AVAILABLE,
10229	// BUSY, or TEMPORARY_NOT_AVAILABLE.
10230	//
10231	// Supported operators: EQUALS
10232	//
10233	// FORM_FACTOR
10234	//
10235	// The device form factor. Valid values are PHONE or TABLET.
10236	//
10237	// Supported operators: EQUALS
10238	//
10239	// MANUFACTURER
10240	//
10241	// The device manufacturer (for example, Apple).
10242	//
10243	// Supported operators: EQUALS, IN, NOT_IN
10244	//
10245	// REMOTE_ACCESS_ENABLED
10246	//
10247	// Whether the device is enabled for remote access. Valid values are TRUE or
10248	// FALSE.
10249	//
10250	// Supported operators: EQUALS
10251	//
10252	// REMOTE_DEBUG_ENABLED
10253	//
10254	// Whether the device is enabled for remote debugging. Valid values are TRUE
10255	// or FALSE.
10256	//
10257	// Supported operators: EQUALS
10258	//
10259	// Because remote debugging is no longer supported (https://docs.aws.amazon.com/devicefarm/latest/developerguide/history.html),
10260	// this filter is ignored.
10261	//
10262	// INSTANCE_ARN
10263	//
10264	// The Amazon Resource Name (ARN) of the device instance.
10265	//
10266	// Supported operators: EQUALS, IN, NOT_IN
10267	//
10268	// INSTANCE_LABELS
10269	//
10270	// The label of the device instance.
10271	//
10272	// Supported operators: CONTAINS
10273	//
10274	// FLEET_TYPE
10275	//
10276	// The fleet type. Valid values are PUBLIC or PRIVATE.
10277	//
10278	// Supported operators: EQUALS
10279	Attribute *string `locationName:"attribute" type:"string" enum:"DeviceFilterAttribute"`
10280
10281	// Specifies how Device Farm compares the filter's attribute to the value. See
10282	// the attribute descriptions.
10283	Operator *string `locationName:"operator" type:"string" enum:"RuleOperator"`
10284
10285	// An array of one or more filter values used in a device filter.
10286	//
10287	// Operator Values
10288	//
10289	//    * The IN and NOT_IN operators can take a values array that has more than
10290	//    one element.
10291	//
10292	//    * The other operators require an array with a single element.
10293	//
10294	// Attribute Values
10295	//
10296	//    * The PLATFORM attribute can be set to ANDROID or IOS.
10297	//
10298	//    * The AVAILABILITY attribute can be set to AVAILABLE, HIGHLY_AVAILABLE,
10299	//    BUSY, or TEMPORARY_NOT_AVAILABLE.
10300	//
10301	//    * The FORM_FACTOR attribute can be set to PHONE or TABLET.
10302	//
10303	//    * The FLEET_TYPE attribute can be set to PUBLIC or PRIVATE.
10304	Values []*string `locationName:"values" type:"list"`
10305}
10306
10307// String returns the string representation
10308func (s DeviceFilter) String() string {
10309	return awsutil.Prettify(s)
10310}
10311
10312// GoString returns the string representation
10313func (s DeviceFilter) GoString() string {
10314	return s.String()
10315}
10316
10317// SetAttribute sets the Attribute field's value.
10318func (s *DeviceFilter) SetAttribute(v string) *DeviceFilter {
10319	s.Attribute = &v
10320	return s
10321}
10322
10323// SetOperator sets the Operator field's value.
10324func (s *DeviceFilter) SetOperator(v string) *DeviceFilter {
10325	s.Operator = &v
10326	return s
10327}
10328
10329// SetValues sets the Values field's value.
10330func (s *DeviceFilter) SetValues(v []*string) *DeviceFilter {
10331	s.Values = v
10332	return s
10333}
10334
10335// Represents the device instance.
10336type DeviceInstance struct {
10337	_ struct{} `type:"structure"`
10338
10339	// The Amazon Resource Name (ARN) of the device instance.
10340	Arn *string `locationName:"arn" min:"32" type:"string"`
10341
10342	// The ARN of the device.
10343	DeviceArn *string `locationName:"deviceArn" min:"32" type:"string"`
10344
10345	// A object that contains information about the instance profile.
10346	InstanceProfile *InstanceProfile `locationName:"instanceProfile" type:"structure"`
10347
10348	// An array of strings that describe the device instance.
10349	Labels []*string `locationName:"labels" type:"list"`
10350
10351	// The status of the device instance. Valid values are listed here.
10352	Status *string `locationName:"status" type:"string" enum:"InstanceStatus"`
10353
10354	// Unique device identifier for the device instance.
10355	Udid *string `locationName:"udid" type:"string"`
10356}
10357
10358// String returns the string representation
10359func (s DeviceInstance) String() string {
10360	return awsutil.Prettify(s)
10361}
10362
10363// GoString returns the string representation
10364func (s DeviceInstance) GoString() string {
10365	return s.String()
10366}
10367
10368// SetArn sets the Arn field's value.
10369func (s *DeviceInstance) SetArn(v string) *DeviceInstance {
10370	s.Arn = &v
10371	return s
10372}
10373
10374// SetDeviceArn sets the DeviceArn field's value.
10375func (s *DeviceInstance) SetDeviceArn(v string) *DeviceInstance {
10376	s.DeviceArn = &v
10377	return s
10378}
10379
10380// SetInstanceProfile sets the InstanceProfile field's value.
10381func (s *DeviceInstance) SetInstanceProfile(v *InstanceProfile) *DeviceInstance {
10382	s.InstanceProfile = v
10383	return s
10384}
10385
10386// SetLabels sets the Labels field's value.
10387func (s *DeviceInstance) SetLabels(v []*string) *DeviceInstance {
10388	s.Labels = v
10389	return s
10390}
10391
10392// SetStatus sets the Status field's value.
10393func (s *DeviceInstance) SetStatus(v string) *DeviceInstance {
10394	s.Status = &v
10395	return s
10396}
10397
10398// SetUdid sets the Udid field's value.
10399func (s *DeviceInstance) SetUdid(v string) *DeviceInstance {
10400	s.Udid = &v
10401	return s
10402}
10403
10404// Represents the total (metered or unmetered) minutes used by the resource
10405// to run tests. Contains the sum of minutes consumed by all children.
10406type DeviceMinutes struct {
10407	_ struct{} `type:"structure"`
10408
10409	// When specified, represents only the sum of metered minutes used by the resource
10410	// to run tests.
10411	Metered *float64 `locationName:"metered" type:"double"`
10412
10413	// When specified, represents the total minutes used by the resource to run
10414	// tests.
10415	Total *float64 `locationName:"total" type:"double"`
10416
10417	// When specified, represents only the sum of unmetered minutes used by the
10418	// resource to run tests.
10419	Unmetered *float64 `locationName:"unmetered" type:"double"`
10420}
10421
10422// String returns the string representation
10423func (s DeviceMinutes) String() string {
10424	return awsutil.Prettify(s)
10425}
10426
10427// GoString returns the string representation
10428func (s DeviceMinutes) GoString() string {
10429	return s.String()
10430}
10431
10432// SetMetered sets the Metered field's value.
10433func (s *DeviceMinutes) SetMetered(v float64) *DeviceMinutes {
10434	s.Metered = &v
10435	return s
10436}
10437
10438// SetTotal sets the Total field's value.
10439func (s *DeviceMinutes) SetTotal(v float64) *DeviceMinutes {
10440	s.Total = &v
10441	return s
10442}
10443
10444// SetUnmetered sets the Unmetered field's value.
10445func (s *DeviceMinutes) SetUnmetered(v float64) *DeviceMinutes {
10446	s.Unmetered = &v
10447	return s
10448}
10449
10450// Represents a collection of device types.
10451type DevicePool struct {
10452	_ struct{} `type:"structure"`
10453
10454	// The device pool's ARN.
10455	Arn *string `locationName:"arn" min:"32" type:"string"`
10456
10457	// The device pool's description.
10458	Description *string `locationName:"description" type:"string"`
10459
10460	// The number of devices that Device Farm can add to your device pool. Device
10461	// Farm adds devices that are available and meet the criteria that you assign
10462	// for the rules parameter. Depending on how many devices meet these constraints,
10463	// your device pool might contain fewer devices than the value for this parameter.
10464	//
10465	// By specifying the maximum number of devices, you can control the costs that
10466	// you incur by running tests.
10467	MaxDevices *int64 `locationName:"maxDevices" type:"integer"`
10468
10469	// The device pool's name.
10470	Name *string `locationName:"name" type:"string"`
10471
10472	// Information about the device pool's rules.
10473	Rules []*Rule `locationName:"rules" type:"list"`
10474
10475	// The device pool's type.
10476	//
10477	// Allowed values include:
10478	//
10479	//    * CURATED: A device pool that is created and managed by AWS Device Farm.
10480	//
10481	//    * PRIVATE: A device pool that is created and managed by the device pool
10482	//    developer.
10483	Type *string `locationName:"type" type:"string" enum:"DevicePoolType"`
10484}
10485
10486// String returns the string representation
10487func (s DevicePool) String() string {
10488	return awsutil.Prettify(s)
10489}
10490
10491// GoString returns the string representation
10492func (s DevicePool) GoString() string {
10493	return s.String()
10494}
10495
10496// SetArn sets the Arn field's value.
10497func (s *DevicePool) SetArn(v string) *DevicePool {
10498	s.Arn = &v
10499	return s
10500}
10501
10502// SetDescription sets the Description field's value.
10503func (s *DevicePool) SetDescription(v string) *DevicePool {
10504	s.Description = &v
10505	return s
10506}
10507
10508// SetMaxDevices sets the MaxDevices field's value.
10509func (s *DevicePool) SetMaxDevices(v int64) *DevicePool {
10510	s.MaxDevices = &v
10511	return s
10512}
10513
10514// SetName sets the Name field's value.
10515func (s *DevicePool) SetName(v string) *DevicePool {
10516	s.Name = &v
10517	return s
10518}
10519
10520// SetRules sets the Rules field's value.
10521func (s *DevicePool) SetRules(v []*Rule) *DevicePool {
10522	s.Rules = v
10523	return s
10524}
10525
10526// SetType sets the Type field's value.
10527func (s *DevicePool) SetType(v string) *DevicePool {
10528	s.Type = &v
10529	return s
10530}
10531
10532// Represents a device pool compatibility result.
10533type DevicePoolCompatibilityResult struct {
10534	_ struct{} `type:"structure"`
10535
10536	// Whether the result was compatible with the device pool.
10537	Compatible *bool `locationName:"compatible" type:"boolean"`
10538
10539	// The device (phone or tablet) to return information about.
10540	Device *Device `locationName:"device" type:"structure"`
10541
10542	// Information about the compatibility.
10543	IncompatibilityMessages []*IncompatibilityMessage `locationName:"incompatibilityMessages" type:"list"`
10544}
10545
10546// String returns the string representation
10547func (s DevicePoolCompatibilityResult) String() string {
10548	return awsutil.Prettify(s)
10549}
10550
10551// GoString returns the string representation
10552func (s DevicePoolCompatibilityResult) GoString() string {
10553	return s.String()
10554}
10555
10556// SetCompatible sets the Compatible field's value.
10557func (s *DevicePoolCompatibilityResult) SetCompatible(v bool) *DevicePoolCompatibilityResult {
10558	s.Compatible = &v
10559	return s
10560}
10561
10562// SetDevice sets the Device field's value.
10563func (s *DevicePoolCompatibilityResult) SetDevice(v *Device) *DevicePoolCompatibilityResult {
10564	s.Device = v
10565	return s
10566}
10567
10568// SetIncompatibilityMessages sets the IncompatibilityMessages field's value.
10569func (s *DevicePoolCompatibilityResult) SetIncompatibilityMessages(v []*IncompatibilityMessage) *DevicePoolCompatibilityResult {
10570	s.IncompatibilityMessages = v
10571	return s
10572}
10573
10574// Represents the device filters used in a test run and the maximum number of
10575// devices to be included in the run. It is passed in as the deviceSelectionConfiguration
10576// request parameter in ScheduleRun.
10577type DeviceSelectionConfiguration struct {
10578	_ struct{} `type:"structure"`
10579
10580	// Used to dynamically select a set of devices for a test run. A filter is made
10581	// up of an attribute, an operator, and one or more values.
10582	//
10583	//    * Attribute The aspect of a device such as platform or model used as the
10584	//    selection criteria in a device filter. Allowed values include: ARN: The
10585	//    Amazon Resource Name (ARN) of the device (for example, arn:aws:devicefarm:us-west-2::device:12345Example).
10586	//    PLATFORM: The device platform. Valid values are ANDROID or IOS. OS_VERSION:
10587	//    The operating system version (for example, 10.3.2). MODEL: The device
10588	//    model (for example, iPad 5th Gen). AVAILABILITY: The current availability
10589	//    of the device. Valid values are AVAILABLE, HIGHLY_AVAILABLE, BUSY, or
10590	//    TEMPORARY_NOT_AVAILABLE. FORM_FACTOR: The device form factor. Valid values
10591	//    are PHONE or TABLET. MANUFACTURER: The device manufacturer (for example,
10592	//    Apple). REMOTE_ACCESS_ENABLED: Whether the device is enabled for remote
10593	//    access. Valid values are TRUE or FALSE. REMOTE_DEBUG_ENABLED: Whether
10594	//    the device is enabled for remote debugging. Valid values are TRUE or FALSE.
10595	//    Because remote debugging is no longer supported (https://docs.aws.amazon.com/devicefarm/latest/developerguide/history.html),
10596	//    this filter is ignored. INSTANCE_ARN: The Amazon Resource Name (ARN) of
10597	//    the device instance. INSTANCE_LABELS: The label of the device instance.
10598	//    FLEET_TYPE: The fleet type. Valid values are PUBLIC or PRIVATE.
10599	//
10600	//    * Operator The filter operator. The EQUALS operator is available for every
10601	//    attribute except INSTANCE_LABELS. The CONTAINS operator is available for
10602	//    the INSTANCE_LABELS and MODEL attributes. The IN and NOT_IN operators
10603	//    are available for the ARN, OS_VERSION, MODEL, MANUFACTURER, and INSTANCE_ARN
10604	//    attributes. The LESS_THAN, GREATER_THAN, LESS_THAN_OR_EQUALS, and GREATER_THAN_OR_EQUALS
10605	//    operators are also available for the OS_VERSION attribute.
10606	//
10607	//    * Values An array of one or more filter values. Operator Values The IN
10608	//    and NOT_IN operators can take a values array that has more than one element.
10609	//    The other operators require an array with a single element. Attribute
10610	//    Values The PLATFORM attribute can be set to ANDROID or IOS. The AVAILABILITY
10611	//    attribute can be set to AVAILABLE, HIGHLY_AVAILABLE, BUSY, or TEMPORARY_NOT_AVAILABLE.
10612	//    The FORM_FACTOR attribute can be set to PHONE or TABLET. The FLEET_TYPE
10613	//    attribute can be set to PUBLIC or PRIVATE.
10614	//
10615	// Filters is a required field
10616	Filters []*DeviceFilter `locationName:"filters" type:"list" required:"true"`
10617
10618	// The maximum number of devices to be included in a test run.
10619	//
10620	// MaxDevices is a required field
10621	MaxDevices *int64 `locationName:"maxDevices" type:"integer" required:"true"`
10622}
10623
10624// String returns the string representation
10625func (s DeviceSelectionConfiguration) String() string {
10626	return awsutil.Prettify(s)
10627}
10628
10629// GoString returns the string representation
10630func (s DeviceSelectionConfiguration) GoString() string {
10631	return s.String()
10632}
10633
10634// Validate inspects the fields of the type to determine if they are valid.
10635func (s *DeviceSelectionConfiguration) Validate() error {
10636	invalidParams := request.ErrInvalidParams{Context: "DeviceSelectionConfiguration"}
10637	if s.Filters == nil {
10638		invalidParams.Add(request.NewErrParamRequired("Filters"))
10639	}
10640	if s.MaxDevices == nil {
10641		invalidParams.Add(request.NewErrParamRequired("MaxDevices"))
10642	}
10643
10644	if invalidParams.Len() > 0 {
10645		return invalidParams
10646	}
10647	return nil
10648}
10649
10650// SetFilters sets the Filters field's value.
10651func (s *DeviceSelectionConfiguration) SetFilters(v []*DeviceFilter) *DeviceSelectionConfiguration {
10652	s.Filters = v
10653	return s
10654}
10655
10656// SetMaxDevices sets the MaxDevices field's value.
10657func (s *DeviceSelectionConfiguration) SetMaxDevices(v int64) *DeviceSelectionConfiguration {
10658	s.MaxDevices = &v
10659	return s
10660}
10661
10662// Contains the run results requested by the device selection configuration
10663// and how many devices were returned. For an example of the JSON response syntax,
10664// see ScheduleRun.
10665type DeviceSelectionResult struct {
10666	_ struct{} `type:"structure"`
10667
10668	// The filters in a device selection result.
10669	Filters []*DeviceFilter `locationName:"filters" type:"list"`
10670
10671	// The number of devices that matched the device filter selection criteria.
10672	MatchedDevicesCount *int64 `locationName:"matchedDevicesCount" type:"integer"`
10673
10674	// The maximum number of devices to be selected by a device filter and included
10675	// in a test run.
10676	MaxDevices *int64 `locationName:"maxDevices" type:"integer"`
10677}
10678
10679// String returns the string representation
10680func (s DeviceSelectionResult) String() string {
10681	return awsutil.Prettify(s)
10682}
10683
10684// GoString returns the string representation
10685func (s DeviceSelectionResult) GoString() string {
10686	return s.String()
10687}
10688
10689// SetFilters sets the Filters field's value.
10690func (s *DeviceSelectionResult) SetFilters(v []*DeviceFilter) *DeviceSelectionResult {
10691	s.Filters = v
10692	return s
10693}
10694
10695// SetMatchedDevicesCount sets the MatchedDevicesCount field's value.
10696func (s *DeviceSelectionResult) SetMatchedDevicesCount(v int64) *DeviceSelectionResult {
10697	s.MatchedDevicesCount = &v
10698	return s
10699}
10700
10701// SetMaxDevices sets the MaxDevices field's value.
10702func (s *DeviceSelectionResult) SetMaxDevices(v int64) *DeviceSelectionResult {
10703	s.MaxDevices = &v
10704	return s
10705}
10706
10707// Represents configuration information about a test run, such as the execution
10708// timeout (in minutes).
10709type ExecutionConfiguration struct {
10710	_ struct{} `type:"structure"`
10711
10712	// True if account cleanup is enabled at the beginning of the test. Otherwise,
10713	// false.
10714	AccountsCleanup *bool `locationName:"accountsCleanup" type:"boolean"`
10715
10716	// True if app package cleanup is enabled at the beginning of the test. Otherwise,
10717	// false.
10718	AppPackagesCleanup *bool `locationName:"appPackagesCleanup" type:"boolean"`
10719
10720	// The number of minutes a test run executes before it times out.
10721	JobTimeoutMinutes *int64 `locationName:"jobTimeoutMinutes" type:"integer"`
10722
10723	// When set to true, for private devices, Device Farm does not sign your app
10724	// again. For public devices, Device Farm always signs your apps again.
10725	//
10726	// For more information about how Device Farm re-signs your apps, see Do you
10727	// modify my app? (https://aws.amazon.com/device-farm/faq/) in the AWS Device
10728	// Farm FAQs.
10729	SkipAppResign *bool `locationName:"skipAppResign" type:"boolean"`
10730
10731	// Set to true to enable video capture. Otherwise, set to false. The default
10732	// is true.
10733	VideoCapture *bool `locationName:"videoCapture" type:"boolean"`
10734}
10735
10736// String returns the string representation
10737func (s ExecutionConfiguration) String() string {
10738	return awsutil.Prettify(s)
10739}
10740
10741// GoString returns the string representation
10742func (s ExecutionConfiguration) GoString() string {
10743	return s.String()
10744}
10745
10746// SetAccountsCleanup sets the AccountsCleanup field's value.
10747func (s *ExecutionConfiguration) SetAccountsCleanup(v bool) *ExecutionConfiguration {
10748	s.AccountsCleanup = &v
10749	return s
10750}
10751
10752// SetAppPackagesCleanup sets the AppPackagesCleanup field's value.
10753func (s *ExecutionConfiguration) SetAppPackagesCleanup(v bool) *ExecutionConfiguration {
10754	s.AppPackagesCleanup = &v
10755	return s
10756}
10757
10758// SetJobTimeoutMinutes sets the JobTimeoutMinutes field's value.
10759func (s *ExecutionConfiguration) SetJobTimeoutMinutes(v int64) *ExecutionConfiguration {
10760	s.JobTimeoutMinutes = &v
10761	return s
10762}
10763
10764// SetSkipAppResign sets the SkipAppResign field's value.
10765func (s *ExecutionConfiguration) SetSkipAppResign(v bool) *ExecutionConfiguration {
10766	s.SkipAppResign = &v
10767	return s
10768}
10769
10770// SetVideoCapture sets the VideoCapture field's value.
10771func (s *ExecutionConfiguration) SetVideoCapture(v bool) *ExecutionConfiguration {
10772	s.VideoCapture = &v
10773	return s
10774}
10775
10776// Represents the request sent to retrieve the account settings.
10777type GetAccountSettingsInput struct {
10778	_ struct{} `type:"structure"`
10779}
10780
10781// String returns the string representation
10782func (s GetAccountSettingsInput) String() string {
10783	return awsutil.Prettify(s)
10784}
10785
10786// GoString returns the string representation
10787func (s GetAccountSettingsInput) GoString() string {
10788	return s.String()
10789}
10790
10791// Represents the account settings return values from the GetAccountSettings
10792// request.
10793type GetAccountSettingsOutput struct {
10794	_ struct{} `type:"structure"`
10795
10796	// The account settings.
10797	AccountSettings *AccountSettings `locationName:"accountSettings" type:"structure"`
10798}
10799
10800// String returns the string representation
10801func (s GetAccountSettingsOutput) String() string {
10802	return awsutil.Prettify(s)
10803}
10804
10805// GoString returns the string representation
10806func (s GetAccountSettingsOutput) GoString() string {
10807	return s.String()
10808}
10809
10810// SetAccountSettings sets the AccountSettings field's value.
10811func (s *GetAccountSettingsOutput) SetAccountSettings(v *AccountSettings) *GetAccountSettingsOutput {
10812	s.AccountSettings = v
10813	return s
10814}
10815
10816// Represents a request to the get device request.
10817type GetDeviceInput struct {
10818	_ struct{} `type:"structure"`
10819
10820	// The device type's ARN.
10821	//
10822	// Arn is a required field
10823	Arn *string `locationName:"arn" min:"32" type:"string" required:"true"`
10824}
10825
10826// String returns the string representation
10827func (s GetDeviceInput) String() string {
10828	return awsutil.Prettify(s)
10829}
10830
10831// GoString returns the string representation
10832func (s GetDeviceInput) GoString() string {
10833	return s.String()
10834}
10835
10836// Validate inspects the fields of the type to determine if they are valid.
10837func (s *GetDeviceInput) Validate() error {
10838	invalidParams := request.ErrInvalidParams{Context: "GetDeviceInput"}
10839	if s.Arn == nil {
10840		invalidParams.Add(request.NewErrParamRequired("Arn"))
10841	}
10842	if s.Arn != nil && len(*s.Arn) < 32 {
10843		invalidParams.Add(request.NewErrParamMinLen("Arn", 32))
10844	}
10845
10846	if invalidParams.Len() > 0 {
10847		return invalidParams
10848	}
10849	return nil
10850}
10851
10852// SetArn sets the Arn field's value.
10853func (s *GetDeviceInput) SetArn(v string) *GetDeviceInput {
10854	s.Arn = &v
10855	return s
10856}
10857
10858type GetDeviceInstanceInput struct {
10859	_ struct{} `type:"structure"`
10860
10861	// The Amazon Resource Name (ARN) of the instance you're requesting information
10862	// about.
10863	//
10864	// Arn is a required field
10865	Arn *string `locationName:"arn" min:"32" type:"string" required:"true"`
10866}
10867
10868// String returns the string representation
10869func (s GetDeviceInstanceInput) String() string {
10870	return awsutil.Prettify(s)
10871}
10872
10873// GoString returns the string representation
10874func (s GetDeviceInstanceInput) GoString() string {
10875	return s.String()
10876}
10877
10878// Validate inspects the fields of the type to determine if they are valid.
10879func (s *GetDeviceInstanceInput) Validate() error {
10880	invalidParams := request.ErrInvalidParams{Context: "GetDeviceInstanceInput"}
10881	if s.Arn == nil {
10882		invalidParams.Add(request.NewErrParamRequired("Arn"))
10883	}
10884	if s.Arn != nil && len(*s.Arn) < 32 {
10885		invalidParams.Add(request.NewErrParamMinLen("Arn", 32))
10886	}
10887
10888	if invalidParams.Len() > 0 {
10889		return invalidParams
10890	}
10891	return nil
10892}
10893
10894// SetArn sets the Arn field's value.
10895func (s *GetDeviceInstanceInput) SetArn(v string) *GetDeviceInstanceInput {
10896	s.Arn = &v
10897	return s
10898}
10899
10900type GetDeviceInstanceOutput struct {
10901	_ struct{} `type:"structure"`
10902
10903	// An object that contains information about your device instance.
10904	DeviceInstance *DeviceInstance `locationName:"deviceInstance" type:"structure"`
10905}
10906
10907// String returns the string representation
10908func (s GetDeviceInstanceOutput) String() string {
10909	return awsutil.Prettify(s)
10910}
10911
10912// GoString returns the string representation
10913func (s GetDeviceInstanceOutput) GoString() string {
10914	return s.String()
10915}
10916
10917// SetDeviceInstance sets the DeviceInstance field's value.
10918func (s *GetDeviceInstanceOutput) SetDeviceInstance(v *DeviceInstance) *GetDeviceInstanceOutput {
10919	s.DeviceInstance = v
10920	return s
10921}
10922
10923// Represents the result of a get device request.
10924type GetDeviceOutput struct {
10925	_ struct{} `type:"structure"`
10926
10927	// An object that contains information about the requested device.
10928	Device *Device `locationName:"device" type:"structure"`
10929}
10930
10931// String returns the string representation
10932func (s GetDeviceOutput) String() string {
10933	return awsutil.Prettify(s)
10934}
10935
10936// GoString returns the string representation
10937func (s GetDeviceOutput) GoString() string {
10938	return s.String()
10939}
10940
10941// SetDevice sets the Device field's value.
10942func (s *GetDeviceOutput) SetDevice(v *Device) *GetDeviceOutput {
10943	s.Device = v
10944	return s
10945}
10946
10947// Represents a request to the get device pool compatibility operation.
10948type GetDevicePoolCompatibilityInput struct {
10949	_ struct{} `type:"structure"`
10950
10951	// The ARN of the app that is associated with the specified device pool.
10952	AppArn *string `locationName:"appArn" min:"32" type:"string"`
10953
10954	// An object that contains information about the settings for a run.
10955	Configuration *ScheduleRunConfiguration `locationName:"configuration" type:"structure"`
10956
10957	// The device pool's ARN.
10958	//
10959	// DevicePoolArn is a required field
10960	DevicePoolArn *string `locationName:"devicePoolArn" min:"32" type:"string" required:"true"`
10961
10962	// Information about the uploaded test to be run against the device pool.
10963	Test *ScheduleRunTest `locationName:"test" type:"structure"`
10964
10965	// The test type for the specified device pool.
10966	//
10967	// Allowed values include the following:
10968	//
10969	//    * BUILTIN_FUZZ.
10970	//
10971	//    * BUILTIN_EXPLORER. For Android, an app explorer that traverses an Android
10972	//    app, interacting with it and capturing screenshots at the same time.
10973	//
10974	//    * APPIUM_JAVA_JUNIT.
10975	//
10976	//    * APPIUM_JAVA_TESTNG.
10977	//
10978	//    * APPIUM_PYTHON.
10979	//
10980	//    * APPIUM_NODE.
10981	//
10982	//    * APPIUM_RUBY.
10983	//
10984	//    * APPIUM_WEB_JAVA_JUNIT.
10985	//
10986	//    * APPIUM_WEB_JAVA_TESTNG.
10987	//
10988	//    * APPIUM_WEB_PYTHON.
10989	//
10990	//    * APPIUM_WEB_NODE.
10991	//
10992	//    * APPIUM_WEB_RUBY.
10993	//
10994	//    * CALABASH.
10995	//
10996	//    * INSTRUMENTATION.
10997	//
10998	//    * UIAUTOMATION.
10999	//
11000	//    * UIAUTOMATOR.
11001	//
11002	//    * XCTEST.
11003	//
11004	//    * XCTEST_UI.
11005	TestType *string `locationName:"testType" type:"string" enum:"TestType"`
11006}
11007
11008// String returns the string representation
11009func (s GetDevicePoolCompatibilityInput) String() string {
11010	return awsutil.Prettify(s)
11011}
11012
11013// GoString returns the string representation
11014func (s GetDevicePoolCompatibilityInput) GoString() string {
11015	return s.String()
11016}
11017
11018// Validate inspects the fields of the type to determine if they are valid.
11019func (s *GetDevicePoolCompatibilityInput) Validate() error {
11020	invalidParams := request.ErrInvalidParams{Context: "GetDevicePoolCompatibilityInput"}
11021	if s.AppArn != nil && len(*s.AppArn) < 32 {
11022		invalidParams.Add(request.NewErrParamMinLen("AppArn", 32))
11023	}
11024	if s.DevicePoolArn == nil {
11025		invalidParams.Add(request.NewErrParamRequired("DevicePoolArn"))
11026	}
11027	if s.DevicePoolArn != nil && len(*s.DevicePoolArn) < 32 {
11028		invalidParams.Add(request.NewErrParamMinLen("DevicePoolArn", 32))
11029	}
11030	if s.Configuration != nil {
11031		if err := s.Configuration.Validate(); err != nil {
11032			invalidParams.AddNested("Configuration", err.(request.ErrInvalidParams))
11033		}
11034	}
11035	if s.Test != nil {
11036		if err := s.Test.Validate(); err != nil {
11037			invalidParams.AddNested("Test", err.(request.ErrInvalidParams))
11038		}
11039	}
11040
11041	if invalidParams.Len() > 0 {
11042		return invalidParams
11043	}
11044	return nil
11045}
11046
11047// SetAppArn sets the AppArn field's value.
11048func (s *GetDevicePoolCompatibilityInput) SetAppArn(v string) *GetDevicePoolCompatibilityInput {
11049	s.AppArn = &v
11050	return s
11051}
11052
11053// SetConfiguration sets the Configuration field's value.
11054func (s *GetDevicePoolCompatibilityInput) SetConfiguration(v *ScheduleRunConfiguration) *GetDevicePoolCompatibilityInput {
11055	s.Configuration = v
11056	return s
11057}
11058
11059// SetDevicePoolArn sets the DevicePoolArn field's value.
11060func (s *GetDevicePoolCompatibilityInput) SetDevicePoolArn(v string) *GetDevicePoolCompatibilityInput {
11061	s.DevicePoolArn = &v
11062	return s
11063}
11064
11065// SetTest sets the Test field's value.
11066func (s *GetDevicePoolCompatibilityInput) SetTest(v *ScheduleRunTest) *GetDevicePoolCompatibilityInput {
11067	s.Test = v
11068	return s
11069}
11070
11071// SetTestType sets the TestType field's value.
11072func (s *GetDevicePoolCompatibilityInput) SetTestType(v string) *GetDevicePoolCompatibilityInput {
11073	s.TestType = &v
11074	return s
11075}
11076
11077// Represents the result of describe device pool compatibility request.
11078type GetDevicePoolCompatibilityOutput struct {
11079	_ struct{} `type:"structure"`
11080
11081	// Information about compatible devices.
11082	CompatibleDevices []*DevicePoolCompatibilityResult `locationName:"compatibleDevices" type:"list"`
11083
11084	// Information about incompatible devices.
11085	IncompatibleDevices []*DevicePoolCompatibilityResult `locationName:"incompatibleDevices" type:"list"`
11086}
11087
11088// String returns the string representation
11089func (s GetDevicePoolCompatibilityOutput) String() string {
11090	return awsutil.Prettify(s)
11091}
11092
11093// GoString returns the string representation
11094func (s GetDevicePoolCompatibilityOutput) GoString() string {
11095	return s.String()
11096}
11097
11098// SetCompatibleDevices sets the CompatibleDevices field's value.
11099func (s *GetDevicePoolCompatibilityOutput) SetCompatibleDevices(v []*DevicePoolCompatibilityResult) *GetDevicePoolCompatibilityOutput {
11100	s.CompatibleDevices = v
11101	return s
11102}
11103
11104// SetIncompatibleDevices sets the IncompatibleDevices field's value.
11105func (s *GetDevicePoolCompatibilityOutput) SetIncompatibleDevices(v []*DevicePoolCompatibilityResult) *GetDevicePoolCompatibilityOutput {
11106	s.IncompatibleDevices = v
11107	return s
11108}
11109
11110// Represents a request to the get device pool operation.
11111type GetDevicePoolInput struct {
11112	_ struct{} `type:"structure"`
11113
11114	// The device pool's ARN.
11115	//
11116	// Arn is a required field
11117	Arn *string `locationName:"arn" min:"32" type:"string" required:"true"`
11118}
11119
11120// String returns the string representation
11121func (s GetDevicePoolInput) String() string {
11122	return awsutil.Prettify(s)
11123}
11124
11125// GoString returns the string representation
11126func (s GetDevicePoolInput) GoString() string {
11127	return s.String()
11128}
11129
11130// Validate inspects the fields of the type to determine if they are valid.
11131func (s *GetDevicePoolInput) Validate() error {
11132	invalidParams := request.ErrInvalidParams{Context: "GetDevicePoolInput"}
11133	if s.Arn == nil {
11134		invalidParams.Add(request.NewErrParamRequired("Arn"))
11135	}
11136	if s.Arn != nil && len(*s.Arn) < 32 {
11137		invalidParams.Add(request.NewErrParamMinLen("Arn", 32))
11138	}
11139
11140	if invalidParams.Len() > 0 {
11141		return invalidParams
11142	}
11143	return nil
11144}
11145
11146// SetArn sets the Arn field's value.
11147func (s *GetDevicePoolInput) SetArn(v string) *GetDevicePoolInput {
11148	s.Arn = &v
11149	return s
11150}
11151
11152// Represents the result of a get device pool request.
11153type GetDevicePoolOutput struct {
11154	_ struct{} `type:"structure"`
11155
11156	// An object that contains information about the requested device pool.
11157	DevicePool *DevicePool `locationName:"devicePool" type:"structure"`
11158}
11159
11160// String returns the string representation
11161func (s GetDevicePoolOutput) String() string {
11162	return awsutil.Prettify(s)
11163}
11164
11165// GoString returns the string representation
11166func (s GetDevicePoolOutput) GoString() string {
11167	return s.String()
11168}
11169
11170// SetDevicePool sets the DevicePool field's value.
11171func (s *GetDevicePoolOutput) SetDevicePool(v *DevicePool) *GetDevicePoolOutput {
11172	s.DevicePool = v
11173	return s
11174}
11175
11176type GetInstanceProfileInput struct {
11177	_ struct{} `type:"structure"`
11178
11179	// The Amazon Resource Name (ARN) of an instance profile.
11180	//
11181	// Arn is a required field
11182	Arn *string `locationName:"arn" min:"32" type:"string" required:"true"`
11183}
11184
11185// String returns the string representation
11186func (s GetInstanceProfileInput) String() string {
11187	return awsutil.Prettify(s)
11188}
11189
11190// GoString returns the string representation
11191func (s GetInstanceProfileInput) GoString() string {
11192	return s.String()
11193}
11194
11195// Validate inspects the fields of the type to determine if they are valid.
11196func (s *GetInstanceProfileInput) Validate() error {
11197	invalidParams := request.ErrInvalidParams{Context: "GetInstanceProfileInput"}
11198	if s.Arn == nil {
11199		invalidParams.Add(request.NewErrParamRequired("Arn"))
11200	}
11201	if s.Arn != nil && len(*s.Arn) < 32 {
11202		invalidParams.Add(request.NewErrParamMinLen("Arn", 32))
11203	}
11204
11205	if invalidParams.Len() > 0 {
11206		return invalidParams
11207	}
11208	return nil
11209}
11210
11211// SetArn sets the Arn field's value.
11212func (s *GetInstanceProfileInput) SetArn(v string) *GetInstanceProfileInput {
11213	s.Arn = &v
11214	return s
11215}
11216
11217type GetInstanceProfileOutput struct {
11218	_ struct{} `type:"structure"`
11219
11220	// An object that contains information about an instance profile.
11221	InstanceProfile *InstanceProfile `locationName:"instanceProfile" type:"structure"`
11222}
11223
11224// String returns the string representation
11225func (s GetInstanceProfileOutput) String() string {
11226	return awsutil.Prettify(s)
11227}
11228
11229// GoString returns the string representation
11230func (s GetInstanceProfileOutput) GoString() string {
11231	return s.String()
11232}
11233
11234// SetInstanceProfile sets the InstanceProfile field's value.
11235func (s *GetInstanceProfileOutput) SetInstanceProfile(v *InstanceProfile) *GetInstanceProfileOutput {
11236	s.InstanceProfile = v
11237	return s
11238}
11239
11240// Represents a request to the get job operation.
11241type GetJobInput struct {
11242	_ struct{} `type:"structure"`
11243
11244	// The job's ARN.
11245	//
11246	// Arn is a required field
11247	Arn *string `locationName:"arn" min:"32" type:"string" required:"true"`
11248}
11249
11250// String returns the string representation
11251func (s GetJobInput) String() string {
11252	return awsutil.Prettify(s)
11253}
11254
11255// GoString returns the string representation
11256func (s GetJobInput) GoString() string {
11257	return s.String()
11258}
11259
11260// Validate inspects the fields of the type to determine if they are valid.
11261func (s *GetJobInput) Validate() error {
11262	invalidParams := request.ErrInvalidParams{Context: "GetJobInput"}
11263	if s.Arn == nil {
11264		invalidParams.Add(request.NewErrParamRequired("Arn"))
11265	}
11266	if s.Arn != nil && len(*s.Arn) < 32 {
11267		invalidParams.Add(request.NewErrParamMinLen("Arn", 32))
11268	}
11269
11270	if invalidParams.Len() > 0 {
11271		return invalidParams
11272	}
11273	return nil
11274}
11275
11276// SetArn sets the Arn field's value.
11277func (s *GetJobInput) SetArn(v string) *GetJobInput {
11278	s.Arn = &v
11279	return s
11280}
11281
11282// Represents the result of a get job request.
11283type GetJobOutput struct {
11284	_ struct{} `type:"structure"`
11285
11286	// An object that contains information about the requested job.
11287	Job *Job `locationName:"job" type:"structure"`
11288}
11289
11290// String returns the string representation
11291func (s GetJobOutput) String() string {
11292	return awsutil.Prettify(s)
11293}
11294
11295// GoString returns the string representation
11296func (s GetJobOutput) GoString() string {
11297	return s.String()
11298}
11299
11300// SetJob sets the Job field's value.
11301func (s *GetJobOutput) SetJob(v *Job) *GetJobOutput {
11302	s.Job = v
11303	return s
11304}
11305
11306type GetNetworkProfileInput struct {
11307	_ struct{} `type:"structure"`
11308
11309	// The ARN of the network profile to return information about.
11310	//
11311	// Arn is a required field
11312	Arn *string `locationName:"arn" min:"32" type:"string" required:"true"`
11313}
11314
11315// String returns the string representation
11316func (s GetNetworkProfileInput) String() string {
11317	return awsutil.Prettify(s)
11318}
11319
11320// GoString returns the string representation
11321func (s GetNetworkProfileInput) GoString() string {
11322	return s.String()
11323}
11324
11325// Validate inspects the fields of the type to determine if they are valid.
11326func (s *GetNetworkProfileInput) Validate() error {
11327	invalidParams := request.ErrInvalidParams{Context: "GetNetworkProfileInput"}
11328	if s.Arn == nil {
11329		invalidParams.Add(request.NewErrParamRequired("Arn"))
11330	}
11331	if s.Arn != nil && len(*s.Arn) < 32 {
11332		invalidParams.Add(request.NewErrParamMinLen("Arn", 32))
11333	}
11334
11335	if invalidParams.Len() > 0 {
11336		return invalidParams
11337	}
11338	return nil
11339}
11340
11341// SetArn sets the Arn field's value.
11342func (s *GetNetworkProfileInput) SetArn(v string) *GetNetworkProfileInput {
11343	s.Arn = &v
11344	return s
11345}
11346
11347type GetNetworkProfileOutput struct {
11348	_ struct{} `type:"structure"`
11349
11350	// The network profile.
11351	NetworkProfile *NetworkProfile `locationName:"networkProfile" type:"structure"`
11352}
11353
11354// String returns the string representation
11355func (s GetNetworkProfileOutput) String() string {
11356	return awsutil.Prettify(s)
11357}
11358
11359// GoString returns the string representation
11360func (s GetNetworkProfileOutput) GoString() string {
11361	return s.String()
11362}
11363
11364// SetNetworkProfile sets the NetworkProfile field's value.
11365func (s *GetNetworkProfileOutput) SetNetworkProfile(v *NetworkProfile) *GetNetworkProfileOutput {
11366	s.NetworkProfile = v
11367	return s
11368}
11369
11370// Represents the request to retrieve the offering status for the specified
11371// customer or account.
11372type GetOfferingStatusInput struct {
11373	_ struct{} `type:"structure"`
11374
11375	// An identifier that was returned from the previous call to this operation,
11376	// which can be used to return the next set of items in the list.
11377	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
11378}
11379
11380// String returns the string representation
11381func (s GetOfferingStatusInput) String() string {
11382	return awsutil.Prettify(s)
11383}
11384
11385// GoString returns the string representation
11386func (s GetOfferingStatusInput) GoString() string {
11387	return s.String()
11388}
11389
11390// Validate inspects the fields of the type to determine if they are valid.
11391func (s *GetOfferingStatusInput) Validate() error {
11392	invalidParams := request.ErrInvalidParams{Context: "GetOfferingStatusInput"}
11393	if s.NextToken != nil && len(*s.NextToken) < 4 {
11394		invalidParams.Add(request.NewErrParamMinLen("NextToken", 4))
11395	}
11396
11397	if invalidParams.Len() > 0 {
11398		return invalidParams
11399	}
11400	return nil
11401}
11402
11403// SetNextToken sets the NextToken field's value.
11404func (s *GetOfferingStatusInput) SetNextToken(v string) *GetOfferingStatusInput {
11405	s.NextToken = &v
11406	return s
11407}
11408
11409// Returns the status result for a device offering.
11410type GetOfferingStatusOutput struct {
11411	_ struct{} `type:"structure"`
11412
11413	// When specified, gets the offering status for the current period.
11414	Current map[string]*OfferingStatus `locationName:"current" type:"map"`
11415
11416	// When specified, gets the offering status for the next period.
11417	NextPeriod map[string]*OfferingStatus `locationName:"nextPeriod" type:"map"`
11418
11419	// An identifier that was returned from the previous call to this operation,
11420	// which can be used to return the next set of items in the list.
11421	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
11422}
11423
11424// String returns the string representation
11425func (s GetOfferingStatusOutput) String() string {
11426	return awsutil.Prettify(s)
11427}
11428
11429// GoString returns the string representation
11430func (s GetOfferingStatusOutput) GoString() string {
11431	return s.String()
11432}
11433
11434// SetCurrent sets the Current field's value.
11435func (s *GetOfferingStatusOutput) SetCurrent(v map[string]*OfferingStatus) *GetOfferingStatusOutput {
11436	s.Current = v
11437	return s
11438}
11439
11440// SetNextPeriod sets the NextPeriod field's value.
11441func (s *GetOfferingStatusOutput) SetNextPeriod(v map[string]*OfferingStatus) *GetOfferingStatusOutput {
11442	s.NextPeriod = v
11443	return s
11444}
11445
11446// SetNextToken sets the NextToken field's value.
11447func (s *GetOfferingStatusOutput) SetNextToken(v string) *GetOfferingStatusOutput {
11448	s.NextToken = &v
11449	return s
11450}
11451
11452// Represents a request to the get project operation.
11453type GetProjectInput struct {
11454	_ struct{} `type:"structure"`
11455
11456	// The project's ARN.
11457	//
11458	// Arn is a required field
11459	Arn *string `locationName:"arn" min:"32" type:"string" required:"true"`
11460}
11461
11462// String returns the string representation
11463func (s GetProjectInput) String() string {
11464	return awsutil.Prettify(s)
11465}
11466
11467// GoString returns the string representation
11468func (s GetProjectInput) GoString() string {
11469	return s.String()
11470}
11471
11472// Validate inspects the fields of the type to determine if they are valid.
11473func (s *GetProjectInput) Validate() error {
11474	invalidParams := request.ErrInvalidParams{Context: "GetProjectInput"}
11475	if s.Arn == nil {
11476		invalidParams.Add(request.NewErrParamRequired("Arn"))
11477	}
11478	if s.Arn != nil && len(*s.Arn) < 32 {
11479		invalidParams.Add(request.NewErrParamMinLen("Arn", 32))
11480	}
11481
11482	if invalidParams.Len() > 0 {
11483		return invalidParams
11484	}
11485	return nil
11486}
11487
11488// SetArn sets the Arn field's value.
11489func (s *GetProjectInput) SetArn(v string) *GetProjectInput {
11490	s.Arn = &v
11491	return s
11492}
11493
11494// Represents the result of a get project request.
11495type GetProjectOutput struct {
11496	_ struct{} `type:"structure"`
11497
11498	// The project to get information about.
11499	Project *Project `locationName:"project" type:"structure"`
11500}
11501
11502// String returns the string representation
11503func (s GetProjectOutput) String() string {
11504	return awsutil.Prettify(s)
11505}
11506
11507// GoString returns the string representation
11508func (s GetProjectOutput) GoString() string {
11509	return s.String()
11510}
11511
11512// SetProject sets the Project field's value.
11513func (s *GetProjectOutput) SetProject(v *Project) *GetProjectOutput {
11514	s.Project = v
11515	return s
11516}
11517
11518// Represents the request to get information about the specified remote access
11519// session.
11520type GetRemoteAccessSessionInput struct {
11521	_ struct{} `type:"structure"`
11522
11523	// The Amazon Resource Name (ARN) of the remote access session about which you
11524	// want to get session information.
11525	//
11526	// Arn is a required field
11527	Arn *string `locationName:"arn" min:"32" type:"string" required:"true"`
11528}
11529
11530// String returns the string representation
11531func (s GetRemoteAccessSessionInput) String() string {
11532	return awsutil.Prettify(s)
11533}
11534
11535// GoString returns the string representation
11536func (s GetRemoteAccessSessionInput) GoString() string {
11537	return s.String()
11538}
11539
11540// Validate inspects the fields of the type to determine if they are valid.
11541func (s *GetRemoteAccessSessionInput) Validate() error {
11542	invalidParams := request.ErrInvalidParams{Context: "GetRemoteAccessSessionInput"}
11543	if s.Arn == nil {
11544		invalidParams.Add(request.NewErrParamRequired("Arn"))
11545	}
11546	if s.Arn != nil && len(*s.Arn) < 32 {
11547		invalidParams.Add(request.NewErrParamMinLen("Arn", 32))
11548	}
11549
11550	if invalidParams.Len() > 0 {
11551		return invalidParams
11552	}
11553	return nil
11554}
11555
11556// SetArn sets the Arn field's value.
11557func (s *GetRemoteAccessSessionInput) SetArn(v string) *GetRemoteAccessSessionInput {
11558	s.Arn = &v
11559	return s
11560}
11561
11562// Represents the response from the server that lists detailed information about
11563// the remote access session.
11564type GetRemoteAccessSessionOutput struct {
11565	_ struct{} `type:"structure"`
11566
11567	// A container that lists detailed information about the remote access session.
11568	RemoteAccessSession *RemoteAccessSession `locationName:"remoteAccessSession" type:"structure"`
11569}
11570
11571// String returns the string representation
11572func (s GetRemoteAccessSessionOutput) String() string {
11573	return awsutil.Prettify(s)
11574}
11575
11576// GoString returns the string representation
11577func (s GetRemoteAccessSessionOutput) GoString() string {
11578	return s.String()
11579}
11580
11581// SetRemoteAccessSession sets the RemoteAccessSession field's value.
11582func (s *GetRemoteAccessSessionOutput) SetRemoteAccessSession(v *RemoteAccessSession) *GetRemoteAccessSessionOutput {
11583	s.RemoteAccessSession = v
11584	return s
11585}
11586
11587// Represents a request to the get run operation.
11588type GetRunInput struct {
11589	_ struct{} `type:"structure"`
11590
11591	// The run's ARN.
11592	//
11593	// Arn is a required field
11594	Arn *string `locationName:"arn" min:"32" type:"string" required:"true"`
11595}
11596
11597// String returns the string representation
11598func (s GetRunInput) String() string {
11599	return awsutil.Prettify(s)
11600}
11601
11602// GoString returns the string representation
11603func (s GetRunInput) GoString() string {
11604	return s.String()
11605}
11606
11607// Validate inspects the fields of the type to determine if they are valid.
11608func (s *GetRunInput) Validate() error {
11609	invalidParams := request.ErrInvalidParams{Context: "GetRunInput"}
11610	if s.Arn == nil {
11611		invalidParams.Add(request.NewErrParamRequired("Arn"))
11612	}
11613	if s.Arn != nil && len(*s.Arn) < 32 {
11614		invalidParams.Add(request.NewErrParamMinLen("Arn", 32))
11615	}
11616
11617	if invalidParams.Len() > 0 {
11618		return invalidParams
11619	}
11620	return nil
11621}
11622
11623// SetArn sets the Arn field's value.
11624func (s *GetRunInput) SetArn(v string) *GetRunInput {
11625	s.Arn = &v
11626	return s
11627}
11628
11629// Represents the result of a get run request.
11630type GetRunOutput struct {
11631	_ struct{} `type:"structure"`
11632
11633	// The run to get results from.
11634	Run *Run `locationName:"run" type:"structure"`
11635}
11636
11637// String returns the string representation
11638func (s GetRunOutput) String() string {
11639	return awsutil.Prettify(s)
11640}
11641
11642// GoString returns the string representation
11643func (s GetRunOutput) GoString() string {
11644	return s.String()
11645}
11646
11647// SetRun sets the Run field's value.
11648func (s *GetRunOutput) SetRun(v *Run) *GetRunOutput {
11649	s.Run = v
11650	return s
11651}
11652
11653// Represents a request to the get suite operation.
11654type GetSuiteInput struct {
11655	_ struct{} `type:"structure"`
11656
11657	// The suite's ARN.
11658	//
11659	// Arn is a required field
11660	Arn *string `locationName:"arn" min:"32" type:"string" required:"true"`
11661}
11662
11663// String returns the string representation
11664func (s GetSuiteInput) String() string {
11665	return awsutil.Prettify(s)
11666}
11667
11668// GoString returns the string representation
11669func (s GetSuiteInput) GoString() string {
11670	return s.String()
11671}
11672
11673// Validate inspects the fields of the type to determine if they are valid.
11674func (s *GetSuiteInput) Validate() error {
11675	invalidParams := request.ErrInvalidParams{Context: "GetSuiteInput"}
11676	if s.Arn == nil {
11677		invalidParams.Add(request.NewErrParamRequired("Arn"))
11678	}
11679	if s.Arn != nil && len(*s.Arn) < 32 {
11680		invalidParams.Add(request.NewErrParamMinLen("Arn", 32))
11681	}
11682
11683	if invalidParams.Len() > 0 {
11684		return invalidParams
11685	}
11686	return nil
11687}
11688
11689// SetArn sets the Arn field's value.
11690func (s *GetSuiteInput) SetArn(v string) *GetSuiteInput {
11691	s.Arn = &v
11692	return s
11693}
11694
11695// Represents the result of a get suite request.
11696type GetSuiteOutput struct {
11697	_ struct{} `type:"structure"`
11698
11699	// A collection of one or more tests.
11700	Suite *Suite `locationName:"suite" type:"structure"`
11701}
11702
11703// String returns the string representation
11704func (s GetSuiteOutput) String() string {
11705	return awsutil.Prettify(s)
11706}
11707
11708// GoString returns the string representation
11709func (s GetSuiteOutput) GoString() string {
11710	return s.String()
11711}
11712
11713// SetSuite sets the Suite field's value.
11714func (s *GetSuiteOutput) SetSuite(v *Suite) *GetSuiteOutput {
11715	s.Suite = v
11716	return s
11717}
11718
11719type GetTestGridProjectInput struct {
11720	_ struct{} `type:"structure"`
11721
11722	// The ARN of the Selenium testing project, from either CreateTestGridProject
11723	// or ListTestGridProjects.
11724	//
11725	// ProjectArn is a required field
11726	ProjectArn *string `locationName:"projectArn" min:"32" type:"string" required:"true"`
11727}
11728
11729// String returns the string representation
11730func (s GetTestGridProjectInput) String() string {
11731	return awsutil.Prettify(s)
11732}
11733
11734// GoString returns the string representation
11735func (s GetTestGridProjectInput) GoString() string {
11736	return s.String()
11737}
11738
11739// Validate inspects the fields of the type to determine if they are valid.
11740func (s *GetTestGridProjectInput) Validate() error {
11741	invalidParams := request.ErrInvalidParams{Context: "GetTestGridProjectInput"}
11742	if s.ProjectArn == nil {
11743		invalidParams.Add(request.NewErrParamRequired("ProjectArn"))
11744	}
11745	if s.ProjectArn != nil && len(*s.ProjectArn) < 32 {
11746		invalidParams.Add(request.NewErrParamMinLen("ProjectArn", 32))
11747	}
11748
11749	if invalidParams.Len() > 0 {
11750		return invalidParams
11751	}
11752	return nil
11753}
11754
11755// SetProjectArn sets the ProjectArn field's value.
11756func (s *GetTestGridProjectInput) SetProjectArn(v string) *GetTestGridProjectInput {
11757	s.ProjectArn = &v
11758	return s
11759}
11760
11761type GetTestGridProjectOutput struct {
11762	_ struct{} `type:"structure"`
11763
11764	// A TestGridProject.
11765	TestGridProject *TestGridProject `locationName:"testGridProject" type:"structure"`
11766}
11767
11768// String returns the string representation
11769func (s GetTestGridProjectOutput) String() string {
11770	return awsutil.Prettify(s)
11771}
11772
11773// GoString returns the string representation
11774func (s GetTestGridProjectOutput) GoString() string {
11775	return s.String()
11776}
11777
11778// SetTestGridProject sets the TestGridProject field's value.
11779func (s *GetTestGridProjectOutput) SetTestGridProject(v *TestGridProject) *GetTestGridProjectOutput {
11780	s.TestGridProject = v
11781	return s
11782}
11783
11784type GetTestGridSessionInput struct {
11785	_ struct{} `type:"structure"`
11786
11787	// The ARN for the project that this session belongs to. See CreateTestGridProject
11788	// and ListTestGridProjects.
11789	ProjectArn *string `locationName:"projectArn" min:"32" type:"string"`
11790
11791	// An ARN that uniquely identifies a TestGridSession.
11792	SessionArn *string `locationName:"sessionArn" min:"32" type:"string"`
11793
11794	// An ID associated with this session.
11795	SessionId *string `locationName:"sessionId" min:"1" type:"string"`
11796}
11797
11798// String returns the string representation
11799func (s GetTestGridSessionInput) String() string {
11800	return awsutil.Prettify(s)
11801}
11802
11803// GoString returns the string representation
11804func (s GetTestGridSessionInput) GoString() string {
11805	return s.String()
11806}
11807
11808// Validate inspects the fields of the type to determine if they are valid.
11809func (s *GetTestGridSessionInput) Validate() error {
11810	invalidParams := request.ErrInvalidParams{Context: "GetTestGridSessionInput"}
11811	if s.ProjectArn != nil && len(*s.ProjectArn) < 32 {
11812		invalidParams.Add(request.NewErrParamMinLen("ProjectArn", 32))
11813	}
11814	if s.SessionArn != nil && len(*s.SessionArn) < 32 {
11815		invalidParams.Add(request.NewErrParamMinLen("SessionArn", 32))
11816	}
11817	if s.SessionId != nil && len(*s.SessionId) < 1 {
11818		invalidParams.Add(request.NewErrParamMinLen("SessionId", 1))
11819	}
11820
11821	if invalidParams.Len() > 0 {
11822		return invalidParams
11823	}
11824	return nil
11825}
11826
11827// SetProjectArn sets the ProjectArn field's value.
11828func (s *GetTestGridSessionInput) SetProjectArn(v string) *GetTestGridSessionInput {
11829	s.ProjectArn = &v
11830	return s
11831}
11832
11833// SetSessionArn sets the SessionArn field's value.
11834func (s *GetTestGridSessionInput) SetSessionArn(v string) *GetTestGridSessionInput {
11835	s.SessionArn = &v
11836	return s
11837}
11838
11839// SetSessionId sets the SessionId field's value.
11840func (s *GetTestGridSessionInput) SetSessionId(v string) *GetTestGridSessionInput {
11841	s.SessionId = &v
11842	return s
11843}
11844
11845type GetTestGridSessionOutput struct {
11846	_ struct{} `type:"structure"`
11847
11848	// The TestGridSession that was requested.
11849	TestGridSession *TestGridSession `locationName:"testGridSession" type:"structure"`
11850}
11851
11852// String returns the string representation
11853func (s GetTestGridSessionOutput) String() string {
11854	return awsutil.Prettify(s)
11855}
11856
11857// GoString returns the string representation
11858func (s GetTestGridSessionOutput) GoString() string {
11859	return s.String()
11860}
11861
11862// SetTestGridSession sets the TestGridSession field's value.
11863func (s *GetTestGridSessionOutput) SetTestGridSession(v *TestGridSession) *GetTestGridSessionOutput {
11864	s.TestGridSession = v
11865	return s
11866}
11867
11868// Represents a request to the get test operation.
11869type GetTestInput struct {
11870	_ struct{} `type:"structure"`
11871
11872	// The test's ARN.
11873	//
11874	// Arn is a required field
11875	Arn *string `locationName:"arn" min:"32" type:"string" required:"true"`
11876}
11877
11878// String returns the string representation
11879func (s GetTestInput) String() string {
11880	return awsutil.Prettify(s)
11881}
11882
11883// GoString returns the string representation
11884func (s GetTestInput) GoString() string {
11885	return s.String()
11886}
11887
11888// Validate inspects the fields of the type to determine if they are valid.
11889func (s *GetTestInput) Validate() error {
11890	invalidParams := request.ErrInvalidParams{Context: "GetTestInput"}
11891	if s.Arn == nil {
11892		invalidParams.Add(request.NewErrParamRequired("Arn"))
11893	}
11894	if s.Arn != nil && len(*s.Arn) < 32 {
11895		invalidParams.Add(request.NewErrParamMinLen("Arn", 32))
11896	}
11897
11898	if invalidParams.Len() > 0 {
11899		return invalidParams
11900	}
11901	return nil
11902}
11903
11904// SetArn sets the Arn field's value.
11905func (s *GetTestInput) SetArn(v string) *GetTestInput {
11906	s.Arn = &v
11907	return s
11908}
11909
11910// Represents the result of a get test request.
11911type GetTestOutput struct {
11912	_ struct{} `type:"structure"`
11913
11914	// A test condition that is evaluated.
11915	Test *Test `locationName:"test" type:"structure"`
11916}
11917
11918// String returns the string representation
11919func (s GetTestOutput) String() string {
11920	return awsutil.Prettify(s)
11921}
11922
11923// GoString returns the string representation
11924func (s GetTestOutput) GoString() string {
11925	return s.String()
11926}
11927
11928// SetTest sets the Test field's value.
11929func (s *GetTestOutput) SetTest(v *Test) *GetTestOutput {
11930	s.Test = v
11931	return s
11932}
11933
11934// Represents a request to the get upload operation.
11935type GetUploadInput struct {
11936	_ struct{} `type:"structure"`
11937
11938	// The upload's ARN.
11939	//
11940	// Arn is a required field
11941	Arn *string `locationName:"arn" min:"32" type:"string" required:"true"`
11942}
11943
11944// String returns the string representation
11945func (s GetUploadInput) String() string {
11946	return awsutil.Prettify(s)
11947}
11948
11949// GoString returns the string representation
11950func (s GetUploadInput) GoString() string {
11951	return s.String()
11952}
11953
11954// Validate inspects the fields of the type to determine if they are valid.
11955func (s *GetUploadInput) Validate() error {
11956	invalidParams := request.ErrInvalidParams{Context: "GetUploadInput"}
11957	if s.Arn == nil {
11958		invalidParams.Add(request.NewErrParamRequired("Arn"))
11959	}
11960	if s.Arn != nil && len(*s.Arn) < 32 {
11961		invalidParams.Add(request.NewErrParamMinLen("Arn", 32))
11962	}
11963
11964	if invalidParams.Len() > 0 {
11965		return invalidParams
11966	}
11967	return nil
11968}
11969
11970// SetArn sets the Arn field's value.
11971func (s *GetUploadInput) SetArn(v string) *GetUploadInput {
11972	s.Arn = &v
11973	return s
11974}
11975
11976// Represents the result of a get upload request.
11977type GetUploadOutput struct {
11978	_ struct{} `type:"structure"`
11979
11980	// An app or a set of one or more tests to upload or that have been uploaded.
11981	Upload *Upload `locationName:"upload" type:"structure"`
11982}
11983
11984// String returns the string representation
11985func (s GetUploadOutput) String() string {
11986	return awsutil.Prettify(s)
11987}
11988
11989// GoString returns the string representation
11990func (s GetUploadOutput) GoString() string {
11991	return s.String()
11992}
11993
11994// SetUpload sets the Upload field's value.
11995func (s *GetUploadOutput) SetUpload(v *Upload) *GetUploadOutput {
11996	s.Upload = v
11997	return s
11998}
11999
12000type GetVPCEConfigurationInput struct {
12001	_ struct{} `type:"structure"`
12002
12003	// The Amazon Resource Name (ARN) of the VPC endpoint configuration you want
12004	// to describe.
12005	//
12006	// Arn is a required field
12007	Arn *string `locationName:"arn" min:"32" type:"string" required:"true"`
12008}
12009
12010// String returns the string representation
12011func (s GetVPCEConfigurationInput) String() string {
12012	return awsutil.Prettify(s)
12013}
12014
12015// GoString returns the string representation
12016func (s GetVPCEConfigurationInput) GoString() string {
12017	return s.String()
12018}
12019
12020// Validate inspects the fields of the type to determine if they are valid.
12021func (s *GetVPCEConfigurationInput) Validate() error {
12022	invalidParams := request.ErrInvalidParams{Context: "GetVPCEConfigurationInput"}
12023	if s.Arn == nil {
12024		invalidParams.Add(request.NewErrParamRequired("Arn"))
12025	}
12026	if s.Arn != nil && len(*s.Arn) < 32 {
12027		invalidParams.Add(request.NewErrParamMinLen("Arn", 32))
12028	}
12029
12030	if invalidParams.Len() > 0 {
12031		return invalidParams
12032	}
12033	return nil
12034}
12035
12036// SetArn sets the Arn field's value.
12037func (s *GetVPCEConfigurationInput) SetArn(v string) *GetVPCEConfigurationInput {
12038	s.Arn = &v
12039	return s
12040}
12041
12042type GetVPCEConfigurationOutput struct {
12043	_ struct{} `type:"structure"`
12044
12045	// An object that contains information about your VPC endpoint configuration.
12046	VpceConfiguration *VPCEConfiguration `locationName:"vpceConfiguration" type:"structure"`
12047}
12048
12049// String returns the string representation
12050func (s GetVPCEConfigurationOutput) String() string {
12051	return awsutil.Prettify(s)
12052}
12053
12054// GoString returns the string representation
12055func (s GetVPCEConfigurationOutput) GoString() string {
12056	return s.String()
12057}
12058
12059// SetVpceConfiguration sets the VpceConfiguration field's value.
12060func (s *GetVPCEConfigurationOutput) SetVpceConfiguration(v *VPCEConfiguration) *GetVPCEConfigurationOutput {
12061	s.VpceConfiguration = v
12062	return s
12063}
12064
12065// Represents information about incompatibility.
12066type IncompatibilityMessage struct {
12067	_ struct{} `type:"structure"`
12068
12069	// A message about the incompatibility.
12070	Message *string `locationName:"message" type:"string"`
12071
12072	// The type of incompatibility.
12073	//
12074	// Allowed values include:
12075	//
12076	//    * ARN
12077	//
12078	//    * FORM_FACTOR (for example, phone or tablet)
12079	//
12080	//    * MANUFACTURER
12081	//
12082	//    * PLATFORM (for example, Android or iOS)
12083	//
12084	//    * REMOTE_ACCESS_ENABLED
12085	//
12086	//    * APPIUM_VERSION
12087	Type *string `locationName:"type" type:"string" enum:"DeviceAttribute"`
12088}
12089
12090// String returns the string representation
12091func (s IncompatibilityMessage) String() string {
12092	return awsutil.Prettify(s)
12093}
12094
12095// GoString returns the string representation
12096func (s IncompatibilityMessage) GoString() string {
12097	return s.String()
12098}
12099
12100// SetMessage sets the Message field's value.
12101func (s *IncompatibilityMessage) SetMessage(v string) *IncompatibilityMessage {
12102	s.Message = &v
12103	return s
12104}
12105
12106// SetType sets the Type field's value.
12107func (s *IncompatibilityMessage) SetType(v string) *IncompatibilityMessage {
12108	s.Type = &v
12109	return s
12110}
12111
12112// Represents the request to install an Android application (in .apk format)
12113// or an iOS application (in .ipa format) as part of a remote access session.
12114type InstallToRemoteAccessSessionInput struct {
12115	_ struct{} `type:"structure"`
12116
12117	// The ARN of the app about which you are requesting information.
12118	//
12119	// AppArn is a required field
12120	AppArn *string `locationName:"appArn" min:"32" type:"string" required:"true"`
12121
12122	// The Amazon Resource Name (ARN) of the remote access session about which you
12123	// are requesting information.
12124	//
12125	// RemoteAccessSessionArn is a required field
12126	RemoteAccessSessionArn *string `locationName:"remoteAccessSessionArn" min:"32" type:"string" required:"true"`
12127}
12128
12129// String returns the string representation
12130func (s InstallToRemoteAccessSessionInput) String() string {
12131	return awsutil.Prettify(s)
12132}
12133
12134// GoString returns the string representation
12135func (s InstallToRemoteAccessSessionInput) GoString() string {
12136	return s.String()
12137}
12138
12139// Validate inspects the fields of the type to determine if they are valid.
12140func (s *InstallToRemoteAccessSessionInput) Validate() error {
12141	invalidParams := request.ErrInvalidParams{Context: "InstallToRemoteAccessSessionInput"}
12142	if s.AppArn == nil {
12143		invalidParams.Add(request.NewErrParamRequired("AppArn"))
12144	}
12145	if s.AppArn != nil && len(*s.AppArn) < 32 {
12146		invalidParams.Add(request.NewErrParamMinLen("AppArn", 32))
12147	}
12148	if s.RemoteAccessSessionArn == nil {
12149		invalidParams.Add(request.NewErrParamRequired("RemoteAccessSessionArn"))
12150	}
12151	if s.RemoteAccessSessionArn != nil && len(*s.RemoteAccessSessionArn) < 32 {
12152		invalidParams.Add(request.NewErrParamMinLen("RemoteAccessSessionArn", 32))
12153	}
12154
12155	if invalidParams.Len() > 0 {
12156		return invalidParams
12157	}
12158	return nil
12159}
12160
12161// SetAppArn sets the AppArn field's value.
12162func (s *InstallToRemoteAccessSessionInput) SetAppArn(v string) *InstallToRemoteAccessSessionInput {
12163	s.AppArn = &v
12164	return s
12165}
12166
12167// SetRemoteAccessSessionArn sets the RemoteAccessSessionArn field's value.
12168func (s *InstallToRemoteAccessSessionInput) SetRemoteAccessSessionArn(v string) *InstallToRemoteAccessSessionInput {
12169	s.RemoteAccessSessionArn = &v
12170	return s
12171}
12172
12173// Represents the response from the server after AWS Device Farm makes a request
12174// to install to a remote access session.
12175type InstallToRemoteAccessSessionOutput struct {
12176	_ struct{} `type:"structure"`
12177
12178	// An app to upload or that has been uploaded.
12179	AppUpload *Upload `locationName:"appUpload" type:"structure"`
12180}
12181
12182// String returns the string representation
12183func (s InstallToRemoteAccessSessionOutput) String() string {
12184	return awsutil.Prettify(s)
12185}
12186
12187// GoString returns the string representation
12188func (s InstallToRemoteAccessSessionOutput) GoString() string {
12189	return s.String()
12190}
12191
12192// SetAppUpload sets the AppUpload field's value.
12193func (s *InstallToRemoteAccessSessionOutput) SetAppUpload(v *Upload) *InstallToRemoteAccessSessionOutput {
12194	s.AppUpload = v
12195	return s
12196}
12197
12198// Represents the instance profile.
12199type InstanceProfile struct {
12200	_ struct{} `type:"structure"`
12201
12202	// The Amazon Resource Name (ARN) of the instance profile.
12203	Arn *string `locationName:"arn" min:"32" type:"string"`
12204
12205	// The description of the instance profile.
12206	Description *string `locationName:"description" type:"string"`
12207
12208	// An array of strings containing the list of app packages that should not be
12209	// cleaned up from the device after a test run completes.
12210	//
12211	// The list of packages is considered only if you set packageCleanup to true.
12212	ExcludeAppPackagesFromCleanup []*string `locationName:"excludeAppPackagesFromCleanup" type:"list"`
12213
12214	// The name of the instance profile.
12215	Name *string `locationName:"name" type:"string"`
12216
12217	// When set to true, Device Farm removes app packages after a test run. The
12218	// default value is false for private devices.
12219	PackageCleanup *bool `locationName:"packageCleanup" type:"boolean"`
12220
12221	// When set to true, Device Farm reboots the instance after a test run. The
12222	// default value is true.
12223	RebootAfterUse *bool `locationName:"rebootAfterUse" type:"boolean"`
12224}
12225
12226// String returns the string representation
12227func (s InstanceProfile) String() string {
12228	return awsutil.Prettify(s)
12229}
12230
12231// GoString returns the string representation
12232func (s InstanceProfile) GoString() string {
12233	return s.String()
12234}
12235
12236// SetArn sets the Arn field's value.
12237func (s *InstanceProfile) SetArn(v string) *InstanceProfile {
12238	s.Arn = &v
12239	return s
12240}
12241
12242// SetDescription sets the Description field's value.
12243func (s *InstanceProfile) SetDescription(v string) *InstanceProfile {
12244	s.Description = &v
12245	return s
12246}
12247
12248// SetExcludeAppPackagesFromCleanup sets the ExcludeAppPackagesFromCleanup field's value.
12249func (s *InstanceProfile) SetExcludeAppPackagesFromCleanup(v []*string) *InstanceProfile {
12250	s.ExcludeAppPackagesFromCleanup = v
12251	return s
12252}
12253
12254// SetName sets the Name field's value.
12255func (s *InstanceProfile) SetName(v string) *InstanceProfile {
12256	s.Name = &v
12257	return s
12258}
12259
12260// SetPackageCleanup sets the PackageCleanup field's value.
12261func (s *InstanceProfile) SetPackageCleanup(v bool) *InstanceProfile {
12262	s.PackageCleanup = &v
12263	return s
12264}
12265
12266// SetRebootAfterUse sets the RebootAfterUse field's value.
12267func (s *InstanceProfile) SetRebootAfterUse(v bool) *InstanceProfile {
12268	s.RebootAfterUse = &v
12269	return s
12270}
12271
12272// Represents a device.
12273type Job struct {
12274	_ struct{} `type:"structure"`
12275
12276	// The job's ARN.
12277	Arn *string `locationName:"arn" min:"32" type:"string"`
12278
12279	// The job's result counters.
12280	Counters *Counters `locationName:"counters" type:"structure"`
12281
12282	// When the job was created.
12283	Created *time.Time `locationName:"created" type:"timestamp"`
12284
12285	// The device (phone or tablet).
12286	Device *Device `locationName:"device" type:"structure"`
12287
12288	// Represents the total (metered or unmetered) minutes used by the job.
12289	DeviceMinutes *DeviceMinutes `locationName:"deviceMinutes" type:"structure"`
12290
12291	// The ARN of the instance.
12292	InstanceArn *string `locationName:"instanceArn" min:"32" type:"string"`
12293
12294	// A message about the job's result.
12295	Message *string `locationName:"message" type:"string"`
12296
12297	// The job's name.
12298	Name *string `locationName:"name" type:"string"`
12299
12300	// The job's result.
12301	//
12302	// Allowed values include:
12303	//
12304	//    * PENDING
12305	//
12306	//    * PASSED
12307	//
12308	//    * WARNED
12309	//
12310	//    * FAILED
12311	//
12312	//    * SKIPPED
12313	//
12314	//    * ERRORED
12315	//
12316	//    * STOPPED
12317	Result *string `locationName:"result" type:"string" enum:"ExecutionResult"`
12318
12319	// The job's start time.
12320	Started *time.Time `locationName:"started" type:"timestamp"`
12321
12322	// The job's status.
12323	//
12324	// Allowed values include:
12325	//
12326	//    * PENDING
12327	//
12328	//    * PENDING_CONCURRENCY
12329	//
12330	//    * PENDING_DEVICE
12331	//
12332	//    * PROCESSING
12333	//
12334	//    * SCHEDULING
12335	//
12336	//    * PREPARING
12337	//
12338	//    * RUNNING
12339	//
12340	//    * COMPLETED
12341	//
12342	//    * STOPPING
12343	Status *string `locationName:"status" type:"string" enum:"ExecutionStatus"`
12344
12345	// The job's stop time.
12346	Stopped *time.Time `locationName:"stopped" type:"timestamp"`
12347
12348	// The job's type.
12349	//
12350	// Allowed values include the following:
12351	//
12352	//    * BUILTIN_FUZZ
12353	//
12354	//    * BUILTIN_EXPLORER. For Android, an app explorer that traverses an Android
12355	//    app, interacting with it and capturing screenshots at the same time.
12356	//
12357	//    * APPIUM_JAVA_JUNIT
12358	//
12359	//    * APPIUM_JAVA_TESTNG
12360	//
12361	//    * APPIUM_PYTHON
12362	//
12363	//    * APPIUM_NODE
12364	//
12365	//    * APPIUM_RUBY
12366	//
12367	//    * APPIUM_WEB_JAVA_JUNIT
12368	//
12369	//    * APPIUM_WEB_JAVA_TESTNG
12370	//
12371	//    * APPIUM_WEB_PYTHON
12372	//
12373	//    * APPIUM_WEB_NODE
12374	//
12375	//    * APPIUM_WEB_RUBY
12376	//
12377	//    * CALABASH
12378	//
12379	//    * INSTRUMENTATION
12380	//
12381	//    * UIAUTOMATION
12382	//
12383	//    * UIAUTOMATOR
12384	//
12385	//    * XCTEST
12386	//
12387	//    * XCTEST_UI
12388	Type *string `locationName:"type" type:"string" enum:"TestType"`
12389
12390	// This value is set to true if video capture is enabled. Otherwise, it is set
12391	// to false.
12392	VideoCapture *bool `locationName:"videoCapture" type:"boolean"`
12393
12394	// The endpoint for streaming device video.
12395	VideoEndpoint *string `locationName:"videoEndpoint" type:"string"`
12396}
12397
12398// String returns the string representation
12399func (s Job) String() string {
12400	return awsutil.Prettify(s)
12401}
12402
12403// GoString returns the string representation
12404func (s Job) GoString() string {
12405	return s.String()
12406}
12407
12408// SetArn sets the Arn field's value.
12409func (s *Job) SetArn(v string) *Job {
12410	s.Arn = &v
12411	return s
12412}
12413
12414// SetCounters sets the Counters field's value.
12415func (s *Job) SetCounters(v *Counters) *Job {
12416	s.Counters = v
12417	return s
12418}
12419
12420// SetCreated sets the Created field's value.
12421func (s *Job) SetCreated(v time.Time) *Job {
12422	s.Created = &v
12423	return s
12424}
12425
12426// SetDevice sets the Device field's value.
12427func (s *Job) SetDevice(v *Device) *Job {
12428	s.Device = v
12429	return s
12430}
12431
12432// SetDeviceMinutes sets the DeviceMinutes field's value.
12433func (s *Job) SetDeviceMinutes(v *DeviceMinutes) *Job {
12434	s.DeviceMinutes = v
12435	return s
12436}
12437
12438// SetInstanceArn sets the InstanceArn field's value.
12439func (s *Job) SetInstanceArn(v string) *Job {
12440	s.InstanceArn = &v
12441	return s
12442}
12443
12444// SetMessage sets the Message field's value.
12445func (s *Job) SetMessage(v string) *Job {
12446	s.Message = &v
12447	return s
12448}
12449
12450// SetName sets the Name field's value.
12451func (s *Job) SetName(v string) *Job {
12452	s.Name = &v
12453	return s
12454}
12455
12456// SetResult sets the Result field's value.
12457func (s *Job) SetResult(v string) *Job {
12458	s.Result = &v
12459	return s
12460}
12461
12462// SetStarted sets the Started field's value.
12463func (s *Job) SetStarted(v time.Time) *Job {
12464	s.Started = &v
12465	return s
12466}
12467
12468// SetStatus sets the Status field's value.
12469func (s *Job) SetStatus(v string) *Job {
12470	s.Status = &v
12471	return s
12472}
12473
12474// SetStopped sets the Stopped field's value.
12475func (s *Job) SetStopped(v time.Time) *Job {
12476	s.Stopped = &v
12477	return s
12478}
12479
12480// SetType sets the Type field's value.
12481func (s *Job) SetType(v string) *Job {
12482	s.Type = &v
12483	return s
12484}
12485
12486// SetVideoCapture sets the VideoCapture field's value.
12487func (s *Job) SetVideoCapture(v bool) *Job {
12488	s.VideoCapture = &v
12489	return s
12490}
12491
12492// SetVideoEndpoint sets the VideoEndpoint field's value.
12493func (s *Job) SetVideoEndpoint(v string) *Job {
12494	s.VideoEndpoint = &v
12495	return s
12496}
12497
12498// Represents a request to the list artifacts operation.
12499type ListArtifactsInput struct {
12500	_ struct{} `type:"structure"`
12501
12502	// The run, job, suite, or test ARN.
12503	//
12504	// Arn is a required field
12505	Arn *string `locationName:"arn" min:"32" type:"string" required:"true"`
12506
12507	// An identifier that was returned from the previous call to this operation,
12508	// which can be used to return the next set of items in the list.
12509	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
12510
12511	// The artifacts' type.
12512	//
12513	// Allowed values include:
12514	//
12515	//    * FILE
12516	//
12517	//    * LOG
12518	//
12519	//    * SCREENSHOT
12520	//
12521	// Type is a required field
12522	Type *string `locationName:"type" type:"string" required:"true" enum:"ArtifactCategory"`
12523}
12524
12525// String returns the string representation
12526func (s ListArtifactsInput) String() string {
12527	return awsutil.Prettify(s)
12528}
12529
12530// GoString returns the string representation
12531func (s ListArtifactsInput) GoString() string {
12532	return s.String()
12533}
12534
12535// Validate inspects the fields of the type to determine if they are valid.
12536func (s *ListArtifactsInput) Validate() error {
12537	invalidParams := request.ErrInvalidParams{Context: "ListArtifactsInput"}
12538	if s.Arn == nil {
12539		invalidParams.Add(request.NewErrParamRequired("Arn"))
12540	}
12541	if s.Arn != nil && len(*s.Arn) < 32 {
12542		invalidParams.Add(request.NewErrParamMinLen("Arn", 32))
12543	}
12544	if s.NextToken != nil && len(*s.NextToken) < 4 {
12545		invalidParams.Add(request.NewErrParamMinLen("NextToken", 4))
12546	}
12547	if s.Type == nil {
12548		invalidParams.Add(request.NewErrParamRequired("Type"))
12549	}
12550
12551	if invalidParams.Len() > 0 {
12552		return invalidParams
12553	}
12554	return nil
12555}
12556
12557// SetArn sets the Arn field's value.
12558func (s *ListArtifactsInput) SetArn(v string) *ListArtifactsInput {
12559	s.Arn = &v
12560	return s
12561}
12562
12563// SetNextToken sets the NextToken field's value.
12564func (s *ListArtifactsInput) SetNextToken(v string) *ListArtifactsInput {
12565	s.NextToken = &v
12566	return s
12567}
12568
12569// SetType sets the Type field's value.
12570func (s *ListArtifactsInput) SetType(v string) *ListArtifactsInput {
12571	s.Type = &v
12572	return s
12573}
12574
12575// Represents the result of a list artifacts operation.
12576type ListArtifactsOutput struct {
12577	_ struct{} `type:"structure"`
12578
12579	// Information about the artifacts.
12580	Artifacts []*Artifact `locationName:"artifacts" type:"list"`
12581
12582	// If the number of items that are returned is significantly large, this is
12583	// an identifier that is also returned. It can be used in a subsequent call
12584	// to this operation to return the next set of items in the list.
12585	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
12586}
12587
12588// String returns the string representation
12589func (s ListArtifactsOutput) String() string {
12590	return awsutil.Prettify(s)
12591}
12592
12593// GoString returns the string representation
12594func (s ListArtifactsOutput) GoString() string {
12595	return s.String()
12596}
12597
12598// SetArtifacts sets the Artifacts field's value.
12599func (s *ListArtifactsOutput) SetArtifacts(v []*Artifact) *ListArtifactsOutput {
12600	s.Artifacts = v
12601	return s
12602}
12603
12604// SetNextToken sets the NextToken field's value.
12605func (s *ListArtifactsOutput) SetNextToken(v string) *ListArtifactsOutput {
12606	s.NextToken = &v
12607	return s
12608}
12609
12610type ListDeviceInstancesInput struct {
12611	_ struct{} `type:"structure"`
12612
12613	// An integer that specifies the maximum number of items you want to return
12614	// in the API response.
12615	MaxResults *int64 `locationName:"maxResults" type:"integer"`
12616
12617	// An identifier that was returned from the previous call to this operation,
12618	// which can be used to return the next set of items in the list.
12619	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
12620}
12621
12622// String returns the string representation
12623func (s ListDeviceInstancesInput) String() string {
12624	return awsutil.Prettify(s)
12625}
12626
12627// GoString returns the string representation
12628func (s ListDeviceInstancesInput) GoString() string {
12629	return s.String()
12630}
12631
12632// Validate inspects the fields of the type to determine if they are valid.
12633func (s *ListDeviceInstancesInput) Validate() error {
12634	invalidParams := request.ErrInvalidParams{Context: "ListDeviceInstancesInput"}
12635	if s.NextToken != nil && len(*s.NextToken) < 4 {
12636		invalidParams.Add(request.NewErrParamMinLen("NextToken", 4))
12637	}
12638
12639	if invalidParams.Len() > 0 {
12640		return invalidParams
12641	}
12642	return nil
12643}
12644
12645// SetMaxResults sets the MaxResults field's value.
12646func (s *ListDeviceInstancesInput) SetMaxResults(v int64) *ListDeviceInstancesInput {
12647	s.MaxResults = &v
12648	return s
12649}
12650
12651// SetNextToken sets the NextToken field's value.
12652func (s *ListDeviceInstancesInput) SetNextToken(v string) *ListDeviceInstancesInput {
12653	s.NextToken = &v
12654	return s
12655}
12656
12657type ListDeviceInstancesOutput struct {
12658	_ struct{} `type:"structure"`
12659
12660	// An object that contains information about your device instances.
12661	DeviceInstances []*DeviceInstance `locationName:"deviceInstances" type:"list"`
12662
12663	// An identifier that can be used in the next call to this operation to return
12664	// the next set of items in the list.
12665	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
12666}
12667
12668// String returns the string representation
12669func (s ListDeviceInstancesOutput) String() string {
12670	return awsutil.Prettify(s)
12671}
12672
12673// GoString returns the string representation
12674func (s ListDeviceInstancesOutput) GoString() string {
12675	return s.String()
12676}
12677
12678// SetDeviceInstances sets the DeviceInstances field's value.
12679func (s *ListDeviceInstancesOutput) SetDeviceInstances(v []*DeviceInstance) *ListDeviceInstancesOutput {
12680	s.DeviceInstances = v
12681	return s
12682}
12683
12684// SetNextToken sets the NextToken field's value.
12685func (s *ListDeviceInstancesOutput) SetNextToken(v string) *ListDeviceInstancesOutput {
12686	s.NextToken = &v
12687	return s
12688}
12689
12690// Represents the result of a list device pools request.
12691type ListDevicePoolsInput struct {
12692	_ struct{} `type:"structure"`
12693
12694	// The project ARN.
12695	//
12696	// Arn is a required field
12697	Arn *string `locationName:"arn" min:"32" type:"string" required:"true"`
12698
12699	// An identifier that was returned from the previous call to this operation,
12700	// which can be used to return the next set of items in the list.
12701	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
12702
12703	// The device pools' type.
12704	//
12705	// Allowed values include:
12706	//
12707	//    * CURATED: A device pool that is created and managed by AWS Device Farm.
12708	//
12709	//    * PRIVATE: A device pool that is created and managed by the device pool
12710	//    developer.
12711	Type *string `locationName:"type" type:"string" enum:"DevicePoolType"`
12712}
12713
12714// String returns the string representation
12715func (s ListDevicePoolsInput) String() string {
12716	return awsutil.Prettify(s)
12717}
12718
12719// GoString returns the string representation
12720func (s ListDevicePoolsInput) GoString() string {
12721	return s.String()
12722}
12723
12724// Validate inspects the fields of the type to determine if they are valid.
12725func (s *ListDevicePoolsInput) Validate() error {
12726	invalidParams := request.ErrInvalidParams{Context: "ListDevicePoolsInput"}
12727	if s.Arn == nil {
12728		invalidParams.Add(request.NewErrParamRequired("Arn"))
12729	}
12730	if s.Arn != nil && len(*s.Arn) < 32 {
12731		invalidParams.Add(request.NewErrParamMinLen("Arn", 32))
12732	}
12733	if s.NextToken != nil && len(*s.NextToken) < 4 {
12734		invalidParams.Add(request.NewErrParamMinLen("NextToken", 4))
12735	}
12736
12737	if invalidParams.Len() > 0 {
12738		return invalidParams
12739	}
12740	return nil
12741}
12742
12743// SetArn sets the Arn field's value.
12744func (s *ListDevicePoolsInput) SetArn(v string) *ListDevicePoolsInput {
12745	s.Arn = &v
12746	return s
12747}
12748
12749// SetNextToken sets the NextToken field's value.
12750func (s *ListDevicePoolsInput) SetNextToken(v string) *ListDevicePoolsInput {
12751	s.NextToken = &v
12752	return s
12753}
12754
12755// SetType sets the Type field's value.
12756func (s *ListDevicePoolsInput) SetType(v string) *ListDevicePoolsInput {
12757	s.Type = &v
12758	return s
12759}
12760
12761// Represents the result of a list device pools request.
12762type ListDevicePoolsOutput struct {
12763	_ struct{} `type:"structure"`
12764
12765	// Information about the device pools.
12766	DevicePools []*DevicePool `locationName:"devicePools" type:"list"`
12767
12768	// If the number of items that are returned is significantly large, this is
12769	// an identifier that is also returned. It can be used in a subsequent call
12770	// to this operation to return the next set of items in the list.
12771	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
12772}
12773
12774// String returns the string representation
12775func (s ListDevicePoolsOutput) String() string {
12776	return awsutil.Prettify(s)
12777}
12778
12779// GoString returns the string representation
12780func (s ListDevicePoolsOutput) GoString() string {
12781	return s.String()
12782}
12783
12784// SetDevicePools sets the DevicePools field's value.
12785func (s *ListDevicePoolsOutput) SetDevicePools(v []*DevicePool) *ListDevicePoolsOutput {
12786	s.DevicePools = v
12787	return s
12788}
12789
12790// SetNextToken sets the NextToken field's value.
12791func (s *ListDevicePoolsOutput) SetNextToken(v string) *ListDevicePoolsOutput {
12792	s.NextToken = &v
12793	return s
12794}
12795
12796// Represents the result of a list devices request.
12797type ListDevicesInput struct {
12798	_ struct{} `type:"structure"`
12799
12800	// The Amazon Resource Name (ARN) of the project.
12801	Arn *string `locationName:"arn" min:"32" type:"string"`
12802
12803	// Used to select a set of devices. A filter is made up of an attribute, an
12804	// operator, and one or more values.
12805	//
12806	//    * Attribute: The aspect of a device such as platform or model used as
12807	//    the selection criteria in a device filter. Allowed values include: ARN:
12808	//    The Amazon Resource Name (ARN) of the device (for example, arn:aws:devicefarm:us-west-2::device:12345Example).
12809	//    PLATFORM: The device platform. Valid values are ANDROID or IOS. OS_VERSION:
12810	//    The operating system version (for example, 10.3.2). MODEL: The device
12811	//    model (for example, iPad 5th Gen). AVAILABILITY: The current availability
12812	//    of the device. Valid values are AVAILABLE, HIGHLY_AVAILABLE, BUSY, or
12813	//    TEMPORARY_NOT_AVAILABLE. FORM_FACTOR: The device form factor. Valid values
12814	//    are PHONE or TABLET. MANUFACTURER: The device manufacturer (for example,
12815	//    Apple). REMOTE_ACCESS_ENABLED: Whether the device is enabled for remote
12816	//    access. Valid values are TRUE or FALSE. REMOTE_DEBUG_ENABLED: Whether
12817	//    the device is enabled for remote debugging. Valid values are TRUE or FALSE.
12818	//    Because remote debugging is no longer supported (https://docs.aws.amazon.com/devicefarm/latest/developerguide/history.html),
12819	//    this attribute is ignored. INSTANCE_ARN: The Amazon Resource Name (ARN)
12820	//    of the device instance. INSTANCE_LABELS: The label of the device instance.
12821	//    FLEET_TYPE: The fleet type. Valid values are PUBLIC or PRIVATE.
12822	//
12823	//    * Operator: The filter operator. The EQUALS operator is available for
12824	//    every attribute except INSTANCE_LABELS. The CONTAINS operator is available
12825	//    for the INSTANCE_LABELS and MODEL attributes. The IN and NOT_IN operators
12826	//    are available for the ARN, OS_VERSION, MODEL, MANUFACTURER, and INSTANCE_ARN
12827	//    attributes. The LESS_THAN, GREATER_THAN, LESS_THAN_OR_EQUALS, and GREATER_THAN_OR_EQUALS
12828	//    operators are also available for the OS_VERSION attribute.
12829	//
12830	//    * Values: An array of one or more filter values. The IN and NOT_IN operators
12831	//    take a values array that has one or more elements. The other operators
12832	//    require an array with a single element. In a request, the AVAILABILITY
12833	//    attribute takes the following values: AVAILABLE, HIGHLY_AVAILABLE, BUSY,
12834	//    or TEMPORARY_NOT_AVAILABLE.
12835	Filters []*DeviceFilter `locationName:"filters" type:"list"`
12836
12837	// An identifier that was returned from the previous call to this operation,
12838	// which can be used to return the next set of items in the list.
12839	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
12840}
12841
12842// String returns the string representation
12843func (s ListDevicesInput) String() string {
12844	return awsutil.Prettify(s)
12845}
12846
12847// GoString returns the string representation
12848func (s ListDevicesInput) GoString() string {
12849	return s.String()
12850}
12851
12852// Validate inspects the fields of the type to determine if they are valid.
12853func (s *ListDevicesInput) Validate() error {
12854	invalidParams := request.ErrInvalidParams{Context: "ListDevicesInput"}
12855	if s.Arn != nil && len(*s.Arn) < 32 {
12856		invalidParams.Add(request.NewErrParamMinLen("Arn", 32))
12857	}
12858	if s.NextToken != nil && len(*s.NextToken) < 4 {
12859		invalidParams.Add(request.NewErrParamMinLen("NextToken", 4))
12860	}
12861
12862	if invalidParams.Len() > 0 {
12863		return invalidParams
12864	}
12865	return nil
12866}
12867
12868// SetArn sets the Arn field's value.
12869func (s *ListDevicesInput) SetArn(v string) *ListDevicesInput {
12870	s.Arn = &v
12871	return s
12872}
12873
12874// SetFilters sets the Filters field's value.
12875func (s *ListDevicesInput) SetFilters(v []*DeviceFilter) *ListDevicesInput {
12876	s.Filters = v
12877	return s
12878}
12879
12880// SetNextToken sets the NextToken field's value.
12881func (s *ListDevicesInput) SetNextToken(v string) *ListDevicesInput {
12882	s.NextToken = &v
12883	return s
12884}
12885
12886// Represents the result of a list devices operation.
12887type ListDevicesOutput struct {
12888	_ struct{} `type:"structure"`
12889
12890	// Information about the devices.
12891	Devices []*Device `locationName:"devices" type:"list"`
12892
12893	// If the number of items that are returned is significantly large, this is
12894	// an identifier that is also returned. It can be used in a subsequent call
12895	// to this operation to return the next set of items in the list.
12896	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
12897}
12898
12899// String returns the string representation
12900func (s ListDevicesOutput) String() string {
12901	return awsutil.Prettify(s)
12902}
12903
12904// GoString returns the string representation
12905func (s ListDevicesOutput) GoString() string {
12906	return s.String()
12907}
12908
12909// SetDevices sets the Devices field's value.
12910func (s *ListDevicesOutput) SetDevices(v []*Device) *ListDevicesOutput {
12911	s.Devices = v
12912	return s
12913}
12914
12915// SetNextToken sets the NextToken field's value.
12916func (s *ListDevicesOutput) SetNextToken(v string) *ListDevicesOutput {
12917	s.NextToken = &v
12918	return s
12919}
12920
12921type ListInstanceProfilesInput struct {
12922	_ struct{} `type:"structure"`
12923
12924	// An integer that specifies the maximum number of items you want to return
12925	// in the API response.
12926	MaxResults *int64 `locationName:"maxResults" type:"integer"`
12927
12928	// An identifier that was returned from the previous call to this operation,
12929	// which can be used to return the next set of items in the list.
12930	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
12931}
12932
12933// String returns the string representation
12934func (s ListInstanceProfilesInput) String() string {
12935	return awsutil.Prettify(s)
12936}
12937
12938// GoString returns the string representation
12939func (s ListInstanceProfilesInput) GoString() string {
12940	return s.String()
12941}
12942
12943// Validate inspects the fields of the type to determine if they are valid.
12944func (s *ListInstanceProfilesInput) Validate() error {
12945	invalidParams := request.ErrInvalidParams{Context: "ListInstanceProfilesInput"}
12946	if s.NextToken != nil && len(*s.NextToken) < 4 {
12947		invalidParams.Add(request.NewErrParamMinLen("NextToken", 4))
12948	}
12949
12950	if invalidParams.Len() > 0 {
12951		return invalidParams
12952	}
12953	return nil
12954}
12955
12956// SetMaxResults sets the MaxResults field's value.
12957func (s *ListInstanceProfilesInput) SetMaxResults(v int64) *ListInstanceProfilesInput {
12958	s.MaxResults = &v
12959	return s
12960}
12961
12962// SetNextToken sets the NextToken field's value.
12963func (s *ListInstanceProfilesInput) SetNextToken(v string) *ListInstanceProfilesInput {
12964	s.NextToken = &v
12965	return s
12966}
12967
12968type ListInstanceProfilesOutput struct {
12969	_ struct{} `type:"structure"`
12970
12971	// An object that contains information about your instance profiles.
12972	InstanceProfiles []*InstanceProfile `locationName:"instanceProfiles" type:"list"`
12973
12974	// An identifier that can be used in the next call to this operation to return
12975	// the next set of items in the list.
12976	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
12977}
12978
12979// String returns the string representation
12980func (s ListInstanceProfilesOutput) String() string {
12981	return awsutil.Prettify(s)
12982}
12983
12984// GoString returns the string representation
12985func (s ListInstanceProfilesOutput) GoString() string {
12986	return s.String()
12987}
12988
12989// SetInstanceProfiles sets the InstanceProfiles field's value.
12990func (s *ListInstanceProfilesOutput) SetInstanceProfiles(v []*InstanceProfile) *ListInstanceProfilesOutput {
12991	s.InstanceProfiles = v
12992	return s
12993}
12994
12995// SetNextToken sets the NextToken field's value.
12996func (s *ListInstanceProfilesOutput) SetNextToken(v string) *ListInstanceProfilesOutput {
12997	s.NextToken = &v
12998	return s
12999}
13000
13001// Represents a request to the list jobs operation.
13002type ListJobsInput struct {
13003	_ struct{} `type:"structure"`
13004
13005	// The run's Amazon Resource Name (ARN).
13006	//
13007	// Arn is a required field
13008	Arn *string `locationName:"arn" min:"32" type:"string" required:"true"`
13009
13010	// An identifier that was returned from the previous call to this operation,
13011	// which can be used to return the next set of items in the list.
13012	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
13013}
13014
13015// String returns the string representation
13016func (s ListJobsInput) String() string {
13017	return awsutil.Prettify(s)
13018}
13019
13020// GoString returns the string representation
13021func (s ListJobsInput) GoString() string {
13022	return s.String()
13023}
13024
13025// Validate inspects the fields of the type to determine if they are valid.
13026func (s *ListJobsInput) Validate() error {
13027	invalidParams := request.ErrInvalidParams{Context: "ListJobsInput"}
13028	if s.Arn == nil {
13029		invalidParams.Add(request.NewErrParamRequired("Arn"))
13030	}
13031	if s.Arn != nil && len(*s.Arn) < 32 {
13032		invalidParams.Add(request.NewErrParamMinLen("Arn", 32))
13033	}
13034	if s.NextToken != nil && len(*s.NextToken) < 4 {
13035		invalidParams.Add(request.NewErrParamMinLen("NextToken", 4))
13036	}
13037
13038	if invalidParams.Len() > 0 {
13039		return invalidParams
13040	}
13041	return nil
13042}
13043
13044// SetArn sets the Arn field's value.
13045func (s *ListJobsInput) SetArn(v string) *ListJobsInput {
13046	s.Arn = &v
13047	return s
13048}
13049
13050// SetNextToken sets the NextToken field's value.
13051func (s *ListJobsInput) SetNextToken(v string) *ListJobsInput {
13052	s.NextToken = &v
13053	return s
13054}
13055
13056// Represents the result of a list jobs request.
13057type ListJobsOutput struct {
13058	_ struct{} `type:"structure"`
13059
13060	// Information about the jobs.
13061	Jobs []*Job `locationName:"jobs" type:"list"`
13062
13063	// If the number of items that are returned is significantly large, this is
13064	// an identifier that is also returned. It can be used in a subsequent call
13065	// to this operation to return the next set of items in the list.
13066	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
13067}
13068
13069// String returns the string representation
13070func (s ListJobsOutput) String() string {
13071	return awsutil.Prettify(s)
13072}
13073
13074// GoString returns the string representation
13075func (s ListJobsOutput) GoString() string {
13076	return s.String()
13077}
13078
13079// SetJobs sets the Jobs field's value.
13080func (s *ListJobsOutput) SetJobs(v []*Job) *ListJobsOutput {
13081	s.Jobs = v
13082	return s
13083}
13084
13085// SetNextToken sets the NextToken field's value.
13086func (s *ListJobsOutput) SetNextToken(v string) *ListJobsOutput {
13087	s.NextToken = &v
13088	return s
13089}
13090
13091type ListNetworkProfilesInput struct {
13092	_ struct{} `type:"structure"`
13093
13094	// The Amazon Resource Name (ARN) of the project for which you want to list
13095	// network profiles.
13096	//
13097	// Arn is a required field
13098	Arn *string `locationName:"arn" min:"32" type:"string" required:"true"`
13099
13100	// An identifier that was returned from the previous call to this operation,
13101	// which can be used to return the next set of items in the list.
13102	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
13103
13104	// The type of network profile to return information about. Valid values are
13105	// listed here.
13106	Type *string `locationName:"type" type:"string" enum:"NetworkProfileType"`
13107}
13108
13109// String returns the string representation
13110func (s ListNetworkProfilesInput) String() string {
13111	return awsutil.Prettify(s)
13112}
13113
13114// GoString returns the string representation
13115func (s ListNetworkProfilesInput) GoString() string {
13116	return s.String()
13117}
13118
13119// Validate inspects the fields of the type to determine if they are valid.
13120func (s *ListNetworkProfilesInput) Validate() error {
13121	invalidParams := request.ErrInvalidParams{Context: "ListNetworkProfilesInput"}
13122	if s.Arn == nil {
13123		invalidParams.Add(request.NewErrParamRequired("Arn"))
13124	}
13125	if s.Arn != nil && len(*s.Arn) < 32 {
13126		invalidParams.Add(request.NewErrParamMinLen("Arn", 32))
13127	}
13128	if s.NextToken != nil && len(*s.NextToken) < 4 {
13129		invalidParams.Add(request.NewErrParamMinLen("NextToken", 4))
13130	}
13131
13132	if invalidParams.Len() > 0 {
13133		return invalidParams
13134	}
13135	return nil
13136}
13137
13138// SetArn sets the Arn field's value.
13139func (s *ListNetworkProfilesInput) SetArn(v string) *ListNetworkProfilesInput {
13140	s.Arn = &v
13141	return s
13142}
13143
13144// SetNextToken sets the NextToken field's value.
13145func (s *ListNetworkProfilesInput) SetNextToken(v string) *ListNetworkProfilesInput {
13146	s.NextToken = &v
13147	return s
13148}
13149
13150// SetType sets the Type field's value.
13151func (s *ListNetworkProfilesInput) SetType(v string) *ListNetworkProfilesInput {
13152	s.Type = &v
13153	return s
13154}
13155
13156type ListNetworkProfilesOutput struct {
13157	_ struct{} `type:"structure"`
13158
13159	// A list of the available network profiles.
13160	NetworkProfiles []*NetworkProfile `locationName:"networkProfiles" type:"list"`
13161
13162	// An identifier that was returned from the previous call to this operation,
13163	// which can be used to return the next set of items in the list.
13164	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
13165}
13166
13167// String returns the string representation
13168func (s ListNetworkProfilesOutput) String() string {
13169	return awsutil.Prettify(s)
13170}
13171
13172// GoString returns the string representation
13173func (s ListNetworkProfilesOutput) GoString() string {
13174	return s.String()
13175}
13176
13177// SetNetworkProfiles sets the NetworkProfiles field's value.
13178func (s *ListNetworkProfilesOutput) SetNetworkProfiles(v []*NetworkProfile) *ListNetworkProfilesOutput {
13179	s.NetworkProfiles = v
13180	return s
13181}
13182
13183// SetNextToken sets the NextToken field's value.
13184func (s *ListNetworkProfilesOutput) SetNextToken(v string) *ListNetworkProfilesOutput {
13185	s.NextToken = &v
13186	return s
13187}
13188
13189type ListOfferingPromotionsInput struct {
13190	_ struct{} `type:"structure"`
13191
13192	// An identifier that was returned from the previous call to this operation,
13193	// which can be used to return the next set of items in the list.
13194	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
13195}
13196
13197// String returns the string representation
13198func (s ListOfferingPromotionsInput) String() string {
13199	return awsutil.Prettify(s)
13200}
13201
13202// GoString returns the string representation
13203func (s ListOfferingPromotionsInput) GoString() string {
13204	return s.String()
13205}
13206
13207// Validate inspects the fields of the type to determine if they are valid.
13208func (s *ListOfferingPromotionsInput) Validate() error {
13209	invalidParams := request.ErrInvalidParams{Context: "ListOfferingPromotionsInput"}
13210	if s.NextToken != nil && len(*s.NextToken) < 4 {
13211		invalidParams.Add(request.NewErrParamMinLen("NextToken", 4))
13212	}
13213
13214	if invalidParams.Len() > 0 {
13215		return invalidParams
13216	}
13217	return nil
13218}
13219
13220// SetNextToken sets the NextToken field's value.
13221func (s *ListOfferingPromotionsInput) SetNextToken(v string) *ListOfferingPromotionsInput {
13222	s.NextToken = &v
13223	return s
13224}
13225
13226type ListOfferingPromotionsOutput struct {
13227	_ struct{} `type:"structure"`
13228
13229	// An identifier to be used in the next call to this operation, to return the
13230	// next set of items in the list.
13231	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
13232
13233	// Information about the offering promotions.
13234	OfferingPromotions []*OfferingPromotion `locationName:"offeringPromotions" type:"list"`
13235}
13236
13237// String returns the string representation
13238func (s ListOfferingPromotionsOutput) String() string {
13239	return awsutil.Prettify(s)
13240}
13241
13242// GoString returns the string representation
13243func (s ListOfferingPromotionsOutput) GoString() string {
13244	return s.String()
13245}
13246
13247// SetNextToken sets the NextToken field's value.
13248func (s *ListOfferingPromotionsOutput) SetNextToken(v string) *ListOfferingPromotionsOutput {
13249	s.NextToken = &v
13250	return s
13251}
13252
13253// SetOfferingPromotions sets the OfferingPromotions field's value.
13254func (s *ListOfferingPromotionsOutput) SetOfferingPromotions(v []*OfferingPromotion) *ListOfferingPromotionsOutput {
13255	s.OfferingPromotions = v
13256	return s
13257}
13258
13259// Represents the request to list the offering transaction history.
13260type ListOfferingTransactionsInput struct {
13261	_ struct{} `type:"structure"`
13262
13263	// An identifier that was returned from the previous call to this operation,
13264	// which can be used to return the next set of items in the list.
13265	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
13266}
13267
13268// String returns the string representation
13269func (s ListOfferingTransactionsInput) String() string {
13270	return awsutil.Prettify(s)
13271}
13272
13273// GoString returns the string representation
13274func (s ListOfferingTransactionsInput) GoString() string {
13275	return s.String()
13276}
13277
13278// Validate inspects the fields of the type to determine if they are valid.
13279func (s *ListOfferingTransactionsInput) Validate() error {
13280	invalidParams := request.ErrInvalidParams{Context: "ListOfferingTransactionsInput"}
13281	if s.NextToken != nil && len(*s.NextToken) < 4 {
13282		invalidParams.Add(request.NewErrParamMinLen("NextToken", 4))
13283	}
13284
13285	if invalidParams.Len() > 0 {
13286		return invalidParams
13287	}
13288	return nil
13289}
13290
13291// SetNextToken sets the NextToken field's value.
13292func (s *ListOfferingTransactionsInput) SetNextToken(v string) *ListOfferingTransactionsInput {
13293	s.NextToken = &v
13294	return s
13295}
13296
13297// Returns the transaction log of the specified offerings.
13298type ListOfferingTransactionsOutput struct {
13299	_ struct{} `type:"structure"`
13300
13301	// An identifier that was returned from the previous call to this operation,
13302	// which can be used to return the next set of items in the list.
13303	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
13304
13305	// The audit log of subscriptions you have purchased and modified through AWS
13306	// Device Farm.
13307	OfferingTransactions []*OfferingTransaction `locationName:"offeringTransactions" type:"list"`
13308}
13309
13310// String returns the string representation
13311func (s ListOfferingTransactionsOutput) String() string {
13312	return awsutil.Prettify(s)
13313}
13314
13315// GoString returns the string representation
13316func (s ListOfferingTransactionsOutput) GoString() string {
13317	return s.String()
13318}
13319
13320// SetNextToken sets the NextToken field's value.
13321func (s *ListOfferingTransactionsOutput) SetNextToken(v string) *ListOfferingTransactionsOutput {
13322	s.NextToken = &v
13323	return s
13324}
13325
13326// SetOfferingTransactions sets the OfferingTransactions field's value.
13327func (s *ListOfferingTransactionsOutput) SetOfferingTransactions(v []*OfferingTransaction) *ListOfferingTransactionsOutput {
13328	s.OfferingTransactions = v
13329	return s
13330}
13331
13332// Represents the request to list all offerings.
13333type ListOfferingsInput struct {
13334	_ struct{} `type:"structure"`
13335
13336	// An identifier that was returned from the previous call to this operation,
13337	// which can be used to return the next set of items in the list.
13338	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
13339}
13340
13341// String returns the string representation
13342func (s ListOfferingsInput) String() string {
13343	return awsutil.Prettify(s)
13344}
13345
13346// GoString returns the string representation
13347func (s ListOfferingsInput) GoString() string {
13348	return s.String()
13349}
13350
13351// Validate inspects the fields of the type to determine if they are valid.
13352func (s *ListOfferingsInput) Validate() error {
13353	invalidParams := request.ErrInvalidParams{Context: "ListOfferingsInput"}
13354	if s.NextToken != nil && len(*s.NextToken) < 4 {
13355		invalidParams.Add(request.NewErrParamMinLen("NextToken", 4))
13356	}
13357
13358	if invalidParams.Len() > 0 {
13359		return invalidParams
13360	}
13361	return nil
13362}
13363
13364// SetNextToken sets the NextToken field's value.
13365func (s *ListOfferingsInput) SetNextToken(v string) *ListOfferingsInput {
13366	s.NextToken = &v
13367	return s
13368}
13369
13370// Represents the return values of the list of offerings.
13371type ListOfferingsOutput struct {
13372	_ struct{} `type:"structure"`
13373
13374	// An identifier that was returned from the previous call to this operation,
13375	// which can be used to return the next set of items in the list.
13376	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
13377
13378	// A value that represents the list offering results.
13379	Offerings []*Offering `locationName:"offerings" type:"list"`
13380}
13381
13382// String returns the string representation
13383func (s ListOfferingsOutput) String() string {
13384	return awsutil.Prettify(s)
13385}
13386
13387// GoString returns the string representation
13388func (s ListOfferingsOutput) GoString() string {
13389	return s.String()
13390}
13391
13392// SetNextToken sets the NextToken field's value.
13393func (s *ListOfferingsOutput) SetNextToken(v string) *ListOfferingsOutput {
13394	s.NextToken = &v
13395	return s
13396}
13397
13398// SetOfferings sets the Offerings field's value.
13399func (s *ListOfferingsOutput) SetOfferings(v []*Offering) *ListOfferingsOutput {
13400	s.Offerings = v
13401	return s
13402}
13403
13404// Represents a request to the list projects operation.
13405type ListProjectsInput struct {
13406	_ struct{} `type:"structure"`
13407
13408	// Optional. If no Amazon Resource Name (ARN) is specified, then AWS Device
13409	// Farm returns a list of all projects for the AWS account. You can also specify
13410	// a project ARN.
13411	Arn *string `locationName:"arn" min:"32" type:"string"`
13412
13413	// An identifier that was returned from the previous call to this operation,
13414	// which can be used to return the next set of items in the list.
13415	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
13416}
13417
13418// String returns the string representation
13419func (s ListProjectsInput) String() string {
13420	return awsutil.Prettify(s)
13421}
13422
13423// GoString returns the string representation
13424func (s ListProjectsInput) GoString() string {
13425	return s.String()
13426}
13427
13428// Validate inspects the fields of the type to determine if they are valid.
13429func (s *ListProjectsInput) Validate() error {
13430	invalidParams := request.ErrInvalidParams{Context: "ListProjectsInput"}
13431	if s.Arn != nil && len(*s.Arn) < 32 {
13432		invalidParams.Add(request.NewErrParamMinLen("Arn", 32))
13433	}
13434	if s.NextToken != nil && len(*s.NextToken) < 4 {
13435		invalidParams.Add(request.NewErrParamMinLen("NextToken", 4))
13436	}
13437
13438	if invalidParams.Len() > 0 {
13439		return invalidParams
13440	}
13441	return nil
13442}
13443
13444// SetArn sets the Arn field's value.
13445func (s *ListProjectsInput) SetArn(v string) *ListProjectsInput {
13446	s.Arn = &v
13447	return s
13448}
13449
13450// SetNextToken sets the NextToken field's value.
13451func (s *ListProjectsInput) SetNextToken(v string) *ListProjectsInput {
13452	s.NextToken = &v
13453	return s
13454}
13455
13456// Represents the result of a list projects request.
13457type ListProjectsOutput struct {
13458	_ struct{} `type:"structure"`
13459
13460	// If the number of items that are returned is significantly large, this is
13461	// an identifier that is also returned. It can be used in a subsequent call
13462	// to this operation to return the next set of items in the list.
13463	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
13464
13465	// Information about the projects.
13466	Projects []*Project `locationName:"projects" type:"list"`
13467}
13468
13469// String returns the string representation
13470func (s ListProjectsOutput) String() string {
13471	return awsutil.Prettify(s)
13472}
13473
13474// GoString returns the string representation
13475func (s ListProjectsOutput) GoString() string {
13476	return s.String()
13477}
13478
13479// SetNextToken sets the NextToken field's value.
13480func (s *ListProjectsOutput) SetNextToken(v string) *ListProjectsOutput {
13481	s.NextToken = &v
13482	return s
13483}
13484
13485// SetProjects sets the Projects field's value.
13486func (s *ListProjectsOutput) SetProjects(v []*Project) *ListProjectsOutput {
13487	s.Projects = v
13488	return s
13489}
13490
13491// Represents the request to return information about the remote access session.
13492type ListRemoteAccessSessionsInput struct {
13493	_ struct{} `type:"structure"`
13494
13495	// The Amazon Resource Name (ARN) of the project about which you are requesting
13496	// information.
13497	//
13498	// Arn is a required field
13499	Arn *string `locationName:"arn" min:"32" type:"string" required:"true"`
13500
13501	// An identifier that was returned from the previous call to this operation,
13502	// which can be used to return the next set of items in the list.
13503	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
13504}
13505
13506// String returns the string representation
13507func (s ListRemoteAccessSessionsInput) String() string {
13508	return awsutil.Prettify(s)
13509}
13510
13511// GoString returns the string representation
13512func (s ListRemoteAccessSessionsInput) GoString() string {
13513	return s.String()
13514}
13515
13516// Validate inspects the fields of the type to determine if they are valid.
13517func (s *ListRemoteAccessSessionsInput) Validate() error {
13518	invalidParams := request.ErrInvalidParams{Context: "ListRemoteAccessSessionsInput"}
13519	if s.Arn == nil {
13520		invalidParams.Add(request.NewErrParamRequired("Arn"))
13521	}
13522	if s.Arn != nil && len(*s.Arn) < 32 {
13523		invalidParams.Add(request.NewErrParamMinLen("Arn", 32))
13524	}
13525	if s.NextToken != nil && len(*s.NextToken) < 4 {
13526		invalidParams.Add(request.NewErrParamMinLen("NextToken", 4))
13527	}
13528
13529	if invalidParams.Len() > 0 {
13530		return invalidParams
13531	}
13532	return nil
13533}
13534
13535// SetArn sets the Arn field's value.
13536func (s *ListRemoteAccessSessionsInput) SetArn(v string) *ListRemoteAccessSessionsInput {
13537	s.Arn = &v
13538	return s
13539}
13540
13541// SetNextToken sets the NextToken field's value.
13542func (s *ListRemoteAccessSessionsInput) SetNextToken(v string) *ListRemoteAccessSessionsInput {
13543	s.NextToken = &v
13544	return s
13545}
13546
13547// Represents the response from the server after AWS Device Farm makes a request
13548// to return information about the remote access session.
13549type ListRemoteAccessSessionsOutput struct {
13550	_ struct{} `type:"structure"`
13551
13552	// An identifier that was returned from the previous call to this operation,
13553	// which can be used to return the next set of items in the list.
13554	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
13555
13556	// A container that represents the metadata from the service about each remote
13557	// access session you are requesting.
13558	RemoteAccessSessions []*RemoteAccessSession `locationName:"remoteAccessSessions" type:"list"`
13559}
13560
13561// String returns the string representation
13562func (s ListRemoteAccessSessionsOutput) String() string {
13563	return awsutil.Prettify(s)
13564}
13565
13566// GoString returns the string representation
13567func (s ListRemoteAccessSessionsOutput) GoString() string {
13568	return s.String()
13569}
13570
13571// SetNextToken sets the NextToken field's value.
13572func (s *ListRemoteAccessSessionsOutput) SetNextToken(v string) *ListRemoteAccessSessionsOutput {
13573	s.NextToken = &v
13574	return s
13575}
13576
13577// SetRemoteAccessSessions sets the RemoteAccessSessions field's value.
13578func (s *ListRemoteAccessSessionsOutput) SetRemoteAccessSessions(v []*RemoteAccessSession) *ListRemoteAccessSessionsOutput {
13579	s.RemoteAccessSessions = v
13580	return s
13581}
13582
13583// Represents a request to the list runs operation.
13584type ListRunsInput struct {
13585	_ struct{} `type:"structure"`
13586
13587	// The Amazon Resource Name (ARN) of the project for which you want to list
13588	// runs.
13589	//
13590	// Arn is a required field
13591	Arn *string `locationName:"arn" min:"32" type:"string" required:"true"`
13592
13593	// An identifier that was returned from the previous call to this operation,
13594	// which can be used to return the next set of items in the list.
13595	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
13596}
13597
13598// String returns the string representation
13599func (s ListRunsInput) String() string {
13600	return awsutil.Prettify(s)
13601}
13602
13603// GoString returns the string representation
13604func (s ListRunsInput) GoString() string {
13605	return s.String()
13606}
13607
13608// Validate inspects the fields of the type to determine if they are valid.
13609func (s *ListRunsInput) Validate() error {
13610	invalidParams := request.ErrInvalidParams{Context: "ListRunsInput"}
13611	if s.Arn == nil {
13612		invalidParams.Add(request.NewErrParamRequired("Arn"))
13613	}
13614	if s.Arn != nil && len(*s.Arn) < 32 {
13615		invalidParams.Add(request.NewErrParamMinLen("Arn", 32))
13616	}
13617	if s.NextToken != nil && len(*s.NextToken) < 4 {
13618		invalidParams.Add(request.NewErrParamMinLen("NextToken", 4))
13619	}
13620
13621	if invalidParams.Len() > 0 {
13622		return invalidParams
13623	}
13624	return nil
13625}
13626
13627// SetArn sets the Arn field's value.
13628func (s *ListRunsInput) SetArn(v string) *ListRunsInput {
13629	s.Arn = &v
13630	return s
13631}
13632
13633// SetNextToken sets the NextToken field's value.
13634func (s *ListRunsInput) SetNextToken(v string) *ListRunsInput {
13635	s.NextToken = &v
13636	return s
13637}
13638
13639// Represents the result of a list runs request.
13640type ListRunsOutput struct {
13641	_ struct{} `type:"structure"`
13642
13643	// If the number of items that are returned is significantly large, this is
13644	// an identifier that is also returned. It can be used in a subsequent call
13645	// to this operation to return the next set of items in the list.
13646	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
13647
13648	// Information about the runs.
13649	Runs []*Run `locationName:"runs" type:"list"`
13650}
13651
13652// String returns the string representation
13653func (s ListRunsOutput) String() string {
13654	return awsutil.Prettify(s)
13655}
13656
13657// GoString returns the string representation
13658func (s ListRunsOutput) GoString() string {
13659	return s.String()
13660}
13661
13662// SetNextToken sets the NextToken field's value.
13663func (s *ListRunsOutput) SetNextToken(v string) *ListRunsOutput {
13664	s.NextToken = &v
13665	return s
13666}
13667
13668// SetRuns sets the Runs field's value.
13669func (s *ListRunsOutput) SetRuns(v []*Run) *ListRunsOutput {
13670	s.Runs = v
13671	return s
13672}
13673
13674// Represents a request to the list samples operation.
13675type ListSamplesInput struct {
13676	_ struct{} `type:"structure"`
13677
13678	// The Amazon Resource Name (ARN) of the job used to list samples.
13679	//
13680	// Arn is a required field
13681	Arn *string `locationName:"arn" min:"32" type:"string" required:"true"`
13682
13683	// An identifier that was returned from the previous call to this operation,
13684	// which can be used to return the next set of items in the list.
13685	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
13686}
13687
13688// String returns the string representation
13689func (s ListSamplesInput) String() string {
13690	return awsutil.Prettify(s)
13691}
13692
13693// GoString returns the string representation
13694func (s ListSamplesInput) GoString() string {
13695	return s.String()
13696}
13697
13698// Validate inspects the fields of the type to determine if they are valid.
13699func (s *ListSamplesInput) Validate() error {
13700	invalidParams := request.ErrInvalidParams{Context: "ListSamplesInput"}
13701	if s.Arn == nil {
13702		invalidParams.Add(request.NewErrParamRequired("Arn"))
13703	}
13704	if s.Arn != nil && len(*s.Arn) < 32 {
13705		invalidParams.Add(request.NewErrParamMinLen("Arn", 32))
13706	}
13707	if s.NextToken != nil && len(*s.NextToken) < 4 {
13708		invalidParams.Add(request.NewErrParamMinLen("NextToken", 4))
13709	}
13710
13711	if invalidParams.Len() > 0 {
13712		return invalidParams
13713	}
13714	return nil
13715}
13716
13717// SetArn sets the Arn field's value.
13718func (s *ListSamplesInput) SetArn(v string) *ListSamplesInput {
13719	s.Arn = &v
13720	return s
13721}
13722
13723// SetNextToken sets the NextToken field's value.
13724func (s *ListSamplesInput) SetNextToken(v string) *ListSamplesInput {
13725	s.NextToken = &v
13726	return s
13727}
13728
13729// Represents the result of a list samples request.
13730type ListSamplesOutput struct {
13731	_ struct{} `type:"structure"`
13732
13733	// If the number of items that are returned is significantly large, this is
13734	// an identifier that is also returned. It can be used in a subsequent call
13735	// to this operation to return the next set of items in the list.
13736	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
13737
13738	// Information about the samples.
13739	Samples []*Sample `locationName:"samples" type:"list"`
13740}
13741
13742// String returns the string representation
13743func (s ListSamplesOutput) String() string {
13744	return awsutil.Prettify(s)
13745}
13746
13747// GoString returns the string representation
13748func (s ListSamplesOutput) GoString() string {
13749	return s.String()
13750}
13751
13752// SetNextToken sets the NextToken field's value.
13753func (s *ListSamplesOutput) SetNextToken(v string) *ListSamplesOutput {
13754	s.NextToken = &v
13755	return s
13756}
13757
13758// SetSamples sets the Samples field's value.
13759func (s *ListSamplesOutput) SetSamples(v []*Sample) *ListSamplesOutput {
13760	s.Samples = v
13761	return s
13762}
13763
13764// Represents a request to the list suites operation.
13765type ListSuitesInput struct {
13766	_ struct{} `type:"structure"`
13767
13768	// The job's Amazon Resource Name (ARN).
13769	//
13770	// Arn is a required field
13771	Arn *string `locationName:"arn" min:"32" type:"string" required:"true"`
13772
13773	// An identifier that was returned from the previous call to this operation,
13774	// which can be used to return the next set of items in the list.
13775	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
13776}
13777
13778// String returns the string representation
13779func (s ListSuitesInput) String() string {
13780	return awsutil.Prettify(s)
13781}
13782
13783// GoString returns the string representation
13784func (s ListSuitesInput) GoString() string {
13785	return s.String()
13786}
13787
13788// Validate inspects the fields of the type to determine if they are valid.
13789func (s *ListSuitesInput) Validate() error {
13790	invalidParams := request.ErrInvalidParams{Context: "ListSuitesInput"}
13791	if s.Arn == nil {
13792		invalidParams.Add(request.NewErrParamRequired("Arn"))
13793	}
13794	if s.Arn != nil && len(*s.Arn) < 32 {
13795		invalidParams.Add(request.NewErrParamMinLen("Arn", 32))
13796	}
13797	if s.NextToken != nil && len(*s.NextToken) < 4 {
13798		invalidParams.Add(request.NewErrParamMinLen("NextToken", 4))
13799	}
13800
13801	if invalidParams.Len() > 0 {
13802		return invalidParams
13803	}
13804	return nil
13805}
13806
13807// SetArn sets the Arn field's value.
13808func (s *ListSuitesInput) SetArn(v string) *ListSuitesInput {
13809	s.Arn = &v
13810	return s
13811}
13812
13813// SetNextToken sets the NextToken field's value.
13814func (s *ListSuitesInput) SetNextToken(v string) *ListSuitesInput {
13815	s.NextToken = &v
13816	return s
13817}
13818
13819// Represents the result of a list suites request.
13820type ListSuitesOutput struct {
13821	_ struct{} `type:"structure"`
13822
13823	// If the number of items that are returned is significantly large, this is
13824	// an identifier that is also returned. It can be used in a subsequent call
13825	// to this operation to return the next set of items in the list.
13826	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
13827
13828	// Information about the suites.
13829	Suites []*Suite `locationName:"suites" type:"list"`
13830}
13831
13832// String returns the string representation
13833func (s ListSuitesOutput) String() string {
13834	return awsutil.Prettify(s)
13835}
13836
13837// GoString returns the string representation
13838func (s ListSuitesOutput) GoString() string {
13839	return s.String()
13840}
13841
13842// SetNextToken sets the NextToken field's value.
13843func (s *ListSuitesOutput) SetNextToken(v string) *ListSuitesOutput {
13844	s.NextToken = &v
13845	return s
13846}
13847
13848// SetSuites sets the Suites field's value.
13849func (s *ListSuitesOutput) SetSuites(v []*Suite) *ListSuitesOutput {
13850	s.Suites = v
13851	return s
13852}
13853
13854type ListTagsForResourceInput struct {
13855	_ struct{} `type:"structure"`
13856
13857	// The Amazon Resource Name (ARN) of the resource or resources for which to
13858	// list tags. You can associate tags with the following Device Farm resources:
13859	// PROJECT, RUN, NETWORK_PROFILE, INSTANCE_PROFILE, DEVICE_INSTANCE, SESSION,
13860	// DEVICE_POOL, DEVICE, and VPCE_CONFIGURATION.
13861	//
13862	// ResourceARN is a required field
13863	ResourceARN *string `min:"32" type:"string" required:"true"`
13864}
13865
13866// String returns the string representation
13867func (s ListTagsForResourceInput) String() string {
13868	return awsutil.Prettify(s)
13869}
13870
13871// GoString returns the string representation
13872func (s ListTagsForResourceInput) GoString() string {
13873	return s.String()
13874}
13875
13876// Validate inspects the fields of the type to determine if they are valid.
13877func (s *ListTagsForResourceInput) Validate() error {
13878	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
13879	if s.ResourceARN == nil {
13880		invalidParams.Add(request.NewErrParamRequired("ResourceARN"))
13881	}
13882	if s.ResourceARN != nil && len(*s.ResourceARN) < 32 {
13883		invalidParams.Add(request.NewErrParamMinLen("ResourceARN", 32))
13884	}
13885
13886	if invalidParams.Len() > 0 {
13887		return invalidParams
13888	}
13889	return nil
13890}
13891
13892// SetResourceARN sets the ResourceARN field's value.
13893func (s *ListTagsForResourceInput) SetResourceARN(v string) *ListTagsForResourceInput {
13894	s.ResourceARN = &v
13895	return s
13896}
13897
13898type ListTagsForResourceOutput struct {
13899	_ struct{} `type:"structure"`
13900
13901	// The tags to add to the resource. A tag is an array of key-value pairs. Tag
13902	// keys can have a maximum character length of 128 characters. Tag values can
13903	// have a maximum length of 256 characters.
13904	Tags []*Tag `type:"list"`
13905}
13906
13907// String returns the string representation
13908func (s ListTagsForResourceOutput) String() string {
13909	return awsutil.Prettify(s)
13910}
13911
13912// GoString returns the string representation
13913func (s ListTagsForResourceOutput) GoString() string {
13914	return s.String()
13915}
13916
13917// SetTags sets the Tags field's value.
13918func (s *ListTagsForResourceOutput) SetTags(v []*Tag) *ListTagsForResourceOutput {
13919	s.Tags = v
13920	return s
13921}
13922
13923type ListTestGridProjectsInput struct {
13924	_ struct{} `type:"structure"`
13925
13926	// Return no more than this number of results.
13927	MaxResult *int64 `locationName:"maxResult" min:"1" type:"integer"`
13928
13929	// From a response, used to continue a paginated listing.
13930	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
13931}
13932
13933// String returns the string representation
13934func (s ListTestGridProjectsInput) String() string {
13935	return awsutil.Prettify(s)
13936}
13937
13938// GoString returns the string representation
13939func (s ListTestGridProjectsInput) GoString() string {
13940	return s.String()
13941}
13942
13943// Validate inspects the fields of the type to determine if they are valid.
13944func (s *ListTestGridProjectsInput) Validate() error {
13945	invalidParams := request.ErrInvalidParams{Context: "ListTestGridProjectsInput"}
13946	if s.MaxResult != nil && *s.MaxResult < 1 {
13947		invalidParams.Add(request.NewErrParamMinValue("MaxResult", 1))
13948	}
13949	if s.NextToken != nil && len(*s.NextToken) < 4 {
13950		invalidParams.Add(request.NewErrParamMinLen("NextToken", 4))
13951	}
13952
13953	if invalidParams.Len() > 0 {
13954		return invalidParams
13955	}
13956	return nil
13957}
13958
13959// SetMaxResult sets the MaxResult field's value.
13960func (s *ListTestGridProjectsInput) SetMaxResult(v int64) *ListTestGridProjectsInput {
13961	s.MaxResult = &v
13962	return s
13963}
13964
13965// SetNextToken sets the NextToken field's value.
13966func (s *ListTestGridProjectsInput) SetNextToken(v string) *ListTestGridProjectsInput {
13967	s.NextToken = &v
13968	return s
13969}
13970
13971type ListTestGridProjectsOutput struct {
13972	_ struct{} `type:"structure"`
13973
13974	// Used for pagination. Pass into ListTestGridProjects to get more results in
13975	// a paginated request.
13976	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
13977
13978	// The list of TestGridProjects, based on a ListTestGridProjectsRequest.
13979	TestGridProjects []*TestGridProject `locationName:"testGridProjects" type:"list"`
13980}
13981
13982// String returns the string representation
13983func (s ListTestGridProjectsOutput) String() string {
13984	return awsutil.Prettify(s)
13985}
13986
13987// GoString returns the string representation
13988func (s ListTestGridProjectsOutput) GoString() string {
13989	return s.String()
13990}
13991
13992// SetNextToken sets the NextToken field's value.
13993func (s *ListTestGridProjectsOutput) SetNextToken(v string) *ListTestGridProjectsOutput {
13994	s.NextToken = &v
13995	return s
13996}
13997
13998// SetTestGridProjects sets the TestGridProjects field's value.
13999func (s *ListTestGridProjectsOutput) SetTestGridProjects(v []*TestGridProject) *ListTestGridProjectsOutput {
14000	s.TestGridProjects = v
14001	return s
14002}
14003
14004type ListTestGridSessionActionsInput struct {
14005	_ struct{} `type:"structure"`
14006
14007	// The maximum number of sessions to return per response.
14008	MaxResult *int64 `locationName:"maxResult" min:"1" type:"integer"`
14009
14010	// Pagination token.
14011	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
14012
14013	// The ARN of the session to retrieve.
14014	//
14015	// SessionArn is a required field
14016	SessionArn *string `locationName:"sessionArn" min:"32" type:"string" required:"true"`
14017}
14018
14019// String returns the string representation
14020func (s ListTestGridSessionActionsInput) String() string {
14021	return awsutil.Prettify(s)
14022}
14023
14024// GoString returns the string representation
14025func (s ListTestGridSessionActionsInput) GoString() string {
14026	return s.String()
14027}
14028
14029// Validate inspects the fields of the type to determine if they are valid.
14030func (s *ListTestGridSessionActionsInput) Validate() error {
14031	invalidParams := request.ErrInvalidParams{Context: "ListTestGridSessionActionsInput"}
14032	if s.MaxResult != nil && *s.MaxResult < 1 {
14033		invalidParams.Add(request.NewErrParamMinValue("MaxResult", 1))
14034	}
14035	if s.NextToken != nil && len(*s.NextToken) < 4 {
14036		invalidParams.Add(request.NewErrParamMinLen("NextToken", 4))
14037	}
14038	if s.SessionArn == nil {
14039		invalidParams.Add(request.NewErrParamRequired("SessionArn"))
14040	}
14041	if s.SessionArn != nil && len(*s.SessionArn) < 32 {
14042		invalidParams.Add(request.NewErrParamMinLen("SessionArn", 32))
14043	}
14044
14045	if invalidParams.Len() > 0 {
14046		return invalidParams
14047	}
14048	return nil
14049}
14050
14051// SetMaxResult sets the MaxResult field's value.
14052func (s *ListTestGridSessionActionsInput) SetMaxResult(v int64) *ListTestGridSessionActionsInput {
14053	s.MaxResult = &v
14054	return s
14055}
14056
14057// SetNextToken sets the NextToken field's value.
14058func (s *ListTestGridSessionActionsInput) SetNextToken(v string) *ListTestGridSessionActionsInput {
14059	s.NextToken = &v
14060	return s
14061}
14062
14063// SetSessionArn sets the SessionArn field's value.
14064func (s *ListTestGridSessionActionsInput) SetSessionArn(v string) *ListTestGridSessionActionsInput {
14065	s.SessionArn = &v
14066	return s
14067}
14068
14069type ListTestGridSessionActionsOutput struct {
14070	_ struct{} `type:"structure"`
14071
14072	// The action taken by the session.
14073	Actions []*TestGridSessionAction `locationName:"actions" type:"list"`
14074
14075	// Pagination token.
14076	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
14077}
14078
14079// String returns the string representation
14080func (s ListTestGridSessionActionsOutput) String() string {
14081	return awsutil.Prettify(s)
14082}
14083
14084// GoString returns the string representation
14085func (s ListTestGridSessionActionsOutput) GoString() string {
14086	return s.String()
14087}
14088
14089// SetActions sets the Actions field's value.
14090func (s *ListTestGridSessionActionsOutput) SetActions(v []*TestGridSessionAction) *ListTestGridSessionActionsOutput {
14091	s.Actions = v
14092	return s
14093}
14094
14095// SetNextToken sets the NextToken field's value.
14096func (s *ListTestGridSessionActionsOutput) SetNextToken(v string) *ListTestGridSessionActionsOutput {
14097	s.NextToken = &v
14098	return s
14099}
14100
14101type ListTestGridSessionArtifactsInput struct {
14102	_ struct{} `type:"structure"`
14103
14104	// The maximum number of results to be returned by a request.
14105	MaxResult *int64 `locationName:"maxResult" min:"1" type:"integer"`
14106
14107	// Pagination token.
14108	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
14109
14110	// The ARN of a TestGridSession.
14111	//
14112	// SessionArn is a required field
14113	SessionArn *string `locationName:"sessionArn" min:"32" type:"string" required:"true"`
14114
14115	// Limit results to a specified type of artifact.
14116	Type *string `locationName:"type" type:"string" enum:"TestGridSessionArtifactCategory"`
14117}
14118
14119// String returns the string representation
14120func (s ListTestGridSessionArtifactsInput) String() string {
14121	return awsutil.Prettify(s)
14122}
14123
14124// GoString returns the string representation
14125func (s ListTestGridSessionArtifactsInput) GoString() string {
14126	return s.String()
14127}
14128
14129// Validate inspects the fields of the type to determine if they are valid.
14130func (s *ListTestGridSessionArtifactsInput) Validate() error {
14131	invalidParams := request.ErrInvalidParams{Context: "ListTestGridSessionArtifactsInput"}
14132	if s.MaxResult != nil && *s.MaxResult < 1 {
14133		invalidParams.Add(request.NewErrParamMinValue("MaxResult", 1))
14134	}
14135	if s.NextToken != nil && len(*s.NextToken) < 4 {
14136		invalidParams.Add(request.NewErrParamMinLen("NextToken", 4))
14137	}
14138	if s.SessionArn == nil {
14139		invalidParams.Add(request.NewErrParamRequired("SessionArn"))
14140	}
14141	if s.SessionArn != nil && len(*s.SessionArn) < 32 {
14142		invalidParams.Add(request.NewErrParamMinLen("SessionArn", 32))
14143	}
14144
14145	if invalidParams.Len() > 0 {
14146		return invalidParams
14147	}
14148	return nil
14149}
14150
14151// SetMaxResult sets the MaxResult field's value.
14152func (s *ListTestGridSessionArtifactsInput) SetMaxResult(v int64) *ListTestGridSessionArtifactsInput {
14153	s.MaxResult = &v
14154	return s
14155}
14156
14157// SetNextToken sets the NextToken field's value.
14158func (s *ListTestGridSessionArtifactsInput) SetNextToken(v string) *ListTestGridSessionArtifactsInput {
14159	s.NextToken = &v
14160	return s
14161}
14162
14163// SetSessionArn sets the SessionArn field's value.
14164func (s *ListTestGridSessionArtifactsInput) SetSessionArn(v string) *ListTestGridSessionArtifactsInput {
14165	s.SessionArn = &v
14166	return s
14167}
14168
14169// SetType sets the Type field's value.
14170func (s *ListTestGridSessionArtifactsInput) SetType(v string) *ListTestGridSessionArtifactsInput {
14171	s.Type = &v
14172	return s
14173}
14174
14175type ListTestGridSessionArtifactsOutput struct {
14176	_ struct{} `type:"structure"`
14177
14178	// A list of test grid session artifacts for a TestGridSession.
14179	Artifacts []*TestGridSessionArtifact `locationName:"artifacts" type:"list"`
14180
14181	// Pagination token.
14182	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
14183}
14184
14185// String returns the string representation
14186func (s ListTestGridSessionArtifactsOutput) String() string {
14187	return awsutil.Prettify(s)
14188}
14189
14190// GoString returns the string representation
14191func (s ListTestGridSessionArtifactsOutput) GoString() string {
14192	return s.String()
14193}
14194
14195// SetArtifacts sets the Artifacts field's value.
14196func (s *ListTestGridSessionArtifactsOutput) SetArtifacts(v []*TestGridSessionArtifact) *ListTestGridSessionArtifactsOutput {
14197	s.Artifacts = v
14198	return s
14199}
14200
14201// SetNextToken sets the NextToken field's value.
14202func (s *ListTestGridSessionArtifactsOutput) SetNextToken(v string) *ListTestGridSessionArtifactsOutput {
14203	s.NextToken = &v
14204	return s
14205}
14206
14207type ListTestGridSessionsInput struct {
14208	_ struct{} `type:"structure"`
14209
14210	// Return only sessions created after this time.
14211	CreationTimeAfter *time.Time `locationName:"creationTimeAfter" type:"timestamp"`
14212
14213	// Return only sessions created before this time.
14214	CreationTimeBefore *time.Time `locationName:"creationTimeBefore" type:"timestamp"`
14215
14216	// Return only sessions that ended after this time.
14217	EndTimeAfter *time.Time `locationName:"endTimeAfter" type:"timestamp"`
14218
14219	// Return only sessions that ended before this time.
14220	EndTimeBefore *time.Time `locationName:"endTimeBefore" type:"timestamp"`
14221
14222	// Return only this many results at a time.
14223	MaxResult *int64 `locationName:"maxResult" min:"1" type:"integer"`
14224
14225	// Pagination token.
14226	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
14227
14228	// ARN of a TestGridProject.
14229	//
14230	// ProjectArn is a required field
14231	ProjectArn *string `locationName:"projectArn" min:"32" type:"string" required:"true"`
14232
14233	// Return only sessions in this state.
14234	Status *string `locationName:"status" type:"string" enum:"TestGridSessionStatus"`
14235}
14236
14237// String returns the string representation
14238func (s ListTestGridSessionsInput) String() string {
14239	return awsutil.Prettify(s)
14240}
14241
14242// GoString returns the string representation
14243func (s ListTestGridSessionsInput) GoString() string {
14244	return s.String()
14245}
14246
14247// Validate inspects the fields of the type to determine if they are valid.
14248func (s *ListTestGridSessionsInput) Validate() error {
14249	invalidParams := request.ErrInvalidParams{Context: "ListTestGridSessionsInput"}
14250	if s.MaxResult != nil && *s.MaxResult < 1 {
14251		invalidParams.Add(request.NewErrParamMinValue("MaxResult", 1))
14252	}
14253	if s.NextToken != nil && len(*s.NextToken) < 4 {
14254		invalidParams.Add(request.NewErrParamMinLen("NextToken", 4))
14255	}
14256	if s.ProjectArn == nil {
14257		invalidParams.Add(request.NewErrParamRequired("ProjectArn"))
14258	}
14259	if s.ProjectArn != nil && len(*s.ProjectArn) < 32 {
14260		invalidParams.Add(request.NewErrParamMinLen("ProjectArn", 32))
14261	}
14262
14263	if invalidParams.Len() > 0 {
14264		return invalidParams
14265	}
14266	return nil
14267}
14268
14269// SetCreationTimeAfter sets the CreationTimeAfter field's value.
14270func (s *ListTestGridSessionsInput) SetCreationTimeAfter(v time.Time) *ListTestGridSessionsInput {
14271	s.CreationTimeAfter = &v
14272	return s
14273}
14274
14275// SetCreationTimeBefore sets the CreationTimeBefore field's value.
14276func (s *ListTestGridSessionsInput) SetCreationTimeBefore(v time.Time) *ListTestGridSessionsInput {
14277	s.CreationTimeBefore = &v
14278	return s
14279}
14280
14281// SetEndTimeAfter sets the EndTimeAfter field's value.
14282func (s *ListTestGridSessionsInput) SetEndTimeAfter(v time.Time) *ListTestGridSessionsInput {
14283	s.EndTimeAfter = &v
14284	return s
14285}
14286
14287// SetEndTimeBefore sets the EndTimeBefore field's value.
14288func (s *ListTestGridSessionsInput) SetEndTimeBefore(v time.Time) *ListTestGridSessionsInput {
14289	s.EndTimeBefore = &v
14290	return s
14291}
14292
14293// SetMaxResult sets the MaxResult field's value.
14294func (s *ListTestGridSessionsInput) SetMaxResult(v int64) *ListTestGridSessionsInput {
14295	s.MaxResult = &v
14296	return s
14297}
14298
14299// SetNextToken sets the NextToken field's value.
14300func (s *ListTestGridSessionsInput) SetNextToken(v string) *ListTestGridSessionsInput {
14301	s.NextToken = &v
14302	return s
14303}
14304
14305// SetProjectArn sets the ProjectArn field's value.
14306func (s *ListTestGridSessionsInput) SetProjectArn(v string) *ListTestGridSessionsInput {
14307	s.ProjectArn = &v
14308	return s
14309}
14310
14311// SetStatus sets the Status field's value.
14312func (s *ListTestGridSessionsInput) SetStatus(v string) *ListTestGridSessionsInput {
14313	s.Status = &v
14314	return s
14315}
14316
14317type ListTestGridSessionsOutput struct {
14318	_ struct{} `type:"structure"`
14319
14320	// Pagination token.
14321	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
14322
14323	// The sessions that match the criteria in a ListTestGridSessionsRequest.
14324	TestGridSessions []*TestGridSession `locationName:"testGridSessions" type:"list"`
14325}
14326
14327// String returns the string representation
14328func (s ListTestGridSessionsOutput) String() string {
14329	return awsutil.Prettify(s)
14330}
14331
14332// GoString returns the string representation
14333func (s ListTestGridSessionsOutput) GoString() string {
14334	return s.String()
14335}
14336
14337// SetNextToken sets the NextToken field's value.
14338func (s *ListTestGridSessionsOutput) SetNextToken(v string) *ListTestGridSessionsOutput {
14339	s.NextToken = &v
14340	return s
14341}
14342
14343// SetTestGridSessions sets the TestGridSessions field's value.
14344func (s *ListTestGridSessionsOutput) SetTestGridSessions(v []*TestGridSession) *ListTestGridSessionsOutput {
14345	s.TestGridSessions = v
14346	return s
14347}
14348
14349// Represents a request to the list tests operation.
14350type ListTestsInput struct {
14351	_ struct{} `type:"structure"`
14352
14353	// The test suite's Amazon Resource Name (ARN).
14354	//
14355	// Arn is a required field
14356	Arn *string `locationName:"arn" min:"32" type:"string" required:"true"`
14357
14358	// An identifier that was returned from the previous call to this operation,
14359	// which can be used to return the next set of items in the list.
14360	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
14361}
14362
14363// String returns the string representation
14364func (s ListTestsInput) String() string {
14365	return awsutil.Prettify(s)
14366}
14367
14368// GoString returns the string representation
14369func (s ListTestsInput) GoString() string {
14370	return s.String()
14371}
14372
14373// Validate inspects the fields of the type to determine if they are valid.
14374func (s *ListTestsInput) Validate() error {
14375	invalidParams := request.ErrInvalidParams{Context: "ListTestsInput"}
14376	if s.Arn == nil {
14377		invalidParams.Add(request.NewErrParamRequired("Arn"))
14378	}
14379	if s.Arn != nil && len(*s.Arn) < 32 {
14380		invalidParams.Add(request.NewErrParamMinLen("Arn", 32))
14381	}
14382	if s.NextToken != nil && len(*s.NextToken) < 4 {
14383		invalidParams.Add(request.NewErrParamMinLen("NextToken", 4))
14384	}
14385
14386	if invalidParams.Len() > 0 {
14387		return invalidParams
14388	}
14389	return nil
14390}
14391
14392// SetArn sets the Arn field's value.
14393func (s *ListTestsInput) SetArn(v string) *ListTestsInput {
14394	s.Arn = &v
14395	return s
14396}
14397
14398// SetNextToken sets the NextToken field's value.
14399func (s *ListTestsInput) SetNextToken(v string) *ListTestsInput {
14400	s.NextToken = &v
14401	return s
14402}
14403
14404// Represents the result of a list tests request.
14405type ListTestsOutput struct {
14406	_ struct{} `type:"structure"`
14407
14408	// If the number of items that are returned is significantly large, this is
14409	// an identifier that is also returned. It can be used in a subsequent call
14410	// to this operation to return the next set of items in the list.
14411	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
14412
14413	// Information about the tests.
14414	Tests []*Test `locationName:"tests" type:"list"`
14415}
14416
14417// String returns the string representation
14418func (s ListTestsOutput) String() string {
14419	return awsutil.Prettify(s)
14420}
14421
14422// GoString returns the string representation
14423func (s ListTestsOutput) GoString() string {
14424	return s.String()
14425}
14426
14427// SetNextToken sets the NextToken field's value.
14428func (s *ListTestsOutput) SetNextToken(v string) *ListTestsOutput {
14429	s.NextToken = &v
14430	return s
14431}
14432
14433// SetTests sets the Tests field's value.
14434func (s *ListTestsOutput) SetTests(v []*Test) *ListTestsOutput {
14435	s.Tests = v
14436	return s
14437}
14438
14439// Represents a request to the list unique problems operation.
14440type ListUniqueProblemsInput struct {
14441	_ struct{} `type:"structure"`
14442
14443	// The unique problems' ARNs.
14444	//
14445	// Arn is a required field
14446	Arn *string `locationName:"arn" min:"32" type:"string" required:"true"`
14447
14448	// An identifier that was returned from the previous call to this operation,
14449	// which can be used to return the next set of items in the list.
14450	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
14451}
14452
14453// String returns the string representation
14454func (s ListUniqueProblemsInput) String() string {
14455	return awsutil.Prettify(s)
14456}
14457
14458// GoString returns the string representation
14459func (s ListUniqueProblemsInput) GoString() string {
14460	return s.String()
14461}
14462
14463// Validate inspects the fields of the type to determine if they are valid.
14464func (s *ListUniqueProblemsInput) Validate() error {
14465	invalidParams := request.ErrInvalidParams{Context: "ListUniqueProblemsInput"}
14466	if s.Arn == nil {
14467		invalidParams.Add(request.NewErrParamRequired("Arn"))
14468	}
14469	if s.Arn != nil && len(*s.Arn) < 32 {
14470		invalidParams.Add(request.NewErrParamMinLen("Arn", 32))
14471	}
14472	if s.NextToken != nil && len(*s.NextToken) < 4 {
14473		invalidParams.Add(request.NewErrParamMinLen("NextToken", 4))
14474	}
14475
14476	if invalidParams.Len() > 0 {
14477		return invalidParams
14478	}
14479	return nil
14480}
14481
14482// SetArn sets the Arn field's value.
14483func (s *ListUniqueProblemsInput) SetArn(v string) *ListUniqueProblemsInput {
14484	s.Arn = &v
14485	return s
14486}
14487
14488// SetNextToken sets the NextToken field's value.
14489func (s *ListUniqueProblemsInput) SetNextToken(v string) *ListUniqueProblemsInput {
14490	s.NextToken = &v
14491	return s
14492}
14493
14494// Represents the result of a list unique problems request.
14495type ListUniqueProblemsOutput struct {
14496	_ struct{} `type:"structure"`
14497
14498	// If the number of items that are returned is significantly large, this is
14499	// an identifier that is also returned. It can be used in a subsequent call
14500	// to this operation to return the next set of items in the list.
14501	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
14502
14503	// Information about the unique problems.
14504	//
14505	// Allowed values include:
14506	//
14507	//    * PENDING
14508	//
14509	//    * PASSED
14510	//
14511	//    * WARNED
14512	//
14513	//    * FAILED
14514	//
14515	//    * SKIPPED
14516	//
14517	//    * ERRORED
14518	//
14519	//    * STOPPED
14520	UniqueProblems map[string][]*UniqueProblem `locationName:"uniqueProblems" type:"map"`
14521}
14522
14523// String returns the string representation
14524func (s ListUniqueProblemsOutput) String() string {
14525	return awsutil.Prettify(s)
14526}
14527
14528// GoString returns the string representation
14529func (s ListUniqueProblemsOutput) GoString() string {
14530	return s.String()
14531}
14532
14533// SetNextToken sets the NextToken field's value.
14534func (s *ListUniqueProblemsOutput) SetNextToken(v string) *ListUniqueProblemsOutput {
14535	s.NextToken = &v
14536	return s
14537}
14538
14539// SetUniqueProblems sets the UniqueProblems field's value.
14540func (s *ListUniqueProblemsOutput) SetUniqueProblems(v map[string][]*UniqueProblem) *ListUniqueProblemsOutput {
14541	s.UniqueProblems = v
14542	return s
14543}
14544
14545// Represents a request to the list uploads operation.
14546type ListUploadsInput struct {
14547	_ struct{} `type:"structure"`
14548
14549	// The Amazon Resource Name (ARN) of the project for which you want to list
14550	// uploads.
14551	//
14552	// Arn is a required field
14553	Arn *string `locationName:"arn" min:"32" type:"string" required:"true"`
14554
14555	// An identifier that was returned from the previous call to this operation,
14556	// which can be used to return the next set of items in the list.
14557	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
14558
14559	// The type of upload.
14560	//
14561	// Must be one of the following values:
14562	//
14563	//    * ANDROID_APP
14564	//
14565	//    * IOS_APP
14566	//
14567	//    * WEB_APP
14568	//
14569	//    * EXTERNAL_DATA
14570	//
14571	//    * APPIUM_JAVA_JUNIT_TEST_PACKAGE
14572	//
14573	//    * APPIUM_JAVA_TESTNG_TEST_PACKAGE
14574	//
14575	//    * APPIUM_PYTHON_TEST_PACKAGE
14576	//
14577	//    * APPIUM_NODE_TEST_PACKAGE
14578	//
14579	//    * APPIUM_RUBY_TEST_PACKAGE
14580	//
14581	//    * APPIUM_WEB_JAVA_JUNIT_TEST_PACKAGE
14582	//
14583	//    * APPIUM_WEB_JAVA_TESTNG_TEST_PACKAGE
14584	//
14585	//    * APPIUM_WEB_PYTHON_TEST_PACKAGE
14586	//
14587	//    * APPIUM_WEB_NODE_TEST_PACKAGE
14588	//
14589	//    * APPIUM_WEB_RUBY_TEST_PACKAGE
14590	//
14591	//    * CALABASH_TEST_PACKAGE
14592	//
14593	//    * INSTRUMENTATION_TEST_PACKAGE
14594	//
14595	//    * UIAUTOMATION_TEST_PACKAGE
14596	//
14597	//    * UIAUTOMATOR_TEST_PACKAGE
14598	//
14599	//    * XCTEST_TEST_PACKAGE
14600	//
14601	//    * XCTEST_UI_TEST_PACKAGE
14602	//
14603	//    * APPIUM_JAVA_JUNIT_TEST_SPEC
14604	//
14605	//    * APPIUM_JAVA_TESTNG_TEST_SPEC
14606	//
14607	//    * APPIUM_PYTHON_TEST_SPEC
14608	//
14609	//    * APPIUM_NODE_TEST_SPEC
14610	//
14611	//    * APPIUM_RUBY_TEST_SPEC
14612	//
14613	//    * APPIUM_WEB_JAVA_JUNIT_TEST_SPEC
14614	//
14615	//    * APPIUM_WEB_JAVA_TESTNG_TEST_SPEC
14616	//
14617	//    * APPIUM_WEB_PYTHON_TEST_SPEC
14618	//
14619	//    * APPIUM_WEB_NODE_TEST_SPEC
14620	//
14621	//    * APPIUM_WEB_RUBY_TEST_SPEC
14622	//
14623	//    * INSTRUMENTATION_TEST_SPEC
14624	//
14625	//    * XCTEST_UI_TEST_SPEC
14626	Type *string `locationName:"type" type:"string" enum:"UploadType"`
14627}
14628
14629// String returns the string representation
14630func (s ListUploadsInput) String() string {
14631	return awsutil.Prettify(s)
14632}
14633
14634// GoString returns the string representation
14635func (s ListUploadsInput) GoString() string {
14636	return s.String()
14637}
14638
14639// Validate inspects the fields of the type to determine if they are valid.
14640func (s *ListUploadsInput) Validate() error {
14641	invalidParams := request.ErrInvalidParams{Context: "ListUploadsInput"}
14642	if s.Arn == nil {
14643		invalidParams.Add(request.NewErrParamRequired("Arn"))
14644	}
14645	if s.Arn != nil && len(*s.Arn) < 32 {
14646		invalidParams.Add(request.NewErrParamMinLen("Arn", 32))
14647	}
14648	if s.NextToken != nil && len(*s.NextToken) < 4 {
14649		invalidParams.Add(request.NewErrParamMinLen("NextToken", 4))
14650	}
14651
14652	if invalidParams.Len() > 0 {
14653		return invalidParams
14654	}
14655	return nil
14656}
14657
14658// SetArn sets the Arn field's value.
14659func (s *ListUploadsInput) SetArn(v string) *ListUploadsInput {
14660	s.Arn = &v
14661	return s
14662}
14663
14664// SetNextToken sets the NextToken field's value.
14665func (s *ListUploadsInput) SetNextToken(v string) *ListUploadsInput {
14666	s.NextToken = &v
14667	return s
14668}
14669
14670// SetType sets the Type field's value.
14671func (s *ListUploadsInput) SetType(v string) *ListUploadsInput {
14672	s.Type = &v
14673	return s
14674}
14675
14676// Represents the result of a list uploads request.
14677type ListUploadsOutput struct {
14678	_ struct{} `type:"structure"`
14679
14680	// If the number of items that are returned is significantly large, this is
14681	// an identifier that is also returned. It can be used in a subsequent call
14682	// to this operation to return the next set of items in the list.
14683	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
14684
14685	// Information about the uploads.
14686	Uploads []*Upload `locationName:"uploads" type:"list"`
14687}
14688
14689// String returns the string representation
14690func (s ListUploadsOutput) String() string {
14691	return awsutil.Prettify(s)
14692}
14693
14694// GoString returns the string representation
14695func (s ListUploadsOutput) GoString() string {
14696	return s.String()
14697}
14698
14699// SetNextToken sets the NextToken field's value.
14700func (s *ListUploadsOutput) SetNextToken(v string) *ListUploadsOutput {
14701	s.NextToken = &v
14702	return s
14703}
14704
14705// SetUploads sets the Uploads field's value.
14706func (s *ListUploadsOutput) SetUploads(v []*Upload) *ListUploadsOutput {
14707	s.Uploads = v
14708	return s
14709}
14710
14711type ListVPCEConfigurationsInput struct {
14712	_ struct{} `type:"structure"`
14713
14714	// An integer that specifies the maximum number of items you want to return
14715	// in the API response.
14716	MaxResults *int64 `locationName:"maxResults" type:"integer"`
14717
14718	// An identifier that was returned from the previous call to this operation,
14719	// which can be used to return the next set of items in the list.
14720	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
14721}
14722
14723// String returns the string representation
14724func (s ListVPCEConfigurationsInput) String() string {
14725	return awsutil.Prettify(s)
14726}
14727
14728// GoString returns the string representation
14729func (s ListVPCEConfigurationsInput) GoString() string {
14730	return s.String()
14731}
14732
14733// Validate inspects the fields of the type to determine if they are valid.
14734func (s *ListVPCEConfigurationsInput) Validate() error {
14735	invalidParams := request.ErrInvalidParams{Context: "ListVPCEConfigurationsInput"}
14736	if s.NextToken != nil && len(*s.NextToken) < 4 {
14737		invalidParams.Add(request.NewErrParamMinLen("NextToken", 4))
14738	}
14739
14740	if invalidParams.Len() > 0 {
14741		return invalidParams
14742	}
14743	return nil
14744}
14745
14746// SetMaxResults sets the MaxResults field's value.
14747func (s *ListVPCEConfigurationsInput) SetMaxResults(v int64) *ListVPCEConfigurationsInput {
14748	s.MaxResults = &v
14749	return s
14750}
14751
14752// SetNextToken sets the NextToken field's value.
14753func (s *ListVPCEConfigurationsInput) SetNextToken(v string) *ListVPCEConfigurationsInput {
14754	s.NextToken = &v
14755	return s
14756}
14757
14758type ListVPCEConfigurationsOutput struct {
14759	_ struct{} `type:"structure"`
14760
14761	// An identifier that was returned from the previous call to this operation,
14762	// which can be used to return the next set of items in the list.
14763	NextToken *string `locationName:"nextToken" min:"4" type:"string"`
14764
14765	// An array of VPCEConfiguration objects that contain information about your
14766	// VPC endpoint configuration.
14767	VpceConfigurations []*VPCEConfiguration `locationName:"vpceConfigurations" type:"list"`
14768}
14769
14770// String returns the string representation
14771func (s ListVPCEConfigurationsOutput) String() string {
14772	return awsutil.Prettify(s)
14773}
14774
14775// GoString returns the string representation
14776func (s ListVPCEConfigurationsOutput) GoString() string {
14777	return s.String()
14778}
14779
14780// SetNextToken sets the NextToken field's value.
14781func (s *ListVPCEConfigurationsOutput) SetNextToken(v string) *ListVPCEConfigurationsOutput {
14782	s.NextToken = &v
14783	return s
14784}
14785
14786// SetVpceConfigurations sets the VpceConfigurations field's value.
14787func (s *ListVPCEConfigurationsOutput) SetVpceConfigurations(v []*VPCEConfiguration) *ListVPCEConfigurationsOutput {
14788	s.VpceConfigurations = v
14789	return s
14790}
14791
14792// Represents a latitude and longitude pair, expressed in geographic coordinate
14793// system degrees (for example, 47.6204, -122.3491).
14794//
14795// Elevation is currently not supported.
14796type Location struct {
14797	_ struct{} `type:"structure"`
14798
14799	// The latitude.
14800	//
14801	// Latitude is a required field
14802	Latitude *float64 `locationName:"latitude" type:"double" required:"true"`
14803
14804	// The longitude.
14805	//
14806	// Longitude is a required field
14807	Longitude *float64 `locationName:"longitude" type:"double" required:"true"`
14808}
14809
14810// String returns the string representation
14811func (s Location) String() string {
14812	return awsutil.Prettify(s)
14813}
14814
14815// GoString returns the string representation
14816func (s Location) GoString() string {
14817	return s.String()
14818}
14819
14820// Validate inspects the fields of the type to determine if they are valid.
14821func (s *Location) Validate() error {
14822	invalidParams := request.ErrInvalidParams{Context: "Location"}
14823	if s.Latitude == nil {
14824		invalidParams.Add(request.NewErrParamRequired("Latitude"))
14825	}
14826	if s.Longitude == nil {
14827		invalidParams.Add(request.NewErrParamRequired("Longitude"))
14828	}
14829
14830	if invalidParams.Len() > 0 {
14831		return invalidParams
14832	}
14833	return nil
14834}
14835
14836// SetLatitude sets the Latitude field's value.
14837func (s *Location) SetLatitude(v float64) *Location {
14838	s.Latitude = &v
14839	return s
14840}
14841
14842// SetLongitude sets the Longitude field's value.
14843func (s *Location) SetLongitude(v float64) *Location {
14844	s.Longitude = &v
14845	return s
14846}
14847
14848// A number that represents the monetary amount for an offering or transaction.
14849type MonetaryAmount struct {
14850	_ struct{} `type:"structure"`
14851
14852	// The numerical amount of an offering or transaction.
14853	Amount *float64 `locationName:"amount" type:"double"`
14854
14855	// The currency code of a monetary amount. For example, USD means U.S. dollars.
14856	CurrencyCode *string `locationName:"currencyCode" type:"string" enum:"CurrencyCode"`
14857}
14858
14859// String returns the string representation
14860func (s MonetaryAmount) String() string {
14861	return awsutil.Prettify(s)
14862}
14863
14864// GoString returns the string representation
14865func (s MonetaryAmount) GoString() string {
14866	return s.String()
14867}
14868
14869// SetAmount sets the Amount field's value.
14870func (s *MonetaryAmount) SetAmount(v float64) *MonetaryAmount {
14871	s.Amount = &v
14872	return s
14873}
14874
14875// SetCurrencyCode sets the CurrencyCode field's value.
14876func (s *MonetaryAmount) SetCurrencyCode(v string) *MonetaryAmount {
14877	s.CurrencyCode = &v
14878	return s
14879}
14880
14881// An array of settings that describes characteristics of a network profile.
14882type NetworkProfile struct {
14883	_ struct{} `type:"structure"`
14884
14885	// The Amazon Resource Name (ARN) of the network profile.
14886	Arn *string `locationName:"arn" min:"32" type:"string"`
14887
14888	// The description of the network profile.
14889	Description *string `locationName:"description" type:"string"`
14890
14891	// The data throughput rate in bits per second, as an integer from 0 to 104857600.
14892	DownlinkBandwidthBits *int64 `locationName:"downlinkBandwidthBits" type:"long"`
14893
14894	// Delay time for all packets to destination in milliseconds as an integer from
14895	// 0 to 2000.
14896	DownlinkDelayMs *int64 `locationName:"downlinkDelayMs" type:"long"`
14897
14898	// Time variation in the delay of received packets in milliseconds as an integer
14899	// from 0 to 2000.
14900	DownlinkJitterMs *int64 `locationName:"downlinkJitterMs" type:"long"`
14901
14902	// Proportion of received packets that fail to arrive from 0 to 100 percent.
14903	DownlinkLossPercent *int64 `locationName:"downlinkLossPercent" type:"integer"`
14904
14905	// The name of the network profile.
14906	Name *string `locationName:"name" type:"string"`
14907
14908	// The type of network profile. Valid values are listed here.
14909	Type *string `locationName:"type" type:"string" enum:"NetworkProfileType"`
14910
14911	// The data throughput rate in bits per second, as an integer from 0 to 104857600.
14912	UplinkBandwidthBits *int64 `locationName:"uplinkBandwidthBits" type:"long"`
14913
14914	// Delay time for all packets to destination in milliseconds as an integer from
14915	// 0 to 2000.
14916	UplinkDelayMs *int64 `locationName:"uplinkDelayMs" type:"long"`
14917
14918	// Time variation in the delay of received packets in milliseconds as an integer
14919	// from 0 to 2000.
14920	UplinkJitterMs *int64 `locationName:"uplinkJitterMs" type:"long"`
14921
14922	// Proportion of transmitted packets that fail to arrive from 0 to 100 percent.
14923	UplinkLossPercent *int64 `locationName:"uplinkLossPercent" type:"integer"`
14924}
14925
14926// String returns the string representation
14927func (s NetworkProfile) String() string {
14928	return awsutil.Prettify(s)
14929}
14930
14931// GoString returns the string representation
14932func (s NetworkProfile) GoString() string {
14933	return s.String()
14934}
14935
14936// SetArn sets the Arn field's value.
14937func (s *NetworkProfile) SetArn(v string) *NetworkProfile {
14938	s.Arn = &v
14939	return s
14940}
14941
14942// SetDescription sets the Description field's value.
14943func (s *NetworkProfile) SetDescription(v string) *NetworkProfile {
14944	s.Description = &v
14945	return s
14946}
14947
14948// SetDownlinkBandwidthBits sets the DownlinkBandwidthBits field's value.
14949func (s *NetworkProfile) SetDownlinkBandwidthBits(v int64) *NetworkProfile {
14950	s.DownlinkBandwidthBits = &v
14951	return s
14952}
14953
14954// SetDownlinkDelayMs sets the DownlinkDelayMs field's value.
14955func (s *NetworkProfile) SetDownlinkDelayMs(v int64) *NetworkProfile {
14956	s.DownlinkDelayMs = &v
14957	return s
14958}
14959
14960// SetDownlinkJitterMs sets the DownlinkJitterMs field's value.
14961func (s *NetworkProfile) SetDownlinkJitterMs(v int64) *NetworkProfile {
14962	s.DownlinkJitterMs = &v
14963	return s
14964}
14965
14966// SetDownlinkLossPercent sets the DownlinkLossPercent field's value.
14967func (s *NetworkProfile) SetDownlinkLossPercent(v int64) *NetworkProfile {
14968	s.DownlinkLossPercent = &v
14969	return s
14970}
14971
14972// SetName sets the Name field's value.
14973func (s *NetworkProfile) SetName(v string) *NetworkProfile {
14974	s.Name = &v
14975	return s
14976}
14977
14978// SetType sets the Type field's value.
14979func (s *NetworkProfile) SetType(v string) *NetworkProfile {
14980	s.Type = &v
14981	return s
14982}
14983
14984// SetUplinkBandwidthBits sets the UplinkBandwidthBits field's value.
14985func (s *NetworkProfile) SetUplinkBandwidthBits(v int64) *NetworkProfile {
14986	s.UplinkBandwidthBits = &v
14987	return s
14988}
14989
14990// SetUplinkDelayMs sets the UplinkDelayMs field's value.
14991func (s *NetworkProfile) SetUplinkDelayMs(v int64) *NetworkProfile {
14992	s.UplinkDelayMs = &v
14993	return s
14994}
14995
14996// SetUplinkJitterMs sets the UplinkJitterMs field's value.
14997func (s *NetworkProfile) SetUplinkJitterMs(v int64) *NetworkProfile {
14998	s.UplinkJitterMs = &v
14999	return s
15000}
15001
15002// SetUplinkLossPercent sets the UplinkLossPercent field's value.
15003func (s *NetworkProfile) SetUplinkLossPercent(v int64) *NetworkProfile {
15004	s.UplinkLossPercent = &v
15005	return s
15006}
15007
15008// Represents the metadata of a device offering.
15009type Offering struct {
15010	_ struct{} `type:"structure"`
15011
15012	// A string that describes the offering.
15013	Description *string `locationName:"description" type:"string"`
15014
15015	// The ID that corresponds to a device offering.
15016	Id *string `locationName:"id" min:"32" type:"string"`
15017
15018	// The platform of the device (for example, ANDROID or IOS).
15019	Platform *string `locationName:"platform" type:"string" enum:"DevicePlatform"`
15020
15021	// Specifies whether there are recurring charges for the offering.
15022	RecurringCharges []*RecurringCharge `locationName:"recurringCharges" type:"list"`
15023
15024	// The type of offering (for example, RECURRING) for a device.
15025	Type *string `locationName:"type" type:"string" enum:"OfferingType"`
15026}
15027
15028// String returns the string representation
15029func (s Offering) String() string {
15030	return awsutil.Prettify(s)
15031}
15032
15033// GoString returns the string representation
15034func (s Offering) GoString() string {
15035	return s.String()
15036}
15037
15038// SetDescription sets the Description field's value.
15039func (s *Offering) SetDescription(v string) *Offering {
15040	s.Description = &v
15041	return s
15042}
15043
15044// SetId sets the Id field's value.
15045func (s *Offering) SetId(v string) *Offering {
15046	s.Id = &v
15047	return s
15048}
15049
15050// SetPlatform sets the Platform field's value.
15051func (s *Offering) SetPlatform(v string) *Offering {
15052	s.Platform = &v
15053	return s
15054}
15055
15056// SetRecurringCharges sets the RecurringCharges field's value.
15057func (s *Offering) SetRecurringCharges(v []*RecurringCharge) *Offering {
15058	s.RecurringCharges = v
15059	return s
15060}
15061
15062// SetType sets the Type field's value.
15063func (s *Offering) SetType(v string) *Offering {
15064	s.Type = &v
15065	return s
15066}
15067
15068// Represents information about an offering promotion.
15069type OfferingPromotion struct {
15070	_ struct{} `type:"structure"`
15071
15072	// A string that describes the offering promotion.
15073	Description *string `locationName:"description" type:"string"`
15074
15075	// The ID of the offering promotion.
15076	Id *string `locationName:"id" min:"4" type:"string"`
15077}
15078
15079// String returns the string representation
15080func (s OfferingPromotion) String() string {
15081	return awsutil.Prettify(s)
15082}
15083
15084// GoString returns the string representation
15085func (s OfferingPromotion) GoString() string {
15086	return s.String()
15087}
15088
15089// SetDescription sets the Description field's value.
15090func (s *OfferingPromotion) SetDescription(v string) *OfferingPromotion {
15091	s.Description = &v
15092	return s
15093}
15094
15095// SetId sets the Id field's value.
15096func (s *OfferingPromotion) SetId(v string) *OfferingPromotion {
15097	s.Id = &v
15098	return s
15099}
15100
15101// The status of the offering.
15102type OfferingStatus struct {
15103	_ struct{} `type:"structure"`
15104
15105	// The date on which the offering is effective.
15106	EffectiveOn *time.Time `locationName:"effectiveOn" type:"timestamp"`
15107
15108	// Represents the metadata of an offering status.
15109	Offering *Offering `locationName:"offering" type:"structure"`
15110
15111	// The number of available devices in the offering.
15112	Quantity *int64 `locationName:"quantity" type:"integer"`
15113
15114	// The type specified for the offering status.
15115	Type *string `locationName:"type" type:"string" enum:"OfferingTransactionType"`
15116}
15117
15118// String returns the string representation
15119func (s OfferingStatus) String() string {
15120	return awsutil.Prettify(s)
15121}
15122
15123// GoString returns the string representation
15124func (s OfferingStatus) GoString() string {
15125	return s.String()
15126}
15127
15128// SetEffectiveOn sets the EffectiveOn field's value.
15129func (s *OfferingStatus) SetEffectiveOn(v time.Time) *OfferingStatus {
15130	s.EffectiveOn = &v
15131	return s
15132}
15133
15134// SetOffering sets the Offering field's value.
15135func (s *OfferingStatus) SetOffering(v *Offering) *OfferingStatus {
15136	s.Offering = v
15137	return s
15138}
15139
15140// SetQuantity sets the Quantity field's value.
15141func (s *OfferingStatus) SetQuantity(v int64) *OfferingStatus {
15142	s.Quantity = &v
15143	return s
15144}
15145
15146// SetType sets the Type field's value.
15147func (s *OfferingStatus) SetType(v string) *OfferingStatus {
15148	s.Type = &v
15149	return s
15150}
15151
15152// Represents the metadata of an offering transaction.
15153type OfferingTransaction struct {
15154	_ struct{} `type:"structure"`
15155
15156	// The cost of an offering transaction.
15157	Cost *MonetaryAmount `locationName:"cost" type:"structure"`
15158
15159	// The date on which an offering transaction was created.
15160	CreatedOn *time.Time `locationName:"createdOn" type:"timestamp"`
15161
15162	// The ID that corresponds to a device offering promotion.
15163	OfferingPromotionId *string `locationName:"offeringPromotionId" min:"4" type:"string"`
15164
15165	// The status of an offering transaction.
15166	OfferingStatus *OfferingStatus `locationName:"offeringStatus" type:"structure"`
15167
15168	// The transaction ID of the offering transaction.
15169	TransactionId *string `locationName:"transactionId" min:"32" type:"string"`
15170}
15171
15172// String returns the string representation
15173func (s OfferingTransaction) String() string {
15174	return awsutil.Prettify(s)
15175}
15176
15177// GoString returns the string representation
15178func (s OfferingTransaction) GoString() string {
15179	return s.String()
15180}
15181
15182// SetCost sets the Cost field's value.
15183func (s *OfferingTransaction) SetCost(v *MonetaryAmount) *OfferingTransaction {
15184	s.Cost = v
15185	return s
15186}
15187
15188// SetCreatedOn sets the CreatedOn field's value.
15189func (s *OfferingTransaction) SetCreatedOn(v time.Time) *OfferingTransaction {
15190	s.CreatedOn = &v
15191	return s
15192}
15193
15194// SetOfferingPromotionId sets the OfferingPromotionId field's value.
15195func (s *OfferingTransaction) SetOfferingPromotionId(v string) *OfferingTransaction {
15196	s.OfferingPromotionId = &v
15197	return s
15198}
15199
15200// SetOfferingStatus sets the OfferingStatus field's value.
15201func (s *OfferingTransaction) SetOfferingStatus(v *OfferingStatus) *OfferingTransaction {
15202	s.OfferingStatus = v
15203	return s
15204}
15205
15206// SetTransactionId sets the TransactionId field's value.
15207func (s *OfferingTransaction) SetTransactionId(v string) *OfferingTransaction {
15208	s.TransactionId = &v
15209	return s
15210}
15211
15212// Represents a specific warning or failure.
15213type Problem struct {
15214	_ struct{} `type:"structure"`
15215
15216	// Information about the associated device.
15217	Device *Device `locationName:"device" type:"structure"`
15218
15219	// Information about the associated job.
15220	Job *ProblemDetail `locationName:"job" type:"structure"`
15221
15222	// A message about the problem's result.
15223	Message *string `locationName:"message" type:"string"`
15224
15225	// The problem's result.
15226	//
15227	// Allowed values include:
15228	//
15229	//    * PENDING
15230	//
15231	//    * PASSED
15232	//
15233	//    * WARNED
15234	//
15235	//    * FAILED
15236	//
15237	//    * SKIPPED
15238	//
15239	//    * ERRORED
15240	//
15241	//    * STOPPED
15242	Result *string `locationName:"result" type:"string" enum:"ExecutionResult"`
15243
15244	// Information about the associated run.
15245	Run *ProblemDetail `locationName:"run" type:"structure"`
15246
15247	// Information about the associated suite.
15248	Suite *ProblemDetail `locationName:"suite" type:"structure"`
15249
15250	// Information about the associated test.
15251	Test *ProblemDetail `locationName:"test" type:"structure"`
15252}
15253
15254// String returns the string representation
15255func (s Problem) String() string {
15256	return awsutil.Prettify(s)
15257}
15258
15259// GoString returns the string representation
15260func (s Problem) GoString() string {
15261	return s.String()
15262}
15263
15264// SetDevice sets the Device field's value.
15265func (s *Problem) SetDevice(v *Device) *Problem {
15266	s.Device = v
15267	return s
15268}
15269
15270// SetJob sets the Job field's value.
15271func (s *Problem) SetJob(v *ProblemDetail) *Problem {
15272	s.Job = v
15273	return s
15274}
15275
15276// SetMessage sets the Message field's value.
15277func (s *Problem) SetMessage(v string) *Problem {
15278	s.Message = &v
15279	return s
15280}
15281
15282// SetResult sets the Result field's value.
15283func (s *Problem) SetResult(v string) *Problem {
15284	s.Result = &v
15285	return s
15286}
15287
15288// SetRun sets the Run field's value.
15289func (s *Problem) SetRun(v *ProblemDetail) *Problem {
15290	s.Run = v
15291	return s
15292}
15293
15294// SetSuite sets the Suite field's value.
15295func (s *Problem) SetSuite(v *ProblemDetail) *Problem {
15296	s.Suite = v
15297	return s
15298}
15299
15300// SetTest sets the Test field's value.
15301func (s *Problem) SetTest(v *ProblemDetail) *Problem {
15302	s.Test = v
15303	return s
15304}
15305
15306// Information about a problem detail.
15307type ProblemDetail struct {
15308	_ struct{} `type:"structure"`
15309
15310	// The problem detail's ARN.
15311	Arn *string `locationName:"arn" min:"32" type:"string"`
15312
15313	// The problem detail's name.
15314	Name *string `locationName:"name" type:"string"`
15315}
15316
15317// String returns the string representation
15318func (s ProblemDetail) String() string {
15319	return awsutil.Prettify(s)
15320}
15321
15322// GoString returns the string representation
15323func (s ProblemDetail) GoString() string {
15324	return s.String()
15325}
15326
15327// SetArn sets the Arn field's value.
15328func (s *ProblemDetail) SetArn(v string) *ProblemDetail {
15329	s.Arn = &v
15330	return s
15331}
15332
15333// SetName sets the Name field's value.
15334func (s *ProblemDetail) SetName(v string) *ProblemDetail {
15335	s.Name = &v
15336	return s
15337}
15338
15339// Represents an operating-system neutral workspace for running and managing
15340// tests.
15341type Project struct {
15342	_ struct{} `type:"structure"`
15343
15344	// The project's ARN.
15345	Arn *string `locationName:"arn" min:"32" type:"string"`
15346
15347	// When the project was created.
15348	Created *time.Time `locationName:"created" type:"timestamp"`
15349
15350	// The default number of minutes (at the project level) a test run executes
15351	// before it times out. The default value is 150 minutes.
15352	DefaultJobTimeoutMinutes *int64 `locationName:"defaultJobTimeoutMinutes" type:"integer"`
15353
15354	// The project's name.
15355	Name *string `locationName:"name" type:"string"`
15356}
15357
15358// String returns the string representation
15359func (s Project) String() string {
15360	return awsutil.Prettify(s)
15361}
15362
15363// GoString returns the string representation
15364func (s Project) GoString() string {
15365	return s.String()
15366}
15367
15368// SetArn sets the Arn field's value.
15369func (s *Project) SetArn(v string) *Project {
15370	s.Arn = &v
15371	return s
15372}
15373
15374// SetCreated sets the Created field's value.
15375func (s *Project) SetCreated(v time.Time) *Project {
15376	s.Created = &v
15377	return s
15378}
15379
15380// SetDefaultJobTimeoutMinutes sets the DefaultJobTimeoutMinutes field's value.
15381func (s *Project) SetDefaultJobTimeoutMinutes(v int64) *Project {
15382	s.DefaultJobTimeoutMinutes = &v
15383	return s
15384}
15385
15386// SetName sets the Name field's value.
15387func (s *Project) SetName(v string) *Project {
15388	s.Name = &v
15389	return s
15390}
15391
15392// Represents a request for a purchase offering.
15393type PurchaseOfferingInput struct {
15394	_ struct{} `type:"structure"`
15395
15396	// The ID of the offering.
15397	OfferingId *string `locationName:"offeringId" min:"32" type:"string"`
15398
15399	// The ID of the offering promotion to be applied to the purchase.
15400	OfferingPromotionId *string `locationName:"offeringPromotionId" min:"4" type:"string"`
15401
15402	// The number of device slots to purchase in an offering request.
15403	Quantity *int64 `locationName:"quantity" type:"integer"`
15404}
15405
15406// String returns the string representation
15407func (s PurchaseOfferingInput) String() string {
15408	return awsutil.Prettify(s)
15409}
15410
15411// GoString returns the string representation
15412func (s PurchaseOfferingInput) GoString() string {
15413	return s.String()
15414}
15415
15416// Validate inspects the fields of the type to determine if they are valid.
15417func (s *PurchaseOfferingInput) Validate() error {
15418	invalidParams := request.ErrInvalidParams{Context: "PurchaseOfferingInput"}
15419	if s.OfferingId != nil && len(*s.OfferingId) < 32 {
15420		invalidParams.Add(request.NewErrParamMinLen("OfferingId", 32))
15421	}
15422	if s.OfferingPromotionId != nil && len(*s.OfferingPromotionId) < 4 {
15423		invalidParams.Add(request.NewErrParamMinLen("OfferingPromotionId", 4))
15424	}
15425
15426	if invalidParams.Len() > 0 {
15427		return invalidParams
15428	}
15429	return nil
15430}
15431
15432// SetOfferingId sets the OfferingId field's value.
15433func (s *PurchaseOfferingInput) SetOfferingId(v string) *PurchaseOfferingInput {
15434	s.OfferingId = &v
15435	return s
15436}
15437
15438// SetOfferingPromotionId sets the OfferingPromotionId field's value.
15439func (s *PurchaseOfferingInput) SetOfferingPromotionId(v string) *PurchaseOfferingInput {
15440	s.OfferingPromotionId = &v
15441	return s
15442}
15443
15444// SetQuantity sets the Quantity field's value.
15445func (s *PurchaseOfferingInput) SetQuantity(v int64) *PurchaseOfferingInput {
15446	s.Quantity = &v
15447	return s
15448}
15449
15450// The result of the purchase offering (for example, success or failure).
15451type PurchaseOfferingOutput struct {
15452	_ struct{} `type:"structure"`
15453
15454	// Represents the offering transaction for the purchase result.
15455	OfferingTransaction *OfferingTransaction `locationName:"offeringTransaction" type:"structure"`
15456}
15457
15458// String returns the string representation
15459func (s PurchaseOfferingOutput) String() string {
15460	return awsutil.Prettify(s)
15461}
15462
15463// GoString returns the string representation
15464func (s PurchaseOfferingOutput) GoString() string {
15465	return s.String()
15466}
15467
15468// SetOfferingTransaction sets the OfferingTransaction field's value.
15469func (s *PurchaseOfferingOutput) SetOfferingTransaction(v *OfferingTransaction) *PurchaseOfferingOutput {
15470	s.OfferingTransaction = v
15471	return s
15472}
15473
15474// Represents the set of radios and their states on a device. Examples of radios
15475// include Wi-Fi, GPS, Bluetooth, and NFC.
15476type Radios struct {
15477	_ struct{} `type:"structure"`
15478
15479	// True if Bluetooth is enabled at the beginning of the test. Otherwise, false.
15480	Bluetooth *bool `locationName:"bluetooth" type:"boolean"`
15481
15482	// True if GPS is enabled at the beginning of the test. Otherwise, false.
15483	Gps *bool `locationName:"gps" type:"boolean"`
15484
15485	// True if NFC is enabled at the beginning of the test. Otherwise, false.
15486	Nfc *bool `locationName:"nfc" type:"boolean"`
15487
15488	// True if Wi-Fi is enabled at the beginning of the test. Otherwise, false.
15489	Wifi *bool `locationName:"wifi" type:"boolean"`
15490}
15491
15492// String returns the string representation
15493func (s Radios) String() string {
15494	return awsutil.Prettify(s)
15495}
15496
15497// GoString returns the string representation
15498func (s Radios) GoString() string {
15499	return s.String()
15500}
15501
15502// SetBluetooth sets the Bluetooth field's value.
15503func (s *Radios) SetBluetooth(v bool) *Radios {
15504	s.Bluetooth = &v
15505	return s
15506}
15507
15508// SetGps sets the Gps field's value.
15509func (s *Radios) SetGps(v bool) *Radios {
15510	s.Gps = &v
15511	return s
15512}
15513
15514// SetNfc sets the Nfc field's value.
15515func (s *Radios) SetNfc(v bool) *Radios {
15516	s.Nfc = &v
15517	return s
15518}
15519
15520// SetWifi sets the Wifi field's value.
15521func (s *Radios) SetWifi(v bool) *Radios {
15522	s.Wifi = &v
15523	return s
15524}
15525
15526// Specifies whether charges for devices are recurring.
15527type RecurringCharge struct {
15528	_ struct{} `type:"structure"`
15529
15530	// The cost of the recurring charge.
15531	Cost *MonetaryAmount `locationName:"cost" type:"structure"`
15532
15533	// The frequency in which charges recur.
15534	Frequency *string `locationName:"frequency" type:"string" enum:"RecurringChargeFrequency"`
15535}
15536
15537// String returns the string representation
15538func (s RecurringCharge) String() string {
15539	return awsutil.Prettify(s)
15540}
15541
15542// GoString returns the string representation
15543func (s RecurringCharge) GoString() string {
15544	return s.String()
15545}
15546
15547// SetCost sets the Cost field's value.
15548func (s *RecurringCharge) SetCost(v *MonetaryAmount) *RecurringCharge {
15549	s.Cost = v
15550	return s
15551}
15552
15553// SetFrequency sets the Frequency field's value.
15554func (s *RecurringCharge) SetFrequency(v string) *RecurringCharge {
15555	s.Frequency = &v
15556	return s
15557}
15558
15559// Represents information about the remote access session.
15560type RemoteAccessSession struct {
15561	_ struct{} `type:"structure"`
15562
15563	// The Amazon Resource Name (ARN) of the remote access session.
15564	Arn *string `locationName:"arn" min:"32" type:"string"`
15565
15566	// The billing method of the remote access session. Possible values include
15567	// METERED or UNMETERED. For more information about metered devices, see AWS
15568	// Device Farm terminology (https://docs.aws.amazon.com/devicefarm/latest/developerguide/welcome.html#welcome-terminology).
15569	BillingMethod *string `locationName:"billingMethod" type:"string" enum:"BillingMethod"`
15570
15571	// Unique identifier of your client for the remote access session. Only returned
15572	// if remote debugging is enabled for the remote access session.
15573	//
15574	// Remote debugging is no longer supported (https://docs.aws.amazon.com/devicefarm/latest/developerguide/history.html).
15575	ClientId *string `locationName:"clientId" type:"string"`
15576
15577	// The date and time the remote access session was created.
15578	Created *time.Time `locationName:"created" type:"timestamp"`
15579
15580	// The device (phone or tablet) used in the remote access session.
15581	Device *Device `locationName:"device" type:"structure"`
15582
15583	// The number of minutes a device is used in a remote access session (including
15584	// setup and teardown minutes).
15585	DeviceMinutes *DeviceMinutes `locationName:"deviceMinutes" type:"structure"`
15586
15587	// Unique device identifier for the remote device. Only returned if remote debugging
15588	// is enabled for the remote access session.
15589	//
15590	// Remote debugging is no longer supported (https://docs.aws.amazon.com/devicefarm/latest/developerguide/history.html).
15591	DeviceUdid *string `locationName:"deviceUdid" type:"string"`
15592
15593	// The endpoint for the remote access sesssion.
15594	Endpoint *string `locationName:"endpoint" type:"string"`
15595
15596	// IP address of the EC2 host where you need to connect to remotely debug devices.
15597	// Only returned if remote debugging is enabled for the remote access session.
15598	//
15599	// Remote debugging is no longer supported (https://docs.aws.amazon.com/devicefarm/latest/developerguide/history.html).
15600	HostAddress *string `locationName:"hostAddress" type:"string"`
15601
15602	// The ARN of the instance.
15603	InstanceArn *string `locationName:"instanceArn" min:"32" type:"string"`
15604
15605	// The interaction mode of the remote access session. Valid values are:
15606	//
15607	//    * INTERACTIVE: You can interact with the iOS device by viewing, touching,
15608	//    and rotating the screen. You cannot run XCUITest framework-based tests
15609	//    in this mode.
15610	//
15611	//    * NO_VIDEO: You are connected to the device, but cannot interact with
15612	//    it or view the screen. This mode has the fastest test execution speed.
15613	//    You can run XCUITest framework-based tests in this mode.
15614	//
15615	//    * VIDEO_ONLY: You can view the screen, but cannot touch or rotate it.
15616	//    You can run XCUITest framework-based tests and watch the screen in this
15617	//    mode.
15618	InteractionMode *string `locationName:"interactionMode" type:"string" enum:"InteractionMode"`
15619
15620	// A message about the remote access session.
15621	Message *string `locationName:"message" type:"string"`
15622
15623	// The name of the remote access session.
15624	Name *string `locationName:"name" type:"string"`
15625
15626	// This flag is set to true if remote debugging is enabled for the remote access
15627	// session.
15628	//
15629	// Remote debugging is no longer supported (https://docs.aws.amazon.com/devicefarm/latest/developerguide/history.html).
15630	RemoteDebugEnabled *bool `locationName:"remoteDebugEnabled" type:"boolean"`
15631
15632	// The ARN for the app to be recorded in the remote access session.
15633	RemoteRecordAppArn *string `locationName:"remoteRecordAppArn" min:"32" type:"string"`
15634
15635	// This flag is set to true if remote recording is enabled for the remote access
15636	// session.
15637	RemoteRecordEnabled *bool `locationName:"remoteRecordEnabled" type:"boolean"`
15638
15639	// The result of the remote access session. Can be any of the following:
15640	//
15641	//    * PENDING.
15642	//
15643	//    * PASSED.
15644	//
15645	//    * WARNED.
15646	//
15647	//    * FAILED.
15648	//
15649	//    * SKIPPED.
15650	//
15651	//    * ERRORED.
15652	//
15653	//    * STOPPED.
15654	Result *string `locationName:"result" type:"string" enum:"ExecutionResult"`
15655
15656	// When set to true, for private devices, Device Farm does not sign your app
15657	// again. For public devices, Device Farm always signs your apps again.
15658	//
15659	// For more information about how Device Farm re-signs your apps, see Do you
15660	// modify my app? (https://aws.amazon.com/device-farm/faq/) in the AWS Device
15661	// Farm FAQs.
15662	SkipAppResign *bool `locationName:"skipAppResign" type:"boolean"`
15663
15664	// The date and time the remote access session was started.
15665	Started *time.Time `locationName:"started" type:"timestamp"`
15666
15667	// The status of the remote access session. Can be any of the following:
15668	//
15669	//    * PENDING.
15670	//
15671	//    * PENDING_CONCURRENCY.
15672	//
15673	//    * PENDING_DEVICE.
15674	//
15675	//    * PROCESSING.
15676	//
15677	//    * SCHEDULING.
15678	//
15679	//    * PREPARING.
15680	//
15681	//    * RUNNING.
15682	//
15683	//    * COMPLETED.
15684	//
15685	//    * STOPPING.
15686	Status *string `locationName:"status" type:"string" enum:"ExecutionStatus"`
15687
15688	// The date and time the remote access session was stopped.
15689	Stopped *time.Time `locationName:"stopped" type:"timestamp"`
15690}
15691
15692// String returns the string representation
15693func (s RemoteAccessSession) String() string {
15694	return awsutil.Prettify(s)
15695}
15696
15697// GoString returns the string representation
15698func (s RemoteAccessSession) GoString() string {
15699	return s.String()
15700}
15701
15702// SetArn sets the Arn field's value.
15703func (s *RemoteAccessSession) SetArn(v string) *RemoteAccessSession {
15704	s.Arn = &v
15705	return s
15706}
15707
15708// SetBillingMethod sets the BillingMethod field's value.
15709func (s *RemoteAccessSession) SetBillingMethod(v string) *RemoteAccessSession {
15710	s.BillingMethod = &v
15711	return s
15712}
15713
15714// SetClientId sets the ClientId field's value.
15715func (s *RemoteAccessSession) SetClientId(v string) *RemoteAccessSession {
15716	s.ClientId = &v
15717	return s
15718}
15719
15720// SetCreated sets the Created field's value.
15721func (s *RemoteAccessSession) SetCreated(v time.Time) *RemoteAccessSession {
15722	s.Created = &v
15723	return s
15724}
15725
15726// SetDevice sets the Device field's value.
15727func (s *RemoteAccessSession) SetDevice(v *Device) *RemoteAccessSession {
15728	s.Device = v
15729	return s
15730}
15731
15732// SetDeviceMinutes sets the DeviceMinutes field's value.
15733func (s *RemoteAccessSession) SetDeviceMinutes(v *DeviceMinutes) *RemoteAccessSession {
15734	s.DeviceMinutes = v
15735	return s
15736}
15737
15738// SetDeviceUdid sets the DeviceUdid field's value.
15739func (s *RemoteAccessSession) SetDeviceUdid(v string) *RemoteAccessSession {
15740	s.DeviceUdid = &v
15741	return s
15742}
15743
15744// SetEndpoint sets the Endpoint field's value.
15745func (s *RemoteAccessSession) SetEndpoint(v string) *RemoteAccessSession {
15746	s.Endpoint = &v
15747	return s
15748}
15749
15750// SetHostAddress sets the HostAddress field's value.
15751func (s *RemoteAccessSession) SetHostAddress(v string) *RemoteAccessSession {
15752	s.HostAddress = &v
15753	return s
15754}
15755
15756// SetInstanceArn sets the InstanceArn field's value.
15757func (s *RemoteAccessSession) SetInstanceArn(v string) *RemoteAccessSession {
15758	s.InstanceArn = &v
15759	return s
15760}
15761
15762// SetInteractionMode sets the InteractionMode field's value.
15763func (s *RemoteAccessSession) SetInteractionMode(v string) *RemoteAccessSession {
15764	s.InteractionMode = &v
15765	return s
15766}
15767
15768// SetMessage sets the Message field's value.
15769func (s *RemoteAccessSession) SetMessage(v string) *RemoteAccessSession {
15770	s.Message = &v
15771	return s
15772}
15773
15774// SetName sets the Name field's value.
15775func (s *RemoteAccessSession) SetName(v string) *RemoteAccessSession {
15776	s.Name = &v
15777	return s
15778}
15779
15780// SetRemoteDebugEnabled sets the RemoteDebugEnabled field's value.
15781func (s *RemoteAccessSession) SetRemoteDebugEnabled(v bool) *RemoteAccessSession {
15782	s.RemoteDebugEnabled = &v
15783	return s
15784}
15785
15786// SetRemoteRecordAppArn sets the RemoteRecordAppArn field's value.
15787func (s *RemoteAccessSession) SetRemoteRecordAppArn(v string) *RemoteAccessSession {
15788	s.RemoteRecordAppArn = &v
15789	return s
15790}
15791
15792// SetRemoteRecordEnabled sets the RemoteRecordEnabled field's value.
15793func (s *RemoteAccessSession) SetRemoteRecordEnabled(v bool) *RemoteAccessSession {
15794	s.RemoteRecordEnabled = &v
15795	return s
15796}
15797
15798// SetResult sets the Result field's value.
15799func (s *RemoteAccessSession) SetResult(v string) *RemoteAccessSession {
15800	s.Result = &v
15801	return s
15802}
15803
15804// SetSkipAppResign sets the SkipAppResign field's value.
15805func (s *RemoteAccessSession) SetSkipAppResign(v bool) *RemoteAccessSession {
15806	s.SkipAppResign = &v
15807	return s
15808}
15809
15810// SetStarted sets the Started field's value.
15811func (s *RemoteAccessSession) SetStarted(v time.Time) *RemoteAccessSession {
15812	s.Started = &v
15813	return s
15814}
15815
15816// SetStatus sets the Status field's value.
15817func (s *RemoteAccessSession) SetStatus(v string) *RemoteAccessSession {
15818	s.Status = &v
15819	return s
15820}
15821
15822// SetStopped sets the Stopped field's value.
15823func (s *RemoteAccessSession) SetStopped(v time.Time) *RemoteAccessSession {
15824	s.Stopped = &v
15825	return s
15826}
15827
15828// A request that represents an offering renewal.
15829type RenewOfferingInput struct {
15830	_ struct{} `type:"structure"`
15831
15832	// The ID of a request to renew an offering.
15833	OfferingId *string `locationName:"offeringId" min:"32" type:"string"`
15834
15835	// The quantity requested in an offering renewal.
15836	Quantity *int64 `locationName:"quantity" type:"integer"`
15837}
15838
15839// String returns the string representation
15840func (s RenewOfferingInput) String() string {
15841	return awsutil.Prettify(s)
15842}
15843
15844// GoString returns the string representation
15845func (s RenewOfferingInput) GoString() string {
15846	return s.String()
15847}
15848
15849// Validate inspects the fields of the type to determine if they are valid.
15850func (s *RenewOfferingInput) Validate() error {
15851	invalidParams := request.ErrInvalidParams{Context: "RenewOfferingInput"}
15852	if s.OfferingId != nil && len(*s.OfferingId) < 32 {
15853		invalidParams.Add(request.NewErrParamMinLen("OfferingId", 32))
15854	}
15855
15856	if invalidParams.Len() > 0 {
15857		return invalidParams
15858	}
15859	return nil
15860}
15861
15862// SetOfferingId sets the OfferingId field's value.
15863func (s *RenewOfferingInput) SetOfferingId(v string) *RenewOfferingInput {
15864	s.OfferingId = &v
15865	return s
15866}
15867
15868// SetQuantity sets the Quantity field's value.
15869func (s *RenewOfferingInput) SetQuantity(v int64) *RenewOfferingInput {
15870	s.Quantity = &v
15871	return s
15872}
15873
15874// The result of a renewal offering.
15875type RenewOfferingOutput struct {
15876	_ struct{} `type:"structure"`
15877
15878	// Represents the status of the offering transaction for the renewal.
15879	OfferingTransaction *OfferingTransaction `locationName:"offeringTransaction" type:"structure"`
15880}
15881
15882// String returns the string representation
15883func (s RenewOfferingOutput) String() string {
15884	return awsutil.Prettify(s)
15885}
15886
15887// GoString returns the string representation
15888func (s RenewOfferingOutput) GoString() string {
15889	return s.String()
15890}
15891
15892// SetOfferingTransaction sets the OfferingTransaction field's value.
15893func (s *RenewOfferingOutput) SetOfferingTransaction(v *OfferingTransaction) *RenewOfferingOutput {
15894	s.OfferingTransaction = v
15895	return s
15896}
15897
15898// Represents the screen resolution of a device in height and width, expressed
15899// in pixels.
15900type Resolution struct {
15901	_ struct{} `type:"structure"`
15902
15903	// The screen resolution's height, expressed in pixels.
15904	Height *int64 `locationName:"height" type:"integer"`
15905
15906	// The screen resolution's width, expressed in pixels.
15907	Width *int64 `locationName:"width" type:"integer"`
15908}
15909
15910// String returns the string representation
15911func (s Resolution) String() string {
15912	return awsutil.Prettify(s)
15913}
15914
15915// GoString returns the string representation
15916func (s Resolution) GoString() string {
15917	return s.String()
15918}
15919
15920// SetHeight sets the Height field's value.
15921func (s *Resolution) SetHeight(v int64) *Resolution {
15922	s.Height = &v
15923	return s
15924}
15925
15926// SetWidth sets the Width field's value.
15927func (s *Resolution) SetWidth(v int64) *Resolution {
15928	s.Width = &v
15929	return s
15930}
15931
15932// Represents a condition for a device pool.
15933type Rule struct {
15934	_ struct{} `type:"structure"`
15935
15936	// The rule's stringified attribute. For example, specify the value as "\"abc\"".
15937	//
15938	// The supported operators for each attribute are provided in the following
15939	// list.
15940	//
15941	// APPIUM_VERSION
15942	//
15943	// The Appium version for the test.
15944	//
15945	// Supported operators: CONTAINS
15946	//
15947	// ARN
15948	//
15949	// The Amazon Resource Name (ARN) of the device (for example, arn:aws:devicefarm:us-west-2::device:12345Example.
15950	//
15951	// Supported operators: EQUALS, IN, NOT_IN
15952	//
15953	// AVAILABILITY
15954	//
15955	// The current availability of the device. Valid values are AVAILABLE, HIGHLY_AVAILABLE,
15956	// BUSY, or TEMPORARY_NOT_AVAILABLE.
15957	//
15958	// Supported operators: EQUALS
15959	//
15960	// FLEET_TYPE
15961	//
15962	// The fleet type. Valid values are PUBLIC or PRIVATE.
15963	//
15964	// Supported operators: EQUALS
15965	//
15966	// FORM_FACTOR
15967	//
15968	// The device form factor. Valid values are PHONE or TABLET.
15969	//
15970	// Supported operators: EQUALS, IN, NOT_IN
15971	//
15972	// INSTANCE_ARN
15973	//
15974	// The Amazon Resource Name (ARN) of the device instance.
15975	//
15976	// Supported operators: IN, NOT_IN
15977	//
15978	// INSTANCE_LABELS
15979	//
15980	// The label of the device instance.
15981	//
15982	// Supported operators: CONTAINS
15983	//
15984	// MANUFACTURER
15985	//
15986	// The device manufacturer (for example, Apple).
15987	//
15988	// Supported operators: EQUALS, IN, NOT_IN
15989	//
15990	// MODEL
15991	//
15992	// The device model, such as Apple iPad Air 2 or Google Pixel.
15993	//
15994	// Supported operators: CONTAINS, EQUALS, IN, NOT_IN
15995	//
15996	// OS_VERSION
15997	//
15998	// The operating system version (for example, 10.3.2).
15999	//
16000	// Supported operators: EQUALS, GREATER_THAN, GREATER_THAN_OR_EQUALS, IN, LESS_THAN,
16001	// LESS_THAN_OR_EQUALS, NOT_IN
16002	//
16003	// PLATFORM
16004	//
16005	// The device platform. Valid values are ANDROID or IOS.
16006	//
16007	// Supported operators: EQUALS, IN, NOT_IN
16008	//
16009	// REMOTE_ACCESS_ENABLED
16010	//
16011	// Whether the device is enabled for remote access. Valid values are TRUE or
16012	// FALSE.
16013	//
16014	// Supported operators: EQUALS
16015	//
16016	// REMOTE_DEBUG_ENABLED
16017	//
16018	// Whether the device is enabled for remote debugging. Valid values are TRUE
16019	// or FALSE.
16020	//
16021	// Supported operators: EQUALS
16022	//
16023	// Because remote debugging is no longer supported (https://docs.aws.amazon.com/devicefarm/latest/developerguide/history.html),
16024	// this filter is ignored.
16025	Attribute *string `locationName:"attribute" type:"string" enum:"DeviceAttribute"`
16026
16027	// Specifies how Device Farm compares the rule's attribute to the value. For
16028	// the operators that are supported by each attribute, see the attribute descriptions.
16029	Operator *string `locationName:"operator" type:"string" enum:"RuleOperator"`
16030
16031	// The rule's value.
16032	Value *string `locationName:"value" type:"string"`
16033}
16034
16035// String returns the string representation
16036func (s Rule) String() string {
16037	return awsutil.Prettify(s)
16038}
16039
16040// GoString returns the string representation
16041func (s Rule) GoString() string {
16042	return s.String()
16043}
16044
16045// SetAttribute sets the Attribute field's value.
16046func (s *Rule) SetAttribute(v string) *Rule {
16047	s.Attribute = &v
16048	return s
16049}
16050
16051// SetOperator sets the Operator field's value.
16052func (s *Rule) SetOperator(v string) *Rule {
16053	s.Operator = &v
16054	return s
16055}
16056
16057// SetValue sets the Value field's value.
16058func (s *Rule) SetValue(v string) *Rule {
16059	s.Value = &v
16060	return s
16061}
16062
16063// Represents a test run on a set of devices with a given app package, test
16064// parameters, and so on.
16065type Run struct {
16066	_ struct{} `type:"structure"`
16067
16068	// An app to upload or that has been uploaded.
16069	AppUpload *string `locationName:"appUpload" min:"32" type:"string"`
16070
16071	// The run's ARN.
16072	Arn *string `locationName:"arn" min:"32" type:"string"`
16073
16074	// Specifies the billing method for a test run: metered or unmetered. If the
16075	// parameter is not specified, the default value is metered.
16076	//
16077	// If you have unmetered device slots, you must set this to unmetered to use
16078	// them. Otherwise, the run is counted toward metered device minutes.
16079	BillingMethod *string `locationName:"billingMethod" type:"string" enum:"BillingMethod"`
16080
16081	// The total number of completed jobs.
16082	CompletedJobs *int64 `locationName:"completedJobs" type:"integer"`
16083
16084	// The run's result counters.
16085	Counters *Counters `locationName:"counters" type:"structure"`
16086
16087	// When the run was created.
16088	Created *time.Time `locationName:"created" type:"timestamp"`
16089
16090	// Output CustomerArtifactPaths object for the test run.
16091	CustomerArtifactPaths *CustomerArtifactPaths `locationName:"customerArtifactPaths" type:"structure"`
16092
16093	// Represents the total (metered or unmetered) minutes used by the test run.
16094	DeviceMinutes *DeviceMinutes `locationName:"deviceMinutes" type:"structure"`
16095
16096	// The ARN of the device pool for the run.
16097	DevicePoolArn *string `locationName:"devicePoolArn" min:"32" type:"string"`
16098
16099	// The results of a device filter used to select the devices for a test run.
16100	DeviceSelectionResult *DeviceSelectionResult `locationName:"deviceSelectionResult" type:"structure"`
16101
16102	// For fuzz tests, this is the number of events, between 1 and 10000, that the
16103	// UI fuzz test should perform.
16104	EventCount *int64 `locationName:"eventCount" type:"integer"`
16105
16106	// The number of minutes the job executes before it times out.
16107	JobTimeoutMinutes *int64 `locationName:"jobTimeoutMinutes" type:"integer"`
16108
16109	// Information about the locale that is used for the run.
16110	Locale *string `locationName:"locale" type:"string"`
16111
16112	// Information about the location that is used for the run.
16113	Location *Location `locationName:"location" type:"structure"`
16114
16115	// A message about the run's result.
16116	Message *string `locationName:"message" type:"string"`
16117
16118	// The run's name.
16119	Name *string `locationName:"name" type:"string"`
16120
16121	// The network profile being used for a test run.
16122	NetworkProfile *NetworkProfile `locationName:"networkProfile" type:"structure"`
16123
16124	// Read-only URL for an object in an S3 bucket where you can get the parsing
16125	// results of the test package. If the test package doesn't parse, the reason
16126	// why it doesn't parse appears in the file that this URL points to.
16127	ParsingResultUrl *string `locationName:"parsingResultUrl" type:"string"`
16128
16129	// The run's platform.
16130	//
16131	// Allowed values include:
16132	//
16133	//    * ANDROID
16134	//
16135	//    * IOS
16136	Platform *string `locationName:"platform" type:"string" enum:"DevicePlatform"`
16137
16138	// Information about the radio states for the run.
16139	Radios *Radios `locationName:"radios" type:"structure"`
16140
16141	// The run's result.
16142	//
16143	// Allowed values include:
16144	//
16145	//    * PENDING
16146	//
16147	//    * PASSED
16148	//
16149	//    * WARNED
16150	//
16151	//    * FAILED
16152	//
16153	//    * SKIPPED
16154	//
16155	//    * ERRORED
16156	//
16157	//    * STOPPED
16158	Result *string `locationName:"result" type:"string" enum:"ExecutionResult"`
16159
16160	// Supporting field for the result field. Set only if result is SKIPPED. PARSING_FAILED
16161	// if the result is skipped because of test package parsing failure.
16162	ResultCode *string `locationName:"resultCode" type:"string" enum:"ExecutionResultCode"`
16163
16164	// For fuzz tests, this is a seed to use for randomizing the UI fuzz test. Using
16165	// the same seed value between tests ensures identical event sequences.
16166	Seed *int64 `locationName:"seed" type:"integer"`
16167
16168	// When set to true, for private devices, Device Farm does not sign your app
16169	// again. For public devices, Device Farm always signs your apps again.
16170	//
16171	// For more information about how Device Farm re-signs your apps, see Do you
16172	// modify my app? (https://aws.amazon.com/device-farm/faq/) in the AWS Device
16173	// Farm FAQs.
16174	SkipAppResign *bool `locationName:"skipAppResign" type:"boolean"`
16175
16176	// The run's start time.
16177	Started *time.Time `locationName:"started" type:"timestamp"`
16178
16179	// The run's status.
16180	//
16181	// Allowed values include:
16182	//
16183	//    * PENDING
16184	//
16185	//    * PENDING_CONCURRENCY
16186	//
16187	//    * PENDING_DEVICE
16188	//
16189	//    * PROCESSING
16190	//
16191	//    * SCHEDULING
16192	//
16193	//    * PREPARING
16194	//
16195	//    * RUNNING
16196	//
16197	//    * COMPLETED
16198	//
16199	//    * STOPPING
16200	Status *string `locationName:"status" type:"string" enum:"ExecutionStatus"`
16201
16202	// The run's stop time.
16203	Stopped *time.Time `locationName:"stopped" type:"timestamp"`
16204
16205	// The ARN of the YAML-formatted test specification for the run.
16206	TestSpecArn *string `locationName:"testSpecArn" min:"32" type:"string"`
16207
16208	// The total number of jobs for the run.
16209	TotalJobs *int64 `locationName:"totalJobs" type:"integer"`
16210
16211	// The run's type.
16212	//
16213	// Must be one of the following values:
16214	//
16215	//    * BUILTIN_FUZZ
16216	//
16217	//    * BUILTIN_EXPLORER For Android, an app explorer that traverses an Android
16218	//    app, interacting with it and capturing screenshots at the same time.
16219	//
16220	//    * APPIUM_JAVA_JUNIT
16221	//
16222	//    * APPIUM_JAVA_TESTNG
16223	//
16224	//    * APPIUM_PYTHON
16225	//
16226	//    * APPIUM_NODE
16227	//
16228	//    * APPIUM_RUBY
16229	//
16230	//    * APPIUM_WEB_JAVA_JUNIT
16231	//
16232	//    * APPIUM_WEB_JAVA_TESTNG
16233	//
16234	//    * APPIUM_WEB_PYTHON
16235	//
16236	//    * APPIUM_WEB_NODE
16237	//
16238	//    * APPIUM_WEB_RUBY
16239	//
16240	//    * CALABASH
16241	//
16242	//    * INSTRUMENTATION
16243	//
16244	//    * UIAUTOMATION
16245	//
16246	//    * UIAUTOMATOR
16247	//
16248	//    * XCTEST
16249	//
16250	//    * XCTEST_UI
16251	Type *string `locationName:"type" type:"string" enum:"TestType"`
16252
16253	// The Device Farm console URL for the recording of the run.
16254	WebUrl *string `locationName:"webUrl" type:"string"`
16255}
16256
16257// String returns the string representation
16258func (s Run) String() string {
16259	return awsutil.Prettify(s)
16260}
16261
16262// GoString returns the string representation
16263func (s Run) GoString() string {
16264	return s.String()
16265}
16266
16267// SetAppUpload sets the AppUpload field's value.
16268func (s *Run) SetAppUpload(v string) *Run {
16269	s.AppUpload = &v
16270	return s
16271}
16272
16273// SetArn sets the Arn field's value.
16274func (s *Run) SetArn(v string) *Run {
16275	s.Arn = &v
16276	return s
16277}
16278
16279// SetBillingMethod sets the BillingMethod field's value.
16280func (s *Run) SetBillingMethod(v string) *Run {
16281	s.BillingMethod = &v
16282	return s
16283}
16284
16285// SetCompletedJobs sets the CompletedJobs field's value.
16286func (s *Run) SetCompletedJobs(v int64) *Run {
16287	s.CompletedJobs = &v
16288	return s
16289}
16290
16291// SetCounters sets the Counters field's value.
16292func (s *Run) SetCounters(v *Counters) *Run {
16293	s.Counters = v
16294	return s
16295}
16296
16297// SetCreated sets the Created field's value.
16298func (s *Run) SetCreated(v time.Time) *Run {
16299	s.Created = &v
16300	return s
16301}
16302
16303// SetCustomerArtifactPaths sets the CustomerArtifactPaths field's value.
16304func (s *Run) SetCustomerArtifactPaths(v *CustomerArtifactPaths) *Run {
16305	s.CustomerArtifactPaths = v
16306	return s
16307}
16308
16309// SetDeviceMinutes sets the DeviceMinutes field's value.
16310func (s *Run) SetDeviceMinutes(v *DeviceMinutes) *Run {
16311	s.DeviceMinutes = v
16312	return s
16313}
16314
16315// SetDevicePoolArn sets the DevicePoolArn field's value.
16316func (s *Run) SetDevicePoolArn(v string) *Run {
16317	s.DevicePoolArn = &v
16318	return s
16319}
16320
16321// SetDeviceSelectionResult sets the DeviceSelectionResult field's value.
16322func (s *Run) SetDeviceSelectionResult(v *DeviceSelectionResult) *Run {
16323	s.DeviceSelectionResult = v
16324	return s
16325}
16326
16327// SetEventCount sets the EventCount field's value.
16328func (s *Run) SetEventCount(v int64) *Run {
16329	s.EventCount = &v
16330	return s
16331}
16332
16333// SetJobTimeoutMinutes sets the JobTimeoutMinutes field's value.
16334func (s *Run) SetJobTimeoutMinutes(v int64) *Run {
16335	s.JobTimeoutMinutes = &v
16336	return s
16337}
16338
16339// SetLocale sets the Locale field's value.
16340func (s *Run) SetLocale(v string) *Run {
16341	s.Locale = &v
16342	return s
16343}
16344
16345// SetLocation sets the Location field's value.
16346func (s *Run) SetLocation(v *Location) *Run {
16347	s.Location = v
16348	return s
16349}
16350
16351// SetMessage sets the Message field's value.
16352func (s *Run) SetMessage(v string) *Run {
16353	s.Message = &v
16354	return s
16355}
16356
16357// SetName sets the Name field's value.
16358func (s *Run) SetName(v string) *Run {
16359	s.Name = &v
16360	return s
16361}
16362
16363// SetNetworkProfile sets the NetworkProfile field's value.
16364func (s *Run) SetNetworkProfile(v *NetworkProfile) *Run {
16365	s.NetworkProfile = v
16366	return s
16367}
16368
16369// SetParsingResultUrl sets the ParsingResultUrl field's value.
16370func (s *Run) SetParsingResultUrl(v string) *Run {
16371	s.ParsingResultUrl = &v
16372	return s
16373}
16374
16375// SetPlatform sets the Platform field's value.
16376func (s *Run) SetPlatform(v string) *Run {
16377	s.Platform = &v
16378	return s
16379}
16380
16381// SetRadios sets the Radios field's value.
16382func (s *Run) SetRadios(v *Radios) *Run {
16383	s.Radios = v
16384	return s
16385}
16386
16387// SetResult sets the Result field's value.
16388func (s *Run) SetResult(v string) *Run {
16389	s.Result = &v
16390	return s
16391}
16392
16393// SetResultCode sets the ResultCode field's value.
16394func (s *Run) SetResultCode(v string) *Run {
16395	s.ResultCode = &v
16396	return s
16397}
16398
16399// SetSeed sets the Seed field's value.
16400func (s *Run) SetSeed(v int64) *Run {
16401	s.Seed = &v
16402	return s
16403}
16404
16405// SetSkipAppResign sets the SkipAppResign field's value.
16406func (s *Run) SetSkipAppResign(v bool) *Run {
16407	s.SkipAppResign = &v
16408	return s
16409}
16410
16411// SetStarted sets the Started field's value.
16412func (s *Run) SetStarted(v time.Time) *Run {
16413	s.Started = &v
16414	return s
16415}
16416
16417// SetStatus sets the Status field's value.
16418func (s *Run) SetStatus(v string) *Run {
16419	s.Status = &v
16420	return s
16421}
16422
16423// SetStopped sets the Stopped field's value.
16424func (s *Run) SetStopped(v time.Time) *Run {
16425	s.Stopped = &v
16426	return s
16427}
16428
16429// SetTestSpecArn sets the TestSpecArn field's value.
16430func (s *Run) SetTestSpecArn(v string) *Run {
16431	s.TestSpecArn = &v
16432	return s
16433}
16434
16435// SetTotalJobs sets the TotalJobs field's value.
16436func (s *Run) SetTotalJobs(v int64) *Run {
16437	s.TotalJobs = &v
16438	return s
16439}
16440
16441// SetType sets the Type field's value.
16442func (s *Run) SetType(v string) *Run {
16443	s.Type = &v
16444	return s
16445}
16446
16447// SetWebUrl sets the WebUrl field's value.
16448func (s *Run) SetWebUrl(v string) *Run {
16449	s.WebUrl = &v
16450	return s
16451}
16452
16453// Represents a sample of performance data.
16454type Sample struct {
16455	_ struct{} `type:"structure"`
16456
16457	// The sample's ARN.
16458	Arn *string `locationName:"arn" min:"32" type:"string"`
16459
16460	// The sample's type.
16461	//
16462	// Must be one of the following values:
16463	//
16464	//    * CPU: A CPU sample type. This is expressed as the app processing CPU
16465	//    time (including child processes) as reported by process, as a percentage.
16466	//
16467	//    * MEMORY: A memory usage sample type. This is expressed as the total proportional
16468	//    set size of an app process, in kilobytes.
16469	//
16470	//    * NATIVE_AVG_DRAWTIME
16471	//
16472	//    * NATIVE_FPS
16473	//
16474	//    * NATIVE_FRAMES
16475	//
16476	//    * NATIVE_MAX_DRAWTIME
16477	//
16478	//    * NATIVE_MIN_DRAWTIME
16479	//
16480	//    * OPENGL_AVG_DRAWTIME
16481	//
16482	//    * OPENGL_FPS
16483	//
16484	//    * OPENGL_FRAMES
16485	//
16486	//    * OPENGL_MAX_DRAWTIME
16487	//
16488	//    * OPENGL_MIN_DRAWTIME
16489	//
16490	//    * RX
16491	//
16492	//    * RX_RATE: The total number of bytes per second (TCP and UDP) that are
16493	//    sent, by app process.
16494	//
16495	//    * THREADS: A threads sample type. This is expressed as the total number
16496	//    of threads per app process.
16497	//
16498	//    * TX
16499	//
16500	//    * TX_RATE: The total number of bytes per second (TCP and UDP) that are
16501	//    received, by app process.
16502	Type *string `locationName:"type" type:"string" enum:"SampleType"`
16503
16504	// The presigned Amazon S3 URL that can be used with a GET request to download
16505	// the sample's file.
16506	Url *string `locationName:"url" type:"string"`
16507}
16508
16509// String returns the string representation
16510func (s Sample) String() string {
16511	return awsutil.Prettify(s)
16512}
16513
16514// GoString returns the string representation
16515func (s Sample) GoString() string {
16516	return s.String()
16517}
16518
16519// SetArn sets the Arn field's value.
16520func (s *Sample) SetArn(v string) *Sample {
16521	s.Arn = &v
16522	return s
16523}
16524
16525// SetType sets the Type field's value.
16526func (s *Sample) SetType(v string) *Sample {
16527	s.Type = &v
16528	return s
16529}
16530
16531// SetUrl sets the Url field's value.
16532func (s *Sample) SetUrl(v string) *Sample {
16533	s.Url = &v
16534	return s
16535}
16536
16537// Represents the settings for a run. Includes things like location, radio states,
16538// auxiliary apps, and network profiles.
16539type ScheduleRunConfiguration struct {
16540	_ struct{} `type:"structure"`
16541
16542	// A list of upload ARNs for app packages to be installed with your app.
16543	AuxiliaryApps []*string `locationName:"auxiliaryApps" type:"list"`
16544
16545	// Specifies the billing method for a test run: metered or unmetered. If the
16546	// parameter is not specified, the default value is metered.
16547	//
16548	// If you have purchased unmetered device slots, you must set this parameter
16549	// to unmetered to make use of them. Otherwise, your run counts against your
16550	// metered time.
16551	BillingMethod *string `locationName:"billingMethod" type:"string" enum:"BillingMethod"`
16552
16553	// Input CustomerArtifactPaths object for the scheduled run configuration.
16554	CustomerArtifactPaths *CustomerArtifactPaths `locationName:"customerArtifactPaths" type:"structure"`
16555
16556	// The ARN of the extra data for the run. The extra data is a .zip file that
16557	// AWS Device Farm extracts to external data for Android or the app's sandbox
16558	// for iOS.
16559	ExtraDataPackageArn *string `locationName:"extraDataPackageArn" min:"32" type:"string"`
16560
16561	// Information about the locale that is used for the run.
16562	Locale *string `locationName:"locale" type:"string"`
16563
16564	// Information about the location that is used for the run.
16565	Location *Location `locationName:"location" type:"structure"`
16566
16567	// Reserved for internal use.
16568	NetworkProfileArn *string `locationName:"networkProfileArn" min:"32" type:"string"`
16569
16570	// Information about the radio states for the run.
16571	Radios *Radios `locationName:"radios" type:"structure"`
16572
16573	// An array of ARNs for your VPC endpoint configurations.
16574	VpceConfigurationArns []*string `locationName:"vpceConfigurationArns" type:"list"`
16575}
16576
16577// String returns the string representation
16578func (s ScheduleRunConfiguration) String() string {
16579	return awsutil.Prettify(s)
16580}
16581
16582// GoString returns the string representation
16583func (s ScheduleRunConfiguration) GoString() string {
16584	return s.String()
16585}
16586
16587// Validate inspects the fields of the type to determine if they are valid.
16588func (s *ScheduleRunConfiguration) Validate() error {
16589	invalidParams := request.ErrInvalidParams{Context: "ScheduleRunConfiguration"}
16590	if s.ExtraDataPackageArn != nil && len(*s.ExtraDataPackageArn) < 32 {
16591		invalidParams.Add(request.NewErrParamMinLen("ExtraDataPackageArn", 32))
16592	}
16593	if s.NetworkProfileArn != nil && len(*s.NetworkProfileArn) < 32 {
16594		invalidParams.Add(request.NewErrParamMinLen("NetworkProfileArn", 32))
16595	}
16596	if s.Location != nil {
16597		if err := s.Location.Validate(); err != nil {
16598			invalidParams.AddNested("Location", err.(request.ErrInvalidParams))
16599		}
16600	}
16601
16602	if invalidParams.Len() > 0 {
16603		return invalidParams
16604	}
16605	return nil
16606}
16607
16608// SetAuxiliaryApps sets the AuxiliaryApps field's value.
16609func (s *ScheduleRunConfiguration) SetAuxiliaryApps(v []*string) *ScheduleRunConfiguration {
16610	s.AuxiliaryApps = v
16611	return s
16612}
16613
16614// SetBillingMethod sets the BillingMethod field's value.
16615func (s *ScheduleRunConfiguration) SetBillingMethod(v string) *ScheduleRunConfiguration {
16616	s.BillingMethod = &v
16617	return s
16618}
16619
16620// SetCustomerArtifactPaths sets the CustomerArtifactPaths field's value.
16621func (s *ScheduleRunConfiguration) SetCustomerArtifactPaths(v *CustomerArtifactPaths) *ScheduleRunConfiguration {
16622	s.CustomerArtifactPaths = v
16623	return s
16624}
16625
16626// SetExtraDataPackageArn sets the ExtraDataPackageArn field's value.
16627func (s *ScheduleRunConfiguration) SetExtraDataPackageArn(v string) *ScheduleRunConfiguration {
16628	s.ExtraDataPackageArn = &v
16629	return s
16630}
16631
16632// SetLocale sets the Locale field's value.
16633func (s *ScheduleRunConfiguration) SetLocale(v string) *ScheduleRunConfiguration {
16634	s.Locale = &v
16635	return s
16636}
16637
16638// SetLocation sets the Location field's value.
16639func (s *ScheduleRunConfiguration) SetLocation(v *Location) *ScheduleRunConfiguration {
16640	s.Location = v
16641	return s
16642}
16643
16644// SetNetworkProfileArn sets the NetworkProfileArn field's value.
16645func (s *ScheduleRunConfiguration) SetNetworkProfileArn(v string) *ScheduleRunConfiguration {
16646	s.NetworkProfileArn = &v
16647	return s
16648}
16649
16650// SetRadios sets the Radios field's value.
16651func (s *ScheduleRunConfiguration) SetRadios(v *Radios) *ScheduleRunConfiguration {
16652	s.Radios = v
16653	return s
16654}
16655
16656// SetVpceConfigurationArns sets the VpceConfigurationArns field's value.
16657func (s *ScheduleRunConfiguration) SetVpceConfigurationArns(v []*string) *ScheduleRunConfiguration {
16658	s.VpceConfigurationArns = v
16659	return s
16660}
16661
16662// Represents a request to the schedule run operation.
16663type ScheduleRunInput struct {
16664	_ struct{} `type:"structure"`
16665
16666	// The ARN of an application package to run tests against, created with CreateUpload.
16667	// See ListUploads.
16668	AppArn *string `locationName:"appArn" min:"32" type:"string"`
16669
16670	// Information about the settings for the run to be scheduled.
16671	Configuration *ScheduleRunConfiguration `locationName:"configuration" type:"structure"`
16672
16673	// The ARN of the device pool for the run to be scheduled.
16674	DevicePoolArn *string `locationName:"devicePoolArn" min:"32" type:"string"`
16675
16676	// The filter criteria used to dynamically select a set of devices for a test
16677	// run and the maximum number of devices to be included in the run.
16678	//
16679	// Either devicePoolArn or deviceSelectionConfiguration is required in a request.
16680	DeviceSelectionConfiguration *DeviceSelectionConfiguration `locationName:"deviceSelectionConfiguration" type:"structure"`
16681
16682	// Specifies configuration information about a test run, such as the execution
16683	// timeout (in minutes).
16684	ExecutionConfiguration *ExecutionConfiguration `locationName:"executionConfiguration" type:"structure"`
16685
16686	// The name for the run to be scheduled.
16687	Name *string `locationName:"name" type:"string"`
16688
16689	// The ARN of the project for the run to be scheduled.
16690	//
16691	// ProjectArn is a required field
16692	ProjectArn *string `locationName:"projectArn" min:"32" type:"string" required:"true"`
16693
16694	// Information about the test for the run to be scheduled.
16695	//
16696	// Test is a required field
16697	Test *ScheduleRunTest `locationName:"test" type:"structure" required:"true"`
16698}
16699
16700// String returns the string representation
16701func (s ScheduleRunInput) String() string {
16702	return awsutil.Prettify(s)
16703}
16704
16705// GoString returns the string representation
16706func (s ScheduleRunInput) GoString() string {
16707	return s.String()
16708}
16709
16710// Validate inspects the fields of the type to determine if they are valid.
16711func (s *ScheduleRunInput) Validate() error {
16712	invalidParams := request.ErrInvalidParams{Context: "ScheduleRunInput"}
16713	if s.AppArn != nil && len(*s.AppArn) < 32 {
16714		invalidParams.Add(request.NewErrParamMinLen("AppArn", 32))
16715	}
16716	if s.DevicePoolArn != nil && len(*s.DevicePoolArn) < 32 {
16717		invalidParams.Add(request.NewErrParamMinLen("DevicePoolArn", 32))
16718	}
16719	if s.ProjectArn == nil {
16720		invalidParams.Add(request.NewErrParamRequired("ProjectArn"))
16721	}
16722	if s.ProjectArn != nil && len(*s.ProjectArn) < 32 {
16723		invalidParams.Add(request.NewErrParamMinLen("ProjectArn", 32))
16724	}
16725	if s.Test == nil {
16726		invalidParams.Add(request.NewErrParamRequired("Test"))
16727	}
16728	if s.Configuration != nil {
16729		if err := s.Configuration.Validate(); err != nil {
16730			invalidParams.AddNested("Configuration", err.(request.ErrInvalidParams))
16731		}
16732	}
16733	if s.DeviceSelectionConfiguration != nil {
16734		if err := s.DeviceSelectionConfiguration.Validate(); err != nil {
16735			invalidParams.AddNested("DeviceSelectionConfiguration", err.(request.ErrInvalidParams))
16736		}
16737	}
16738	if s.Test != nil {
16739		if err := s.Test.Validate(); err != nil {
16740			invalidParams.AddNested("Test", err.(request.ErrInvalidParams))
16741		}
16742	}
16743
16744	if invalidParams.Len() > 0 {
16745		return invalidParams
16746	}
16747	return nil
16748}
16749
16750// SetAppArn sets the AppArn field's value.
16751func (s *ScheduleRunInput) SetAppArn(v string) *ScheduleRunInput {
16752	s.AppArn = &v
16753	return s
16754}
16755
16756// SetConfiguration sets the Configuration field's value.
16757func (s *ScheduleRunInput) SetConfiguration(v *ScheduleRunConfiguration) *ScheduleRunInput {
16758	s.Configuration = v
16759	return s
16760}
16761
16762// SetDevicePoolArn sets the DevicePoolArn field's value.
16763func (s *ScheduleRunInput) SetDevicePoolArn(v string) *ScheduleRunInput {
16764	s.DevicePoolArn = &v
16765	return s
16766}
16767
16768// SetDeviceSelectionConfiguration sets the DeviceSelectionConfiguration field's value.
16769func (s *ScheduleRunInput) SetDeviceSelectionConfiguration(v *DeviceSelectionConfiguration) *ScheduleRunInput {
16770	s.DeviceSelectionConfiguration = v
16771	return s
16772}
16773
16774// SetExecutionConfiguration sets the ExecutionConfiguration field's value.
16775func (s *ScheduleRunInput) SetExecutionConfiguration(v *ExecutionConfiguration) *ScheduleRunInput {
16776	s.ExecutionConfiguration = v
16777	return s
16778}
16779
16780// SetName sets the Name field's value.
16781func (s *ScheduleRunInput) SetName(v string) *ScheduleRunInput {
16782	s.Name = &v
16783	return s
16784}
16785
16786// SetProjectArn sets the ProjectArn field's value.
16787func (s *ScheduleRunInput) SetProjectArn(v string) *ScheduleRunInput {
16788	s.ProjectArn = &v
16789	return s
16790}
16791
16792// SetTest sets the Test field's value.
16793func (s *ScheduleRunInput) SetTest(v *ScheduleRunTest) *ScheduleRunInput {
16794	s.Test = v
16795	return s
16796}
16797
16798// Represents the result of a schedule run request.
16799type ScheduleRunOutput struct {
16800	_ struct{} `type:"structure"`
16801
16802	// Information about the scheduled run.
16803	Run *Run `locationName:"run" type:"structure"`
16804}
16805
16806// String returns the string representation
16807func (s ScheduleRunOutput) String() string {
16808	return awsutil.Prettify(s)
16809}
16810
16811// GoString returns the string representation
16812func (s ScheduleRunOutput) GoString() string {
16813	return s.String()
16814}
16815
16816// SetRun sets the Run field's value.
16817func (s *ScheduleRunOutput) SetRun(v *Run) *ScheduleRunOutput {
16818	s.Run = v
16819	return s
16820}
16821
16822// Represents test settings. This data structure is passed in as the test parameter
16823// to ScheduleRun. For an example of the JSON request syntax, see ScheduleRun.
16824type ScheduleRunTest struct {
16825	_ struct{} `type:"structure"`
16826
16827	// The test's filter.
16828	Filter *string `locationName:"filter" type:"string"`
16829
16830	// The test's parameters, such as test framework parameters and fixture settings.
16831	// Parameters are represented by name-value pairs of strings.
16832	//
16833	// For all tests:
16834	//
16835	//    * app_performance_monitoring: Performance monitoring is enabled by default.
16836	//    Set this parameter to false to disable it.
16837	//
16838	// For Calabash tests:
16839	//
16840	//    * profile: A cucumber profile (for example, my_profile_name).
16841	//
16842	//    * tags: You can limit execution to features or scenarios that have (or
16843	//    don't have) certain tags (for example, @smoke or @smoke,~@wip).
16844	//
16845	// For Appium tests (all types):
16846	//
16847	//    * appium_version: The Appium version. Currently supported values are 1.6.5
16848	//    (and later), latest, and default. latest runs the latest Appium version
16849	//    supported by Device Farm (1.9.1). For default, Device Farm selects a compatible
16850	//    version of Appium for the device. The current behavior is to run 1.7.2
16851	//    on Android devices and iOS 9 and earlier and 1.7.2 for iOS 10 and later.
16852	//    This behavior is subject to change.
16853	//
16854	// For fuzz tests (Android only):
16855	//
16856	//    * event_count: The number of events, between 1 and 10000, that the UI
16857	//    fuzz test should perform.
16858	//
16859	//    * throttle: The time, in ms, between 0 and 1000, that the UI fuzz test
16860	//    should wait between events.
16861	//
16862	//    * seed: A seed to use for randomizing the UI fuzz test. Using the same
16863	//    seed value between tests ensures identical event sequences.
16864	//
16865	// For Explorer tests:
16866	//
16867	//    * username: A user name to use if the Explorer encounters a login form.
16868	//    If not supplied, no user name is inserted.
16869	//
16870	//    * password: A password to use if the Explorer encounters a login form.
16871	//    If not supplied, no password is inserted.
16872	//
16873	// For Instrumentation:
16874	//
16875	//    * filter: A test filter string. Examples: Running a single test case:
16876	//    com.android.abc.Test1 Running a single test: com.android.abc.Test1#smoke
16877	//    Running multiple tests: com.android.abc.Test1,com.android.abc.Test2
16878	//
16879	// For XCTest and XCTestUI:
16880	//
16881	//    * filter: A test filter string. Examples: Running a single test class:
16882	//    LoginTests Running a multiple test classes: LoginTests,SmokeTests Running
16883	//    a single test: LoginTests/testValid Running multiple tests: LoginTests/testValid,LoginTests/testInvalid
16884	//
16885	// For UIAutomator:
16886	//
16887	//    * filter: A test filter string. Examples: Running a single test case:
16888	//    com.android.abc.Test1 Running a single test: com.android.abc.Test1#smoke
16889	//    Running multiple tests: com.android.abc.Test1,com.android.abc.Test2
16890	Parameters map[string]*string `locationName:"parameters" type:"map"`
16891
16892	// The ARN of the uploaded test to be run.
16893	TestPackageArn *string `locationName:"testPackageArn" min:"32" type:"string"`
16894
16895	// The ARN of the YAML-formatted test specification.
16896	TestSpecArn *string `locationName:"testSpecArn" min:"32" type:"string"`
16897
16898	// The test's type.
16899	//
16900	// Must be one of the following values:
16901	//
16902	//    * BUILTIN_FUZZ
16903	//
16904	//    * BUILTIN_EXPLORER. For Android, an app explorer that traverses an Android
16905	//    app, interacting with it and capturing screenshots at the same time.
16906	//
16907	//    * APPIUM_JAVA_JUNIT
16908	//
16909	//    * APPIUM_JAVA_TESTNG
16910	//
16911	//    * APPIUM_PYTHON
16912	//
16913	//    * APPIUM_NODE
16914	//
16915	//    * APPIUM_RUBY
16916	//
16917	//    * APPIUM_WEB_JAVA_JUNIT
16918	//
16919	//    * APPIUM_WEB_JAVA_TESTNG
16920	//
16921	//    * APPIUM_WEB_PYTHON
16922	//
16923	//    * APPIUM_WEB_NODE
16924	//
16925	//    * APPIUM_WEB_RUBY
16926	//
16927	//    * CALABASH
16928	//
16929	//    * INSTRUMENTATION
16930	//
16931	//    * UIAUTOMATION
16932	//
16933	//    * UIAUTOMATOR
16934	//
16935	//    * XCTEST
16936	//
16937	//    * XCTEST_UI
16938	//
16939	// Type is a required field
16940	Type *string `locationName:"type" type:"string" required:"true" enum:"TestType"`
16941}
16942
16943// String returns the string representation
16944func (s ScheduleRunTest) String() string {
16945	return awsutil.Prettify(s)
16946}
16947
16948// GoString returns the string representation
16949func (s ScheduleRunTest) GoString() string {
16950	return s.String()
16951}
16952
16953// Validate inspects the fields of the type to determine if they are valid.
16954func (s *ScheduleRunTest) Validate() error {
16955	invalidParams := request.ErrInvalidParams{Context: "ScheduleRunTest"}
16956	if s.TestPackageArn != nil && len(*s.TestPackageArn) < 32 {
16957		invalidParams.Add(request.NewErrParamMinLen("TestPackageArn", 32))
16958	}
16959	if s.TestSpecArn != nil && len(*s.TestSpecArn) < 32 {
16960		invalidParams.Add(request.NewErrParamMinLen("TestSpecArn", 32))
16961	}
16962	if s.Type == nil {
16963		invalidParams.Add(request.NewErrParamRequired("Type"))
16964	}
16965
16966	if invalidParams.Len() > 0 {
16967		return invalidParams
16968	}
16969	return nil
16970}
16971
16972// SetFilter sets the Filter field's value.
16973func (s *ScheduleRunTest) SetFilter(v string) *ScheduleRunTest {
16974	s.Filter = &v
16975	return s
16976}
16977
16978// SetParameters sets the Parameters field's value.
16979func (s *ScheduleRunTest) SetParameters(v map[string]*string) *ScheduleRunTest {
16980	s.Parameters = v
16981	return s
16982}
16983
16984// SetTestPackageArn sets the TestPackageArn field's value.
16985func (s *ScheduleRunTest) SetTestPackageArn(v string) *ScheduleRunTest {
16986	s.TestPackageArn = &v
16987	return s
16988}
16989
16990// SetTestSpecArn sets the TestSpecArn field's value.
16991func (s *ScheduleRunTest) SetTestSpecArn(v string) *ScheduleRunTest {
16992	s.TestSpecArn = &v
16993	return s
16994}
16995
16996// SetType sets the Type field's value.
16997func (s *ScheduleRunTest) SetType(v string) *ScheduleRunTest {
16998	s.Type = &v
16999	return s
17000}
17001
17002type StopJobInput struct {
17003	_ struct{} `type:"structure"`
17004
17005	// Represents the Amazon Resource Name (ARN) of the Device Farm job to stop.
17006	//
17007	// Arn is a required field
17008	Arn *string `locationName:"arn" min:"32" type:"string" required:"true"`
17009}
17010
17011// String returns the string representation
17012func (s StopJobInput) String() string {
17013	return awsutil.Prettify(s)
17014}
17015
17016// GoString returns the string representation
17017func (s StopJobInput) GoString() string {
17018	return s.String()
17019}
17020
17021// Validate inspects the fields of the type to determine if they are valid.
17022func (s *StopJobInput) Validate() error {
17023	invalidParams := request.ErrInvalidParams{Context: "StopJobInput"}
17024	if s.Arn == nil {
17025		invalidParams.Add(request.NewErrParamRequired("Arn"))
17026	}
17027	if s.Arn != nil && len(*s.Arn) < 32 {
17028		invalidParams.Add(request.NewErrParamMinLen("Arn", 32))
17029	}
17030
17031	if invalidParams.Len() > 0 {
17032		return invalidParams
17033	}
17034	return nil
17035}
17036
17037// SetArn sets the Arn field's value.
17038func (s *StopJobInput) SetArn(v string) *StopJobInput {
17039	s.Arn = &v
17040	return s
17041}
17042
17043type StopJobOutput struct {
17044	_ struct{} `type:"structure"`
17045
17046	// The job that was stopped.
17047	Job *Job `locationName:"job" type:"structure"`
17048}
17049
17050// String returns the string representation
17051func (s StopJobOutput) String() string {
17052	return awsutil.Prettify(s)
17053}
17054
17055// GoString returns the string representation
17056func (s StopJobOutput) GoString() string {
17057	return s.String()
17058}
17059
17060// SetJob sets the Job field's value.
17061func (s *StopJobOutput) SetJob(v *Job) *StopJobOutput {
17062	s.Job = v
17063	return s
17064}
17065
17066// Represents the request to stop the remote access session.
17067type StopRemoteAccessSessionInput struct {
17068	_ struct{} `type:"structure"`
17069
17070	// The Amazon Resource Name (ARN) of the remote access session to stop.
17071	//
17072	// Arn is a required field
17073	Arn *string `locationName:"arn" min:"32" type:"string" required:"true"`
17074}
17075
17076// String returns the string representation
17077func (s StopRemoteAccessSessionInput) String() string {
17078	return awsutil.Prettify(s)
17079}
17080
17081// GoString returns the string representation
17082func (s StopRemoteAccessSessionInput) GoString() string {
17083	return s.String()
17084}
17085
17086// Validate inspects the fields of the type to determine if they are valid.
17087func (s *StopRemoteAccessSessionInput) Validate() error {
17088	invalidParams := request.ErrInvalidParams{Context: "StopRemoteAccessSessionInput"}
17089	if s.Arn == nil {
17090		invalidParams.Add(request.NewErrParamRequired("Arn"))
17091	}
17092	if s.Arn != nil && len(*s.Arn) < 32 {
17093		invalidParams.Add(request.NewErrParamMinLen("Arn", 32))
17094	}
17095
17096	if invalidParams.Len() > 0 {
17097		return invalidParams
17098	}
17099	return nil
17100}
17101
17102// SetArn sets the Arn field's value.
17103func (s *StopRemoteAccessSessionInput) SetArn(v string) *StopRemoteAccessSessionInput {
17104	s.Arn = &v
17105	return s
17106}
17107
17108// Represents the response from the server that describes the remote access
17109// session when AWS Device Farm stops the session.
17110type StopRemoteAccessSessionOutput struct {
17111	_ struct{} `type:"structure"`
17112
17113	// A container that represents the metadata from the service about the remote
17114	// access session you are stopping.
17115	RemoteAccessSession *RemoteAccessSession `locationName:"remoteAccessSession" type:"structure"`
17116}
17117
17118// String returns the string representation
17119func (s StopRemoteAccessSessionOutput) String() string {
17120	return awsutil.Prettify(s)
17121}
17122
17123// GoString returns the string representation
17124func (s StopRemoteAccessSessionOutput) GoString() string {
17125	return s.String()
17126}
17127
17128// SetRemoteAccessSession sets the RemoteAccessSession field's value.
17129func (s *StopRemoteAccessSessionOutput) SetRemoteAccessSession(v *RemoteAccessSession) *StopRemoteAccessSessionOutput {
17130	s.RemoteAccessSession = v
17131	return s
17132}
17133
17134// Represents the request to stop a specific run.
17135type StopRunInput struct {
17136	_ struct{} `type:"structure"`
17137
17138	// Represents the Amazon Resource Name (ARN) of the Device Farm run to stop.
17139	//
17140	// Arn is a required field
17141	Arn *string `locationName:"arn" min:"32" type:"string" required:"true"`
17142}
17143
17144// String returns the string representation
17145func (s StopRunInput) String() string {
17146	return awsutil.Prettify(s)
17147}
17148
17149// GoString returns the string representation
17150func (s StopRunInput) GoString() string {
17151	return s.String()
17152}
17153
17154// Validate inspects the fields of the type to determine if they are valid.
17155func (s *StopRunInput) Validate() error {
17156	invalidParams := request.ErrInvalidParams{Context: "StopRunInput"}
17157	if s.Arn == nil {
17158		invalidParams.Add(request.NewErrParamRequired("Arn"))
17159	}
17160	if s.Arn != nil && len(*s.Arn) < 32 {
17161		invalidParams.Add(request.NewErrParamMinLen("Arn", 32))
17162	}
17163
17164	if invalidParams.Len() > 0 {
17165		return invalidParams
17166	}
17167	return nil
17168}
17169
17170// SetArn sets the Arn field's value.
17171func (s *StopRunInput) SetArn(v string) *StopRunInput {
17172	s.Arn = &v
17173	return s
17174}
17175
17176// Represents the results of your stop run attempt.
17177type StopRunOutput struct {
17178	_ struct{} `type:"structure"`
17179
17180	// The run that was stopped.
17181	Run *Run `locationName:"run" type:"structure"`
17182}
17183
17184// String returns the string representation
17185func (s StopRunOutput) String() string {
17186	return awsutil.Prettify(s)
17187}
17188
17189// GoString returns the string representation
17190func (s StopRunOutput) GoString() string {
17191	return s.String()
17192}
17193
17194// SetRun sets the Run field's value.
17195func (s *StopRunOutput) SetRun(v *Run) *StopRunOutput {
17196	s.Run = v
17197	return s
17198}
17199
17200// Represents a collection of one or more tests.
17201type Suite struct {
17202	_ struct{} `type:"structure"`
17203
17204	// The suite's ARN.
17205	Arn *string `locationName:"arn" min:"32" type:"string"`
17206
17207	// The suite's result counters.
17208	Counters *Counters `locationName:"counters" type:"structure"`
17209
17210	// When the suite was created.
17211	Created *time.Time `locationName:"created" type:"timestamp"`
17212
17213	// Represents the total (metered or unmetered) minutes used by the test suite.
17214	DeviceMinutes *DeviceMinutes `locationName:"deviceMinutes" type:"structure"`
17215
17216	// A message about the suite's result.
17217	Message *string `locationName:"message" type:"string"`
17218
17219	// The suite's name.
17220	Name *string `locationName:"name" type:"string"`
17221
17222	// The suite's result.
17223	//
17224	// Allowed values include:
17225	//
17226	//    * PENDING
17227	//
17228	//    * PASSED
17229	//
17230	//    * WARNED
17231	//
17232	//    * FAILED
17233	//
17234	//    * SKIPPED
17235	//
17236	//    * ERRORED
17237	//
17238	//    * STOPPED
17239	Result *string `locationName:"result" type:"string" enum:"ExecutionResult"`
17240
17241	// The suite's start time.
17242	Started *time.Time `locationName:"started" type:"timestamp"`
17243
17244	// The suite's status.
17245	//
17246	// Allowed values include:
17247	//
17248	//    * PENDING
17249	//
17250	//    * PENDING_CONCURRENCY
17251	//
17252	//    * PENDING_DEVICE
17253	//
17254	//    * PROCESSING
17255	//
17256	//    * SCHEDULING
17257	//
17258	//    * PREPARING
17259	//
17260	//    * RUNNING
17261	//
17262	//    * COMPLETED
17263	//
17264	//    * STOPPING
17265	Status *string `locationName:"status" type:"string" enum:"ExecutionStatus"`
17266
17267	// The suite's stop time.
17268	Stopped *time.Time `locationName:"stopped" type:"timestamp"`
17269
17270	// The suite's type.
17271	//
17272	// Must be one of the following values:
17273	//
17274	//    * BUILTIN_FUZZ
17275	//
17276	//    * BUILTIN_EXPLORER Only available for Android; an app explorer that traverses
17277	//    an Android app, interacting with it and capturing screenshots at the same
17278	//    time.
17279	//
17280	//    * APPIUM_JAVA_JUNIT
17281	//
17282	//    * APPIUM_JAVA_TESTNG
17283	//
17284	//    * APPIUM_PYTHON
17285	//
17286	//    * APPIUM_NODE
17287	//
17288	//    * APPIUM_RUBY
17289	//
17290	//    * APPIUM_WEB_JAVA_JUNIT
17291	//
17292	//    * APPIUM_WEB_JAVA_TESTNG
17293	//
17294	//    * APPIUM_WEB_PYTHON
17295	//
17296	//    * APPIUM_WEB_NODE
17297	//
17298	//    * APPIUM_WEB_RUBY
17299	//
17300	//    * CALABASH
17301	//
17302	//    * INSTRUMENTATION
17303	//
17304	//    * UIAUTOMATION
17305	//
17306	//    * UIAUTOMATOR
17307	//
17308	//    * XCTEST
17309	//
17310	//    * XCTEST_UI
17311	Type *string `locationName:"type" type:"string" enum:"TestType"`
17312}
17313
17314// String returns the string representation
17315func (s Suite) String() string {
17316	return awsutil.Prettify(s)
17317}
17318
17319// GoString returns the string representation
17320func (s Suite) GoString() string {
17321	return s.String()
17322}
17323
17324// SetArn sets the Arn field's value.
17325func (s *Suite) SetArn(v string) *Suite {
17326	s.Arn = &v
17327	return s
17328}
17329
17330// SetCounters sets the Counters field's value.
17331func (s *Suite) SetCounters(v *Counters) *Suite {
17332	s.Counters = v
17333	return s
17334}
17335
17336// SetCreated sets the Created field's value.
17337func (s *Suite) SetCreated(v time.Time) *Suite {
17338	s.Created = &v
17339	return s
17340}
17341
17342// SetDeviceMinutes sets the DeviceMinutes field's value.
17343func (s *Suite) SetDeviceMinutes(v *DeviceMinutes) *Suite {
17344	s.DeviceMinutes = v
17345	return s
17346}
17347
17348// SetMessage sets the Message field's value.
17349func (s *Suite) SetMessage(v string) *Suite {
17350	s.Message = &v
17351	return s
17352}
17353
17354// SetName sets the Name field's value.
17355func (s *Suite) SetName(v string) *Suite {
17356	s.Name = &v
17357	return s
17358}
17359
17360// SetResult sets the Result field's value.
17361func (s *Suite) SetResult(v string) *Suite {
17362	s.Result = &v
17363	return s
17364}
17365
17366// SetStarted sets the Started field's value.
17367func (s *Suite) SetStarted(v time.Time) *Suite {
17368	s.Started = &v
17369	return s
17370}
17371
17372// SetStatus sets the Status field's value.
17373func (s *Suite) SetStatus(v string) *Suite {
17374	s.Status = &v
17375	return s
17376}
17377
17378// SetStopped sets the Stopped field's value.
17379func (s *Suite) SetStopped(v time.Time) *Suite {
17380	s.Stopped = &v
17381	return s
17382}
17383
17384// SetType sets the Type field's value.
17385func (s *Suite) SetType(v string) *Suite {
17386	s.Type = &v
17387	return s
17388}
17389
17390// The metadata that you apply to a resource to help you categorize and organize
17391// it. Each tag consists of a key and an optional value, both of which you define.
17392// Tag keys can have a maximum character length of 128 characters. Tag values
17393// can have a maximum length of 256 characters.
17394type Tag struct {
17395	_ struct{} `type:"structure"`
17396
17397	// One part of a key-value pair that makes up a tag. A key is a general label
17398	// that acts like a category for more specific tag values.
17399	//
17400	// Key is a required field
17401	Key *string `min:"1" type:"string" required:"true"`
17402
17403	// The optional part of a key-value pair that makes up a tag. A value acts as
17404	// a descriptor in a tag category (key).
17405	//
17406	// Value is a required field
17407	Value *string `type:"string" required:"true"`
17408}
17409
17410// String returns the string representation
17411func (s Tag) String() string {
17412	return awsutil.Prettify(s)
17413}
17414
17415// GoString returns the string representation
17416func (s Tag) GoString() string {
17417	return s.String()
17418}
17419
17420// Validate inspects the fields of the type to determine if they are valid.
17421func (s *Tag) Validate() error {
17422	invalidParams := request.ErrInvalidParams{Context: "Tag"}
17423	if s.Key == nil {
17424		invalidParams.Add(request.NewErrParamRequired("Key"))
17425	}
17426	if s.Key != nil && len(*s.Key) < 1 {
17427		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
17428	}
17429	if s.Value == nil {
17430		invalidParams.Add(request.NewErrParamRequired("Value"))
17431	}
17432
17433	if invalidParams.Len() > 0 {
17434		return invalidParams
17435	}
17436	return nil
17437}
17438
17439// SetKey sets the Key field's value.
17440func (s *Tag) SetKey(v string) *Tag {
17441	s.Key = &v
17442	return s
17443}
17444
17445// SetValue sets the Value field's value.
17446func (s *Tag) SetValue(v string) *Tag {
17447	s.Value = &v
17448	return s
17449}
17450
17451type TagResourceInput struct {
17452	_ struct{} `type:"structure"`
17453
17454	// The Amazon Resource Name (ARN) of the resource or resources to which to add
17455	// tags. You can associate tags with the following Device Farm resources: PROJECT,
17456	// RUN, NETWORK_PROFILE, INSTANCE_PROFILE, DEVICE_INSTANCE, SESSION, DEVICE_POOL,
17457	// DEVICE, and VPCE_CONFIGURATION.
17458	//
17459	// ResourceARN is a required field
17460	ResourceARN *string `min:"32" type:"string" required:"true"`
17461
17462	// The tags to add to the resource. A tag is an array of key-value pairs. Tag
17463	// keys can have a maximum character length of 128 characters. Tag values can
17464	// have a maximum length of 256 characters.
17465	//
17466	// Tags is a required field
17467	Tags []*Tag `type:"list" required:"true"`
17468}
17469
17470// String returns the string representation
17471func (s TagResourceInput) String() string {
17472	return awsutil.Prettify(s)
17473}
17474
17475// GoString returns the string representation
17476func (s TagResourceInput) GoString() string {
17477	return s.String()
17478}
17479
17480// Validate inspects the fields of the type to determine if they are valid.
17481func (s *TagResourceInput) Validate() error {
17482	invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"}
17483	if s.ResourceARN == nil {
17484		invalidParams.Add(request.NewErrParamRequired("ResourceARN"))
17485	}
17486	if s.ResourceARN != nil && len(*s.ResourceARN) < 32 {
17487		invalidParams.Add(request.NewErrParamMinLen("ResourceARN", 32))
17488	}
17489	if s.Tags == nil {
17490		invalidParams.Add(request.NewErrParamRequired("Tags"))
17491	}
17492	if s.Tags != nil {
17493		for i, v := range s.Tags {
17494			if v == nil {
17495				continue
17496			}
17497			if err := v.Validate(); err != nil {
17498				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
17499			}
17500		}
17501	}
17502
17503	if invalidParams.Len() > 0 {
17504		return invalidParams
17505	}
17506	return nil
17507}
17508
17509// SetResourceARN sets the ResourceARN field's value.
17510func (s *TagResourceInput) SetResourceARN(v string) *TagResourceInput {
17511	s.ResourceARN = &v
17512	return s
17513}
17514
17515// SetTags sets the Tags field's value.
17516func (s *TagResourceInput) SetTags(v []*Tag) *TagResourceInput {
17517	s.Tags = v
17518	return s
17519}
17520
17521type TagResourceOutput struct {
17522	_ struct{} `type:"structure"`
17523}
17524
17525// String returns the string representation
17526func (s TagResourceOutput) String() string {
17527	return awsutil.Prettify(s)
17528}
17529
17530// GoString returns the string representation
17531func (s TagResourceOutput) GoString() string {
17532	return s.String()
17533}
17534
17535// Represents a condition that is evaluated.
17536type Test struct {
17537	_ struct{} `type:"structure"`
17538
17539	// The test's ARN.
17540	Arn *string `locationName:"arn" min:"32" type:"string"`
17541
17542	// The test's result counters.
17543	Counters *Counters `locationName:"counters" type:"structure"`
17544
17545	// When the test was created.
17546	Created *time.Time `locationName:"created" type:"timestamp"`
17547
17548	// Represents the total (metered or unmetered) minutes used by the test.
17549	DeviceMinutes *DeviceMinutes `locationName:"deviceMinutes" type:"structure"`
17550
17551	// A message about the test's result.
17552	Message *string `locationName:"message" type:"string"`
17553
17554	// The test's name.
17555	Name *string `locationName:"name" type:"string"`
17556
17557	// The test's result.
17558	//
17559	// Allowed values include:
17560	//
17561	//    * PENDING
17562	//
17563	//    * PASSED
17564	//
17565	//    * WARNED
17566	//
17567	//    * FAILED
17568	//
17569	//    * SKIPPED
17570	//
17571	//    * ERRORED
17572	//
17573	//    * STOPPED
17574	Result *string `locationName:"result" type:"string" enum:"ExecutionResult"`
17575
17576	// The test's start time.
17577	Started *time.Time `locationName:"started" type:"timestamp"`
17578
17579	// The test's status.
17580	//
17581	// Allowed values include:
17582	//
17583	//    * PENDING
17584	//
17585	//    * PENDING_CONCURRENCY
17586	//
17587	//    * PENDING_DEVICE
17588	//
17589	//    * PROCESSING
17590	//
17591	//    * SCHEDULING
17592	//
17593	//    * PREPARING
17594	//
17595	//    * RUNNING
17596	//
17597	//    * COMPLETED
17598	//
17599	//    * STOPPING
17600	Status *string `locationName:"status" type:"string" enum:"ExecutionStatus"`
17601
17602	// The test's stop time.
17603	Stopped *time.Time `locationName:"stopped" type:"timestamp"`
17604
17605	// The test's type.
17606	//
17607	// Must be one of the following values:
17608	//
17609	//    * BUILTIN_FUZZ
17610	//
17611	//    * BUILTIN_EXPLORER For Android, an app explorer that traverses an Android
17612	//    app, interacting with it and capturing screenshots at the same time.
17613	//
17614	//    * APPIUM_JAVA_JUNIT
17615	//
17616	//    * APPIUM_JAVA_TESTNG
17617	//
17618	//    * APPIUM_PYTHON
17619	//
17620	//    * APPIUM_NODE
17621	//
17622	//    * APPIUM_RUBY
17623	//
17624	//    * APPIUM_WEB_JAVA_JUNIT
17625	//
17626	//    * APPIUM_WEB_JAVA_TESTNG
17627	//
17628	//    * APPIUM_WEB_PYTHON
17629	//
17630	//    * APPIUM_WEB_NODE
17631	//
17632	//    * APPIUM_WEB_RUBY
17633	//
17634	//    * CALABASH
17635	//
17636	//    * INSTRUMENTATION
17637	//
17638	//    * UIAUTOMATION
17639	//
17640	//    * UIAUTOMATOR
17641	//
17642	//    * XCTEST
17643	//
17644	//    * XCTEST_UI
17645	Type *string `locationName:"type" type:"string" enum:"TestType"`
17646}
17647
17648// String returns the string representation
17649func (s Test) String() string {
17650	return awsutil.Prettify(s)
17651}
17652
17653// GoString returns the string representation
17654func (s Test) GoString() string {
17655	return s.String()
17656}
17657
17658// SetArn sets the Arn field's value.
17659func (s *Test) SetArn(v string) *Test {
17660	s.Arn = &v
17661	return s
17662}
17663
17664// SetCounters sets the Counters field's value.
17665func (s *Test) SetCounters(v *Counters) *Test {
17666	s.Counters = v
17667	return s
17668}
17669
17670// SetCreated sets the Created field's value.
17671func (s *Test) SetCreated(v time.Time) *Test {
17672	s.Created = &v
17673	return s
17674}
17675
17676// SetDeviceMinutes sets the DeviceMinutes field's value.
17677func (s *Test) SetDeviceMinutes(v *DeviceMinutes) *Test {
17678	s.DeviceMinutes = v
17679	return s
17680}
17681
17682// SetMessage sets the Message field's value.
17683func (s *Test) SetMessage(v string) *Test {
17684	s.Message = &v
17685	return s
17686}
17687
17688// SetName sets the Name field's value.
17689func (s *Test) SetName(v string) *Test {
17690	s.Name = &v
17691	return s
17692}
17693
17694// SetResult sets the Result field's value.
17695func (s *Test) SetResult(v string) *Test {
17696	s.Result = &v
17697	return s
17698}
17699
17700// SetStarted sets the Started field's value.
17701func (s *Test) SetStarted(v time.Time) *Test {
17702	s.Started = &v
17703	return s
17704}
17705
17706// SetStatus sets the Status field's value.
17707func (s *Test) SetStatus(v string) *Test {
17708	s.Status = &v
17709	return s
17710}
17711
17712// SetStopped sets the Stopped field's value.
17713func (s *Test) SetStopped(v time.Time) *Test {
17714	s.Stopped = &v
17715	return s
17716}
17717
17718// SetType sets the Type field's value.
17719func (s *Test) SetType(v string) *Test {
17720	s.Type = &v
17721	return s
17722}
17723
17724// A Selenium testing project. Projects are used to collect and collate sessions.
17725type TestGridProject struct {
17726	_ struct{} `type:"structure"`
17727
17728	// The ARN for the project.
17729	Arn *string `locationName:"arn" min:"32" type:"string"`
17730
17731	// When the project was created.
17732	Created *time.Time `locationName:"created" type:"timestamp"`
17733
17734	// A human-readable description for the project.
17735	Description *string `locationName:"description" type:"string"`
17736
17737	// A human-readable name for the project.
17738	Name *string `locationName:"name" type:"string"`
17739}
17740
17741// String returns the string representation
17742func (s TestGridProject) String() string {
17743	return awsutil.Prettify(s)
17744}
17745
17746// GoString returns the string representation
17747func (s TestGridProject) GoString() string {
17748	return s.String()
17749}
17750
17751// SetArn sets the Arn field's value.
17752func (s *TestGridProject) SetArn(v string) *TestGridProject {
17753	s.Arn = &v
17754	return s
17755}
17756
17757// SetCreated sets the Created field's value.
17758func (s *TestGridProject) SetCreated(v time.Time) *TestGridProject {
17759	s.Created = &v
17760	return s
17761}
17762
17763// SetDescription sets the Description field's value.
17764func (s *TestGridProject) SetDescription(v string) *TestGridProject {
17765	s.Description = &v
17766	return s
17767}
17768
17769// SetName sets the Name field's value.
17770func (s *TestGridProject) SetName(v string) *TestGridProject {
17771	s.Name = &v
17772	return s
17773}
17774
17775// A TestGridSession is a single instance of a browser launched from the URL
17776// provided by a call to CreateTestGridUrl.
17777type TestGridSession struct {
17778	_ struct{} `type:"structure"`
17779
17780	// The ARN of the session.
17781	Arn *string `locationName:"arn" min:"32" type:"string"`
17782
17783	// The number of billed minutes that were used for this session.
17784	BillingMinutes *float64 `locationName:"billingMinutes" type:"double"`
17785
17786	// The time that the session was started.
17787	Created *time.Time `locationName:"created" type:"timestamp"`
17788
17789	// The time the session ended.
17790	Ended *time.Time `locationName:"ended" type:"timestamp"`
17791
17792	// A JSON object of options and parameters passed to the Selenium WebDriver.
17793	SeleniumProperties *string `locationName:"seleniumProperties" type:"string"`
17794
17795	// The state of the session.
17796	Status *string `locationName:"status" type:"string" enum:"TestGridSessionStatus"`
17797}
17798
17799// String returns the string representation
17800func (s TestGridSession) String() string {
17801	return awsutil.Prettify(s)
17802}
17803
17804// GoString returns the string representation
17805func (s TestGridSession) GoString() string {
17806	return s.String()
17807}
17808
17809// SetArn sets the Arn field's value.
17810func (s *TestGridSession) SetArn(v string) *TestGridSession {
17811	s.Arn = &v
17812	return s
17813}
17814
17815// SetBillingMinutes sets the BillingMinutes field's value.
17816func (s *TestGridSession) SetBillingMinutes(v float64) *TestGridSession {
17817	s.BillingMinutes = &v
17818	return s
17819}
17820
17821// SetCreated sets the Created field's value.
17822func (s *TestGridSession) SetCreated(v time.Time) *TestGridSession {
17823	s.Created = &v
17824	return s
17825}
17826
17827// SetEnded sets the Ended field's value.
17828func (s *TestGridSession) SetEnded(v time.Time) *TestGridSession {
17829	s.Ended = &v
17830	return s
17831}
17832
17833// SetSeleniumProperties sets the SeleniumProperties field's value.
17834func (s *TestGridSession) SetSeleniumProperties(v string) *TestGridSession {
17835	s.SeleniumProperties = &v
17836	return s
17837}
17838
17839// SetStatus sets the Status field's value.
17840func (s *TestGridSession) SetStatus(v string) *TestGridSession {
17841	s.Status = &v
17842	return s
17843}
17844
17845// An action taken by a TestGridSession browser instance.
17846type TestGridSessionAction struct {
17847	_ struct{} `type:"structure"`
17848
17849	// The action taken by the session.
17850	Action *string `locationName:"action" type:"string"`
17851
17852	// The time, in milliseconds, that the action took to complete in the browser.
17853	Duration *int64 `locationName:"duration" type:"long"`
17854
17855	// HTTP method that the browser used to make the request.
17856	RequestMethod *string `locationName:"requestMethod" type:"string"`
17857
17858	// The time that the session invoked the action.
17859	Started *time.Time `locationName:"started" type:"timestamp"`
17860
17861	// HTTP status code returned to the browser when the action was taken.
17862	StatusCode *string `locationName:"statusCode" type:"string"`
17863}
17864
17865// String returns the string representation
17866func (s TestGridSessionAction) String() string {
17867	return awsutil.Prettify(s)
17868}
17869
17870// GoString returns the string representation
17871func (s TestGridSessionAction) GoString() string {
17872	return s.String()
17873}
17874
17875// SetAction sets the Action field's value.
17876func (s *TestGridSessionAction) SetAction(v string) *TestGridSessionAction {
17877	s.Action = &v
17878	return s
17879}
17880
17881// SetDuration sets the Duration field's value.
17882func (s *TestGridSessionAction) SetDuration(v int64) *TestGridSessionAction {
17883	s.Duration = &v
17884	return s
17885}
17886
17887// SetRequestMethod sets the RequestMethod field's value.
17888func (s *TestGridSessionAction) SetRequestMethod(v string) *TestGridSessionAction {
17889	s.RequestMethod = &v
17890	return s
17891}
17892
17893// SetStarted sets the Started field's value.
17894func (s *TestGridSessionAction) SetStarted(v time.Time) *TestGridSessionAction {
17895	s.Started = &v
17896	return s
17897}
17898
17899// SetStatusCode sets the StatusCode field's value.
17900func (s *TestGridSessionAction) SetStatusCode(v string) *TestGridSessionAction {
17901	s.StatusCode = &v
17902	return s
17903}
17904
17905// Artifacts are video and other files that are produced in the process of running
17906// a browser in an automated context.
17907//
17908// Video elements might be broken up into multiple artifacts as they grow in
17909// size during creation.
17910type TestGridSessionArtifact struct {
17911	_ struct{} `type:"structure"`
17912
17913	// The file name of the artifact.
17914	Filename *string `locationName:"filename" type:"string"`
17915
17916	// The kind of artifact.
17917	Type *string `locationName:"type" type:"string" enum:"TestGridSessionArtifactType"`
17918
17919	// A semi-stable URL to the content of the object.
17920	Url *string `locationName:"url" type:"string"`
17921}
17922
17923// String returns the string representation
17924func (s TestGridSessionArtifact) String() string {
17925	return awsutil.Prettify(s)
17926}
17927
17928// GoString returns the string representation
17929func (s TestGridSessionArtifact) GoString() string {
17930	return s.String()
17931}
17932
17933// SetFilename sets the Filename field's value.
17934func (s *TestGridSessionArtifact) SetFilename(v string) *TestGridSessionArtifact {
17935	s.Filename = &v
17936	return s
17937}
17938
17939// SetType sets the Type field's value.
17940func (s *TestGridSessionArtifact) SetType(v string) *TestGridSessionArtifact {
17941	s.Type = &v
17942	return s
17943}
17944
17945// SetUrl sets the Url field's value.
17946func (s *TestGridSessionArtifact) SetUrl(v string) *TestGridSessionArtifact {
17947	s.Url = &v
17948	return s
17949}
17950
17951// Represents information about free trial device minutes for an AWS account.
17952type TrialMinutes struct {
17953	_ struct{} `type:"structure"`
17954
17955	// The number of free trial minutes remaining in the account.
17956	Remaining *float64 `locationName:"remaining" type:"double"`
17957
17958	// The total number of free trial minutes that the account started with.
17959	Total *float64 `locationName:"total" type:"double"`
17960}
17961
17962// String returns the string representation
17963func (s TrialMinutes) String() string {
17964	return awsutil.Prettify(s)
17965}
17966
17967// GoString returns the string representation
17968func (s TrialMinutes) GoString() string {
17969	return s.String()
17970}
17971
17972// SetRemaining sets the Remaining field's value.
17973func (s *TrialMinutes) SetRemaining(v float64) *TrialMinutes {
17974	s.Remaining = &v
17975	return s
17976}
17977
17978// SetTotal sets the Total field's value.
17979func (s *TrialMinutes) SetTotal(v float64) *TrialMinutes {
17980	s.Total = &v
17981	return s
17982}
17983
17984// A collection of one or more problems, grouped by their result.
17985type UniqueProblem struct {
17986	_ struct{} `type:"structure"`
17987
17988	// A message about the unique problems' result.
17989	Message *string `locationName:"message" type:"string"`
17990
17991	// Information about the problems.
17992	Problems []*Problem `locationName:"problems" type:"list"`
17993}
17994
17995// String returns the string representation
17996func (s UniqueProblem) String() string {
17997	return awsutil.Prettify(s)
17998}
17999
18000// GoString returns the string representation
18001func (s UniqueProblem) GoString() string {
18002	return s.String()
18003}
18004
18005// SetMessage sets the Message field's value.
18006func (s *UniqueProblem) SetMessage(v string) *UniqueProblem {
18007	s.Message = &v
18008	return s
18009}
18010
18011// SetProblems sets the Problems field's value.
18012func (s *UniqueProblem) SetProblems(v []*Problem) *UniqueProblem {
18013	s.Problems = v
18014	return s
18015}
18016
18017type UntagResourceInput struct {
18018	_ struct{} `type:"structure"`
18019
18020	// The Amazon Resource Name (ARN) of the resource or resources from which to
18021	// delete tags. You can associate tags with the following Device Farm resources:
18022	// PROJECT, RUN, NETWORK_PROFILE, INSTANCE_PROFILE, DEVICE_INSTANCE, SESSION,
18023	// DEVICE_POOL, DEVICE, and VPCE_CONFIGURATION.
18024	//
18025	// ResourceARN is a required field
18026	ResourceARN *string `min:"32" type:"string" required:"true"`
18027
18028	// The keys of the tags to be removed.
18029	//
18030	// TagKeys is a required field
18031	TagKeys []*string `type:"list" required:"true"`
18032}
18033
18034// String returns the string representation
18035func (s UntagResourceInput) String() string {
18036	return awsutil.Prettify(s)
18037}
18038
18039// GoString returns the string representation
18040func (s UntagResourceInput) GoString() string {
18041	return s.String()
18042}
18043
18044// Validate inspects the fields of the type to determine if they are valid.
18045func (s *UntagResourceInput) Validate() error {
18046	invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"}
18047	if s.ResourceARN == nil {
18048		invalidParams.Add(request.NewErrParamRequired("ResourceARN"))
18049	}
18050	if s.ResourceARN != nil && len(*s.ResourceARN) < 32 {
18051		invalidParams.Add(request.NewErrParamMinLen("ResourceARN", 32))
18052	}
18053	if s.TagKeys == nil {
18054		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
18055	}
18056
18057	if invalidParams.Len() > 0 {
18058		return invalidParams
18059	}
18060	return nil
18061}
18062
18063// SetResourceARN sets the ResourceARN field's value.
18064func (s *UntagResourceInput) SetResourceARN(v string) *UntagResourceInput {
18065	s.ResourceARN = &v
18066	return s
18067}
18068
18069// SetTagKeys sets the TagKeys field's value.
18070func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput {
18071	s.TagKeys = v
18072	return s
18073}
18074
18075type UntagResourceOutput struct {
18076	_ struct{} `type:"structure"`
18077}
18078
18079// String returns the string representation
18080func (s UntagResourceOutput) String() string {
18081	return awsutil.Prettify(s)
18082}
18083
18084// GoString returns the string representation
18085func (s UntagResourceOutput) GoString() string {
18086	return s.String()
18087}
18088
18089type UpdateDeviceInstanceInput struct {
18090	_ struct{} `type:"structure"`
18091
18092	// The Amazon Resource Name (ARN) of the device instance.
18093	//
18094	// Arn is a required field
18095	Arn *string `locationName:"arn" min:"32" type:"string" required:"true"`
18096
18097	// An array of strings that you want to associate with the device instance.
18098	Labels []*string `locationName:"labels" type:"list"`
18099
18100	// The ARN of the profile that you want to associate with the device instance.
18101	ProfileArn *string `locationName:"profileArn" min:"32" type:"string"`
18102}
18103
18104// String returns the string representation
18105func (s UpdateDeviceInstanceInput) String() string {
18106	return awsutil.Prettify(s)
18107}
18108
18109// GoString returns the string representation
18110func (s UpdateDeviceInstanceInput) GoString() string {
18111	return s.String()
18112}
18113
18114// Validate inspects the fields of the type to determine if they are valid.
18115func (s *UpdateDeviceInstanceInput) Validate() error {
18116	invalidParams := request.ErrInvalidParams{Context: "UpdateDeviceInstanceInput"}
18117	if s.Arn == nil {
18118		invalidParams.Add(request.NewErrParamRequired("Arn"))
18119	}
18120	if s.Arn != nil && len(*s.Arn) < 32 {
18121		invalidParams.Add(request.NewErrParamMinLen("Arn", 32))
18122	}
18123	if s.ProfileArn != nil && len(*s.ProfileArn) < 32 {
18124		invalidParams.Add(request.NewErrParamMinLen("ProfileArn", 32))
18125	}
18126
18127	if invalidParams.Len() > 0 {
18128		return invalidParams
18129	}
18130	return nil
18131}
18132
18133// SetArn sets the Arn field's value.
18134func (s *UpdateDeviceInstanceInput) SetArn(v string) *UpdateDeviceInstanceInput {
18135	s.Arn = &v
18136	return s
18137}
18138
18139// SetLabels sets the Labels field's value.
18140func (s *UpdateDeviceInstanceInput) SetLabels(v []*string) *UpdateDeviceInstanceInput {
18141	s.Labels = v
18142	return s
18143}
18144
18145// SetProfileArn sets the ProfileArn field's value.
18146func (s *UpdateDeviceInstanceInput) SetProfileArn(v string) *UpdateDeviceInstanceInput {
18147	s.ProfileArn = &v
18148	return s
18149}
18150
18151type UpdateDeviceInstanceOutput struct {
18152	_ struct{} `type:"structure"`
18153
18154	// An object that contains information about your device instance.
18155	DeviceInstance *DeviceInstance `locationName:"deviceInstance" type:"structure"`
18156}
18157
18158// String returns the string representation
18159func (s UpdateDeviceInstanceOutput) String() string {
18160	return awsutil.Prettify(s)
18161}
18162
18163// GoString returns the string representation
18164func (s UpdateDeviceInstanceOutput) GoString() string {
18165	return s.String()
18166}
18167
18168// SetDeviceInstance sets the DeviceInstance field's value.
18169func (s *UpdateDeviceInstanceOutput) SetDeviceInstance(v *DeviceInstance) *UpdateDeviceInstanceOutput {
18170	s.DeviceInstance = v
18171	return s
18172}
18173
18174// Represents a request to the update device pool operation.
18175type UpdateDevicePoolInput struct {
18176	_ struct{} `type:"structure"`
18177
18178	// The Amazon Resource Name (ARN) of the Device Farm device pool to update.
18179	//
18180	// Arn is a required field
18181	Arn *string `locationName:"arn" min:"32" type:"string" required:"true"`
18182
18183	// Sets whether the maxDevices parameter applies to your device pool. If you
18184	// set this parameter to true, the maxDevices parameter does not apply, and
18185	// Device Farm does not limit the number of devices that it adds to your device
18186	// pool. In this case, Device Farm adds all available devices that meet the
18187	// criteria specified in the rules parameter.
18188	//
18189	// If you use this parameter in your request, you cannot use the maxDevices
18190	// parameter in the same request.
18191	ClearMaxDevices *bool `locationName:"clearMaxDevices" type:"boolean"`
18192
18193	// A description of the device pool to update.
18194	Description *string `locationName:"description" type:"string"`
18195
18196	// The number of devices that Device Farm can add to your device pool. Device
18197	// Farm adds devices that are available and that meet the criteria that you
18198	// assign for the rules parameter. Depending on how many devices meet these
18199	// constraints, your device pool might contain fewer devices than the value
18200	// for this parameter.
18201	//
18202	// By specifying the maximum number of devices, you can control the costs that
18203	// you incur by running tests.
18204	//
18205	// If you use this parameter in your request, you cannot use the clearMaxDevices
18206	// parameter in the same request.
18207	MaxDevices *int64 `locationName:"maxDevices" type:"integer"`
18208
18209	// A string that represents the name of the device pool to update.
18210	Name *string `locationName:"name" type:"string"`
18211
18212	// Represents the rules to modify for the device pool. Updating rules is optional.
18213	// If you update rules for your request, the update replaces the existing rules.
18214	Rules []*Rule `locationName:"rules" type:"list"`
18215}
18216
18217// String returns the string representation
18218func (s UpdateDevicePoolInput) String() string {
18219	return awsutil.Prettify(s)
18220}
18221
18222// GoString returns the string representation
18223func (s UpdateDevicePoolInput) GoString() string {
18224	return s.String()
18225}
18226
18227// Validate inspects the fields of the type to determine if they are valid.
18228func (s *UpdateDevicePoolInput) Validate() error {
18229	invalidParams := request.ErrInvalidParams{Context: "UpdateDevicePoolInput"}
18230	if s.Arn == nil {
18231		invalidParams.Add(request.NewErrParamRequired("Arn"))
18232	}
18233	if s.Arn != nil && len(*s.Arn) < 32 {
18234		invalidParams.Add(request.NewErrParamMinLen("Arn", 32))
18235	}
18236
18237	if invalidParams.Len() > 0 {
18238		return invalidParams
18239	}
18240	return nil
18241}
18242
18243// SetArn sets the Arn field's value.
18244func (s *UpdateDevicePoolInput) SetArn(v string) *UpdateDevicePoolInput {
18245	s.Arn = &v
18246	return s
18247}
18248
18249// SetClearMaxDevices sets the ClearMaxDevices field's value.
18250func (s *UpdateDevicePoolInput) SetClearMaxDevices(v bool) *UpdateDevicePoolInput {
18251	s.ClearMaxDevices = &v
18252	return s
18253}
18254
18255// SetDescription sets the Description field's value.
18256func (s *UpdateDevicePoolInput) SetDescription(v string) *UpdateDevicePoolInput {
18257	s.Description = &v
18258	return s
18259}
18260
18261// SetMaxDevices sets the MaxDevices field's value.
18262func (s *UpdateDevicePoolInput) SetMaxDevices(v int64) *UpdateDevicePoolInput {
18263	s.MaxDevices = &v
18264	return s
18265}
18266
18267// SetName sets the Name field's value.
18268func (s *UpdateDevicePoolInput) SetName(v string) *UpdateDevicePoolInput {
18269	s.Name = &v
18270	return s
18271}
18272
18273// SetRules sets the Rules field's value.
18274func (s *UpdateDevicePoolInput) SetRules(v []*Rule) *UpdateDevicePoolInput {
18275	s.Rules = v
18276	return s
18277}
18278
18279// Represents the result of an update device pool request.
18280type UpdateDevicePoolOutput struct {
18281	_ struct{} `type:"structure"`
18282
18283	// The device pool you just updated.
18284	DevicePool *DevicePool `locationName:"devicePool" type:"structure"`
18285}
18286
18287// String returns the string representation
18288func (s UpdateDevicePoolOutput) String() string {
18289	return awsutil.Prettify(s)
18290}
18291
18292// GoString returns the string representation
18293func (s UpdateDevicePoolOutput) GoString() string {
18294	return s.String()
18295}
18296
18297// SetDevicePool sets the DevicePool field's value.
18298func (s *UpdateDevicePoolOutput) SetDevicePool(v *DevicePool) *UpdateDevicePoolOutput {
18299	s.DevicePool = v
18300	return s
18301}
18302
18303type UpdateInstanceProfileInput struct {
18304	_ struct{} `type:"structure"`
18305
18306	// The Amazon Resource Name (ARN) of the instance profile.
18307	//
18308	// Arn is a required field
18309	Arn *string `locationName:"arn" min:"32" type:"string" required:"true"`
18310
18311	// The updated description for your instance profile.
18312	Description *string `locationName:"description" type:"string"`
18313
18314	// An array of strings that specifies the list of app packages that should not
18315	// be cleaned up from the device after a test run is over.
18316	//
18317	// The list of packages is only considered if you set packageCleanup to true.
18318	ExcludeAppPackagesFromCleanup []*string `locationName:"excludeAppPackagesFromCleanup" type:"list"`
18319
18320	// The updated name for your instance profile.
18321	Name *string `locationName:"name" type:"string"`
18322
18323	// The updated choice for whether you want to specify package cleanup. The default
18324	// value is false for private devices.
18325	PackageCleanup *bool `locationName:"packageCleanup" type:"boolean"`
18326
18327	// The updated choice for whether you want to reboot the device after use. The
18328	// default value is true.
18329	RebootAfterUse *bool `locationName:"rebootAfterUse" type:"boolean"`
18330}
18331
18332// String returns the string representation
18333func (s UpdateInstanceProfileInput) String() string {
18334	return awsutil.Prettify(s)
18335}
18336
18337// GoString returns the string representation
18338func (s UpdateInstanceProfileInput) GoString() string {
18339	return s.String()
18340}
18341
18342// Validate inspects the fields of the type to determine if they are valid.
18343func (s *UpdateInstanceProfileInput) Validate() error {
18344	invalidParams := request.ErrInvalidParams{Context: "UpdateInstanceProfileInput"}
18345	if s.Arn == nil {
18346		invalidParams.Add(request.NewErrParamRequired("Arn"))
18347	}
18348	if s.Arn != nil && len(*s.Arn) < 32 {
18349		invalidParams.Add(request.NewErrParamMinLen("Arn", 32))
18350	}
18351
18352	if invalidParams.Len() > 0 {
18353		return invalidParams
18354	}
18355	return nil
18356}
18357
18358// SetArn sets the Arn field's value.
18359func (s *UpdateInstanceProfileInput) SetArn(v string) *UpdateInstanceProfileInput {
18360	s.Arn = &v
18361	return s
18362}
18363
18364// SetDescription sets the Description field's value.
18365func (s *UpdateInstanceProfileInput) SetDescription(v string) *UpdateInstanceProfileInput {
18366	s.Description = &v
18367	return s
18368}
18369
18370// SetExcludeAppPackagesFromCleanup sets the ExcludeAppPackagesFromCleanup field's value.
18371func (s *UpdateInstanceProfileInput) SetExcludeAppPackagesFromCleanup(v []*string) *UpdateInstanceProfileInput {
18372	s.ExcludeAppPackagesFromCleanup = v
18373	return s
18374}
18375
18376// SetName sets the Name field's value.
18377func (s *UpdateInstanceProfileInput) SetName(v string) *UpdateInstanceProfileInput {
18378	s.Name = &v
18379	return s
18380}
18381
18382// SetPackageCleanup sets the PackageCleanup field's value.
18383func (s *UpdateInstanceProfileInput) SetPackageCleanup(v bool) *UpdateInstanceProfileInput {
18384	s.PackageCleanup = &v
18385	return s
18386}
18387
18388// SetRebootAfterUse sets the RebootAfterUse field's value.
18389func (s *UpdateInstanceProfileInput) SetRebootAfterUse(v bool) *UpdateInstanceProfileInput {
18390	s.RebootAfterUse = &v
18391	return s
18392}
18393
18394type UpdateInstanceProfileOutput struct {
18395	_ struct{} `type:"structure"`
18396
18397	// An object that contains information about your instance profile.
18398	InstanceProfile *InstanceProfile `locationName:"instanceProfile" type:"structure"`
18399}
18400
18401// String returns the string representation
18402func (s UpdateInstanceProfileOutput) String() string {
18403	return awsutil.Prettify(s)
18404}
18405
18406// GoString returns the string representation
18407func (s UpdateInstanceProfileOutput) GoString() string {
18408	return s.String()
18409}
18410
18411// SetInstanceProfile sets the InstanceProfile field's value.
18412func (s *UpdateInstanceProfileOutput) SetInstanceProfile(v *InstanceProfile) *UpdateInstanceProfileOutput {
18413	s.InstanceProfile = v
18414	return s
18415}
18416
18417type UpdateNetworkProfileInput struct {
18418	_ struct{} `type:"structure"`
18419
18420	// The Amazon Resource Name (ARN) of the project for which you want to update
18421	// network profile settings.
18422	//
18423	// Arn is a required field
18424	Arn *string `locationName:"arn" min:"32" type:"string" required:"true"`
18425
18426	// The description of the network profile about which you are returning information.
18427	Description *string `locationName:"description" type:"string"`
18428
18429	// The data throughput rate in bits per second, as an integer from 0 to 104857600.
18430	DownlinkBandwidthBits *int64 `locationName:"downlinkBandwidthBits" type:"long"`
18431
18432	// Delay time for all packets to destination in milliseconds as an integer from
18433	// 0 to 2000.
18434	DownlinkDelayMs *int64 `locationName:"downlinkDelayMs" type:"long"`
18435
18436	// Time variation in the delay of received packets in milliseconds as an integer
18437	// from 0 to 2000.
18438	DownlinkJitterMs *int64 `locationName:"downlinkJitterMs" type:"long"`
18439
18440	// Proportion of received packets that fail to arrive from 0 to 100 percent.
18441	DownlinkLossPercent *int64 `locationName:"downlinkLossPercent" type:"integer"`
18442
18443	// The name of the network profile about which you are returning information.
18444	Name *string `locationName:"name" type:"string"`
18445
18446	// The type of network profile to return information about. Valid values are
18447	// listed here.
18448	Type *string `locationName:"type" type:"string" enum:"NetworkProfileType"`
18449
18450	// The data throughput rate in bits per second, as an integer from 0 to 104857600.
18451	UplinkBandwidthBits *int64 `locationName:"uplinkBandwidthBits" type:"long"`
18452
18453	// Delay time for all packets to destination in milliseconds as an integer from
18454	// 0 to 2000.
18455	UplinkDelayMs *int64 `locationName:"uplinkDelayMs" type:"long"`
18456
18457	// Time variation in the delay of received packets in milliseconds as an integer
18458	// from 0 to 2000.
18459	UplinkJitterMs *int64 `locationName:"uplinkJitterMs" type:"long"`
18460
18461	// Proportion of transmitted packets that fail to arrive from 0 to 100 percent.
18462	UplinkLossPercent *int64 `locationName:"uplinkLossPercent" type:"integer"`
18463}
18464
18465// String returns the string representation
18466func (s UpdateNetworkProfileInput) String() string {
18467	return awsutil.Prettify(s)
18468}
18469
18470// GoString returns the string representation
18471func (s UpdateNetworkProfileInput) GoString() string {
18472	return s.String()
18473}
18474
18475// Validate inspects the fields of the type to determine if they are valid.
18476func (s *UpdateNetworkProfileInput) Validate() error {
18477	invalidParams := request.ErrInvalidParams{Context: "UpdateNetworkProfileInput"}
18478	if s.Arn == nil {
18479		invalidParams.Add(request.NewErrParamRequired("Arn"))
18480	}
18481	if s.Arn != nil && len(*s.Arn) < 32 {
18482		invalidParams.Add(request.NewErrParamMinLen("Arn", 32))
18483	}
18484
18485	if invalidParams.Len() > 0 {
18486		return invalidParams
18487	}
18488	return nil
18489}
18490
18491// SetArn sets the Arn field's value.
18492func (s *UpdateNetworkProfileInput) SetArn(v string) *UpdateNetworkProfileInput {
18493	s.Arn = &v
18494	return s
18495}
18496
18497// SetDescription sets the Description field's value.
18498func (s *UpdateNetworkProfileInput) SetDescription(v string) *UpdateNetworkProfileInput {
18499	s.Description = &v
18500	return s
18501}
18502
18503// SetDownlinkBandwidthBits sets the DownlinkBandwidthBits field's value.
18504func (s *UpdateNetworkProfileInput) SetDownlinkBandwidthBits(v int64) *UpdateNetworkProfileInput {
18505	s.DownlinkBandwidthBits = &v
18506	return s
18507}
18508
18509// SetDownlinkDelayMs sets the DownlinkDelayMs field's value.
18510func (s *UpdateNetworkProfileInput) SetDownlinkDelayMs(v int64) *UpdateNetworkProfileInput {
18511	s.DownlinkDelayMs = &v
18512	return s
18513}
18514
18515// SetDownlinkJitterMs sets the DownlinkJitterMs field's value.
18516func (s *UpdateNetworkProfileInput) SetDownlinkJitterMs(v int64) *UpdateNetworkProfileInput {
18517	s.DownlinkJitterMs = &v
18518	return s
18519}
18520
18521// SetDownlinkLossPercent sets the DownlinkLossPercent field's value.
18522func (s *UpdateNetworkProfileInput) SetDownlinkLossPercent(v int64) *UpdateNetworkProfileInput {
18523	s.DownlinkLossPercent = &v
18524	return s
18525}
18526
18527// SetName sets the Name field's value.
18528func (s *UpdateNetworkProfileInput) SetName(v string) *UpdateNetworkProfileInput {
18529	s.Name = &v
18530	return s
18531}
18532
18533// SetType sets the Type field's value.
18534func (s *UpdateNetworkProfileInput) SetType(v string) *UpdateNetworkProfileInput {
18535	s.Type = &v
18536	return s
18537}
18538
18539// SetUplinkBandwidthBits sets the UplinkBandwidthBits field's value.
18540func (s *UpdateNetworkProfileInput) SetUplinkBandwidthBits(v int64) *UpdateNetworkProfileInput {
18541	s.UplinkBandwidthBits = &v
18542	return s
18543}
18544
18545// SetUplinkDelayMs sets the UplinkDelayMs field's value.
18546func (s *UpdateNetworkProfileInput) SetUplinkDelayMs(v int64) *UpdateNetworkProfileInput {
18547	s.UplinkDelayMs = &v
18548	return s
18549}
18550
18551// SetUplinkJitterMs sets the UplinkJitterMs field's value.
18552func (s *UpdateNetworkProfileInput) SetUplinkJitterMs(v int64) *UpdateNetworkProfileInput {
18553	s.UplinkJitterMs = &v
18554	return s
18555}
18556
18557// SetUplinkLossPercent sets the UplinkLossPercent field's value.
18558func (s *UpdateNetworkProfileInput) SetUplinkLossPercent(v int64) *UpdateNetworkProfileInput {
18559	s.UplinkLossPercent = &v
18560	return s
18561}
18562
18563type UpdateNetworkProfileOutput struct {
18564	_ struct{} `type:"structure"`
18565
18566	// A list of the available network profiles.
18567	NetworkProfile *NetworkProfile `locationName:"networkProfile" type:"structure"`
18568}
18569
18570// String returns the string representation
18571func (s UpdateNetworkProfileOutput) String() string {
18572	return awsutil.Prettify(s)
18573}
18574
18575// GoString returns the string representation
18576func (s UpdateNetworkProfileOutput) GoString() string {
18577	return s.String()
18578}
18579
18580// SetNetworkProfile sets the NetworkProfile field's value.
18581func (s *UpdateNetworkProfileOutput) SetNetworkProfile(v *NetworkProfile) *UpdateNetworkProfileOutput {
18582	s.NetworkProfile = v
18583	return s
18584}
18585
18586// Represents a request to the update project operation.
18587type UpdateProjectInput struct {
18588	_ struct{} `type:"structure"`
18589
18590	// The Amazon Resource Name (ARN) of the project whose name to update.
18591	//
18592	// Arn is a required field
18593	Arn *string `locationName:"arn" min:"32" type:"string" required:"true"`
18594
18595	// The number of minutes a test run in the project executes before it times
18596	// out.
18597	DefaultJobTimeoutMinutes *int64 `locationName:"defaultJobTimeoutMinutes" type:"integer"`
18598
18599	// A string that represents the new name of the project that you are updating.
18600	Name *string `locationName:"name" type:"string"`
18601}
18602
18603// String returns the string representation
18604func (s UpdateProjectInput) String() string {
18605	return awsutil.Prettify(s)
18606}
18607
18608// GoString returns the string representation
18609func (s UpdateProjectInput) GoString() string {
18610	return s.String()
18611}
18612
18613// Validate inspects the fields of the type to determine if they are valid.
18614func (s *UpdateProjectInput) Validate() error {
18615	invalidParams := request.ErrInvalidParams{Context: "UpdateProjectInput"}
18616	if s.Arn == nil {
18617		invalidParams.Add(request.NewErrParamRequired("Arn"))
18618	}
18619	if s.Arn != nil && len(*s.Arn) < 32 {
18620		invalidParams.Add(request.NewErrParamMinLen("Arn", 32))
18621	}
18622
18623	if invalidParams.Len() > 0 {
18624		return invalidParams
18625	}
18626	return nil
18627}
18628
18629// SetArn sets the Arn field's value.
18630func (s *UpdateProjectInput) SetArn(v string) *UpdateProjectInput {
18631	s.Arn = &v
18632	return s
18633}
18634
18635// SetDefaultJobTimeoutMinutes sets the DefaultJobTimeoutMinutes field's value.
18636func (s *UpdateProjectInput) SetDefaultJobTimeoutMinutes(v int64) *UpdateProjectInput {
18637	s.DefaultJobTimeoutMinutes = &v
18638	return s
18639}
18640
18641// SetName sets the Name field's value.
18642func (s *UpdateProjectInput) SetName(v string) *UpdateProjectInput {
18643	s.Name = &v
18644	return s
18645}
18646
18647// Represents the result of an update project request.
18648type UpdateProjectOutput struct {
18649	_ struct{} `type:"structure"`
18650
18651	// The project to update.
18652	Project *Project `locationName:"project" type:"structure"`
18653}
18654
18655// String returns the string representation
18656func (s UpdateProjectOutput) String() string {
18657	return awsutil.Prettify(s)
18658}
18659
18660// GoString returns the string representation
18661func (s UpdateProjectOutput) GoString() string {
18662	return s.String()
18663}
18664
18665// SetProject sets the Project field's value.
18666func (s *UpdateProjectOutput) SetProject(v *Project) *UpdateProjectOutput {
18667	s.Project = v
18668	return s
18669}
18670
18671type UpdateTestGridProjectInput struct {
18672	_ struct{} `type:"structure"`
18673
18674	// Human-readable description for the project.
18675	Description *string `locationName:"description" min:"1" type:"string"`
18676
18677	// Human-readable name for the project.
18678	Name *string `locationName:"name" min:"1" type:"string"`
18679
18680	// ARN of the project to update.
18681	//
18682	// ProjectArn is a required field
18683	ProjectArn *string `locationName:"projectArn" min:"32" type:"string" required:"true"`
18684}
18685
18686// String returns the string representation
18687func (s UpdateTestGridProjectInput) String() string {
18688	return awsutil.Prettify(s)
18689}
18690
18691// GoString returns the string representation
18692func (s UpdateTestGridProjectInput) GoString() string {
18693	return s.String()
18694}
18695
18696// Validate inspects the fields of the type to determine if they are valid.
18697func (s *UpdateTestGridProjectInput) Validate() error {
18698	invalidParams := request.ErrInvalidParams{Context: "UpdateTestGridProjectInput"}
18699	if s.Description != nil && len(*s.Description) < 1 {
18700		invalidParams.Add(request.NewErrParamMinLen("Description", 1))
18701	}
18702	if s.Name != nil && len(*s.Name) < 1 {
18703		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
18704	}
18705	if s.ProjectArn == nil {
18706		invalidParams.Add(request.NewErrParamRequired("ProjectArn"))
18707	}
18708	if s.ProjectArn != nil && len(*s.ProjectArn) < 32 {
18709		invalidParams.Add(request.NewErrParamMinLen("ProjectArn", 32))
18710	}
18711
18712	if invalidParams.Len() > 0 {
18713		return invalidParams
18714	}
18715	return nil
18716}
18717
18718// SetDescription sets the Description field's value.
18719func (s *UpdateTestGridProjectInput) SetDescription(v string) *UpdateTestGridProjectInput {
18720	s.Description = &v
18721	return s
18722}
18723
18724// SetName sets the Name field's value.
18725func (s *UpdateTestGridProjectInput) SetName(v string) *UpdateTestGridProjectInput {
18726	s.Name = &v
18727	return s
18728}
18729
18730// SetProjectArn sets the ProjectArn field's value.
18731func (s *UpdateTestGridProjectInput) SetProjectArn(v string) *UpdateTestGridProjectInput {
18732	s.ProjectArn = &v
18733	return s
18734}
18735
18736type UpdateTestGridProjectOutput struct {
18737	_ struct{} `type:"structure"`
18738
18739	// The project, including updated information.
18740	TestGridProject *TestGridProject `locationName:"testGridProject" type:"structure"`
18741}
18742
18743// String returns the string representation
18744func (s UpdateTestGridProjectOutput) String() string {
18745	return awsutil.Prettify(s)
18746}
18747
18748// GoString returns the string representation
18749func (s UpdateTestGridProjectOutput) GoString() string {
18750	return s.String()
18751}
18752
18753// SetTestGridProject sets the TestGridProject field's value.
18754func (s *UpdateTestGridProjectOutput) SetTestGridProject(v *TestGridProject) *UpdateTestGridProjectOutput {
18755	s.TestGridProject = v
18756	return s
18757}
18758
18759type UpdateUploadInput struct {
18760	_ struct{} `type:"structure"`
18761
18762	// The Amazon Resource Name (ARN) of the uploaded test spec.
18763	//
18764	// Arn is a required field
18765	Arn *string `locationName:"arn" min:"32" type:"string" required:"true"`
18766
18767	// The upload's content type (for example, application/x-yaml).
18768	ContentType *string `locationName:"contentType" type:"string"`
18769
18770	// Set to true if the YAML file has changed and must be updated. Otherwise,
18771	// set to false.
18772	EditContent *bool `locationName:"editContent" type:"boolean"`
18773
18774	// The upload's test spec file name. The name must not contain any forward slashes
18775	// (/). The test spec file name must end with the .yaml or .yml file extension.
18776	Name *string `locationName:"name" type:"string"`
18777}
18778
18779// String returns the string representation
18780func (s UpdateUploadInput) String() string {
18781	return awsutil.Prettify(s)
18782}
18783
18784// GoString returns the string representation
18785func (s UpdateUploadInput) GoString() string {
18786	return s.String()
18787}
18788
18789// Validate inspects the fields of the type to determine if they are valid.
18790func (s *UpdateUploadInput) Validate() error {
18791	invalidParams := request.ErrInvalidParams{Context: "UpdateUploadInput"}
18792	if s.Arn == nil {
18793		invalidParams.Add(request.NewErrParamRequired("Arn"))
18794	}
18795	if s.Arn != nil && len(*s.Arn) < 32 {
18796		invalidParams.Add(request.NewErrParamMinLen("Arn", 32))
18797	}
18798
18799	if invalidParams.Len() > 0 {
18800		return invalidParams
18801	}
18802	return nil
18803}
18804
18805// SetArn sets the Arn field's value.
18806func (s *UpdateUploadInput) SetArn(v string) *UpdateUploadInput {
18807	s.Arn = &v
18808	return s
18809}
18810
18811// SetContentType sets the ContentType field's value.
18812func (s *UpdateUploadInput) SetContentType(v string) *UpdateUploadInput {
18813	s.ContentType = &v
18814	return s
18815}
18816
18817// SetEditContent sets the EditContent field's value.
18818func (s *UpdateUploadInput) SetEditContent(v bool) *UpdateUploadInput {
18819	s.EditContent = &v
18820	return s
18821}
18822
18823// SetName sets the Name field's value.
18824func (s *UpdateUploadInput) SetName(v string) *UpdateUploadInput {
18825	s.Name = &v
18826	return s
18827}
18828
18829type UpdateUploadOutput struct {
18830	_ struct{} `type:"structure"`
18831
18832	// A test spec uploaded to Device Farm.
18833	Upload *Upload `locationName:"upload" type:"structure"`
18834}
18835
18836// String returns the string representation
18837func (s UpdateUploadOutput) String() string {
18838	return awsutil.Prettify(s)
18839}
18840
18841// GoString returns the string representation
18842func (s UpdateUploadOutput) GoString() string {
18843	return s.String()
18844}
18845
18846// SetUpload sets the Upload field's value.
18847func (s *UpdateUploadOutput) SetUpload(v *Upload) *UpdateUploadOutput {
18848	s.Upload = v
18849	return s
18850}
18851
18852type UpdateVPCEConfigurationInput struct {
18853	_ struct{} `type:"structure"`
18854
18855	// The Amazon Resource Name (ARN) of the VPC endpoint configuration you want
18856	// to update.
18857	//
18858	// Arn is a required field
18859	Arn *string `locationName:"arn" min:"32" type:"string" required:"true"`
18860
18861	// The DNS (domain) name used to connect to your private service in your VPC.
18862	// The DNS name must not already be in use on the internet.
18863	ServiceDnsName *string `locationName:"serviceDnsName" type:"string"`
18864
18865	// An optional description that provides details about your VPC endpoint configuration.
18866	VpceConfigurationDescription *string `locationName:"vpceConfigurationDescription" type:"string"`
18867
18868	// The friendly name you give to your VPC endpoint configuration to manage your
18869	// configurations more easily.
18870	VpceConfigurationName *string `locationName:"vpceConfigurationName" type:"string"`
18871
18872	// The name of the VPC endpoint service running in your AWS account that you
18873	// want Device Farm to test.
18874	VpceServiceName *string `locationName:"vpceServiceName" type:"string"`
18875}
18876
18877// String returns the string representation
18878func (s UpdateVPCEConfigurationInput) String() string {
18879	return awsutil.Prettify(s)
18880}
18881
18882// GoString returns the string representation
18883func (s UpdateVPCEConfigurationInput) GoString() string {
18884	return s.String()
18885}
18886
18887// Validate inspects the fields of the type to determine if they are valid.
18888func (s *UpdateVPCEConfigurationInput) Validate() error {
18889	invalidParams := request.ErrInvalidParams{Context: "UpdateVPCEConfigurationInput"}
18890	if s.Arn == nil {
18891		invalidParams.Add(request.NewErrParamRequired("Arn"))
18892	}
18893	if s.Arn != nil && len(*s.Arn) < 32 {
18894		invalidParams.Add(request.NewErrParamMinLen("Arn", 32))
18895	}
18896
18897	if invalidParams.Len() > 0 {
18898		return invalidParams
18899	}
18900	return nil
18901}
18902
18903// SetArn sets the Arn field's value.
18904func (s *UpdateVPCEConfigurationInput) SetArn(v string) *UpdateVPCEConfigurationInput {
18905	s.Arn = &v
18906	return s
18907}
18908
18909// SetServiceDnsName sets the ServiceDnsName field's value.
18910func (s *UpdateVPCEConfigurationInput) SetServiceDnsName(v string) *UpdateVPCEConfigurationInput {
18911	s.ServiceDnsName = &v
18912	return s
18913}
18914
18915// SetVpceConfigurationDescription sets the VpceConfigurationDescription field's value.
18916func (s *UpdateVPCEConfigurationInput) SetVpceConfigurationDescription(v string) *UpdateVPCEConfigurationInput {
18917	s.VpceConfigurationDescription = &v
18918	return s
18919}
18920
18921// SetVpceConfigurationName sets the VpceConfigurationName field's value.
18922func (s *UpdateVPCEConfigurationInput) SetVpceConfigurationName(v string) *UpdateVPCEConfigurationInput {
18923	s.VpceConfigurationName = &v
18924	return s
18925}
18926
18927// SetVpceServiceName sets the VpceServiceName field's value.
18928func (s *UpdateVPCEConfigurationInput) SetVpceServiceName(v string) *UpdateVPCEConfigurationInput {
18929	s.VpceServiceName = &v
18930	return s
18931}
18932
18933type UpdateVPCEConfigurationOutput struct {
18934	_ struct{} `type:"structure"`
18935
18936	// An object that contains information about your VPC endpoint configuration.
18937	VpceConfiguration *VPCEConfiguration `locationName:"vpceConfiguration" type:"structure"`
18938}
18939
18940// String returns the string representation
18941func (s UpdateVPCEConfigurationOutput) String() string {
18942	return awsutil.Prettify(s)
18943}
18944
18945// GoString returns the string representation
18946func (s UpdateVPCEConfigurationOutput) GoString() string {
18947	return s.String()
18948}
18949
18950// SetVpceConfiguration sets the VpceConfiguration field's value.
18951func (s *UpdateVPCEConfigurationOutput) SetVpceConfiguration(v *VPCEConfiguration) *UpdateVPCEConfigurationOutput {
18952	s.VpceConfiguration = v
18953	return s
18954}
18955
18956// An app or a set of one or more tests to upload or that have been uploaded.
18957type Upload struct {
18958	_ struct{} `type:"structure"`
18959
18960	// The upload's ARN.
18961	Arn *string `locationName:"arn" min:"32" type:"string"`
18962
18963	// The upload's category. Allowed values include:
18964	//
18965	//    * CURATED: An upload managed by AWS Device Farm.
18966	//
18967	//    * PRIVATE: An upload managed by the AWS Device Farm customer.
18968	Category *string `locationName:"category" type:"string" enum:"UploadCategory"`
18969
18970	// The upload's content type (for example, application/octet-stream).
18971	ContentType *string `locationName:"contentType" type:"string"`
18972
18973	// When the upload was created.
18974	Created *time.Time `locationName:"created" type:"timestamp"`
18975
18976	// A message about the upload's result.
18977	Message *string `locationName:"message" type:"string"`
18978
18979	// The upload's metadata. For example, for Android, this contains information
18980	// that is parsed from the manifest and is displayed in the AWS Device Farm
18981	// console after the associated app is uploaded.
18982	Metadata *string `locationName:"metadata" type:"string"`
18983
18984	// The upload's file name.
18985	Name *string `locationName:"name" type:"string"`
18986
18987	// The upload's status.
18988	//
18989	// Must be one of the following values:
18990	//
18991	//    * FAILED
18992	//
18993	//    * INITIALIZED
18994	//
18995	//    * PROCESSING
18996	//
18997	//    * SUCCEEDED
18998	Status *string `locationName:"status" type:"string" enum:"UploadStatus"`
18999
19000	// The upload's type.
19001	//
19002	// Must be one of the following values:
19003	//
19004	//    * ANDROID_APP
19005	//
19006	//    * IOS_APP
19007	//
19008	//    * WEB_APP
19009	//
19010	//    * EXTERNAL_DATA
19011	//
19012	//    * APPIUM_JAVA_JUNIT_TEST_PACKAGE
19013	//
19014	//    * APPIUM_JAVA_TESTNG_TEST_PACKAGE
19015	//
19016	//    * APPIUM_PYTHON_TEST_PACKAGE
19017	//
19018	//    * APPIUM_NODE_TEST_PACKAGE
19019	//
19020	//    * APPIUM_RUBY_TEST_PACKAGE
19021	//
19022	//    * APPIUM_WEB_JAVA_JUNIT_TEST_PACKAGE
19023	//
19024	//    * APPIUM_WEB_JAVA_TESTNG_TEST_PACKAGE
19025	//
19026	//    * APPIUM_WEB_PYTHON_TEST_PACKAGE
19027	//
19028	//    * APPIUM_WEB_NODE_TEST_PACKAGE
19029	//
19030	//    * APPIUM_WEB_RUBY_TEST_PACKAGE
19031	//
19032	//    * CALABASH_TEST_PACKAGE
19033	//
19034	//    * INSTRUMENTATION_TEST_PACKAGE
19035	//
19036	//    * UIAUTOMATION_TEST_PACKAGE
19037	//
19038	//    * UIAUTOMATOR_TEST_PACKAGE
19039	//
19040	//    * XCTEST_TEST_PACKAGE
19041	//
19042	//    * XCTEST_UI_TEST_PACKAGE
19043	//
19044	//    * APPIUM_JAVA_JUNIT_TEST_SPEC
19045	//
19046	//    * APPIUM_JAVA_TESTNG_TEST_SPEC
19047	//
19048	//    * APPIUM_PYTHON_TEST_SPEC
19049	//
19050	//    * APPIUM_NODE_TEST_SPEC
19051	//
19052	//    * APPIUM_RUBY_TEST_SPEC
19053	//
19054	//    * APPIUM_WEB_JAVA_JUNIT_TEST_SPEC
19055	//
19056	//    * APPIUM_WEB_JAVA_TESTNG_TEST_SPEC
19057	//
19058	//    * APPIUM_WEB_PYTHON_TEST_SPEC
19059	//
19060	//    * APPIUM_WEB_NODE_TEST_SPEC
19061	//
19062	//    * APPIUM_WEB_RUBY_TEST_SPEC
19063	//
19064	//    * INSTRUMENTATION_TEST_SPEC
19065	//
19066	//    * XCTEST_UI_TEST_SPEC
19067	Type *string `locationName:"type" type:"string" enum:"UploadType"`
19068
19069	// The presigned Amazon S3 URL that was used to store a file using a PUT request.
19070	Url *string `locationName:"url" type:"string"`
19071}
19072
19073// String returns the string representation
19074func (s Upload) String() string {
19075	return awsutil.Prettify(s)
19076}
19077
19078// GoString returns the string representation
19079func (s Upload) GoString() string {
19080	return s.String()
19081}
19082
19083// SetArn sets the Arn field's value.
19084func (s *Upload) SetArn(v string) *Upload {
19085	s.Arn = &v
19086	return s
19087}
19088
19089// SetCategory sets the Category field's value.
19090func (s *Upload) SetCategory(v string) *Upload {
19091	s.Category = &v
19092	return s
19093}
19094
19095// SetContentType sets the ContentType field's value.
19096func (s *Upload) SetContentType(v string) *Upload {
19097	s.ContentType = &v
19098	return s
19099}
19100
19101// SetCreated sets the Created field's value.
19102func (s *Upload) SetCreated(v time.Time) *Upload {
19103	s.Created = &v
19104	return s
19105}
19106
19107// SetMessage sets the Message field's value.
19108func (s *Upload) SetMessage(v string) *Upload {
19109	s.Message = &v
19110	return s
19111}
19112
19113// SetMetadata sets the Metadata field's value.
19114func (s *Upload) SetMetadata(v string) *Upload {
19115	s.Metadata = &v
19116	return s
19117}
19118
19119// SetName sets the Name field's value.
19120func (s *Upload) SetName(v string) *Upload {
19121	s.Name = &v
19122	return s
19123}
19124
19125// SetStatus sets the Status field's value.
19126func (s *Upload) SetStatus(v string) *Upload {
19127	s.Status = &v
19128	return s
19129}
19130
19131// SetType sets the Type field's value.
19132func (s *Upload) SetType(v string) *Upload {
19133	s.Type = &v
19134	return s
19135}
19136
19137// SetUrl sets the Url field's value.
19138func (s *Upload) SetUrl(v string) *Upload {
19139	s.Url = &v
19140	return s
19141}
19142
19143// Represents an Amazon Virtual Private Cloud (VPC) endpoint configuration.
19144type VPCEConfiguration struct {
19145	_ struct{} `type:"structure"`
19146
19147	// The Amazon Resource Name (ARN) of the VPC endpoint configuration.
19148	Arn *string `locationName:"arn" min:"32" type:"string"`
19149
19150	// The DNS name that maps to the private IP address of the service you want
19151	// to access.
19152	ServiceDnsName *string `locationName:"serviceDnsName" type:"string"`
19153
19154	// An optional description that provides details about your VPC endpoint configuration.
19155	VpceConfigurationDescription *string `locationName:"vpceConfigurationDescription" type:"string"`
19156
19157	// The friendly name you give to your VPC endpoint configuration to manage your
19158	// configurations more easily.
19159	VpceConfigurationName *string `locationName:"vpceConfigurationName" type:"string"`
19160
19161	// The name of the VPC endpoint service running in your AWS account that you
19162	// want Device Farm to test.
19163	VpceServiceName *string `locationName:"vpceServiceName" type:"string"`
19164}
19165
19166// String returns the string representation
19167func (s VPCEConfiguration) String() string {
19168	return awsutil.Prettify(s)
19169}
19170
19171// GoString returns the string representation
19172func (s VPCEConfiguration) GoString() string {
19173	return s.String()
19174}
19175
19176// SetArn sets the Arn field's value.
19177func (s *VPCEConfiguration) SetArn(v string) *VPCEConfiguration {
19178	s.Arn = &v
19179	return s
19180}
19181
19182// SetServiceDnsName sets the ServiceDnsName field's value.
19183func (s *VPCEConfiguration) SetServiceDnsName(v string) *VPCEConfiguration {
19184	s.ServiceDnsName = &v
19185	return s
19186}
19187
19188// SetVpceConfigurationDescription sets the VpceConfigurationDescription field's value.
19189func (s *VPCEConfiguration) SetVpceConfigurationDescription(v string) *VPCEConfiguration {
19190	s.VpceConfigurationDescription = &v
19191	return s
19192}
19193
19194// SetVpceConfigurationName sets the VpceConfigurationName field's value.
19195func (s *VPCEConfiguration) SetVpceConfigurationName(v string) *VPCEConfiguration {
19196	s.VpceConfigurationName = &v
19197	return s
19198}
19199
19200// SetVpceServiceName sets the VpceServiceName field's value.
19201func (s *VPCEConfiguration) SetVpceServiceName(v string) *VPCEConfiguration {
19202	s.VpceServiceName = &v
19203	return s
19204}
19205
19206const (
19207	// ArtifactCategoryScreenshot is a ArtifactCategory enum value
19208	ArtifactCategoryScreenshot = "SCREENSHOT"
19209
19210	// ArtifactCategoryFile is a ArtifactCategory enum value
19211	ArtifactCategoryFile = "FILE"
19212
19213	// ArtifactCategoryLog is a ArtifactCategory enum value
19214	ArtifactCategoryLog = "LOG"
19215)
19216
19217const (
19218	// ArtifactTypeUnknown is a ArtifactType enum value
19219	ArtifactTypeUnknown = "UNKNOWN"
19220
19221	// ArtifactTypeScreenshot is a ArtifactType enum value
19222	ArtifactTypeScreenshot = "SCREENSHOT"
19223
19224	// ArtifactTypeDeviceLog is a ArtifactType enum value
19225	ArtifactTypeDeviceLog = "DEVICE_LOG"
19226
19227	// ArtifactTypeMessageLog is a ArtifactType enum value
19228	ArtifactTypeMessageLog = "MESSAGE_LOG"
19229
19230	// ArtifactTypeVideoLog is a ArtifactType enum value
19231	ArtifactTypeVideoLog = "VIDEO_LOG"
19232
19233	// ArtifactTypeResultLog is a ArtifactType enum value
19234	ArtifactTypeResultLog = "RESULT_LOG"
19235
19236	// ArtifactTypeServiceLog is a ArtifactType enum value
19237	ArtifactTypeServiceLog = "SERVICE_LOG"
19238
19239	// ArtifactTypeWebkitLog is a ArtifactType enum value
19240	ArtifactTypeWebkitLog = "WEBKIT_LOG"
19241
19242	// ArtifactTypeInstrumentationOutput is a ArtifactType enum value
19243	ArtifactTypeInstrumentationOutput = "INSTRUMENTATION_OUTPUT"
19244
19245	// ArtifactTypeExerciserMonkeyOutput is a ArtifactType enum value
19246	ArtifactTypeExerciserMonkeyOutput = "EXERCISER_MONKEY_OUTPUT"
19247
19248	// ArtifactTypeCalabashJsonOutput is a ArtifactType enum value
19249	ArtifactTypeCalabashJsonOutput = "CALABASH_JSON_OUTPUT"
19250
19251	// ArtifactTypeCalabashPrettyOutput is a ArtifactType enum value
19252	ArtifactTypeCalabashPrettyOutput = "CALABASH_PRETTY_OUTPUT"
19253
19254	// ArtifactTypeCalabashStandardOutput is a ArtifactType enum value
19255	ArtifactTypeCalabashStandardOutput = "CALABASH_STANDARD_OUTPUT"
19256
19257	// ArtifactTypeCalabashJavaXmlOutput is a ArtifactType enum value
19258	ArtifactTypeCalabashJavaXmlOutput = "CALABASH_JAVA_XML_OUTPUT"
19259
19260	// ArtifactTypeAutomationOutput is a ArtifactType enum value
19261	ArtifactTypeAutomationOutput = "AUTOMATION_OUTPUT"
19262
19263	// ArtifactTypeAppiumServerOutput is a ArtifactType enum value
19264	ArtifactTypeAppiumServerOutput = "APPIUM_SERVER_OUTPUT"
19265
19266	// ArtifactTypeAppiumJavaOutput is a ArtifactType enum value
19267	ArtifactTypeAppiumJavaOutput = "APPIUM_JAVA_OUTPUT"
19268
19269	// ArtifactTypeAppiumJavaXmlOutput is a ArtifactType enum value
19270	ArtifactTypeAppiumJavaXmlOutput = "APPIUM_JAVA_XML_OUTPUT"
19271
19272	// ArtifactTypeAppiumPythonOutput is a ArtifactType enum value
19273	ArtifactTypeAppiumPythonOutput = "APPIUM_PYTHON_OUTPUT"
19274
19275	// ArtifactTypeAppiumPythonXmlOutput is a ArtifactType enum value
19276	ArtifactTypeAppiumPythonXmlOutput = "APPIUM_PYTHON_XML_OUTPUT"
19277
19278	// ArtifactTypeExplorerEventLog is a ArtifactType enum value
19279	ArtifactTypeExplorerEventLog = "EXPLORER_EVENT_LOG"
19280
19281	// ArtifactTypeExplorerSummaryLog is a ArtifactType enum value
19282	ArtifactTypeExplorerSummaryLog = "EXPLORER_SUMMARY_LOG"
19283
19284	// ArtifactTypeApplicationCrashReport is a ArtifactType enum value
19285	ArtifactTypeApplicationCrashReport = "APPLICATION_CRASH_REPORT"
19286
19287	// ArtifactTypeXctestLog is a ArtifactType enum value
19288	ArtifactTypeXctestLog = "XCTEST_LOG"
19289
19290	// ArtifactTypeVideo is a ArtifactType enum value
19291	ArtifactTypeVideo = "VIDEO"
19292
19293	// ArtifactTypeCustomerArtifact is a ArtifactType enum value
19294	ArtifactTypeCustomerArtifact = "CUSTOMER_ARTIFACT"
19295
19296	// ArtifactTypeCustomerArtifactLog is a ArtifactType enum value
19297	ArtifactTypeCustomerArtifactLog = "CUSTOMER_ARTIFACT_LOG"
19298
19299	// ArtifactTypeTestspecOutput is a ArtifactType enum value
19300	ArtifactTypeTestspecOutput = "TESTSPEC_OUTPUT"
19301)
19302
19303const (
19304	// BillingMethodMetered is a BillingMethod enum value
19305	BillingMethodMetered = "METERED"
19306
19307	// BillingMethodUnmetered is a BillingMethod enum value
19308	BillingMethodUnmetered = "UNMETERED"
19309)
19310
19311const (
19312	// CurrencyCodeUsd is a CurrencyCode enum value
19313	CurrencyCodeUsd = "USD"
19314)
19315
19316const (
19317	// DeviceAttributeArn is a DeviceAttribute enum value
19318	DeviceAttributeArn = "ARN"
19319
19320	// DeviceAttributePlatform is a DeviceAttribute enum value
19321	DeviceAttributePlatform = "PLATFORM"
19322
19323	// DeviceAttributeFormFactor is a DeviceAttribute enum value
19324	DeviceAttributeFormFactor = "FORM_FACTOR"
19325
19326	// DeviceAttributeManufacturer is a DeviceAttribute enum value
19327	DeviceAttributeManufacturer = "MANUFACTURER"
19328
19329	// DeviceAttributeRemoteAccessEnabled is a DeviceAttribute enum value
19330	DeviceAttributeRemoteAccessEnabled = "REMOTE_ACCESS_ENABLED"
19331
19332	// DeviceAttributeRemoteDebugEnabled is a DeviceAttribute enum value
19333	DeviceAttributeRemoteDebugEnabled = "REMOTE_DEBUG_ENABLED"
19334
19335	// DeviceAttributeAppiumVersion is a DeviceAttribute enum value
19336	DeviceAttributeAppiumVersion = "APPIUM_VERSION"
19337
19338	// DeviceAttributeInstanceArn is a DeviceAttribute enum value
19339	DeviceAttributeInstanceArn = "INSTANCE_ARN"
19340
19341	// DeviceAttributeInstanceLabels is a DeviceAttribute enum value
19342	DeviceAttributeInstanceLabels = "INSTANCE_LABELS"
19343
19344	// DeviceAttributeFleetType is a DeviceAttribute enum value
19345	DeviceAttributeFleetType = "FLEET_TYPE"
19346
19347	// DeviceAttributeOsVersion is a DeviceAttribute enum value
19348	DeviceAttributeOsVersion = "OS_VERSION"
19349
19350	// DeviceAttributeModel is a DeviceAttribute enum value
19351	DeviceAttributeModel = "MODEL"
19352
19353	// DeviceAttributeAvailability is a DeviceAttribute enum value
19354	DeviceAttributeAvailability = "AVAILABILITY"
19355)
19356
19357const (
19358	// DeviceAvailabilityTemporaryNotAvailable is a DeviceAvailability enum value
19359	DeviceAvailabilityTemporaryNotAvailable = "TEMPORARY_NOT_AVAILABLE"
19360
19361	// DeviceAvailabilityBusy is a DeviceAvailability enum value
19362	DeviceAvailabilityBusy = "BUSY"
19363
19364	// DeviceAvailabilityAvailable is a DeviceAvailability enum value
19365	DeviceAvailabilityAvailable = "AVAILABLE"
19366
19367	// DeviceAvailabilityHighlyAvailable is a DeviceAvailability enum value
19368	DeviceAvailabilityHighlyAvailable = "HIGHLY_AVAILABLE"
19369)
19370
19371const (
19372	// DeviceFilterAttributeArn is a DeviceFilterAttribute enum value
19373	DeviceFilterAttributeArn = "ARN"
19374
19375	// DeviceFilterAttributePlatform is a DeviceFilterAttribute enum value
19376	DeviceFilterAttributePlatform = "PLATFORM"
19377
19378	// DeviceFilterAttributeOsVersion is a DeviceFilterAttribute enum value
19379	DeviceFilterAttributeOsVersion = "OS_VERSION"
19380
19381	// DeviceFilterAttributeModel is a DeviceFilterAttribute enum value
19382	DeviceFilterAttributeModel = "MODEL"
19383
19384	// DeviceFilterAttributeAvailability is a DeviceFilterAttribute enum value
19385	DeviceFilterAttributeAvailability = "AVAILABILITY"
19386
19387	// DeviceFilterAttributeFormFactor is a DeviceFilterAttribute enum value
19388	DeviceFilterAttributeFormFactor = "FORM_FACTOR"
19389
19390	// DeviceFilterAttributeManufacturer is a DeviceFilterAttribute enum value
19391	DeviceFilterAttributeManufacturer = "MANUFACTURER"
19392
19393	// DeviceFilterAttributeRemoteAccessEnabled is a DeviceFilterAttribute enum value
19394	DeviceFilterAttributeRemoteAccessEnabled = "REMOTE_ACCESS_ENABLED"
19395
19396	// DeviceFilterAttributeRemoteDebugEnabled is a DeviceFilterAttribute enum value
19397	DeviceFilterAttributeRemoteDebugEnabled = "REMOTE_DEBUG_ENABLED"
19398
19399	// DeviceFilterAttributeInstanceArn is a DeviceFilterAttribute enum value
19400	DeviceFilterAttributeInstanceArn = "INSTANCE_ARN"
19401
19402	// DeviceFilterAttributeInstanceLabels is a DeviceFilterAttribute enum value
19403	DeviceFilterAttributeInstanceLabels = "INSTANCE_LABELS"
19404
19405	// DeviceFilterAttributeFleetType is a DeviceFilterAttribute enum value
19406	DeviceFilterAttributeFleetType = "FLEET_TYPE"
19407)
19408
19409const (
19410	// DeviceFormFactorPhone is a DeviceFormFactor enum value
19411	DeviceFormFactorPhone = "PHONE"
19412
19413	// DeviceFormFactorTablet is a DeviceFormFactor enum value
19414	DeviceFormFactorTablet = "TABLET"
19415)
19416
19417const (
19418	// DevicePlatformAndroid is a DevicePlatform enum value
19419	DevicePlatformAndroid = "ANDROID"
19420
19421	// DevicePlatformIos is a DevicePlatform enum value
19422	DevicePlatformIos = "IOS"
19423)
19424
19425const (
19426	// DevicePoolTypeCurated is a DevicePoolType enum value
19427	DevicePoolTypeCurated = "CURATED"
19428
19429	// DevicePoolTypePrivate is a DevicePoolType enum value
19430	DevicePoolTypePrivate = "PRIVATE"
19431)
19432
19433const (
19434	// ExecutionResultPending is a ExecutionResult enum value
19435	ExecutionResultPending = "PENDING"
19436
19437	// ExecutionResultPassed is a ExecutionResult enum value
19438	ExecutionResultPassed = "PASSED"
19439
19440	// ExecutionResultWarned is a ExecutionResult enum value
19441	ExecutionResultWarned = "WARNED"
19442
19443	// ExecutionResultFailed is a ExecutionResult enum value
19444	ExecutionResultFailed = "FAILED"
19445
19446	// ExecutionResultSkipped is a ExecutionResult enum value
19447	ExecutionResultSkipped = "SKIPPED"
19448
19449	// ExecutionResultErrored is a ExecutionResult enum value
19450	ExecutionResultErrored = "ERRORED"
19451
19452	// ExecutionResultStopped is a ExecutionResult enum value
19453	ExecutionResultStopped = "STOPPED"
19454)
19455
19456const (
19457	// ExecutionResultCodeParsingFailed is a ExecutionResultCode enum value
19458	ExecutionResultCodeParsingFailed = "PARSING_FAILED"
19459
19460	// ExecutionResultCodeVpcEndpointSetupFailed is a ExecutionResultCode enum value
19461	ExecutionResultCodeVpcEndpointSetupFailed = "VPC_ENDPOINT_SETUP_FAILED"
19462)
19463
19464const (
19465	// ExecutionStatusPending is a ExecutionStatus enum value
19466	ExecutionStatusPending = "PENDING"
19467
19468	// ExecutionStatusPendingConcurrency is a ExecutionStatus enum value
19469	ExecutionStatusPendingConcurrency = "PENDING_CONCURRENCY"
19470
19471	// ExecutionStatusPendingDevice is a ExecutionStatus enum value
19472	ExecutionStatusPendingDevice = "PENDING_DEVICE"
19473
19474	// ExecutionStatusProcessing is a ExecutionStatus enum value
19475	ExecutionStatusProcessing = "PROCESSING"
19476
19477	// ExecutionStatusScheduling is a ExecutionStatus enum value
19478	ExecutionStatusScheduling = "SCHEDULING"
19479
19480	// ExecutionStatusPreparing is a ExecutionStatus enum value
19481	ExecutionStatusPreparing = "PREPARING"
19482
19483	// ExecutionStatusRunning is a ExecutionStatus enum value
19484	ExecutionStatusRunning = "RUNNING"
19485
19486	// ExecutionStatusCompleted is a ExecutionStatus enum value
19487	ExecutionStatusCompleted = "COMPLETED"
19488
19489	// ExecutionStatusStopping is a ExecutionStatus enum value
19490	ExecutionStatusStopping = "STOPPING"
19491)
19492
19493const (
19494	// InstanceStatusInUse is a InstanceStatus enum value
19495	InstanceStatusInUse = "IN_USE"
19496
19497	// InstanceStatusPreparing is a InstanceStatus enum value
19498	InstanceStatusPreparing = "PREPARING"
19499
19500	// InstanceStatusAvailable is a InstanceStatus enum value
19501	InstanceStatusAvailable = "AVAILABLE"
19502
19503	// InstanceStatusNotAvailable is a InstanceStatus enum value
19504	InstanceStatusNotAvailable = "NOT_AVAILABLE"
19505)
19506
19507const (
19508	// InteractionModeInteractive is a InteractionMode enum value
19509	InteractionModeInteractive = "INTERACTIVE"
19510
19511	// InteractionModeNoVideo is a InteractionMode enum value
19512	InteractionModeNoVideo = "NO_VIDEO"
19513
19514	// InteractionModeVideoOnly is a InteractionMode enum value
19515	InteractionModeVideoOnly = "VIDEO_ONLY"
19516)
19517
19518const (
19519	// NetworkProfileTypeCurated is a NetworkProfileType enum value
19520	NetworkProfileTypeCurated = "CURATED"
19521
19522	// NetworkProfileTypePrivate is a NetworkProfileType enum value
19523	NetworkProfileTypePrivate = "PRIVATE"
19524)
19525
19526const (
19527	// OfferingTransactionTypePurchase is a OfferingTransactionType enum value
19528	OfferingTransactionTypePurchase = "PURCHASE"
19529
19530	// OfferingTransactionTypeRenew is a OfferingTransactionType enum value
19531	OfferingTransactionTypeRenew = "RENEW"
19532
19533	// OfferingTransactionTypeSystem is a OfferingTransactionType enum value
19534	OfferingTransactionTypeSystem = "SYSTEM"
19535)
19536
19537const (
19538	// OfferingTypeRecurring is a OfferingType enum value
19539	OfferingTypeRecurring = "RECURRING"
19540)
19541
19542const (
19543	// RecurringChargeFrequencyMonthly is a RecurringChargeFrequency enum value
19544	RecurringChargeFrequencyMonthly = "MONTHLY"
19545)
19546
19547const (
19548	// RuleOperatorEquals is a RuleOperator enum value
19549	RuleOperatorEquals = "EQUALS"
19550
19551	// RuleOperatorLessThan is a RuleOperator enum value
19552	RuleOperatorLessThan = "LESS_THAN"
19553
19554	// RuleOperatorLessThanOrEquals is a RuleOperator enum value
19555	RuleOperatorLessThanOrEquals = "LESS_THAN_OR_EQUALS"
19556
19557	// RuleOperatorGreaterThan is a RuleOperator enum value
19558	RuleOperatorGreaterThan = "GREATER_THAN"
19559
19560	// RuleOperatorGreaterThanOrEquals is a RuleOperator enum value
19561	RuleOperatorGreaterThanOrEquals = "GREATER_THAN_OR_EQUALS"
19562
19563	// RuleOperatorIn is a RuleOperator enum value
19564	RuleOperatorIn = "IN"
19565
19566	// RuleOperatorNotIn is a RuleOperator enum value
19567	RuleOperatorNotIn = "NOT_IN"
19568
19569	// RuleOperatorContains is a RuleOperator enum value
19570	RuleOperatorContains = "CONTAINS"
19571)
19572
19573const (
19574	// SampleTypeCpu is a SampleType enum value
19575	SampleTypeCpu = "CPU"
19576
19577	// SampleTypeMemory is a SampleType enum value
19578	SampleTypeMemory = "MEMORY"
19579
19580	// SampleTypeThreads is a SampleType enum value
19581	SampleTypeThreads = "THREADS"
19582
19583	// SampleTypeRxRate is a SampleType enum value
19584	SampleTypeRxRate = "RX_RATE"
19585
19586	// SampleTypeTxRate is a SampleType enum value
19587	SampleTypeTxRate = "TX_RATE"
19588
19589	// SampleTypeRx is a SampleType enum value
19590	SampleTypeRx = "RX"
19591
19592	// SampleTypeTx is a SampleType enum value
19593	SampleTypeTx = "TX"
19594
19595	// SampleTypeNativeFrames is a SampleType enum value
19596	SampleTypeNativeFrames = "NATIVE_FRAMES"
19597
19598	// SampleTypeNativeFps is a SampleType enum value
19599	SampleTypeNativeFps = "NATIVE_FPS"
19600
19601	// SampleTypeNativeMinDrawtime is a SampleType enum value
19602	SampleTypeNativeMinDrawtime = "NATIVE_MIN_DRAWTIME"
19603
19604	// SampleTypeNativeAvgDrawtime is a SampleType enum value
19605	SampleTypeNativeAvgDrawtime = "NATIVE_AVG_DRAWTIME"
19606
19607	// SampleTypeNativeMaxDrawtime is a SampleType enum value
19608	SampleTypeNativeMaxDrawtime = "NATIVE_MAX_DRAWTIME"
19609
19610	// SampleTypeOpenglFrames is a SampleType enum value
19611	SampleTypeOpenglFrames = "OPENGL_FRAMES"
19612
19613	// SampleTypeOpenglFps is a SampleType enum value
19614	SampleTypeOpenglFps = "OPENGL_FPS"
19615
19616	// SampleTypeOpenglMinDrawtime is a SampleType enum value
19617	SampleTypeOpenglMinDrawtime = "OPENGL_MIN_DRAWTIME"
19618
19619	// SampleTypeOpenglAvgDrawtime is a SampleType enum value
19620	SampleTypeOpenglAvgDrawtime = "OPENGL_AVG_DRAWTIME"
19621
19622	// SampleTypeOpenglMaxDrawtime is a SampleType enum value
19623	SampleTypeOpenglMaxDrawtime = "OPENGL_MAX_DRAWTIME"
19624)
19625
19626const (
19627	// TestGridSessionArtifactCategoryVideo is a TestGridSessionArtifactCategory enum value
19628	TestGridSessionArtifactCategoryVideo = "VIDEO"
19629
19630	// TestGridSessionArtifactCategoryLog is a TestGridSessionArtifactCategory enum value
19631	TestGridSessionArtifactCategoryLog = "LOG"
19632)
19633
19634const (
19635	// TestGridSessionArtifactTypeUnknown is a TestGridSessionArtifactType enum value
19636	TestGridSessionArtifactTypeUnknown = "UNKNOWN"
19637
19638	// TestGridSessionArtifactTypeVideo is a TestGridSessionArtifactType enum value
19639	TestGridSessionArtifactTypeVideo = "VIDEO"
19640
19641	// TestGridSessionArtifactTypeSeleniumLog is a TestGridSessionArtifactType enum value
19642	TestGridSessionArtifactTypeSeleniumLog = "SELENIUM_LOG"
19643)
19644
19645const (
19646	// TestGridSessionStatusActive is a TestGridSessionStatus enum value
19647	TestGridSessionStatusActive = "ACTIVE"
19648
19649	// TestGridSessionStatusClosed is a TestGridSessionStatus enum value
19650	TestGridSessionStatusClosed = "CLOSED"
19651
19652	// TestGridSessionStatusErrored is a TestGridSessionStatus enum value
19653	TestGridSessionStatusErrored = "ERRORED"
19654)
19655
19656const (
19657	// TestTypeBuiltinFuzz is a TestType enum value
19658	TestTypeBuiltinFuzz = "BUILTIN_FUZZ"
19659
19660	// TestTypeBuiltinExplorer is a TestType enum value
19661	TestTypeBuiltinExplorer = "BUILTIN_EXPLORER"
19662
19663	// TestTypeWebPerformanceProfile is a TestType enum value
19664	TestTypeWebPerformanceProfile = "WEB_PERFORMANCE_PROFILE"
19665
19666	// TestTypeAppiumJavaJunit is a TestType enum value
19667	TestTypeAppiumJavaJunit = "APPIUM_JAVA_JUNIT"
19668
19669	// TestTypeAppiumJavaTestng is a TestType enum value
19670	TestTypeAppiumJavaTestng = "APPIUM_JAVA_TESTNG"
19671
19672	// TestTypeAppiumPython is a TestType enum value
19673	TestTypeAppiumPython = "APPIUM_PYTHON"
19674
19675	// TestTypeAppiumNode is a TestType enum value
19676	TestTypeAppiumNode = "APPIUM_NODE"
19677
19678	// TestTypeAppiumRuby is a TestType enum value
19679	TestTypeAppiumRuby = "APPIUM_RUBY"
19680
19681	// TestTypeAppiumWebJavaJunit is a TestType enum value
19682	TestTypeAppiumWebJavaJunit = "APPIUM_WEB_JAVA_JUNIT"
19683
19684	// TestTypeAppiumWebJavaTestng is a TestType enum value
19685	TestTypeAppiumWebJavaTestng = "APPIUM_WEB_JAVA_TESTNG"
19686
19687	// TestTypeAppiumWebPython is a TestType enum value
19688	TestTypeAppiumWebPython = "APPIUM_WEB_PYTHON"
19689
19690	// TestTypeAppiumWebNode is a TestType enum value
19691	TestTypeAppiumWebNode = "APPIUM_WEB_NODE"
19692
19693	// TestTypeAppiumWebRuby is a TestType enum value
19694	TestTypeAppiumWebRuby = "APPIUM_WEB_RUBY"
19695
19696	// TestTypeCalabash is a TestType enum value
19697	TestTypeCalabash = "CALABASH"
19698
19699	// TestTypeInstrumentation is a TestType enum value
19700	TestTypeInstrumentation = "INSTRUMENTATION"
19701
19702	// TestTypeUiautomation is a TestType enum value
19703	TestTypeUiautomation = "UIAUTOMATION"
19704
19705	// TestTypeUiautomator is a TestType enum value
19706	TestTypeUiautomator = "UIAUTOMATOR"
19707
19708	// TestTypeXctest is a TestType enum value
19709	TestTypeXctest = "XCTEST"
19710
19711	// TestTypeXctestUi is a TestType enum value
19712	TestTypeXctestUi = "XCTEST_UI"
19713
19714	// TestTypeRemoteAccessRecord is a TestType enum value
19715	TestTypeRemoteAccessRecord = "REMOTE_ACCESS_RECORD"
19716
19717	// TestTypeRemoteAccessReplay is a TestType enum value
19718	TestTypeRemoteAccessReplay = "REMOTE_ACCESS_REPLAY"
19719)
19720
19721const (
19722	// UploadCategoryCurated is a UploadCategory enum value
19723	UploadCategoryCurated = "CURATED"
19724
19725	// UploadCategoryPrivate is a UploadCategory enum value
19726	UploadCategoryPrivate = "PRIVATE"
19727)
19728
19729const (
19730	// UploadStatusInitialized is a UploadStatus enum value
19731	UploadStatusInitialized = "INITIALIZED"
19732
19733	// UploadStatusProcessing is a UploadStatus enum value
19734	UploadStatusProcessing = "PROCESSING"
19735
19736	// UploadStatusSucceeded is a UploadStatus enum value
19737	UploadStatusSucceeded = "SUCCEEDED"
19738
19739	// UploadStatusFailed is a UploadStatus enum value
19740	UploadStatusFailed = "FAILED"
19741)
19742
19743const (
19744	// UploadTypeAndroidApp is a UploadType enum value
19745	UploadTypeAndroidApp = "ANDROID_APP"
19746
19747	// UploadTypeIosApp is a UploadType enum value
19748	UploadTypeIosApp = "IOS_APP"
19749
19750	// UploadTypeWebApp is a UploadType enum value
19751	UploadTypeWebApp = "WEB_APP"
19752
19753	// UploadTypeExternalData is a UploadType enum value
19754	UploadTypeExternalData = "EXTERNAL_DATA"
19755
19756	// UploadTypeAppiumJavaJunitTestPackage is a UploadType enum value
19757	UploadTypeAppiumJavaJunitTestPackage = "APPIUM_JAVA_JUNIT_TEST_PACKAGE"
19758
19759	// UploadTypeAppiumJavaTestngTestPackage is a UploadType enum value
19760	UploadTypeAppiumJavaTestngTestPackage = "APPIUM_JAVA_TESTNG_TEST_PACKAGE"
19761
19762	// UploadTypeAppiumPythonTestPackage is a UploadType enum value
19763	UploadTypeAppiumPythonTestPackage = "APPIUM_PYTHON_TEST_PACKAGE"
19764
19765	// UploadTypeAppiumNodeTestPackage is a UploadType enum value
19766	UploadTypeAppiumNodeTestPackage = "APPIUM_NODE_TEST_PACKAGE"
19767
19768	// UploadTypeAppiumRubyTestPackage is a UploadType enum value
19769	UploadTypeAppiumRubyTestPackage = "APPIUM_RUBY_TEST_PACKAGE"
19770
19771	// UploadTypeAppiumWebJavaJunitTestPackage is a UploadType enum value
19772	UploadTypeAppiumWebJavaJunitTestPackage = "APPIUM_WEB_JAVA_JUNIT_TEST_PACKAGE"
19773
19774	// UploadTypeAppiumWebJavaTestngTestPackage is a UploadType enum value
19775	UploadTypeAppiumWebJavaTestngTestPackage = "APPIUM_WEB_JAVA_TESTNG_TEST_PACKAGE"
19776
19777	// UploadTypeAppiumWebPythonTestPackage is a UploadType enum value
19778	UploadTypeAppiumWebPythonTestPackage = "APPIUM_WEB_PYTHON_TEST_PACKAGE"
19779
19780	// UploadTypeAppiumWebNodeTestPackage is a UploadType enum value
19781	UploadTypeAppiumWebNodeTestPackage = "APPIUM_WEB_NODE_TEST_PACKAGE"
19782
19783	// UploadTypeAppiumWebRubyTestPackage is a UploadType enum value
19784	UploadTypeAppiumWebRubyTestPackage = "APPIUM_WEB_RUBY_TEST_PACKAGE"
19785
19786	// UploadTypeCalabashTestPackage is a UploadType enum value
19787	UploadTypeCalabashTestPackage = "CALABASH_TEST_PACKAGE"
19788
19789	// UploadTypeInstrumentationTestPackage is a UploadType enum value
19790	UploadTypeInstrumentationTestPackage = "INSTRUMENTATION_TEST_PACKAGE"
19791
19792	// UploadTypeUiautomationTestPackage is a UploadType enum value
19793	UploadTypeUiautomationTestPackage = "UIAUTOMATION_TEST_PACKAGE"
19794
19795	// UploadTypeUiautomatorTestPackage is a UploadType enum value
19796	UploadTypeUiautomatorTestPackage = "UIAUTOMATOR_TEST_PACKAGE"
19797
19798	// UploadTypeXctestTestPackage is a UploadType enum value
19799	UploadTypeXctestTestPackage = "XCTEST_TEST_PACKAGE"
19800
19801	// UploadTypeXctestUiTestPackage is a UploadType enum value
19802	UploadTypeXctestUiTestPackage = "XCTEST_UI_TEST_PACKAGE"
19803
19804	// UploadTypeAppiumJavaJunitTestSpec is a UploadType enum value
19805	UploadTypeAppiumJavaJunitTestSpec = "APPIUM_JAVA_JUNIT_TEST_SPEC"
19806
19807	// UploadTypeAppiumJavaTestngTestSpec is a UploadType enum value
19808	UploadTypeAppiumJavaTestngTestSpec = "APPIUM_JAVA_TESTNG_TEST_SPEC"
19809
19810	// UploadTypeAppiumPythonTestSpec is a UploadType enum value
19811	UploadTypeAppiumPythonTestSpec = "APPIUM_PYTHON_TEST_SPEC"
19812
19813	// UploadTypeAppiumNodeTestSpec is a UploadType enum value
19814	UploadTypeAppiumNodeTestSpec = "APPIUM_NODE_TEST_SPEC"
19815
19816	// UploadTypeAppiumRubyTestSpec is a UploadType enum value
19817	UploadTypeAppiumRubyTestSpec = "APPIUM_RUBY_TEST_SPEC"
19818
19819	// UploadTypeAppiumWebJavaJunitTestSpec is a UploadType enum value
19820	UploadTypeAppiumWebJavaJunitTestSpec = "APPIUM_WEB_JAVA_JUNIT_TEST_SPEC"
19821
19822	// UploadTypeAppiumWebJavaTestngTestSpec is a UploadType enum value
19823	UploadTypeAppiumWebJavaTestngTestSpec = "APPIUM_WEB_JAVA_TESTNG_TEST_SPEC"
19824
19825	// UploadTypeAppiumWebPythonTestSpec is a UploadType enum value
19826	UploadTypeAppiumWebPythonTestSpec = "APPIUM_WEB_PYTHON_TEST_SPEC"
19827
19828	// UploadTypeAppiumWebNodeTestSpec is a UploadType enum value
19829	UploadTypeAppiumWebNodeTestSpec = "APPIUM_WEB_NODE_TEST_SPEC"
19830
19831	// UploadTypeAppiumWebRubyTestSpec is a UploadType enum value
19832	UploadTypeAppiumWebRubyTestSpec = "APPIUM_WEB_RUBY_TEST_SPEC"
19833
19834	// UploadTypeInstrumentationTestSpec is a UploadType enum value
19835	UploadTypeInstrumentationTestSpec = "INSTRUMENTATION_TEST_SPEC"
19836
19837	// UploadTypeXctestUiTestSpec is a UploadType enum value
19838	UploadTypeXctestUiTestSpec = "XCTEST_UI_TEST_SPEC"
19839)
19840