1// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. 2 3package fis 4 5import ( 6 "fmt" 7 "time" 8 9 "github.com/aws/aws-sdk-go/aws" 10 "github.com/aws/aws-sdk-go/aws/awsutil" 11 "github.com/aws/aws-sdk-go/aws/request" 12 "github.com/aws/aws-sdk-go/private/protocol" 13 "github.com/aws/aws-sdk-go/private/protocol/restjson" 14) 15 16const opCreateExperimentTemplate = "CreateExperimentTemplate" 17 18// CreateExperimentTemplateRequest generates a "aws/request.Request" representing the 19// client's request for the CreateExperimentTemplate 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 CreateExperimentTemplate for more information on using the CreateExperimentTemplate 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 CreateExperimentTemplateRequest method. 34// req, resp := client.CreateExperimentTemplateRequest(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/fis-2020-12-01/CreateExperimentTemplate 42func (c *FIS) CreateExperimentTemplateRequest(input *CreateExperimentTemplateInput) (req *request.Request, output *CreateExperimentTemplateOutput) { 43 op := &request.Operation{ 44 Name: opCreateExperimentTemplate, 45 HTTPMethod: "POST", 46 HTTPPath: "/experimentTemplates", 47 } 48 49 if input == nil { 50 input = &CreateExperimentTemplateInput{} 51 } 52 53 output = &CreateExperimentTemplateOutput{} 54 req = c.newRequest(op, input, output) 55 return 56} 57 58// CreateExperimentTemplate API operation for AWS Fault Injection Simulator. 59// 60// Creates an experiment template. 61// 62// To create a template, specify the following information: 63// 64// * Targets: A target can be a specific resource in your AWS environment, 65// or one or more resources that match criteria that you specify, for example, 66// resources that have specific tags. 67// 68// * Actions: The actions to carry out on the target. You can specify multiple 69// actions, the duration of each action, and when to start each action during 70// an experiment. 71// 72// * Stop conditions: If a stop condition is triggered while an experiment 73// is running, the experiment is automatically stopped. You can define a 74// stop condition as a CloudWatch alarm. 75// 76// For more information, see the AWS Fault Injection Simulator User Guide (https://docs.aws.amazon.com/fis/latest/userguide/). 77// 78// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 79// with awserr.Error's Code and Message methods to get detailed information about 80// the error. 81// 82// See the AWS API reference guide for AWS Fault Injection Simulator's 83// API operation CreateExperimentTemplate for usage and error information. 84// 85// Returned Error Types: 86// * ValidationException 87// The specified input is not valid, or fails to satisfy the constraints for 88// the request. 89// 90// * ConflictException 91// The request could not be processed because of a conflict. 92// 93// * ResourceNotFoundException 94// The specified resource cannot be found. 95// 96// * ServiceQuotaExceededException 97// You have exceeded your service quota. 98// 99// See also, https://docs.aws.amazon.com/goto/WebAPI/fis-2020-12-01/CreateExperimentTemplate 100func (c *FIS) CreateExperimentTemplate(input *CreateExperimentTemplateInput) (*CreateExperimentTemplateOutput, error) { 101 req, out := c.CreateExperimentTemplateRequest(input) 102 return out, req.Send() 103} 104 105// CreateExperimentTemplateWithContext is the same as CreateExperimentTemplate with the addition of 106// the ability to pass a context and additional request options. 107// 108// See CreateExperimentTemplate for details on how to use this API operation. 109// 110// The context must be non-nil and will be used for request cancellation. If 111// the context is nil a panic will occur. In the future the SDK may create 112// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 113// for more information on using Contexts. 114func (c *FIS) CreateExperimentTemplateWithContext(ctx aws.Context, input *CreateExperimentTemplateInput, opts ...request.Option) (*CreateExperimentTemplateOutput, error) { 115 req, out := c.CreateExperimentTemplateRequest(input) 116 req.SetContext(ctx) 117 req.ApplyOptions(opts...) 118 return out, req.Send() 119} 120 121const opDeleteExperimentTemplate = "DeleteExperimentTemplate" 122 123// DeleteExperimentTemplateRequest generates a "aws/request.Request" representing the 124// client's request for the DeleteExperimentTemplate operation. The "output" return 125// value will be populated with the request's response once the request completes 126// successfully. 127// 128// Use "Send" method on the returned Request to send the API call to the service. 129// the "output" return value is not valid until after Send returns without error. 130// 131// See DeleteExperimentTemplate for more information on using the DeleteExperimentTemplate 132// API call, and error handling. 133// 134// This method is useful when you want to inject custom logic or configuration 135// into the SDK's request lifecycle. Such as custom headers, or retry logic. 136// 137// 138// // Example sending a request using the DeleteExperimentTemplateRequest method. 139// req, resp := client.DeleteExperimentTemplateRequest(params) 140// 141// err := req.Send() 142// if err == nil { // resp is now filled 143// fmt.Println(resp) 144// } 145// 146// See also, https://docs.aws.amazon.com/goto/WebAPI/fis-2020-12-01/DeleteExperimentTemplate 147func (c *FIS) DeleteExperimentTemplateRequest(input *DeleteExperimentTemplateInput) (req *request.Request, output *DeleteExperimentTemplateOutput) { 148 op := &request.Operation{ 149 Name: opDeleteExperimentTemplate, 150 HTTPMethod: "DELETE", 151 HTTPPath: "/experimentTemplates/{id}", 152 } 153 154 if input == nil { 155 input = &DeleteExperimentTemplateInput{} 156 } 157 158 output = &DeleteExperimentTemplateOutput{} 159 req = c.newRequest(op, input, output) 160 return 161} 162 163// DeleteExperimentTemplate API operation for AWS Fault Injection Simulator. 164// 165// Deletes the specified experiment template. 166// 167// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 168// with awserr.Error's Code and Message methods to get detailed information about 169// the error. 170// 171// See the AWS API reference guide for AWS Fault Injection Simulator's 172// API operation DeleteExperimentTemplate for usage and error information. 173// 174// Returned Error Types: 175// * ValidationException 176// The specified input is not valid, or fails to satisfy the constraints for 177// the request. 178// 179// * ResourceNotFoundException 180// The specified resource cannot be found. 181// 182// See also, https://docs.aws.amazon.com/goto/WebAPI/fis-2020-12-01/DeleteExperimentTemplate 183func (c *FIS) DeleteExperimentTemplate(input *DeleteExperimentTemplateInput) (*DeleteExperimentTemplateOutput, error) { 184 req, out := c.DeleteExperimentTemplateRequest(input) 185 return out, req.Send() 186} 187 188// DeleteExperimentTemplateWithContext is the same as DeleteExperimentTemplate with the addition of 189// the ability to pass a context and additional request options. 190// 191// See DeleteExperimentTemplate for details on how to use this API operation. 192// 193// The context must be non-nil and will be used for request cancellation. If 194// the context is nil a panic will occur. In the future the SDK may create 195// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 196// for more information on using Contexts. 197func (c *FIS) DeleteExperimentTemplateWithContext(ctx aws.Context, input *DeleteExperimentTemplateInput, opts ...request.Option) (*DeleteExperimentTemplateOutput, error) { 198 req, out := c.DeleteExperimentTemplateRequest(input) 199 req.SetContext(ctx) 200 req.ApplyOptions(opts...) 201 return out, req.Send() 202} 203 204const opGetAction = "GetAction" 205 206// GetActionRequest generates a "aws/request.Request" representing the 207// client's request for the GetAction operation. The "output" return 208// value will be populated with the request's response once the request completes 209// successfully. 210// 211// Use "Send" method on the returned Request to send the API call to the service. 212// the "output" return value is not valid until after Send returns without error. 213// 214// See GetAction for more information on using the GetAction 215// API call, and error handling. 216// 217// This method is useful when you want to inject custom logic or configuration 218// into the SDK's request lifecycle. Such as custom headers, or retry logic. 219// 220// 221// // Example sending a request using the GetActionRequest method. 222// req, resp := client.GetActionRequest(params) 223// 224// err := req.Send() 225// if err == nil { // resp is now filled 226// fmt.Println(resp) 227// } 228// 229// See also, https://docs.aws.amazon.com/goto/WebAPI/fis-2020-12-01/GetAction 230func (c *FIS) GetActionRequest(input *GetActionInput) (req *request.Request, output *GetActionOutput) { 231 op := &request.Operation{ 232 Name: opGetAction, 233 HTTPMethod: "GET", 234 HTTPPath: "/actions/{id}", 235 } 236 237 if input == nil { 238 input = &GetActionInput{} 239 } 240 241 output = &GetActionOutput{} 242 req = c.newRequest(op, input, output) 243 return 244} 245 246// GetAction API operation for AWS Fault Injection Simulator. 247// 248// Gets information about the specified AWS FIS action. 249// 250// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 251// with awserr.Error's Code and Message methods to get detailed information about 252// the error. 253// 254// See the AWS API reference guide for AWS Fault Injection Simulator's 255// API operation GetAction for usage and error information. 256// 257// Returned Error Types: 258// * ValidationException 259// The specified input is not valid, or fails to satisfy the constraints for 260// the request. 261// 262// * ResourceNotFoundException 263// The specified resource cannot be found. 264// 265// See also, https://docs.aws.amazon.com/goto/WebAPI/fis-2020-12-01/GetAction 266func (c *FIS) GetAction(input *GetActionInput) (*GetActionOutput, error) { 267 req, out := c.GetActionRequest(input) 268 return out, req.Send() 269} 270 271// GetActionWithContext is the same as GetAction with the addition of 272// the ability to pass a context and additional request options. 273// 274// See GetAction for details on how to use this API operation. 275// 276// The context must be non-nil and will be used for request cancellation. If 277// the context is nil a panic will occur. In the future the SDK may create 278// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 279// for more information on using Contexts. 280func (c *FIS) GetActionWithContext(ctx aws.Context, input *GetActionInput, opts ...request.Option) (*GetActionOutput, error) { 281 req, out := c.GetActionRequest(input) 282 req.SetContext(ctx) 283 req.ApplyOptions(opts...) 284 return out, req.Send() 285} 286 287const opGetExperiment = "GetExperiment" 288 289// GetExperimentRequest generates a "aws/request.Request" representing the 290// client's request for the GetExperiment operation. The "output" return 291// value will be populated with the request's response once the request completes 292// successfully. 293// 294// Use "Send" method on the returned Request to send the API call to the service. 295// the "output" return value is not valid until after Send returns without error. 296// 297// See GetExperiment for more information on using the GetExperiment 298// API call, and error handling. 299// 300// This method is useful when you want to inject custom logic or configuration 301// into the SDK's request lifecycle. Such as custom headers, or retry logic. 302// 303// 304// // Example sending a request using the GetExperimentRequest method. 305// req, resp := client.GetExperimentRequest(params) 306// 307// err := req.Send() 308// if err == nil { // resp is now filled 309// fmt.Println(resp) 310// } 311// 312// See also, https://docs.aws.amazon.com/goto/WebAPI/fis-2020-12-01/GetExperiment 313func (c *FIS) GetExperimentRequest(input *GetExperimentInput) (req *request.Request, output *GetExperimentOutput) { 314 op := &request.Operation{ 315 Name: opGetExperiment, 316 HTTPMethod: "GET", 317 HTTPPath: "/experiments/{id}", 318 } 319 320 if input == nil { 321 input = &GetExperimentInput{} 322 } 323 324 output = &GetExperimentOutput{} 325 req = c.newRequest(op, input, output) 326 return 327} 328 329// GetExperiment API operation for AWS Fault Injection Simulator. 330// 331// Gets information about the specified experiment. 332// 333// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 334// with awserr.Error's Code and Message methods to get detailed information about 335// the error. 336// 337// See the AWS API reference guide for AWS Fault Injection Simulator's 338// API operation GetExperiment for usage and error information. 339// 340// Returned Error Types: 341// * ValidationException 342// The specified input is not valid, or fails to satisfy the constraints for 343// the request. 344// 345// * ResourceNotFoundException 346// The specified resource cannot be found. 347// 348// See also, https://docs.aws.amazon.com/goto/WebAPI/fis-2020-12-01/GetExperiment 349func (c *FIS) GetExperiment(input *GetExperimentInput) (*GetExperimentOutput, error) { 350 req, out := c.GetExperimentRequest(input) 351 return out, req.Send() 352} 353 354// GetExperimentWithContext is the same as GetExperiment with the addition of 355// the ability to pass a context and additional request options. 356// 357// See GetExperiment for details on how to use this API operation. 358// 359// The context must be non-nil and will be used for request cancellation. If 360// the context is nil a panic will occur. In the future the SDK may create 361// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 362// for more information on using Contexts. 363func (c *FIS) GetExperimentWithContext(ctx aws.Context, input *GetExperimentInput, opts ...request.Option) (*GetExperimentOutput, error) { 364 req, out := c.GetExperimentRequest(input) 365 req.SetContext(ctx) 366 req.ApplyOptions(opts...) 367 return out, req.Send() 368} 369 370const opGetExperimentTemplate = "GetExperimentTemplate" 371 372// GetExperimentTemplateRequest generates a "aws/request.Request" representing the 373// client's request for the GetExperimentTemplate operation. The "output" return 374// value will be populated with the request's response once the request completes 375// successfully. 376// 377// Use "Send" method on the returned Request to send the API call to the service. 378// the "output" return value is not valid until after Send returns without error. 379// 380// See GetExperimentTemplate for more information on using the GetExperimentTemplate 381// API call, and error handling. 382// 383// This method is useful when you want to inject custom logic or configuration 384// into the SDK's request lifecycle. Such as custom headers, or retry logic. 385// 386// 387// // Example sending a request using the GetExperimentTemplateRequest method. 388// req, resp := client.GetExperimentTemplateRequest(params) 389// 390// err := req.Send() 391// if err == nil { // resp is now filled 392// fmt.Println(resp) 393// } 394// 395// See also, https://docs.aws.amazon.com/goto/WebAPI/fis-2020-12-01/GetExperimentTemplate 396func (c *FIS) GetExperimentTemplateRequest(input *GetExperimentTemplateInput) (req *request.Request, output *GetExperimentTemplateOutput) { 397 op := &request.Operation{ 398 Name: opGetExperimentTemplate, 399 HTTPMethod: "GET", 400 HTTPPath: "/experimentTemplates/{id}", 401 } 402 403 if input == nil { 404 input = &GetExperimentTemplateInput{} 405 } 406 407 output = &GetExperimentTemplateOutput{} 408 req = c.newRequest(op, input, output) 409 return 410} 411 412// GetExperimentTemplate API operation for AWS Fault Injection Simulator. 413// 414// Gets information about the specified experiment template. 415// 416// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 417// with awserr.Error's Code and Message methods to get detailed information about 418// the error. 419// 420// See the AWS API reference guide for AWS Fault Injection Simulator's 421// API operation GetExperimentTemplate for usage and error information. 422// 423// Returned Error Types: 424// * ValidationException 425// The specified input is not valid, or fails to satisfy the constraints for 426// the request. 427// 428// * ResourceNotFoundException 429// The specified resource cannot be found. 430// 431// See also, https://docs.aws.amazon.com/goto/WebAPI/fis-2020-12-01/GetExperimentTemplate 432func (c *FIS) GetExperimentTemplate(input *GetExperimentTemplateInput) (*GetExperimentTemplateOutput, error) { 433 req, out := c.GetExperimentTemplateRequest(input) 434 return out, req.Send() 435} 436 437// GetExperimentTemplateWithContext is the same as GetExperimentTemplate with the addition of 438// the ability to pass a context and additional request options. 439// 440// See GetExperimentTemplate for details on how to use this API operation. 441// 442// The context must be non-nil and will be used for request cancellation. If 443// the context is nil a panic will occur. In the future the SDK may create 444// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 445// for more information on using Contexts. 446func (c *FIS) GetExperimentTemplateWithContext(ctx aws.Context, input *GetExperimentTemplateInput, opts ...request.Option) (*GetExperimentTemplateOutput, error) { 447 req, out := c.GetExperimentTemplateRequest(input) 448 req.SetContext(ctx) 449 req.ApplyOptions(opts...) 450 return out, req.Send() 451} 452 453const opListActions = "ListActions" 454 455// ListActionsRequest generates a "aws/request.Request" representing the 456// client's request for the ListActions operation. The "output" return 457// value will be populated with the request's response once the request completes 458// successfully. 459// 460// Use "Send" method on the returned Request to send the API call to the service. 461// the "output" return value is not valid until after Send returns without error. 462// 463// See ListActions for more information on using the ListActions 464// API call, and error handling. 465// 466// This method is useful when you want to inject custom logic or configuration 467// into the SDK's request lifecycle. Such as custom headers, or retry logic. 468// 469// 470// // Example sending a request using the ListActionsRequest method. 471// req, resp := client.ListActionsRequest(params) 472// 473// err := req.Send() 474// if err == nil { // resp is now filled 475// fmt.Println(resp) 476// } 477// 478// See also, https://docs.aws.amazon.com/goto/WebAPI/fis-2020-12-01/ListActions 479func (c *FIS) ListActionsRequest(input *ListActionsInput) (req *request.Request, output *ListActionsOutput) { 480 op := &request.Operation{ 481 Name: opListActions, 482 HTTPMethod: "GET", 483 HTTPPath: "/actions", 484 Paginator: &request.Paginator{ 485 InputTokens: []string{"nextToken"}, 486 OutputTokens: []string{"nextToken"}, 487 LimitToken: "maxResults", 488 TruncationToken: "", 489 }, 490 } 491 492 if input == nil { 493 input = &ListActionsInput{} 494 } 495 496 output = &ListActionsOutput{} 497 req = c.newRequest(op, input, output) 498 return 499} 500 501// ListActions API operation for AWS Fault Injection Simulator. 502// 503// Lists the available AWS FIS actions. 504// 505// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 506// with awserr.Error's Code and Message methods to get detailed information about 507// the error. 508// 509// See the AWS API reference guide for AWS Fault Injection Simulator's 510// API operation ListActions for usage and error information. 511// 512// Returned Error Types: 513// * ValidationException 514// The specified input is not valid, or fails to satisfy the constraints for 515// the request. 516// 517// See also, https://docs.aws.amazon.com/goto/WebAPI/fis-2020-12-01/ListActions 518func (c *FIS) ListActions(input *ListActionsInput) (*ListActionsOutput, error) { 519 req, out := c.ListActionsRequest(input) 520 return out, req.Send() 521} 522 523// ListActionsWithContext is the same as ListActions with the addition of 524// the ability to pass a context and additional request options. 525// 526// See ListActions for details on how to use this API operation. 527// 528// The context must be non-nil and will be used for request cancellation. If 529// the context is nil a panic will occur. In the future the SDK may create 530// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 531// for more information on using Contexts. 532func (c *FIS) ListActionsWithContext(ctx aws.Context, input *ListActionsInput, opts ...request.Option) (*ListActionsOutput, error) { 533 req, out := c.ListActionsRequest(input) 534 req.SetContext(ctx) 535 req.ApplyOptions(opts...) 536 return out, req.Send() 537} 538 539// ListActionsPages iterates over the pages of a ListActions operation, 540// calling the "fn" function with the response data for each page. To stop 541// iterating, return false from the fn function. 542// 543// See ListActions method for more information on how to use this operation. 544// 545// Note: This operation can generate multiple requests to a service. 546// 547// // Example iterating over at most 3 pages of a ListActions operation. 548// pageNum := 0 549// err := client.ListActionsPages(params, 550// func(page *fis.ListActionsOutput, lastPage bool) bool { 551// pageNum++ 552// fmt.Println(page) 553// return pageNum <= 3 554// }) 555// 556func (c *FIS) ListActionsPages(input *ListActionsInput, fn func(*ListActionsOutput, bool) bool) error { 557 return c.ListActionsPagesWithContext(aws.BackgroundContext(), input, fn) 558} 559 560// ListActionsPagesWithContext same as ListActionsPages except 561// it takes a Context and allows setting request options on the pages. 562// 563// The context must be non-nil and will be used for request cancellation. If 564// the context is nil a panic will occur. In the future the SDK may create 565// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 566// for more information on using Contexts. 567func (c *FIS) ListActionsPagesWithContext(ctx aws.Context, input *ListActionsInput, fn func(*ListActionsOutput, bool) bool, opts ...request.Option) error { 568 p := request.Pagination{ 569 NewRequest: func() (*request.Request, error) { 570 var inCpy *ListActionsInput 571 if input != nil { 572 tmp := *input 573 inCpy = &tmp 574 } 575 req, _ := c.ListActionsRequest(inCpy) 576 req.SetContext(ctx) 577 req.ApplyOptions(opts...) 578 return req, nil 579 }, 580 } 581 582 for p.Next() { 583 if !fn(p.Page().(*ListActionsOutput), !p.HasNextPage()) { 584 break 585 } 586 } 587 588 return p.Err() 589} 590 591const opListExperimentTemplates = "ListExperimentTemplates" 592 593// ListExperimentTemplatesRequest generates a "aws/request.Request" representing the 594// client's request for the ListExperimentTemplates operation. The "output" return 595// value will be populated with the request's response once the request completes 596// successfully. 597// 598// Use "Send" method on the returned Request to send the API call to the service. 599// the "output" return value is not valid until after Send returns without error. 600// 601// See ListExperimentTemplates for more information on using the ListExperimentTemplates 602// API call, and error handling. 603// 604// This method is useful when you want to inject custom logic or configuration 605// into the SDK's request lifecycle. Such as custom headers, or retry logic. 606// 607// 608// // Example sending a request using the ListExperimentTemplatesRequest method. 609// req, resp := client.ListExperimentTemplatesRequest(params) 610// 611// err := req.Send() 612// if err == nil { // resp is now filled 613// fmt.Println(resp) 614// } 615// 616// See also, https://docs.aws.amazon.com/goto/WebAPI/fis-2020-12-01/ListExperimentTemplates 617func (c *FIS) ListExperimentTemplatesRequest(input *ListExperimentTemplatesInput) (req *request.Request, output *ListExperimentTemplatesOutput) { 618 op := &request.Operation{ 619 Name: opListExperimentTemplates, 620 HTTPMethod: "GET", 621 HTTPPath: "/experimentTemplates", 622 Paginator: &request.Paginator{ 623 InputTokens: []string{"nextToken"}, 624 OutputTokens: []string{"nextToken"}, 625 LimitToken: "maxResults", 626 TruncationToken: "", 627 }, 628 } 629 630 if input == nil { 631 input = &ListExperimentTemplatesInput{} 632 } 633 634 output = &ListExperimentTemplatesOutput{} 635 req = c.newRequest(op, input, output) 636 return 637} 638 639// ListExperimentTemplates API operation for AWS Fault Injection Simulator. 640// 641// Lists your experiment templates. 642// 643// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 644// with awserr.Error's Code and Message methods to get detailed information about 645// the error. 646// 647// See the AWS API reference guide for AWS Fault Injection Simulator's 648// API operation ListExperimentTemplates for usage and error information. 649// 650// Returned Error Types: 651// * ValidationException 652// The specified input is not valid, or fails to satisfy the constraints for 653// the request. 654// 655// See also, https://docs.aws.amazon.com/goto/WebAPI/fis-2020-12-01/ListExperimentTemplates 656func (c *FIS) ListExperimentTemplates(input *ListExperimentTemplatesInput) (*ListExperimentTemplatesOutput, error) { 657 req, out := c.ListExperimentTemplatesRequest(input) 658 return out, req.Send() 659} 660 661// ListExperimentTemplatesWithContext is the same as ListExperimentTemplates with the addition of 662// the ability to pass a context and additional request options. 663// 664// See ListExperimentTemplates for details on how to use this API operation. 665// 666// The context must be non-nil and will be used for request cancellation. If 667// the context is nil a panic will occur. In the future the SDK may create 668// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 669// for more information on using Contexts. 670func (c *FIS) ListExperimentTemplatesWithContext(ctx aws.Context, input *ListExperimentTemplatesInput, opts ...request.Option) (*ListExperimentTemplatesOutput, error) { 671 req, out := c.ListExperimentTemplatesRequest(input) 672 req.SetContext(ctx) 673 req.ApplyOptions(opts...) 674 return out, req.Send() 675} 676 677// ListExperimentTemplatesPages iterates over the pages of a ListExperimentTemplates operation, 678// calling the "fn" function with the response data for each page. To stop 679// iterating, return false from the fn function. 680// 681// See ListExperimentTemplates method for more information on how to use this operation. 682// 683// Note: This operation can generate multiple requests to a service. 684// 685// // Example iterating over at most 3 pages of a ListExperimentTemplates operation. 686// pageNum := 0 687// err := client.ListExperimentTemplatesPages(params, 688// func(page *fis.ListExperimentTemplatesOutput, lastPage bool) bool { 689// pageNum++ 690// fmt.Println(page) 691// return pageNum <= 3 692// }) 693// 694func (c *FIS) ListExperimentTemplatesPages(input *ListExperimentTemplatesInput, fn func(*ListExperimentTemplatesOutput, bool) bool) error { 695 return c.ListExperimentTemplatesPagesWithContext(aws.BackgroundContext(), input, fn) 696} 697 698// ListExperimentTemplatesPagesWithContext same as ListExperimentTemplatesPages except 699// it takes a Context and allows setting request options on the pages. 700// 701// The context must be non-nil and will be used for request cancellation. If 702// the context is nil a panic will occur. In the future the SDK may create 703// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 704// for more information on using Contexts. 705func (c *FIS) ListExperimentTemplatesPagesWithContext(ctx aws.Context, input *ListExperimentTemplatesInput, fn func(*ListExperimentTemplatesOutput, bool) bool, opts ...request.Option) error { 706 p := request.Pagination{ 707 NewRequest: func() (*request.Request, error) { 708 var inCpy *ListExperimentTemplatesInput 709 if input != nil { 710 tmp := *input 711 inCpy = &tmp 712 } 713 req, _ := c.ListExperimentTemplatesRequest(inCpy) 714 req.SetContext(ctx) 715 req.ApplyOptions(opts...) 716 return req, nil 717 }, 718 } 719 720 for p.Next() { 721 if !fn(p.Page().(*ListExperimentTemplatesOutput), !p.HasNextPage()) { 722 break 723 } 724 } 725 726 return p.Err() 727} 728 729const opListExperiments = "ListExperiments" 730 731// ListExperimentsRequest generates a "aws/request.Request" representing the 732// client's request for the ListExperiments operation. The "output" return 733// value will be populated with the request's response once the request completes 734// successfully. 735// 736// Use "Send" method on the returned Request to send the API call to the service. 737// the "output" return value is not valid until after Send returns without error. 738// 739// See ListExperiments for more information on using the ListExperiments 740// API call, and error handling. 741// 742// This method is useful when you want to inject custom logic or configuration 743// into the SDK's request lifecycle. Such as custom headers, or retry logic. 744// 745// 746// // Example sending a request using the ListExperimentsRequest method. 747// req, resp := client.ListExperimentsRequest(params) 748// 749// err := req.Send() 750// if err == nil { // resp is now filled 751// fmt.Println(resp) 752// } 753// 754// See also, https://docs.aws.amazon.com/goto/WebAPI/fis-2020-12-01/ListExperiments 755func (c *FIS) ListExperimentsRequest(input *ListExperimentsInput) (req *request.Request, output *ListExperimentsOutput) { 756 op := &request.Operation{ 757 Name: opListExperiments, 758 HTTPMethod: "GET", 759 HTTPPath: "/experiments", 760 Paginator: &request.Paginator{ 761 InputTokens: []string{"nextToken"}, 762 OutputTokens: []string{"nextToken"}, 763 LimitToken: "maxResults", 764 TruncationToken: "", 765 }, 766 } 767 768 if input == nil { 769 input = &ListExperimentsInput{} 770 } 771 772 output = &ListExperimentsOutput{} 773 req = c.newRequest(op, input, output) 774 return 775} 776 777// ListExperiments API operation for AWS Fault Injection Simulator. 778// 779// Lists your experiments. 780// 781// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 782// with awserr.Error's Code and Message methods to get detailed information about 783// the error. 784// 785// See the AWS API reference guide for AWS Fault Injection Simulator's 786// API operation ListExperiments for usage and error information. 787// 788// Returned Error Types: 789// * ValidationException 790// The specified input is not valid, or fails to satisfy the constraints for 791// the request. 792// 793// See also, https://docs.aws.amazon.com/goto/WebAPI/fis-2020-12-01/ListExperiments 794func (c *FIS) ListExperiments(input *ListExperimentsInput) (*ListExperimentsOutput, error) { 795 req, out := c.ListExperimentsRequest(input) 796 return out, req.Send() 797} 798 799// ListExperimentsWithContext is the same as ListExperiments with the addition of 800// the ability to pass a context and additional request options. 801// 802// See ListExperiments for details on how to use this API operation. 803// 804// The context must be non-nil and will be used for request cancellation. If 805// the context is nil a panic will occur. In the future the SDK may create 806// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 807// for more information on using Contexts. 808func (c *FIS) ListExperimentsWithContext(ctx aws.Context, input *ListExperimentsInput, opts ...request.Option) (*ListExperimentsOutput, error) { 809 req, out := c.ListExperimentsRequest(input) 810 req.SetContext(ctx) 811 req.ApplyOptions(opts...) 812 return out, req.Send() 813} 814 815// ListExperimentsPages iterates over the pages of a ListExperiments operation, 816// calling the "fn" function with the response data for each page. To stop 817// iterating, return false from the fn function. 818// 819// See ListExperiments method for more information on how to use this operation. 820// 821// Note: This operation can generate multiple requests to a service. 822// 823// // Example iterating over at most 3 pages of a ListExperiments operation. 824// pageNum := 0 825// err := client.ListExperimentsPages(params, 826// func(page *fis.ListExperimentsOutput, lastPage bool) bool { 827// pageNum++ 828// fmt.Println(page) 829// return pageNum <= 3 830// }) 831// 832func (c *FIS) ListExperimentsPages(input *ListExperimentsInput, fn func(*ListExperimentsOutput, bool) bool) error { 833 return c.ListExperimentsPagesWithContext(aws.BackgroundContext(), input, fn) 834} 835 836// ListExperimentsPagesWithContext same as ListExperimentsPages except 837// it takes a Context and allows setting request options on the pages. 838// 839// The context must be non-nil and will be used for request cancellation. If 840// the context is nil a panic will occur. In the future the SDK may create 841// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 842// for more information on using Contexts. 843func (c *FIS) ListExperimentsPagesWithContext(ctx aws.Context, input *ListExperimentsInput, fn func(*ListExperimentsOutput, bool) bool, opts ...request.Option) error { 844 p := request.Pagination{ 845 NewRequest: func() (*request.Request, error) { 846 var inCpy *ListExperimentsInput 847 if input != nil { 848 tmp := *input 849 inCpy = &tmp 850 } 851 req, _ := c.ListExperimentsRequest(inCpy) 852 req.SetContext(ctx) 853 req.ApplyOptions(opts...) 854 return req, nil 855 }, 856 } 857 858 for p.Next() { 859 if !fn(p.Page().(*ListExperimentsOutput), !p.HasNextPage()) { 860 break 861 } 862 } 863 864 return p.Err() 865} 866 867const opListTagsForResource = "ListTagsForResource" 868 869// ListTagsForResourceRequest generates a "aws/request.Request" representing the 870// client's request for the ListTagsForResource operation. The "output" return 871// value will be populated with the request's response once the request completes 872// successfully. 873// 874// Use "Send" method on the returned Request to send the API call to the service. 875// the "output" return value is not valid until after Send returns without error. 876// 877// See ListTagsForResource for more information on using the ListTagsForResource 878// API call, and error handling. 879// 880// This method is useful when you want to inject custom logic or configuration 881// into the SDK's request lifecycle. Such as custom headers, or retry logic. 882// 883// 884// // Example sending a request using the ListTagsForResourceRequest method. 885// req, resp := client.ListTagsForResourceRequest(params) 886// 887// err := req.Send() 888// if err == nil { // resp is now filled 889// fmt.Println(resp) 890// } 891// 892// See also, https://docs.aws.amazon.com/goto/WebAPI/fis-2020-12-01/ListTagsForResource 893func (c *FIS) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) { 894 op := &request.Operation{ 895 Name: opListTagsForResource, 896 HTTPMethod: "GET", 897 HTTPPath: "/tags/{resourceArn}", 898 } 899 900 if input == nil { 901 input = &ListTagsForResourceInput{} 902 } 903 904 output = &ListTagsForResourceOutput{} 905 req = c.newRequest(op, input, output) 906 return 907} 908 909// ListTagsForResource API operation for AWS Fault Injection Simulator. 910// 911// Lists the tags for the specified resource. 912// 913// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 914// with awserr.Error's Code and Message methods to get detailed information about 915// the error. 916// 917// See the AWS API reference guide for AWS Fault Injection Simulator's 918// API operation ListTagsForResource for usage and error information. 919// See also, https://docs.aws.amazon.com/goto/WebAPI/fis-2020-12-01/ListTagsForResource 920func (c *FIS) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) { 921 req, out := c.ListTagsForResourceRequest(input) 922 return out, req.Send() 923} 924 925// ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of 926// the ability to pass a context and additional request options. 927// 928// See ListTagsForResource for details on how to use this API operation. 929// 930// The context must be non-nil and will be used for request cancellation. If 931// the context is nil a panic will occur. In the future the SDK may create 932// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 933// for more information on using Contexts. 934func (c *FIS) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) { 935 req, out := c.ListTagsForResourceRequest(input) 936 req.SetContext(ctx) 937 req.ApplyOptions(opts...) 938 return out, req.Send() 939} 940 941const opStartExperiment = "StartExperiment" 942 943// StartExperimentRequest generates a "aws/request.Request" representing the 944// client's request for the StartExperiment operation. The "output" return 945// value will be populated with the request's response once the request completes 946// successfully. 947// 948// Use "Send" method on the returned Request to send the API call to the service. 949// the "output" return value is not valid until after Send returns without error. 950// 951// See StartExperiment for more information on using the StartExperiment 952// API call, and error handling. 953// 954// This method is useful when you want to inject custom logic or configuration 955// into the SDK's request lifecycle. Such as custom headers, or retry logic. 956// 957// 958// // Example sending a request using the StartExperimentRequest method. 959// req, resp := client.StartExperimentRequest(params) 960// 961// err := req.Send() 962// if err == nil { // resp is now filled 963// fmt.Println(resp) 964// } 965// 966// See also, https://docs.aws.amazon.com/goto/WebAPI/fis-2020-12-01/StartExperiment 967func (c *FIS) StartExperimentRequest(input *StartExperimentInput) (req *request.Request, output *StartExperimentOutput) { 968 op := &request.Operation{ 969 Name: opStartExperiment, 970 HTTPMethod: "POST", 971 HTTPPath: "/experiments", 972 } 973 974 if input == nil { 975 input = &StartExperimentInput{} 976 } 977 978 output = &StartExperimentOutput{} 979 req = c.newRequest(op, input, output) 980 return 981} 982 983// StartExperiment API operation for AWS Fault Injection Simulator. 984// 985// Starts running an experiment from the specified experiment template. 986// 987// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 988// with awserr.Error's Code and Message methods to get detailed information about 989// the error. 990// 991// See the AWS API reference guide for AWS Fault Injection Simulator's 992// API operation StartExperiment for usage and error information. 993// 994// Returned Error Types: 995// * ValidationException 996// The specified input is not valid, or fails to satisfy the constraints for 997// the request. 998// 999// * ConflictException 1000// The request could not be processed because of a conflict. 1001// 1002// * ResourceNotFoundException 1003// The specified resource cannot be found. 1004// 1005// * ServiceQuotaExceededException 1006// You have exceeded your service quota. 1007// 1008// See also, https://docs.aws.amazon.com/goto/WebAPI/fis-2020-12-01/StartExperiment 1009func (c *FIS) StartExperiment(input *StartExperimentInput) (*StartExperimentOutput, error) { 1010 req, out := c.StartExperimentRequest(input) 1011 return out, req.Send() 1012} 1013 1014// StartExperimentWithContext is the same as StartExperiment with the addition of 1015// the ability to pass a context and additional request options. 1016// 1017// See StartExperiment for details on how to use this API operation. 1018// 1019// The context must be non-nil and will be used for request cancellation. If 1020// the context is nil a panic will occur. In the future the SDK may create 1021// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 1022// for more information on using Contexts. 1023func (c *FIS) StartExperimentWithContext(ctx aws.Context, input *StartExperimentInput, opts ...request.Option) (*StartExperimentOutput, error) { 1024 req, out := c.StartExperimentRequest(input) 1025 req.SetContext(ctx) 1026 req.ApplyOptions(opts...) 1027 return out, req.Send() 1028} 1029 1030const opStopExperiment = "StopExperiment" 1031 1032// StopExperimentRequest generates a "aws/request.Request" representing the 1033// client's request for the StopExperiment operation. The "output" return 1034// value will be populated with the request's response once the request completes 1035// successfully. 1036// 1037// Use "Send" method on the returned Request to send the API call to the service. 1038// the "output" return value is not valid until after Send returns without error. 1039// 1040// See StopExperiment for more information on using the StopExperiment 1041// API call, and error handling. 1042// 1043// This method is useful when you want to inject custom logic or configuration 1044// into the SDK's request lifecycle. Such as custom headers, or retry logic. 1045// 1046// 1047// // Example sending a request using the StopExperimentRequest method. 1048// req, resp := client.StopExperimentRequest(params) 1049// 1050// err := req.Send() 1051// if err == nil { // resp is now filled 1052// fmt.Println(resp) 1053// } 1054// 1055// See also, https://docs.aws.amazon.com/goto/WebAPI/fis-2020-12-01/StopExperiment 1056func (c *FIS) StopExperimentRequest(input *StopExperimentInput) (req *request.Request, output *StopExperimentOutput) { 1057 op := &request.Operation{ 1058 Name: opStopExperiment, 1059 HTTPMethod: "DELETE", 1060 HTTPPath: "/experiments/{id}", 1061 } 1062 1063 if input == nil { 1064 input = &StopExperimentInput{} 1065 } 1066 1067 output = &StopExperimentOutput{} 1068 req = c.newRequest(op, input, output) 1069 return 1070} 1071 1072// StopExperiment API operation for AWS Fault Injection Simulator. 1073// 1074// Stops the specified experiment. 1075// 1076// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 1077// with awserr.Error's Code and Message methods to get detailed information about 1078// the error. 1079// 1080// See the AWS API reference guide for AWS Fault Injection Simulator's 1081// API operation StopExperiment for usage and error information. 1082// 1083// Returned Error Types: 1084// * ValidationException 1085// The specified input is not valid, or fails to satisfy the constraints for 1086// the request. 1087// 1088// * ResourceNotFoundException 1089// The specified resource cannot be found. 1090// 1091// See also, https://docs.aws.amazon.com/goto/WebAPI/fis-2020-12-01/StopExperiment 1092func (c *FIS) StopExperiment(input *StopExperimentInput) (*StopExperimentOutput, error) { 1093 req, out := c.StopExperimentRequest(input) 1094 return out, req.Send() 1095} 1096 1097// StopExperimentWithContext is the same as StopExperiment with the addition of 1098// the ability to pass a context and additional request options. 1099// 1100// See StopExperiment for details on how to use this API operation. 1101// 1102// The context must be non-nil and will be used for request cancellation. If 1103// the context is nil a panic will occur. In the future the SDK may create 1104// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 1105// for more information on using Contexts. 1106func (c *FIS) StopExperimentWithContext(ctx aws.Context, input *StopExperimentInput, opts ...request.Option) (*StopExperimentOutput, error) { 1107 req, out := c.StopExperimentRequest(input) 1108 req.SetContext(ctx) 1109 req.ApplyOptions(opts...) 1110 return out, req.Send() 1111} 1112 1113const opTagResource = "TagResource" 1114 1115// TagResourceRequest generates a "aws/request.Request" representing the 1116// client's request for the TagResource operation. The "output" return 1117// value will be populated with the request's response once the request completes 1118// successfully. 1119// 1120// Use "Send" method on the returned Request to send the API call to the service. 1121// the "output" return value is not valid until after Send returns without error. 1122// 1123// See TagResource for more information on using the TagResource 1124// API call, and error handling. 1125// 1126// This method is useful when you want to inject custom logic or configuration 1127// into the SDK's request lifecycle. Such as custom headers, or retry logic. 1128// 1129// 1130// // Example sending a request using the TagResourceRequest method. 1131// req, resp := client.TagResourceRequest(params) 1132// 1133// err := req.Send() 1134// if err == nil { // resp is now filled 1135// fmt.Println(resp) 1136// } 1137// 1138// See also, https://docs.aws.amazon.com/goto/WebAPI/fis-2020-12-01/TagResource 1139func (c *FIS) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) { 1140 op := &request.Operation{ 1141 Name: opTagResource, 1142 HTTPMethod: "POST", 1143 HTTPPath: "/tags/{resourceArn}", 1144 } 1145 1146 if input == nil { 1147 input = &TagResourceInput{} 1148 } 1149 1150 output = &TagResourceOutput{} 1151 req = c.newRequest(op, input, output) 1152 req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) 1153 return 1154} 1155 1156// TagResource API operation for AWS Fault Injection Simulator. 1157// 1158// Applies the specified tags to the specified resource. 1159// 1160// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 1161// with awserr.Error's Code and Message methods to get detailed information about 1162// the error. 1163// 1164// See the AWS API reference guide for AWS Fault Injection Simulator's 1165// API operation TagResource for usage and error information. 1166// See also, https://docs.aws.amazon.com/goto/WebAPI/fis-2020-12-01/TagResource 1167func (c *FIS) TagResource(input *TagResourceInput) (*TagResourceOutput, error) { 1168 req, out := c.TagResourceRequest(input) 1169 return out, req.Send() 1170} 1171 1172// TagResourceWithContext is the same as TagResource with the addition of 1173// the ability to pass a context and additional request options. 1174// 1175// See TagResource for details on how to use this API operation. 1176// 1177// The context must be non-nil and will be used for request cancellation. If 1178// the context is nil a panic will occur. In the future the SDK may create 1179// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 1180// for more information on using Contexts. 1181func (c *FIS) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) { 1182 req, out := c.TagResourceRequest(input) 1183 req.SetContext(ctx) 1184 req.ApplyOptions(opts...) 1185 return out, req.Send() 1186} 1187 1188const opUntagResource = "UntagResource" 1189 1190// UntagResourceRequest generates a "aws/request.Request" representing the 1191// client's request for the UntagResource operation. The "output" return 1192// value will be populated with the request's response once the request completes 1193// successfully. 1194// 1195// Use "Send" method on the returned Request to send the API call to the service. 1196// the "output" return value is not valid until after Send returns without error. 1197// 1198// See UntagResource for more information on using the UntagResource 1199// API call, and error handling. 1200// 1201// This method is useful when you want to inject custom logic or configuration 1202// into the SDK's request lifecycle. Such as custom headers, or retry logic. 1203// 1204// 1205// // Example sending a request using the UntagResourceRequest method. 1206// req, resp := client.UntagResourceRequest(params) 1207// 1208// err := req.Send() 1209// if err == nil { // resp is now filled 1210// fmt.Println(resp) 1211// } 1212// 1213// See also, https://docs.aws.amazon.com/goto/WebAPI/fis-2020-12-01/UntagResource 1214func (c *FIS) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) { 1215 op := &request.Operation{ 1216 Name: opUntagResource, 1217 HTTPMethod: "DELETE", 1218 HTTPPath: "/tags/{resourceArn}", 1219 } 1220 1221 if input == nil { 1222 input = &UntagResourceInput{} 1223 } 1224 1225 output = &UntagResourceOutput{} 1226 req = c.newRequest(op, input, output) 1227 req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) 1228 return 1229} 1230 1231// UntagResource API operation for AWS Fault Injection Simulator. 1232// 1233// Removes the specified tags from the specified resource. 1234// 1235// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 1236// with awserr.Error's Code and Message methods to get detailed information about 1237// the error. 1238// 1239// See the AWS API reference guide for AWS Fault Injection Simulator's 1240// API operation UntagResource for usage and error information. 1241// See also, https://docs.aws.amazon.com/goto/WebAPI/fis-2020-12-01/UntagResource 1242func (c *FIS) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) { 1243 req, out := c.UntagResourceRequest(input) 1244 return out, req.Send() 1245} 1246 1247// UntagResourceWithContext is the same as UntagResource with the addition of 1248// the ability to pass a context and additional request options. 1249// 1250// See UntagResource for details on how to use this API operation. 1251// 1252// The context must be non-nil and will be used for request cancellation. If 1253// the context is nil a panic will occur. In the future the SDK may create 1254// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 1255// for more information on using Contexts. 1256func (c *FIS) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) { 1257 req, out := c.UntagResourceRequest(input) 1258 req.SetContext(ctx) 1259 req.ApplyOptions(opts...) 1260 return out, req.Send() 1261} 1262 1263const opUpdateExperimentTemplate = "UpdateExperimentTemplate" 1264 1265// UpdateExperimentTemplateRequest generates a "aws/request.Request" representing the 1266// client's request for the UpdateExperimentTemplate operation. The "output" return 1267// value will be populated with the request's response once the request completes 1268// successfully. 1269// 1270// Use "Send" method on the returned Request to send the API call to the service. 1271// the "output" return value is not valid until after Send returns without error. 1272// 1273// See UpdateExperimentTemplate for more information on using the UpdateExperimentTemplate 1274// API call, and error handling. 1275// 1276// This method is useful when you want to inject custom logic or configuration 1277// into the SDK's request lifecycle. Such as custom headers, or retry logic. 1278// 1279// 1280// // Example sending a request using the UpdateExperimentTemplateRequest method. 1281// req, resp := client.UpdateExperimentTemplateRequest(params) 1282// 1283// err := req.Send() 1284// if err == nil { // resp is now filled 1285// fmt.Println(resp) 1286// } 1287// 1288// See also, https://docs.aws.amazon.com/goto/WebAPI/fis-2020-12-01/UpdateExperimentTemplate 1289func (c *FIS) UpdateExperimentTemplateRequest(input *UpdateExperimentTemplateInput) (req *request.Request, output *UpdateExperimentTemplateOutput) { 1290 op := &request.Operation{ 1291 Name: opUpdateExperimentTemplate, 1292 HTTPMethod: "PATCH", 1293 HTTPPath: "/experimentTemplates/{id}", 1294 } 1295 1296 if input == nil { 1297 input = &UpdateExperimentTemplateInput{} 1298 } 1299 1300 output = &UpdateExperimentTemplateOutput{} 1301 req = c.newRequest(op, input, output) 1302 return 1303} 1304 1305// UpdateExperimentTemplate API operation for AWS Fault Injection Simulator. 1306// 1307// Updates the specified experiment template. 1308// 1309// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 1310// with awserr.Error's Code and Message methods to get detailed information about 1311// the error. 1312// 1313// See the AWS API reference guide for AWS Fault Injection Simulator's 1314// API operation UpdateExperimentTemplate for usage and error information. 1315// 1316// Returned Error Types: 1317// * ValidationException 1318// The specified input is not valid, or fails to satisfy the constraints for 1319// the request. 1320// 1321// * ResourceNotFoundException 1322// The specified resource cannot be found. 1323// 1324// * ServiceQuotaExceededException 1325// You have exceeded your service quota. 1326// 1327// See also, https://docs.aws.amazon.com/goto/WebAPI/fis-2020-12-01/UpdateExperimentTemplate 1328func (c *FIS) UpdateExperimentTemplate(input *UpdateExperimentTemplateInput) (*UpdateExperimentTemplateOutput, error) { 1329 req, out := c.UpdateExperimentTemplateRequest(input) 1330 return out, req.Send() 1331} 1332 1333// UpdateExperimentTemplateWithContext is the same as UpdateExperimentTemplate with the addition of 1334// the ability to pass a context and additional request options. 1335// 1336// See UpdateExperimentTemplate for details on how to use this API operation. 1337// 1338// The context must be non-nil and will be used for request cancellation. If 1339// the context is nil a panic will occur. In the future the SDK may create 1340// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 1341// for more information on using Contexts. 1342func (c *FIS) UpdateExperimentTemplateWithContext(ctx aws.Context, input *UpdateExperimentTemplateInput, opts ...request.Option) (*UpdateExperimentTemplateOutput, error) { 1343 req, out := c.UpdateExperimentTemplateRequest(input) 1344 req.SetContext(ctx) 1345 req.ApplyOptions(opts...) 1346 return out, req.Send() 1347} 1348 1349// Describes an action. For more information, see AWS FIS actions (https://docs.aws.amazon.com/fis/latest/userguide/fis-actions-reference.html) 1350// in the AWS Fault Injection Simulator User Guide. 1351type Action struct { 1352 _ struct{} `type:"structure"` 1353 1354 // The description for the action. 1355 Description *string `locationName:"description" type:"string"` 1356 1357 // The ID of the action. 1358 Id *string `locationName:"id" type:"string"` 1359 1360 // The action parameters, if applicable. 1361 Parameters map[string]*ActionParameter `locationName:"parameters" type:"map"` 1362 1363 // The tags for the action. 1364 Tags map[string]*string `locationName:"tags" type:"map"` 1365 1366 // The supported targets for the action. 1367 Targets map[string]*ActionTarget `locationName:"targets" type:"map"` 1368} 1369 1370// String returns the string representation. 1371// 1372// API parameter values that are decorated as "sensitive" in the API will not 1373// be included in the string output. The member name will be present, but the 1374// value will be replaced with "sensitive". 1375func (s Action) String() string { 1376 return awsutil.Prettify(s) 1377} 1378 1379// GoString returns the string representation. 1380// 1381// API parameter values that are decorated as "sensitive" in the API will not 1382// be included in the string output. The member name will be present, but the 1383// value will be replaced with "sensitive". 1384func (s Action) GoString() string { 1385 return s.String() 1386} 1387 1388// SetDescription sets the Description field's value. 1389func (s *Action) SetDescription(v string) *Action { 1390 s.Description = &v 1391 return s 1392} 1393 1394// SetId sets the Id field's value. 1395func (s *Action) SetId(v string) *Action { 1396 s.Id = &v 1397 return s 1398} 1399 1400// SetParameters sets the Parameters field's value. 1401func (s *Action) SetParameters(v map[string]*ActionParameter) *Action { 1402 s.Parameters = v 1403 return s 1404} 1405 1406// SetTags sets the Tags field's value. 1407func (s *Action) SetTags(v map[string]*string) *Action { 1408 s.Tags = v 1409 return s 1410} 1411 1412// SetTargets sets the Targets field's value. 1413func (s *Action) SetTargets(v map[string]*ActionTarget) *Action { 1414 s.Targets = v 1415 return s 1416} 1417 1418// Describes a parameter for an action. 1419type ActionParameter struct { 1420 _ struct{} `type:"structure"` 1421 1422 // The parameter description. 1423 Description *string `locationName:"description" type:"string"` 1424 1425 // Indicates whether the parameter is required. 1426 Required *bool `locationName:"required" type:"boolean"` 1427} 1428 1429// String returns the string representation. 1430// 1431// API parameter values that are decorated as "sensitive" in the API will not 1432// be included in the string output. The member name will be present, but the 1433// value will be replaced with "sensitive". 1434func (s ActionParameter) String() string { 1435 return awsutil.Prettify(s) 1436} 1437 1438// GoString returns the string representation. 1439// 1440// API parameter values that are decorated as "sensitive" in the API will not 1441// be included in the string output. The member name will be present, but the 1442// value will be replaced with "sensitive". 1443func (s ActionParameter) GoString() string { 1444 return s.String() 1445} 1446 1447// SetDescription sets the Description field's value. 1448func (s *ActionParameter) SetDescription(v string) *ActionParameter { 1449 s.Description = &v 1450 return s 1451} 1452 1453// SetRequired sets the Required field's value. 1454func (s *ActionParameter) SetRequired(v bool) *ActionParameter { 1455 s.Required = &v 1456 return s 1457} 1458 1459// Provides a summary of an action. 1460type ActionSummary struct { 1461 _ struct{} `type:"structure"` 1462 1463 // The description for the action. 1464 Description *string `locationName:"description" type:"string"` 1465 1466 // The ID of the action. 1467 Id *string `locationName:"id" type:"string"` 1468 1469 // The tags for the action. 1470 Tags map[string]*string `locationName:"tags" type:"map"` 1471 1472 // The targets for the action. 1473 Targets map[string]*ActionTarget `locationName:"targets" type:"map"` 1474} 1475 1476// String returns the string representation. 1477// 1478// API parameter values that are decorated as "sensitive" in the API will not 1479// be included in the string output. The member name will be present, but the 1480// value will be replaced with "sensitive". 1481func (s ActionSummary) String() string { 1482 return awsutil.Prettify(s) 1483} 1484 1485// GoString returns the string representation. 1486// 1487// API parameter values that are decorated as "sensitive" in the API will not 1488// be included in the string output. The member name will be present, but the 1489// value will be replaced with "sensitive". 1490func (s ActionSummary) GoString() string { 1491 return s.String() 1492} 1493 1494// SetDescription sets the Description field's value. 1495func (s *ActionSummary) SetDescription(v string) *ActionSummary { 1496 s.Description = &v 1497 return s 1498} 1499 1500// SetId sets the Id field's value. 1501func (s *ActionSummary) SetId(v string) *ActionSummary { 1502 s.Id = &v 1503 return s 1504} 1505 1506// SetTags sets the Tags field's value. 1507func (s *ActionSummary) SetTags(v map[string]*string) *ActionSummary { 1508 s.Tags = v 1509 return s 1510} 1511 1512// SetTargets sets the Targets field's value. 1513func (s *ActionSummary) SetTargets(v map[string]*ActionTarget) *ActionSummary { 1514 s.Targets = v 1515 return s 1516} 1517 1518// Describes a target for an action. 1519type ActionTarget struct { 1520 _ struct{} `type:"structure"` 1521 1522 // The resource type of the target. 1523 ResourceType *string `locationName:"resourceType" type:"string"` 1524} 1525 1526// String returns the string representation. 1527// 1528// API parameter values that are decorated as "sensitive" in the API will not 1529// be included in the string output. The member name will be present, but the 1530// value will be replaced with "sensitive". 1531func (s ActionTarget) String() string { 1532 return awsutil.Prettify(s) 1533} 1534 1535// GoString returns the string representation. 1536// 1537// API parameter values that are decorated as "sensitive" in the API will not 1538// be included in the string output. The member name will be present, but the 1539// value will be replaced with "sensitive". 1540func (s ActionTarget) GoString() string { 1541 return s.String() 1542} 1543 1544// SetResourceType sets the ResourceType field's value. 1545func (s *ActionTarget) SetResourceType(v string) *ActionTarget { 1546 s.ResourceType = &v 1547 return s 1548} 1549 1550// The request could not be processed because of a conflict. 1551type ConflictException struct { 1552 _ struct{} `type:"structure"` 1553 RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` 1554 1555 Message_ *string `locationName:"message" type:"string"` 1556} 1557 1558// String returns the string representation. 1559// 1560// API parameter values that are decorated as "sensitive" in the API will not 1561// be included in the string output. The member name will be present, but the 1562// value will be replaced with "sensitive". 1563func (s ConflictException) String() string { 1564 return awsutil.Prettify(s) 1565} 1566 1567// GoString returns the string representation. 1568// 1569// API parameter values that are decorated as "sensitive" in the API will not 1570// be included in the string output. The member name will be present, but the 1571// value will be replaced with "sensitive". 1572func (s ConflictException) GoString() string { 1573 return s.String() 1574} 1575 1576func newErrorConflictException(v protocol.ResponseMetadata) error { 1577 return &ConflictException{ 1578 RespMetadata: v, 1579 } 1580} 1581 1582// Code returns the exception type name. 1583func (s *ConflictException) Code() string { 1584 return "ConflictException" 1585} 1586 1587// Message returns the exception's message. 1588func (s *ConflictException) Message() string { 1589 if s.Message_ != nil { 1590 return *s.Message_ 1591 } 1592 return "" 1593} 1594 1595// OrigErr always returns nil, satisfies awserr.Error interface. 1596func (s *ConflictException) OrigErr() error { 1597 return nil 1598} 1599 1600func (s *ConflictException) Error() string { 1601 return fmt.Sprintf("%s: %s", s.Code(), s.Message()) 1602} 1603 1604// Status code returns the HTTP status code for the request's response error. 1605func (s *ConflictException) StatusCode() int { 1606 return s.RespMetadata.StatusCode 1607} 1608 1609// RequestID returns the service's response RequestID for request. 1610func (s *ConflictException) RequestID() string { 1611 return s.RespMetadata.RequestID 1612} 1613 1614// Specifies an action for an experiment template. 1615type CreateExperimentTemplateActionInput struct { 1616 _ struct{} `type:"structure"` 1617 1618 // The ID of the action. 1619 // 1620 // ActionId is a required field 1621 ActionId *string `locationName:"actionId" type:"string" required:"true"` 1622 1623 // A description for the action. 1624 Description *string `locationName:"description" type:"string"` 1625 1626 // The parameters for the action, if applicable. 1627 Parameters map[string]*string `locationName:"parameters" type:"map"` 1628 1629 // The name of the action that must be completed before the current action starts. 1630 // Omit this parameter to run the action at the start of the experiment. 1631 StartAfter []*string `locationName:"startAfter" type:"list"` 1632 1633 // The targets for the action. 1634 Targets map[string]*string `locationName:"targets" type:"map"` 1635} 1636 1637// String returns the string representation. 1638// 1639// API parameter values that are decorated as "sensitive" in the API will not 1640// be included in the string output. The member name will be present, but the 1641// value will be replaced with "sensitive". 1642func (s CreateExperimentTemplateActionInput) String() string { 1643 return awsutil.Prettify(s) 1644} 1645 1646// GoString returns the string representation. 1647// 1648// API parameter values that are decorated as "sensitive" in the API will not 1649// be included in the string output. The member name will be present, but the 1650// value will be replaced with "sensitive". 1651func (s CreateExperimentTemplateActionInput) GoString() string { 1652 return s.String() 1653} 1654 1655// Validate inspects the fields of the type to determine if they are valid. 1656func (s *CreateExperimentTemplateActionInput) Validate() error { 1657 invalidParams := request.ErrInvalidParams{Context: "CreateExperimentTemplateActionInput"} 1658 if s.ActionId == nil { 1659 invalidParams.Add(request.NewErrParamRequired("ActionId")) 1660 } 1661 1662 if invalidParams.Len() > 0 { 1663 return invalidParams 1664 } 1665 return nil 1666} 1667 1668// SetActionId sets the ActionId field's value. 1669func (s *CreateExperimentTemplateActionInput) SetActionId(v string) *CreateExperimentTemplateActionInput { 1670 s.ActionId = &v 1671 return s 1672} 1673 1674// SetDescription sets the Description field's value. 1675func (s *CreateExperimentTemplateActionInput) SetDescription(v string) *CreateExperimentTemplateActionInput { 1676 s.Description = &v 1677 return s 1678} 1679 1680// SetParameters sets the Parameters field's value. 1681func (s *CreateExperimentTemplateActionInput) SetParameters(v map[string]*string) *CreateExperimentTemplateActionInput { 1682 s.Parameters = v 1683 return s 1684} 1685 1686// SetStartAfter sets the StartAfter field's value. 1687func (s *CreateExperimentTemplateActionInput) SetStartAfter(v []*string) *CreateExperimentTemplateActionInput { 1688 s.StartAfter = v 1689 return s 1690} 1691 1692// SetTargets sets the Targets field's value. 1693func (s *CreateExperimentTemplateActionInput) SetTargets(v map[string]*string) *CreateExperimentTemplateActionInput { 1694 s.Targets = v 1695 return s 1696} 1697 1698type CreateExperimentTemplateInput struct { 1699 _ struct{} `type:"structure"` 1700 1701 // The actions for the experiment. 1702 // 1703 // Actions is a required field 1704 Actions map[string]*CreateExperimentTemplateActionInput `locationName:"actions" type:"map" required:"true"` 1705 1706 // Unique, case-sensitive identifier that you provide to ensure the idempotency 1707 // of the request. 1708 ClientToken *string `locationName:"clientToken" min:"1" type:"string" idempotencyToken:"true"` 1709 1710 // A description for the experiment template. Can contain up to 64 letters (A-Z 1711 // and a-z). 1712 // 1713 // Description is a required field 1714 Description *string `locationName:"description" type:"string" required:"true"` 1715 1716 // The Amazon Resource Name (ARN) of an IAM role that grants the AWS FIS service 1717 // permission to perform service actions on your behalf. 1718 // 1719 // RoleArn is a required field 1720 RoleArn *string `locationName:"roleArn" min:"20" type:"string" required:"true"` 1721 1722 // The stop conditions. 1723 // 1724 // StopConditions is a required field 1725 StopConditions []*CreateExperimentTemplateStopConditionInput `locationName:"stopConditions" type:"list" required:"true"` 1726 1727 // The tags to apply to the experiment template. 1728 Tags map[string]*string `locationName:"tags" type:"map"` 1729 1730 // The targets for the experiment. 1731 Targets map[string]*CreateExperimentTemplateTargetInput `locationName:"targets" type:"map"` 1732} 1733 1734// String returns the string representation. 1735// 1736// API parameter values that are decorated as "sensitive" in the API will not 1737// be included in the string output. The member name will be present, but the 1738// value will be replaced with "sensitive". 1739func (s CreateExperimentTemplateInput) String() string { 1740 return awsutil.Prettify(s) 1741} 1742 1743// GoString returns the string representation. 1744// 1745// API parameter values that are decorated as "sensitive" in the API will not 1746// be included in the string output. The member name will be present, but the 1747// value will be replaced with "sensitive". 1748func (s CreateExperimentTemplateInput) GoString() string { 1749 return s.String() 1750} 1751 1752// Validate inspects the fields of the type to determine if they are valid. 1753func (s *CreateExperimentTemplateInput) Validate() error { 1754 invalidParams := request.ErrInvalidParams{Context: "CreateExperimentTemplateInput"} 1755 if s.Actions == nil { 1756 invalidParams.Add(request.NewErrParamRequired("Actions")) 1757 } 1758 if s.ClientToken != nil && len(*s.ClientToken) < 1 { 1759 invalidParams.Add(request.NewErrParamMinLen("ClientToken", 1)) 1760 } 1761 if s.Description == nil { 1762 invalidParams.Add(request.NewErrParamRequired("Description")) 1763 } 1764 if s.RoleArn == nil { 1765 invalidParams.Add(request.NewErrParamRequired("RoleArn")) 1766 } 1767 if s.RoleArn != nil && len(*s.RoleArn) < 20 { 1768 invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20)) 1769 } 1770 if s.StopConditions == nil { 1771 invalidParams.Add(request.NewErrParamRequired("StopConditions")) 1772 } 1773 if s.Actions != nil { 1774 for i, v := range s.Actions { 1775 if v == nil { 1776 continue 1777 } 1778 if err := v.Validate(); err != nil { 1779 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Actions", i), err.(request.ErrInvalidParams)) 1780 } 1781 } 1782 } 1783 if s.StopConditions != nil { 1784 for i, v := range s.StopConditions { 1785 if v == nil { 1786 continue 1787 } 1788 if err := v.Validate(); err != nil { 1789 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "StopConditions", i), err.(request.ErrInvalidParams)) 1790 } 1791 } 1792 } 1793 if s.Targets != nil { 1794 for i, v := range s.Targets { 1795 if v == nil { 1796 continue 1797 } 1798 if err := v.Validate(); err != nil { 1799 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Targets", i), err.(request.ErrInvalidParams)) 1800 } 1801 } 1802 } 1803 1804 if invalidParams.Len() > 0 { 1805 return invalidParams 1806 } 1807 return nil 1808} 1809 1810// SetActions sets the Actions field's value. 1811func (s *CreateExperimentTemplateInput) SetActions(v map[string]*CreateExperimentTemplateActionInput) *CreateExperimentTemplateInput { 1812 s.Actions = v 1813 return s 1814} 1815 1816// SetClientToken sets the ClientToken field's value. 1817func (s *CreateExperimentTemplateInput) SetClientToken(v string) *CreateExperimentTemplateInput { 1818 s.ClientToken = &v 1819 return s 1820} 1821 1822// SetDescription sets the Description field's value. 1823func (s *CreateExperimentTemplateInput) SetDescription(v string) *CreateExperimentTemplateInput { 1824 s.Description = &v 1825 return s 1826} 1827 1828// SetRoleArn sets the RoleArn field's value. 1829func (s *CreateExperimentTemplateInput) SetRoleArn(v string) *CreateExperimentTemplateInput { 1830 s.RoleArn = &v 1831 return s 1832} 1833 1834// SetStopConditions sets the StopConditions field's value. 1835func (s *CreateExperimentTemplateInput) SetStopConditions(v []*CreateExperimentTemplateStopConditionInput) *CreateExperimentTemplateInput { 1836 s.StopConditions = v 1837 return s 1838} 1839 1840// SetTags sets the Tags field's value. 1841func (s *CreateExperimentTemplateInput) SetTags(v map[string]*string) *CreateExperimentTemplateInput { 1842 s.Tags = v 1843 return s 1844} 1845 1846// SetTargets sets the Targets field's value. 1847func (s *CreateExperimentTemplateInput) SetTargets(v map[string]*CreateExperimentTemplateTargetInput) *CreateExperimentTemplateInput { 1848 s.Targets = v 1849 return s 1850} 1851 1852type CreateExperimentTemplateOutput struct { 1853 _ struct{} `type:"structure"` 1854 1855 // Information about the experiment template. 1856 ExperimentTemplate *ExperimentTemplate `locationName:"experimentTemplate" type:"structure"` 1857} 1858 1859// String returns the string representation. 1860// 1861// API parameter values that are decorated as "sensitive" in the API will not 1862// be included in the string output. The member name will be present, but the 1863// value will be replaced with "sensitive". 1864func (s CreateExperimentTemplateOutput) String() string { 1865 return awsutil.Prettify(s) 1866} 1867 1868// GoString returns the string representation. 1869// 1870// API parameter values that are decorated as "sensitive" in the API will not 1871// be included in the string output. The member name will be present, but the 1872// value will be replaced with "sensitive". 1873func (s CreateExperimentTemplateOutput) GoString() string { 1874 return s.String() 1875} 1876 1877// SetExperimentTemplate sets the ExperimentTemplate field's value. 1878func (s *CreateExperimentTemplateOutput) SetExperimentTemplate(v *ExperimentTemplate) *CreateExperimentTemplateOutput { 1879 s.ExperimentTemplate = v 1880 return s 1881} 1882 1883// Specifies a stop condition for an experiment template. 1884type CreateExperimentTemplateStopConditionInput struct { 1885 _ struct{} `type:"structure"` 1886 1887 // The source for the stop condition. Specify aws:cloudwatch:alarm if the stop 1888 // condition is defined by a CloudWatch alarm. Specify none if there is no stop 1889 // condition. 1890 // 1891 // Source is a required field 1892 Source *string `locationName:"source" type:"string" required:"true"` 1893 1894 // The Amazon Resource Name (ARN) of the CloudWatch alarm. This is required 1895 // if the source is a CloudWatch alarm. 1896 Value *string `locationName:"value" min:"20" type:"string"` 1897} 1898 1899// String returns the string representation. 1900// 1901// API parameter values that are decorated as "sensitive" in the API will not 1902// be included in the string output. The member name will be present, but the 1903// value will be replaced with "sensitive". 1904func (s CreateExperimentTemplateStopConditionInput) String() string { 1905 return awsutil.Prettify(s) 1906} 1907 1908// GoString returns the string representation. 1909// 1910// API parameter values that are decorated as "sensitive" in the API will not 1911// be included in the string output. The member name will be present, but the 1912// value will be replaced with "sensitive". 1913func (s CreateExperimentTemplateStopConditionInput) GoString() string { 1914 return s.String() 1915} 1916 1917// Validate inspects the fields of the type to determine if they are valid. 1918func (s *CreateExperimentTemplateStopConditionInput) Validate() error { 1919 invalidParams := request.ErrInvalidParams{Context: "CreateExperimentTemplateStopConditionInput"} 1920 if s.Source == nil { 1921 invalidParams.Add(request.NewErrParamRequired("Source")) 1922 } 1923 if s.Value != nil && len(*s.Value) < 20 { 1924 invalidParams.Add(request.NewErrParamMinLen("Value", 20)) 1925 } 1926 1927 if invalidParams.Len() > 0 { 1928 return invalidParams 1929 } 1930 return nil 1931} 1932 1933// SetSource sets the Source field's value. 1934func (s *CreateExperimentTemplateStopConditionInput) SetSource(v string) *CreateExperimentTemplateStopConditionInput { 1935 s.Source = &v 1936 return s 1937} 1938 1939// SetValue sets the Value field's value. 1940func (s *CreateExperimentTemplateStopConditionInput) SetValue(v string) *CreateExperimentTemplateStopConditionInput { 1941 s.Value = &v 1942 return s 1943} 1944 1945// Specifies a target for an experiment. You must specify at least one Amazon 1946// Resource Name (ARN) or at least one resource tag. You cannot specify both 1947// ARNs and tags. 1948type CreateExperimentTemplateTargetInput struct { 1949 _ struct{} `type:"structure"` 1950 1951 // The filters to apply to identify target resources using specific attributes. 1952 Filters []*ExperimentTemplateTargetInputFilter `locationName:"filters" type:"list"` 1953 1954 // The Amazon Resource Names (ARNs) of the resources. 1955 ResourceArns []*string `locationName:"resourceArns" type:"list"` 1956 1957 // The tags for the target resources. 1958 ResourceTags map[string]*string `locationName:"resourceTags" type:"map"` 1959 1960 // The AWS resource type. The resource type must be supported for the specified 1961 // action. 1962 // 1963 // ResourceType is a required field 1964 ResourceType *string `locationName:"resourceType" type:"string" required:"true"` 1965 1966 // Scopes the identified resources to a specific count of the resources at random, 1967 // or a percentage of the resources. All identified resources are included in 1968 // the target. 1969 // 1970 // * ALL - Run the action on all identified targets. This is the default. 1971 // 1972 // * COUNT(n) - Run the action on the specified number of targets, chosen 1973 // from the identified targets at random. For example, COUNT(1) selects one 1974 // of the targets. 1975 // 1976 // * PERCENT(n) - Run the action on the specified percentage of targets, 1977 // chosen from the identified targets at random. For example, PERCENT(25) 1978 // selects 25% of the targets. 1979 // 1980 // SelectionMode is a required field 1981 SelectionMode *string `locationName:"selectionMode" type:"string" required:"true"` 1982} 1983 1984// String returns the string representation. 1985// 1986// API parameter values that are decorated as "sensitive" in the API will not 1987// be included in the string output. The member name will be present, but the 1988// value will be replaced with "sensitive". 1989func (s CreateExperimentTemplateTargetInput) String() string { 1990 return awsutil.Prettify(s) 1991} 1992 1993// GoString returns the string representation. 1994// 1995// API parameter values that are decorated as "sensitive" in the API will not 1996// be included in the string output. The member name will be present, but the 1997// value will be replaced with "sensitive". 1998func (s CreateExperimentTemplateTargetInput) GoString() string { 1999 return s.String() 2000} 2001 2002// Validate inspects the fields of the type to determine if they are valid. 2003func (s *CreateExperimentTemplateTargetInput) Validate() error { 2004 invalidParams := request.ErrInvalidParams{Context: "CreateExperimentTemplateTargetInput"} 2005 if s.ResourceType == nil { 2006 invalidParams.Add(request.NewErrParamRequired("ResourceType")) 2007 } 2008 if s.SelectionMode == nil { 2009 invalidParams.Add(request.NewErrParamRequired("SelectionMode")) 2010 } 2011 if s.Filters != nil { 2012 for i, v := range s.Filters { 2013 if v == nil { 2014 continue 2015 } 2016 if err := v.Validate(); err != nil { 2017 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams)) 2018 } 2019 } 2020 } 2021 2022 if invalidParams.Len() > 0 { 2023 return invalidParams 2024 } 2025 return nil 2026} 2027 2028// SetFilters sets the Filters field's value. 2029func (s *CreateExperimentTemplateTargetInput) SetFilters(v []*ExperimentTemplateTargetInputFilter) *CreateExperimentTemplateTargetInput { 2030 s.Filters = v 2031 return s 2032} 2033 2034// SetResourceArns sets the ResourceArns field's value. 2035func (s *CreateExperimentTemplateTargetInput) SetResourceArns(v []*string) *CreateExperimentTemplateTargetInput { 2036 s.ResourceArns = v 2037 return s 2038} 2039 2040// SetResourceTags sets the ResourceTags field's value. 2041func (s *CreateExperimentTemplateTargetInput) SetResourceTags(v map[string]*string) *CreateExperimentTemplateTargetInput { 2042 s.ResourceTags = v 2043 return s 2044} 2045 2046// SetResourceType sets the ResourceType field's value. 2047func (s *CreateExperimentTemplateTargetInput) SetResourceType(v string) *CreateExperimentTemplateTargetInput { 2048 s.ResourceType = &v 2049 return s 2050} 2051 2052// SetSelectionMode sets the SelectionMode field's value. 2053func (s *CreateExperimentTemplateTargetInput) SetSelectionMode(v string) *CreateExperimentTemplateTargetInput { 2054 s.SelectionMode = &v 2055 return s 2056} 2057 2058type DeleteExperimentTemplateInput struct { 2059 _ struct{} `type:"structure" nopayload:"true"` 2060 2061 // The ID of the experiment template. 2062 // 2063 // Id is a required field 2064 Id *string `location:"uri" locationName:"id" type:"string" required:"true"` 2065} 2066 2067// String returns the string representation. 2068// 2069// API parameter values that are decorated as "sensitive" in the API will not 2070// be included in the string output. The member name will be present, but the 2071// value will be replaced with "sensitive". 2072func (s DeleteExperimentTemplateInput) String() string { 2073 return awsutil.Prettify(s) 2074} 2075 2076// GoString returns the string representation. 2077// 2078// API parameter values that are decorated as "sensitive" in the API will not 2079// be included in the string output. The member name will be present, but the 2080// value will be replaced with "sensitive". 2081func (s DeleteExperimentTemplateInput) GoString() string { 2082 return s.String() 2083} 2084 2085// Validate inspects the fields of the type to determine if they are valid. 2086func (s *DeleteExperimentTemplateInput) Validate() error { 2087 invalidParams := request.ErrInvalidParams{Context: "DeleteExperimentTemplateInput"} 2088 if s.Id == nil { 2089 invalidParams.Add(request.NewErrParamRequired("Id")) 2090 } 2091 if s.Id != nil && len(*s.Id) < 1 { 2092 invalidParams.Add(request.NewErrParamMinLen("Id", 1)) 2093 } 2094 2095 if invalidParams.Len() > 0 { 2096 return invalidParams 2097 } 2098 return nil 2099} 2100 2101// SetId sets the Id field's value. 2102func (s *DeleteExperimentTemplateInput) SetId(v string) *DeleteExperimentTemplateInput { 2103 s.Id = &v 2104 return s 2105} 2106 2107type DeleteExperimentTemplateOutput struct { 2108 _ struct{} `type:"structure"` 2109 2110 // Information about the experiment template. 2111 ExperimentTemplate *ExperimentTemplate `locationName:"experimentTemplate" type:"structure"` 2112} 2113 2114// String returns the string representation. 2115// 2116// API parameter values that are decorated as "sensitive" in the API will not 2117// be included in the string output. The member name will be present, but the 2118// value will be replaced with "sensitive". 2119func (s DeleteExperimentTemplateOutput) String() string { 2120 return awsutil.Prettify(s) 2121} 2122 2123// GoString returns the string representation. 2124// 2125// API parameter values that are decorated as "sensitive" in the API will not 2126// be included in the string output. The member name will be present, but the 2127// value will be replaced with "sensitive". 2128func (s DeleteExperimentTemplateOutput) GoString() string { 2129 return s.String() 2130} 2131 2132// SetExperimentTemplate sets the ExperimentTemplate field's value. 2133func (s *DeleteExperimentTemplateOutput) SetExperimentTemplate(v *ExperimentTemplate) *DeleteExperimentTemplateOutput { 2134 s.ExperimentTemplate = v 2135 return s 2136} 2137 2138// Describes an experiment. 2139type Experiment struct { 2140 _ struct{} `type:"structure"` 2141 2142 // The actions for the experiment. 2143 Actions map[string]*ExperimentAction `locationName:"actions" type:"map"` 2144 2145 // The time the experiment was created. 2146 CreationTime *time.Time `locationName:"creationTime" type:"timestamp"` 2147 2148 // The time that the experiment ended. 2149 EndTime *time.Time `locationName:"endTime" type:"timestamp"` 2150 2151 // The ID of the experiment template. 2152 ExperimentTemplateId *string `locationName:"experimentTemplateId" type:"string"` 2153 2154 // The ID of the experiment. 2155 Id *string `locationName:"id" type:"string"` 2156 2157 // The Amazon Resource Name (ARN) of an IAM role that grants the AWS FIS service 2158 // permission to perform service actions on your behalf. 2159 RoleArn *string `locationName:"roleArn" min:"20" type:"string"` 2160 2161 // The time that the experiment was started. 2162 StartTime *time.Time `locationName:"startTime" type:"timestamp"` 2163 2164 // The state of the experiment. 2165 State *ExperimentState `locationName:"state" type:"structure"` 2166 2167 // The stop conditions for the experiment. 2168 StopConditions []*ExperimentStopCondition `locationName:"stopConditions" type:"list"` 2169 2170 // The tags for the experiment. 2171 Tags map[string]*string `locationName:"tags" type:"map"` 2172 2173 // The targets for the experiment. 2174 Targets map[string]*ExperimentTarget `locationName:"targets" type:"map"` 2175} 2176 2177// String returns the string representation. 2178// 2179// API parameter values that are decorated as "sensitive" in the API will not 2180// be included in the string output. The member name will be present, but the 2181// value will be replaced with "sensitive". 2182func (s Experiment) String() string { 2183 return awsutil.Prettify(s) 2184} 2185 2186// GoString returns the string representation. 2187// 2188// API parameter values that are decorated as "sensitive" in the API will not 2189// be included in the string output. The member name will be present, but the 2190// value will be replaced with "sensitive". 2191func (s Experiment) GoString() string { 2192 return s.String() 2193} 2194 2195// SetActions sets the Actions field's value. 2196func (s *Experiment) SetActions(v map[string]*ExperimentAction) *Experiment { 2197 s.Actions = v 2198 return s 2199} 2200 2201// SetCreationTime sets the CreationTime field's value. 2202func (s *Experiment) SetCreationTime(v time.Time) *Experiment { 2203 s.CreationTime = &v 2204 return s 2205} 2206 2207// SetEndTime sets the EndTime field's value. 2208func (s *Experiment) SetEndTime(v time.Time) *Experiment { 2209 s.EndTime = &v 2210 return s 2211} 2212 2213// SetExperimentTemplateId sets the ExperimentTemplateId field's value. 2214func (s *Experiment) SetExperimentTemplateId(v string) *Experiment { 2215 s.ExperimentTemplateId = &v 2216 return s 2217} 2218 2219// SetId sets the Id field's value. 2220func (s *Experiment) SetId(v string) *Experiment { 2221 s.Id = &v 2222 return s 2223} 2224 2225// SetRoleArn sets the RoleArn field's value. 2226func (s *Experiment) SetRoleArn(v string) *Experiment { 2227 s.RoleArn = &v 2228 return s 2229} 2230 2231// SetStartTime sets the StartTime field's value. 2232func (s *Experiment) SetStartTime(v time.Time) *Experiment { 2233 s.StartTime = &v 2234 return s 2235} 2236 2237// SetState sets the State field's value. 2238func (s *Experiment) SetState(v *ExperimentState) *Experiment { 2239 s.State = v 2240 return s 2241} 2242 2243// SetStopConditions sets the StopConditions field's value. 2244func (s *Experiment) SetStopConditions(v []*ExperimentStopCondition) *Experiment { 2245 s.StopConditions = v 2246 return s 2247} 2248 2249// SetTags sets the Tags field's value. 2250func (s *Experiment) SetTags(v map[string]*string) *Experiment { 2251 s.Tags = v 2252 return s 2253} 2254 2255// SetTargets sets the Targets field's value. 2256func (s *Experiment) SetTargets(v map[string]*ExperimentTarget) *Experiment { 2257 s.Targets = v 2258 return s 2259} 2260 2261// Describes the action for an experiment. 2262type ExperimentAction struct { 2263 _ struct{} `type:"structure"` 2264 2265 // The ID of the action. 2266 ActionId *string `locationName:"actionId" type:"string"` 2267 2268 // The description for the action. 2269 Description *string `locationName:"description" type:"string"` 2270 2271 // The parameters for the action. 2272 Parameters map[string]*string `locationName:"parameters" type:"map"` 2273 2274 // The name of the action that must be completed before this action starts. 2275 StartAfter []*string `locationName:"startAfter" type:"list"` 2276 2277 // The state of the action. 2278 State *ExperimentActionState `locationName:"state" type:"structure"` 2279 2280 // The targets for the action. 2281 Targets map[string]*string `locationName:"targets" type:"map"` 2282} 2283 2284// String returns the string representation. 2285// 2286// API parameter values that are decorated as "sensitive" in the API will not 2287// be included in the string output. The member name will be present, but the 2288// value will be replaced with "sensitive". 2289func (s ExperimentAction) String() string { 2290 return awsutil.Prettify(s) 2291} 2292 2293// GoString returns the string representation. 2294// 2295// API parameter values that are decorated as "sensitive" in the API will not 2296// be included in the string output. The member name will be present, but the 2297// value will be replaced with "sensitive". 2298func (s ExperimentAction) GoString() string { 2299 return s.String() 2300} 2301 2302// SetActionId sets the ActionId field's value. 2303func (s *ExperimentAction) SetActionId(v string) *ExperimentAction { 2304 s.ActionId = &v 2305 return s 2306} 2307 2308// SetDescription sets the Description field's value. 2309func (s *ExperimentAction) SetDescription(v string) *ExperimentAction { 2310 s.Description = &v 2311 return s 2312} 2313 2314// SetParameters sets the Parameters field's value. 2315func (s *ExperimentAction) SetParameters(v map[string]*string) *ExperimentAction { 2316 s.Parameters = v 2317 return s 2318} 2319 2320// SetStartAfter sets the StartAfter field's value. 2321func (s *ExperimentAction) SetStartAfter(v []*string) *ExperimentAction { 2322 s.StartAfter = v 2323 return s 2324} 2325 2326// SetState sets the State field's value. 2327func (s *ExperimentAction) SetState(v *ExperimentActionState) *ExperimentAction { 2328 s.State = v 2329 return s 2330} 2331 2332// SetTargets sets the Targets field's value. 2333func (s *ExperimentAction) SetTargets(v map[string]*string) *ExperimentAction { 2334 s.Targets = v 2335 return s 2336} 2337 2338// Describes the state of an action. 2339type ExperimentActionState struct { 2340 _ struct{} `type:"structure"` 2341 2342 // The reason for the state. 2343 Reason *string `locationName:"reason" type:"string"` 2344 2345 // The state of the action. 2346 Status *string `locationName:"status" type:"string" enum:"ExperimentActionStatus"` 2347} 2348 2349// String returns the string representation. 2350// 2351// API parameter values that are decorated as "sensitive" in the API will not 2352// be included in the string output. The member name will be present, but the 2353// value will be replaced with "sensitive". 2354func (s ExperimentActionState) String() string { 2355 return awsutil.Prettify(s) 2356} 2357 2358// GoString returns the string representation. 2359// 2360// API parameter values that are decorated as "sensitive" in the API will not 2361// be included in the string output. The member name will be present, but the 2362// value will be replaced with "sensitive". 2363func (s ExperimentActionState) GoString() string { 2364 return s.String() 2365} 2366 2367// SetReason sets the Reason field's value. 2368func (s *ExperimentActionState) SetReason(v string) *ExperimentActionState { 2369 s.Reason = &v 2370 return s 2371} 2372 2373// SetStatus sets the Status field's value. 2374func (s *ExperimentActionState) SetStatus(v string) *ExperimentActionState { 2375 s.Status = &v 2376 return s 2377} 2378 2379// Describes the state of an experiment. 2380type ExperimentState struct { 2381 _ struct{} `type:"structure"` 2382 2383 // The reason for the state. 2384 Reason *string `locationName:"reason" type:"string"` 2385 2386 // The state of the experiment. 2387 Status *string `locationName:"status" type:"string" enum:"ExperimentStatus"` 2388} 2389 2390// String returns the string representation. 2391// 2392// API parameter values that are decorated as "sensitive" in the API will not 2393// be included in the string output. The member name will be present, but the 2394// value will be replaced with "sensitive". 2395func (s ExperimentState) String() string { 2396 return awsutil.Prettify(s) 2397} 2398 2399// GoString returns the string representation. 2400// 2401// API parameter values that are decorated as "sensitive" in the API will not 2402// be included in the string output. The member name will be present, but the 2403// value will be replaced with "sensitive". 2404func (s ExperimentState) GoString() string { 2405 return s.String() 2406} 2407 2408// SetReason sets the Reason field's value. 2409func (s *ExperimentState) SetReason(v string) *ExperimentState { 2410 s.Reason = &v 2411 return s 2412} 2413 2414// SetStatus sets the Status field's value. 2415func (s *ExperimentState) SetStatus(v string) *ExperimentState { 2416 s.Status = &v 2417 return s 2418} 2419 2420// Describes the stop condition for an experiment. 2421type ExperimentStopCondition struct { 2422 _ struct{} `type:"structure"` 2423 2424 // The source for the stop condition. 2425 Source *string `locationName:"source" type:"string"` 2426 2427 // The Amazon Resource Name (ARN) of the CloudWatch alarm, if applicable. 2428 Value *string `locationName:"value" min:"20" type:"string"` 2429} 2430 2431// String returns the string representation. 2432// 2433// API parameter values that are decorated as "sensitive" in the API will not 2434// be included in the string output. The member name will be present, but the 2435// value will be replaced with "sensitive". 2436func (s ExperimentStopCondition) String() string { 2437 return awsutil.Prettify(s) 2438} 2439 2440// GoString returns the string representation. 2441// 2442// API parameter values that are decorated as "sensitive" in the API will not 2443// be included in the string output. The member name will be present, but the 2444// value will be replaced with "sensitive". 2445func (s ExperimentStopCondition) GoString() string { 2446 return s.String() 2447} 2448 2449// SetSource sets the Source field's value. 2450func (s *ExperimentStopCondition) SetSource(v string) *ExperimentStopCondition { 2451 s.Source = &v 2452 return s 2453} 2454 2455// SetValue sets the Value field's value. 2456func (s *ExperimentStopCondition) SetValue(v string) *ExperimentStopCondition { 2457 s.Value = &v 2458 return s 2459} 2460 2461// Provides a summary of an experiment. 2462type ExperimentSummary struct { 2463 _ struct{} `type:"structure"` 2464 2465 // The time that the experiment was created. 2466 CreationTime *time.Time `locationName:"creationTime" type:"timestamp"` 2467 2468 // The ID of the experiment template. 2469 ExperimentTemplateId *string `locationName:"experimentTemplateId" type:"string"` 2470 2471 // The ID of the experiment. 2472 Id *string `locationName:"id" type:"string"` 2473 2474 // The state of the experiment. 2475 State *ExperimentState `locationName:"state" type:"structure"` 2476 2477 // The tags for the experiment. 2478 Tags map[string]*string `locationName:"tags" type:"map"` 2479} 2480 2481// String returns the string representation. 2482// 2483// API parameter values that are decorated as "sensitive" in the API will not 2484// be included in the string output. The member name will be present, but the 2485// value will be replaced with "sensitive". 2486func (s ExperimentSummary) String() string { 2487 return awsutil.Prettify(s) 2488} 2489 2490// GoString returns the string representation. 2491// 2492// API parameter values that are decorated as "sensitive" in the API will not 2493// be included in the string output. The member name will be present, but the 2494// value will be replaced with "sensitive". 2495func (s ExperimentSummary) GoString() string { 2496 return s.String() 2497} 2498 2499// SetCreationTime sets the CreationTime field's value. 2500func (s *ExperimentSummary) SetCreationTime(v time.Time) *ExperimentSummary { 2501 s.CreationTime = &v 2502 return s 2503} 2504 2505// SetExperimentTemplateId sets the ExperimentTemplateId field's value. 2506func (s *ExperimentSummary) SetExperimentTemplateId(v string) *ExperimentSummary { 2507 s.ExperimentTemplateId = &v 2508 return s 2509} 2510 2511// SetId sets the Id field's value. 2512func (s *ExperimentSummary) SetId(v string) *ExperimentSummary { 2513 s.Id = &v 2514 return s 2515} 2516 2517// SetState sets the State field's value. 2518func (s *ExperimentSummary) SetState(v *ExperimentState) *ExperimentSummary { 2519 s.State = v 2520 return s 2521} 2522 2523// SetTags sets the Tags field's value. 2524func (s *ExperimentSummary) SetTags(v map[string]*string) *ExperimentSummary { 2525 s.Tags = v 2526 return s 2527} 2528 2529// Describes a target for an experiment. 2530type ExperimentTarget struct { 2531 _ struct{} `type:"structure"` 2532 2533 // The filters to apply to identify target resources using specific attributes. 2534 Filters []*ExperimentTargetFilter `locationName:"filters" type:"list"` 2535 2536 // The Amazon Resource Names (ARNs) of the resources. 2537 ResourceArns []*string `locationName:"resourceArns" type:"list"` 2538 2539 // The tags for the target resources. 2540 ResourceTags map[string]*string `locationName:"resourceTags" type:"map"` 2541 2542 // The resource type. 2543 ResourceType *string `locationName:"resourceType" type:"string"` 2544 2545 // Scopes the identified resources to a specific count or percentage. 2546 SelectionMode *string `locationName:"selectionMode" type:"string"` 2547} 2548 2549// String returns the string representation. 2550// 2551// API parameter values that are decorated as "sensitive" in the API will not 2552// be included in the string output. The member name will be present, but the 2553// value will be replaced with "sensitive". 2554func (s ExperimentTarget) String() string { 2555 return awsutil.Prettify(s) 2556} 2557 2558// GoString returns the string representation. 2559// 2560// API parameter values that are decorated as "sensitive" in the API will not 2561// be included in the string output. The member name will be present, but the 2562// value will be replaced with "sensitive". 2563func (s ExperimentTarget) GoString() string { 2564 return s.String() 2565} 2566 2567// SetFilters sets the Filters field's value. 2568func (s *ExperimentTarget) SetFilters(v []*ExperimentTargetFilter) *ExperimentTarget { 2569 s.Filters = v 2570 return s 2571} 2572 2573// SetResourceArns sets the ResourceArns field's value. 2574func (s *ExperimentTarget) SetResourceArns(v []*string) *ExperimentTarget { 2575 s.ResourceArns = v 2576 return s 2577} 2578 2579// SetResourceTags sets the ResourceTags field's value. 2580func (s *ExperimentTarget) SetResourceTags(v map[string]*string) *ExperimentTarget { 2581 s.ResourceTags = v 2582 return s 2583} 2584 2585// SetResourceType sets the ResourceType field's value. 2586func (s *ExperimentTarget) SetResourceType(v string) *ExperimentTarget { 2587 s.ResourceType = &v 2588 return s 2589} 2590 2591// SetSelectionMode sets the SelectionMode field's value. 2592func (s *ExperimentTarget) SetSelectionMode(v string) *ExperimentTarget { 2593 s.SelectionMode = &v 2594 return s 2595} 2596 2597// Describes a filter used for the target resources in an experiment. 2598type ExperimentTargetFilter struct { 2599 _ struct{} `type:"structure"` 2600 2601 // The attribute path for the filter. 2602 Path *string `locationName:"path" type:"string"` 2603 2604 // The attribute values for the filter. 2605 Values []*string `locationName:"values" type:"list"` 2606} 2607 2608// String returns the string representation. 2609// 2610// API parameter values that are decorated as "sensitive" in the API will not 2611// be included in the string output. The member name will be present, but the 2612// value will be replaced with "sensitive". 2613func (s ExperimentTargetFilter) String() string { 2614 return awsutil.Prettify(s) 2615} 2616 2617// GoString returns the string representation. 2618// 2619// API parameter values that are decorated as "sensitive" in the API will not 2620// be included in the string output. The member name will be present, but the 2621// value will be replaced with "sensitive". 2622func (s ExperimentTargetFilter) GoString() string { 2623 return s.String() 2624} 2625 2626// SetPath sets the Path field's value. 2627func (s *ExperimentTargetFilter) SetPath(v string) *ExperimentTargetFilter { 2628 s.Path = &v 2629 return s 2630} 2631 2632// SetValues sets the Values field's value. 2633func (s *ExperimentTargetFilter) SetValues(v []*string) *ExperimentTargetFilter { 2634 s.Values = v 2635 return s 2636} 2637 2638// Describes an experiment template. 2639type ExperimentTemplate struct { 2640 _ struct{} `type:"structure"` 2641 2642 // The actions for the experiment. 2643 Actions map[string]*ExperimentTemplateAction `locationName:"actions" type:"map"` 2644 2645 // The time the experiment template was created. 2646 CreationTime *time.Time `locationName:"creationTime" type:"timestamp"` 2647 2648 // The description for the experiment template. 2649 Description *string `locationName:"description" type:"string"` 2650 2651 // The ID of the experiment template. 2652 Id *string `locationName:"id" type:"string"` 2653 2654 // The time the experiment template was last updated. 2655 LastUpdateTime *time.Time `locationName:"lastUpdateTime" type:"timestamp"` 2656 2657 // The Amazon Resource Name (ARN) of an IAM role. 2658 RoleArn *string `locationName:"roleArn" min:"20" type:"string"` 2659 2660 // The stop conditions for the experiment. 2661 StopConditions []*ExperimentTemplateStopCondition `locationName:"stopConditions" type:"list"` 2662 2663 // The tags for the experiment template. 2664 Tags map[string]*string `locationName:"tags" type:"map"` 2665 2666 // The targets for the experiment. 2667 Targets map[string]*ExperimentTemplateTarget `locationName:"targets" type:"map"` 2668} 2669 2670// String returns the string representation. 2671// 2672// API parameter values that are decorated as "sensitive" in the API will not 2673// be included in the string output. The member name will be present, but the 2674// value will be replaced with "sensitive". 2675func (s ExperimentTemplate) String() string { 2676 return awsutil.Prettify(s) 2677} 2678 2679// GoString returns the string representation. 2680// 2681// API parameter values that are decorated as "sensitive" in the API will not 2682// be included in the string output. The member name will be present, but the 2683// value will be replaced with "sensitive". 2684func (s ExperimentTemplate) GoString() string { 2685 return s.String() 2686} 2687 2688// SetActions sets the Actions field's value. 2689func (s *ExperimentTemplate) SetActions(v map[string]*ExperimentTemplateAction) *ExperimentTemplate { 2690 s.Actions = v 2691 return s 2692} 2693 2694// SetCreationTime sets the CreationTime field's value. 2695func (s *ExperimentTemplate) SetCreationTime(v time.Time) *ExperimentTemplate { 2696 s.CreationTime = &v 2697 return s 2698} 2699 2700// SetDescription sets the Description field's value. 2701func (s *ExperimentTemplate) SetDescription(v string) *ExperimentTemplate { 2702 s.Description = &v 2703 return s 2704} 2705 2706// SetId sets the Id field's value. 2707func (s *ExperimentTemplate) SetId(v string) *ExperimentTemplate { 2708 s.Id = &v 2709 return s 2710} 2711 2712// SetLastUpdateTime sets the LastUpdateTime field's value. 2713func (s *ExperimentTemplate) SetLastUpdateTime(v time.Time) *ExperimentTemplate { 2714 s.LastUpdateTime = &v 2715 return s 2716} 2717 2718// SetRoleArn sets the RoleArn field's value. 2719func (s *ExperimentTemplate) SetRoleArn(v string) *ExperimentTemplate { 2720 s.RoleArn = &v 2721 return s 2722} 2723 2724// SetStopConditions sets the StopConditions field's value. 2725func (s *ExperimentTemplate) SetStopConditions(v []*ExperimentTemplateStopCondition) *ExperimentTemplate { 2726 s.StopConditions = v 2727 return s 2728} 2729 2730// SetTags sets the Tags field's value. 2731func (s *ExperimentTemplate) SetTags(v map[string]*string) *ExperimentTemplate { 2732 s.Tags = v 2733 return s 2734} 2735 2736// SetTargets sets the Targets field's value. 2737func (s *ExperimentTemplate) SetTargets(v map[string]*ExperimentTemplateTarget) *ExperimentTemplate { 2738 s.Targets = v 2739 return s 2740} 2741 2742// Describes an action for an experiment template. 2743type ExperimentTemplateAction struct { 2744 _ struct{} `type:"structure"` 2745 2746 // The ID of the action. 2747 ActionId *string `locationName:"actionId" type:"string"` 2748 2749 // A description for the action. 2750 Description *string `locationName:"description" type:"string"` 2751 2752 // The parameters for the action. 2753 Parameters map[string]*string `locationName:"parameters" type:"map"` 2754 2755 // The name of the action that must be completed before the current action starts. 2756 StartAfter []*string `locationName:"startAfter" type:"list"` 2757 2758 // The targets for the action. 2759 Targets map[string]*string `locationName:"targets" type:"map"` 2760} 2761 2762// String returns the string representation. 2763// 2764// API parameter values that are decorated as "sensitive" in the API will not 2765// be included in the string output. The member name will be present, but the 2766// value will be replaced with "sensitive". 2767func (s ExperimentTemplateAction) String() string { 2768 return awsutil.Prettify(s) 2769} 2770 2771// GoString returns the string representation. 2772// 2773// API parameter values that are decorated as "sensitive" in the API will not 2774// be included in the string output. The member name will be present, but the 2775// value will be replaced with "sensitive". 2776func (s ExperimentTemplateAction) GoString() string { 2777 return s.String() 2778} 2779 2780// SetActionId sets the ActionId field's value. 2781func (s *ExperimentTemplateAction) SetActionId(v string) *ExperimentTemplateAction { 2782 s.ActionId = &v 2783 return s 2784} 2785 2786// SetDescription sets the Description field's value. 2787func (s *ExperimentTemplateAction) SetDescription(v string) *ExperimentTemplateAction { 2788 s.Description = &v 2789 return s 2790} 2791 2792// SetParameters sets the Parameters field's value. 2793func (s *ExperimentTemplateAction) SetParameters(v map[string]*string) *ExperimentTemplateAction { 2794 s.Parameters = v 2795 return s 2796} 2797 2798// SetStartAfter sets the StartAfter field's value. 2799func (s *ExperimentTemplateAction) SetStartAfter(v []*string) *ExperimentTemplateAction { 2800 s.StartAfter = v 2801 return s 2802} 2803 2804// SetTargets sets the Targets field's value. 2805func (s *ExperimentTemplateAction) SetTargets(v map[string]*string) *ExperimentTemplateAction { 2806 s.Targets = v 2807 return s 2808} 2809 2810// Describes a stop condition for an experiment template. 2811type ExperimentTemplateStopCondition struct { 2812 _ struct{} `type:"structure"` 2813 2814 // The source for the stop condition. 2815 Source *string `locationName:"source" type:"string"` 2816 2817 // The Amazon Resource Name (ARN) of the CloudWatch alarm, if applicable. 2818 Value *string `locationName:"value" min:"20" type:"string"` 2819} 2820 2821// String returns the string representation. 2822// 2823// API parameter values that are decorated as "sensitive" in the API will not 2824// be included in the string output. The member name will be present, but the 2825// value will be replaced with "sensitive". 2826func (s ExperimentTemplateStopCondition) String() string { 2827 return awsutil.Prettify(s) 2828} 2829 2830// GoString returns the string representation. 2831// 2832// API parameter values that are decorated as "sensitive" in the API will not 2833// be included in the string output. The member name will be present, but the 2834// value will be replaced with "sensitive". 2835func (s ExperimentTemplateStopCondition) GoString() string { 2836 return s.String() 2837} 2838 2839// SetSource sets the Source field's value. 2840func (s *ExperimentTemplateStopCondition) SetSource(v string) *ExperimentTemplateStopCondition { 2841 s.Source = &v 2842 return s 2843} 2844 2845// SetValue sets the Value field's value. 2846func (s *ExperimentTemplateStopCondition) SetValue(v string) *ExperimentTemplateStopCondition { 2847 s.Value = &v 2848 return s 2849} 2850 2851// Provides a summary of an experiment template. 2852type ExperimentTemplateSummary struct { 2853 _ struct{} `type:"structure"` 2854 2855 // The time that the experiment template was created. 2856 CreationTime *time.Time `locationName:"creationTime" type:"timestamp"` 2857 2858 // The description of the experiment template. 2859 Description *string `locationName:"description" type:"string"` 2860 2861 // The ID of the experiment template. 2862 Id *string `locationName:"id" type:"string"` 2863 2864 // The time that the experiment template was last updated. 2865 LastUpdateTime *time.Time `locationName:"lastUpdateTime" type:"timestamp"` 2866 2867 // The tags for the experiment template. 2868 Tags map[string]*string `locationName:"tags" type:"map"` 2869} 2870 2871// String returns the string representation. 2872// 2873// API parameter values that are decorated as "sensitive" in the API will not 2874// be included in the string output. The member name will be present, but the 2875// value will be replaced with "sensitive". 2876func (s ExperimentTemplateSummary) String() string { 2877 return awsutil.Prettify(s) 2878} 2879 2880// GoString returns the string representation. 2881// 2882// API parameter values that are decorated as "sensitive" in the API will not 2883// be included in the string output. The member name will be present, but the 2884// value will be replaced with "sensitive". 2885func (s ExperimentTemplateSummary) GoString() string { 2886 return s.String() 2887} 2888 2889// SetCreationTime sets the CreationTime field's value. 2890func (s *ExperimentTemplateSummary) SetCreationTime(v time.Time) *ExperimentTemplateSummary { 2891 s.CreationTime = &v 2892 return s 2893} 2894 2895// SetDescription sets the Description field's value. 2896func (s *ExperimentTemplateSummary) SetDescription(v string) *ExperimentTemplateSummary { 2897 s.Description = &v 2898 return s 2899} 2900 2901// SetId sets the Id field's value. 2902func (s *ExperimentTemplateSummary) SetId(v string) *ExperimentTemplateSummary { 2903 s.Id = &v 2904 return s 2905} 2906 2907// SetLastUpdateTime sets the LastUpdateTime field's value. 2908func (s *ExperimentTemplateSummary) SetLastUpdateTime(v time.Time) *ExperimentTemplateSummary { 2909 s.LastUpdateTime = &v 2910 return s 2911} 2912 2913// SetTags sets the Tags field's value. 2914func (s *ExperimentTemplateSummary) SetTags(v map[string]*string) *ExperimentTemplateSummary { 2915 s.Tags = v 2916 return s 2917} 2918 2919// Describes a target for an experiment template. 2920type ExperimentTemplateTarget struct { 2921 _ struct{} `type:"structure"` 2922 2923 // The filters to apply to identify target resources using specific attributes. 2924 Filters []*ExperimentTemplateTargetFilter `locationName:"filters" type:"list"` 2925 2926 // The Amazon Resource Names (ARNs) of the targets. 2927 ResourceArns []*string `locationName:"resourceArns" type:"list"` 2928 2929 // The tags for the target resources. 2930 ResourceTags map[string]*string `locationName:"resourceTags" type:"map"` 2931 2932 // The resource type. 2933 ResourceType *string `locationName:"resourceType" type:"string"` 2934 2935 // Scopes the identified resources to a specific count or percentage. 2936 SelectionMode *string `locationName:"selectionMode" type:"string"` 2937} 2938 2939// String returns the string representation. 2940// 2941// API parameter values that are decorated as "sensitive" in the API will not 2942// be included in the string output. The member name will be present, but the 2943// value will be replaced with "sensitive". 2944func (s ExperimentTemplateTarget) String() string { 2945 return awsutil.Prettify(s) 2946} 2947 2948// GoString returns the string representation. 2949// 2950// API parameter values that are decorated as "sensitive" in the API will not 2951// be included in the string output. The member name will be present, but the 2952// value will be replaced with "sensitive". 2953func (s ExperimentTemplateTarget) GoString() string { 2954 return s.String() 2955} 2956 2957// SetFilters sets the Filters field's value. 2958func (s *ExperimentTemplateTarget) SetFilters(v []*ExperimentTemplateTargetFilter) *ExperimentTemplateTarget { 2959 s.Filters = v 2960 return s 2961} 2962 2963// SetResourceArns sets the ResourceArns field's value. 2964func (s *ExperimentTemplateTarget) SetResourceArns(v []*string) *ExperimentTemplateTarget { 2965 s.ResourceArns = v 2966 return s 2967} 2968 2969// SetResourceTags sets the ResourceTags field's value. 2970func (s *ExperimentTemplateTarget) SetResourceTags(v map[string]*string) *ExperimentTemplateTarget { 2971 s.ResourceTags = v 2972 return s 2973} 2974 2975// SetResourceType sets the ResourceType field's value. 2976func (s *ExperimentTemplateTarget) SetResourceType(v string) *ExperimentTemplateTarget { 2977 s.ResourceType = &v 2978 return s 2979} 2980 2981// SetSelectionMode sets the SelectionMode field's value. 2982func (s *ExperimentTemplateTarget) SetSelectionMode(v string) *ExperimentTemplateTarget { 2983 s.SelectionMode = &v 2984 return s 2985} 2986 2987// Describes a filter used for the target resources in an experiment template. 2988type ExperimentTemplateTargetFilter struct { 2989 _ struct{} `type:"structure"` 2990 2991 // The attribute path for the filter. 2992 Path *string `locationName:"path" type:"string"` 2993 2994 // The attribute values for the filter. 2995 Values []*string `locationName:"values" type:"list"` 2996} 2997 2998// String returns the string representation. 2999// 3000// API parameter values that are decorated as "sensitive" in the API will not 3001// be included in the string output. The member name will be present, but the 3002// value will be replaced with "sensitive". 3003func (s ExperimentTemplateTargetFilter) String() string { 3004 return awsutil.Prettify(s) 3005} 3006 3007// GoString returns the string representation. 3008// 3009// API parameter values that are decorated as "sensitive" in the API will not 3010// be included in the string output. The member name will be present, but the 3011// value will be replaced with "sensitive". 3012func (s ExperimentTemplateTargetFilter) GoString() string { 3013 return s.String() 3014} 3015 3016// SetPath sets the Path field's value. 3017func (s *ExperimentTemplateTargetFilter) SetPath(v string) *ExperimentTemplateTargetFilter { 3018 s.Path = &v 3019 return s 3020} 3021 3022// SetValues sets the Values field's value. 3023func (s *ExperimentTemplateTargetFilter) SetValues(v []*string) *ExperimentTemplateTargetFilter { 3024 s.Values = v 3025 return s 3026} 3027 3028// Describes a filter used for the target resource input in an experiment template. 3029type ExperimentTemplateTargetInputFilter struct { 3030 _ struct{} `type:"structure"` 3031 3032 // The attribute path for the filter. 3033 // 3034 // Path is a required field 3035 Path *string `locationName:"path" type:"string" required:"true"` 3036 3037 // The attribute values for the filter. 3038 // 3039 // Values is a required field 3040 Values []*string `locationName:"values" type:"list" required:"true"` 3041} 3042 3043// String returns the string representation. 3044// 3045// API parameter values that are decorated as "sensitive" in the API will not 3046// be included in the string output. The member name will be present, but the 3047// value will be replaced with "sensitive". 3048func (s ExperimentTemplateTargetInputFilter) String() string { 3049 return awsutil.Prettify(s) 3050} 3051 3052// GoString returns the string representation. 3053// 3054// API parameter values that are decorated as "sensitive" in the API will not 3055// be included in the string output. The member name will be present, but the 3056// value will be replaced with "sensitive". 3057func (s ExperimentTemplateTargetInputFilter) GoString() string { 3058 return s.String() 3059} 3060 3061// Validate inspects the fields of the type to determine if they are valid. 3062func (s *ExperimentTemplateTargetInputFilter) Validate() error { 3063 invalidParams := request.ErrInvalidParams{Context: "ExperimentTemplateTargetInputFilter"} 3064 if s.Path == nil { 3065 invalidParams.Add(request.NewErrParamRequired("Path")) 3066 } 3067 if s.Values == nil { 3068 invalidParams.Add(request.NewErrParamRequired("Values")) 3069 } 3070 3071 if invalidParams.Len() > 0 { 3072 return invalidParams 3073 } 3074 return nil 3075} 3076 3077// SetPath sets the Path field's value. 3078func (s *ExperimentTemplateTargetInputFilter) SetPath(v string) *ExperimentTemplateTargetInputFilter { 3079 s.Path = &v 3080 return s 3081} 3082 3083// SetValues sets the Values field's value. 3084func (s *ExperimentTemplateTargetInputFilter) SetValues(v []*string) *ExperimentTemplateTargetInputFilter { 3085 s.Values = v 3086 return s 3087} 3088 3089type GetActionInput struct { 3090 _ struct{} `type:"structure" nopayload:"true"` 3091 3092 // The ID of the action. 3093 // 3094 // Id is a required field 3095 Id *string `location:"uri" locationName:"id" type:"string" required:"true"` 3096} 3097 3098// String returns the string representation. 3099// 3100// API parameter values that are decorated as "sensitive" in the API will not 3101// be included in the string output. The member name will be present, but the 3102// value will be replaced with "sensitive". 3103func (s GetActionInput) String() string { 3104 return awsutil.Prettify(s) 3105} 3106 3107// GoString returns the string representation. 3108// 3109// API parameter values that are decorated as "sensitive" in the API will not 3110// be included in the string output. The member name will be present, but the 3111// value will be replaced with "sensitive". 3112func (s GetActionInput) GoString() string { 3113 return s.String() 3114} 3115 3116// Validate inspects the fields of the type to determine if they are valid. 3117func (s *GetActionInput) Validate() error { 3118 invalidParams := request.ErrInvalidParams{Context: "GetActionInput"} 3119 if s.Id == nil { 3120 invalidParams.Add(request.NewErrParamRequired("Id")) 3121 } 3122 if s.Id != nil && len(*s.Id) < 1 { 3123 invalidParams.Add(request.NewErrParamMinLen("Id", 1)) 3124 } 3125 3126 if invalidParams.Len() > 0 { 3127 return invalidParams 3128 } 3129 return nil 3130} 3131 3132// SetId sets the Id field's value. 3133func (s *GetActionInput) SetId(v string) *GetActionInput { 3134 s.Id = &v 3135 return s 3136} 3137 3138type GetActionOutput struct { 3139 _ struct{} `type:"structure"` 3140 3141 // Information about the action. 3142 Action *Action `locationName:"action" type:"structure"` 3143} 3144 3145// String returns the string representation. 3146// 3147// API parameter values that are decorated as "sensitive" in the API will not 3148// be included in the string output. The member name will be present, but the 3149// value will be replaced with "sensitive". 3150func (s GetActionOutput) String() string { 3151 return awsutil.Prettify(s) 3152} 3153 3154// GoString returns the string representation. 3155// 3156// API parameter values that are decorated as "sensitive" in the API will not 3157// be included in the string output. The member name will be present, but the 3158// value will be replaced with "sensitive". 3159func (s GetActionOutput) GoString() string { 3160 return s.String() 3161} 3162 3163// SetAction sets the Action field's value. 3164func (s *GetActionOutput) SetAction(v *Action) *GetActionOutput { 3165 s.Action = v 3166 return s 3167} 3168 3169type GetExperimentInput struct { 3170 _ struct{} `type:"structure" nopayload:"true"` 3171 3172 // The ID of the experiment. 3173 // 3174 // Id is a required field 3175 Id *string `location:"uri" locationName:"id" type:"string" required:"true"` 3176} 3177 3178// String returns the string representation. 3179// 3180// API parameter values that are decorated as "sensitive" in the API will not 3181// be included in the string output. The member name will be present, but the 3182// value will be replaced with "sensitive". 3183func (s GetExperimentInput) String() string { 3184 return awsutil.Prettify(s) 3185} 3186 3187// GoString returns the string representation. 3188// 3189// API parameter values that are decorated as "sensitive" in the API will not 3190// be included in the string output. The member name will be present, but the 3191// value will be replaced with "sensitive". 3192func (s GetExperimentInput) GoString() string { 3193 return s.String() 3194} 3195 3196// Validate inspects the fields of the type to determine if they are valid. 3197func (s *GetExperimentInput) Validate() error { 3198 invalidParams := request.ErrInvalidParams{Context: "GetExperimentInput"} 3199 if s.Id == nil { 3200 invalidParams.Add(request.NewErrParamRequired("Id")) 3201 } 3202 if s.Id != nil && len(*s.Id) < 1 { 3203 invalidParams.Add(request.NewErrParamMinLen("Id", 1)) 3204 } 3205 3206 if invalidParams.Len() > 0 { 3207 return invalidParams 3208 } 3209 return nil 3210} 3211 3212// SetId sets the Id field's value. 3213func (s *GetExperimentInput) SetId(v string) *GetExperimentInput { 3214 s.Id = &v 3215 return s 3216} 3217 3218type GetExperimentOutput struct { 3219 _ struct{} `type:"structure"` 3220 3221 // Information about the experiment. 3222 Experiment *Experiment `locationName:"experiment" type:"structure"` 3223} 3224 3225// String returns the string representation. 3226// 3227// API parameter values that are decorated as "sensitive" in the API will not 3228// be included in the string output. The member name will be present, but the 3229// value will be replaced with "sensitive". 3230func (s GetExperimentOutput) String() string { 3231 return awsutil.Prettify(s) 3232} 3233 3234// GoString returns the string representation. 3235// 3236// API parameter values that are decorated as "sensitive" in the API will not 3237// be included in the string output. The member name will be present, but the 3238// value will be replaced with "sensitive". 3239func (s GetExperimentOutput) GoString() string { 3240 return s.String() 3241} 3242 3243// SetExperiment sets the Experiment field's value. 3244func (s *GetExperimentOutput) SetExperiment(v *Experiment) *GetExperimentOutput { 3245 s.Experiment = v 3246 return s 3247} 3248 3249type GetExperimentTemplateInput struct { 3250 _ struct{} `type:"structure" nopayload:"true"` 3251 3252 // The ID of the experiment template. 3253 // 3254 // Id is a required field 3255 Id *string `location:"uri" locationName:"id" type:"string" required:"true"` 3256} 3257 3258// String returns the string representation. 3259// 3260// API parameter values that are decorated as "sensitive" in the API will not 3261// be included in the string output. The member name will be present, but the 3262// value will be replaced with "sensitive". 3263func (s GetExperimentTemplateInput) String() string { 3264 return awsutil.Prettify(s) 3265} 3266 3267// GoString returns the string representation. 3268// 3269// API parameter values that are decorated as "sensitive" in the API will not 3270// be included in the string output. The member name will be present, but the 3271// value will be replaced with "sensitive". 3272func (s GetExperimentTemplateInput) GoString() string { 3273 return s.String() 3274} 3275 3276// Validate inspects the fields of the type to determine if they are valid. 3277func (s *GetExperimentTemplateInput) Validate() error { 3278 invalidParams := request.ErrInvalidParams{Context: "GetExperimentTemplateInput"} 3279 if s.Id == nil { 3280 invalidParams.Add(request.NewErrParamRequired("Id")) 3281 } 3282 if s.Id != nil && len(*s.Id) < 1 { 3283 invalidParams.Add(request.NewErrParamMinLen("Id", 1)) 3284 } 3285 3286 if invalidParams.Len() > 0 { 3287 return invalidParams 3288 } 3289 return nil 3290} 3291 3292// SetId sets the Id field's value. 3293func (s *GetExperimentTemplateInput) SetId(v string) *GetExperimentTemplateInput { 3294 s.Id = &v 3295 return s 3296} 3297 3298type GetExperimentTemplateOutput struct { 3299 _ struct{} `type:"structure"` 3300 3301 // Information about the experiment template. 3302 ExperimentTemplate *ExperimentTemplate `locationName:"experimentTemplate" type:"structure"` 3303} 3304 3305// String returns the string representation. 3306// 3307// API parameter values that are decorated as "sensitive" in the API will not 3308// be included in the string output. The member name will be present, but the 3309// value will be replaced with "sensitive". 3310func (s GetExperimentTemplateOutput) String() string { 3311 return awsutil.Prettify(s) 3312} 3313 3314// GoString returns the string representation. 3315// 3316// API parameter values that are decorated as "sensitive" in the API will not 3317// be included in the string output. The member name will be present, but the 3318// value will be replaced with "sensitive". 3319func (s GetExperimentTemplateOutput) GoString() string { 3320 return s.String() 3321} 3322 3323// SetExperimentTemplate sets the ExperimentTemplate field's value. 3324func (s *GetExperimentTemplateOutput) SetExperimentTemplate(v *ExperimentTemplate) *GetExperimentTemplateOutput { 3325 s.ExperimentTemplate = v 3326 return s 3327} 3328 3329type ListActionsInput struct { 3330 _ struct{} `type:"structure" nopayload:"true"` 3331 3332 // The maximum number of results to return with a single call. To retrieve the 3333 // remaining results, make another call with the returned nextToken value. 3334 MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"` 3335 3336 // The token for the next page of results. 3337 NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"` 3338} 3339 3340// String returns the string representation. 3341// 3342// API parameter values that are decorated as "sensitive" in the API will not 3343// be included in the string output. The member name will be present, but the 3344// value will be replaced with "sensitive". 3345func (s ListActionsInput) String() string { 3346 return awsutil.Prettify(s) 3347} 3348 3349// GoString returns the string representation. 3350// 3351// API parameter values that are decorated as "sensitive" in the API will not 3352// be included in the string output. The member name will be present, but the 3353// value will be replaced with "sensitive". 3354func (s ListActionsInput) GoString() string { 3355 return s.String() 3356} 3357 3358// Validate inspects the fields of the type to determine if they are valid. 3359func (s *ListActionsInput) Validate() error { 3360 invalidParams := request.ErrInvalidParams{Context: "ListActionsInput"} 3361 if s.MaxResults != nil && *s.MaxResults < 1 { 3362 invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) 3363 } 3364 if s.NextToken != nil && len(*s.NextToken) < 1 { 3365 invalidParams.Add(request.NewErrParamMinLen("NextToken", 1)) 3366 } 3367 3368 if invalidParams.Len() > 0 { 3369 return invalidParams 3370 } 3371 return nil 3372} 3373 3374// SetMaxResults sets the MaxResults field's value. 3375func (s *ListActionsInput) SetMaxResults(v int64) *ListActionsInput { 3376 s.MaxResults = &v 3377 return s 3378} 3379 3380// SetNextToken sets the NextToken field's value. 3381func (s *ListActionsInput) SetNextToken(v string) *ListActionsInput { 3382 s.NextToken = &v 3383 return s 3384} 3385 3386type ListActionsOutput struct { 3387 _ struct{} `type:"structure"` 3388 3389 // The actions. 3390 Actions []*ActionSummary `locationName:"actions" type:"list"` 3391 3392 // The token to use to retrieve the next page of results. This value is null 3393 // when there are no more results to return. 3394 NextToken *string `locationName:"nextToken" min:"1" type:"string"` 3395} 3396 3397// String returns the string representation. 3398// 3399// API parameter values that are decorated as "sensitive" in the API will not 3400// be included in the string output. The member name will be present, but the 3401// value will be replaced with "sensitive". 3402func (s ListActionsOutput) String() string { 3403 return awsutil.Prettify(s) 3404} 3405 3406// GoString returns the string representation. 3407// 3408// API parameter values that are decorated as "sensitive" in the API will not 3409// be included in the string output. The member name will be present, but the 3410// value will be replaced with "sensitive". 3411func (s ListActionsOutput) GoString() string { 3412 return s.String() 3413} 3414 3415// SetActions sets the Actions field's value. 3416func (s *ListActionsOutput) SetActions(v []*ActionSummary) *ListActionsOutput { 3417 s.Actions = v 3418 return s 3419} 3420 3421// SetNextToken sets the NextToken field's value. 3422func (s *ListActionsOutput) SetNextToken(v string) *ListActionsOutput { 3423 s.NextToken = &v 3424 return s 3425} 3426 3427type ListExperimentTemplatesInput struct { 3428 _ struct{} `type:"structure" nopayload:"true"` 3429 3430 // The maximum number of results to return with a single call. To retrieve the 3431 // remaining results, make another call with the returned nextToken value. 3432 MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"` 3433 3434 // The token for the next page of results. 3435 NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"` 3436} 3437 3438// String returns the string representation. 3439// 3440// API parameter values that are decorated as "sensitive" in the API will not 3441// be included in the string output. The member name will be present, but the 3442// value will be replaced with "sensitive". 3443func (s ListExperimentTemplatesInput) String() string { 3444 return awsutil.Prettify(s) 3445} 3446 3447// GoString returns the string representation. 3448// 3449// API parameter values that are decorated as "sensitive" in the API will not 3450// be included in the string output. The member name will be present, but the 3451// value will be replaced with "sensitive". 3452func (s ListExperimentTemplatesInput) GoString() string { 3453 return s.String() 3454} 3455 3456// Validate inspects the fields of the type to determine if they are valid. 3457func (s *ListExperimentTemplatesInput) Validate() error { 3458 invalidParams := request.ErrInvalidParams{Context: "ListExperimentTemplatesInput"} 3459 if s.MaxResults != nil && *s.MaxResults < 1 { 3460 invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) 3461 } 3462 if s.NextToken != nil && len(*s.NextToken) < 1 { 3463 invalidParams.Add(request.NewErrParamMinLen("NextToken", 1)) 3464 } 3465 3466 if invalidParams.Len() > 0 { 3467 return invalidParams 3468 } 3469 return nil 3470} 3471 3472// SetMaxResults sets the MaxResults field's value. 3473func (s *ListExperimentTemplatesInput) SetMaxResults(v int64) *ListExperimentTemplatesInput { 3474 s.MaxResults = &v 3475 return s 3476} 3477 3478// SetNextToken sets the NextToken field's value. 3479func (s *ListExperimentTemplatesInput) SetNextToken(v string) *ListExperimentTemplatesInput { 3480 s.NextToken = &v 3481 return s 3482} 3483 3484type ListExperimentTemplatesOutput struct { 3485 _ struct{} `type:"structure"` 3486 3487 // The experiment templates. 3488 ExperimentTemplates []*ExperimentTemplateSummary `locationName:"experimentTemplates" type:"list"` 3489 3490 // The token to use to retrieve the next page of results. This value is null 3491 // when there are no more results to return. 3492 NextToken *string `locationName:"nextToken" min:"1" type:"string"` 3493} 3494 3495// String returns the string representation. 3496// 3497// API parameter values that are decorated as "sensitive" in the API will not 3498// be included in the string output. The member name will be present, but the 3499// value will be replaced with "sensitive". 3500func (s ListExperimentTemplatesOutput) String() string { 3501 return awsutil.Prettify(s) 3502} 3503 3504// GoString returns the string representation. 3505// 3506// API parameter values that are decorated as "sensitive" in the API will not 3507// be included in the string output. The member name will be present, but the 3508// value will be replaced with "sensitive". 3509func (s ListExperimentTemplatesOutput) GoString() string { 3510 return s.String() 3511} 3512 3513// SetExperimentTemplates sets the ExperimentTemplates field's value. 3514func (s *ListExperimentTemplatesOutput) SetExperimentTemplates(v []*ExperimentTemplateSummary) *ListExperimentTemplatesOutput { 3515 s.ExperimentTemplates = v 3516 return s 3517} 3518 3519// SetNextToken sets the NextToken field's value. 3520func (s *ListExperimentTemplatesOutput) SetNextToken(v string) *ListExperimentTemplatesOutput { 3521 s.NextToken = &v 3522 return s 3523} 3524 3525type ListExperimentsInput struct { 3526 _ struct{} `type:"structure" nopayload:"true"` 3527 3528 // The maximum number of results to return with a single call. To retrieve the 3529 // remaining results, make another call with the returned nextToken value. 3530 MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"` 3531 3532 // The token for the next page of results. 3533 NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"` 3534} 3535 3536// String returns the string representation. 3537// 3538// API parameter values that are decorated as "sensitive" in the API will not 3539// be included in the string output. The member name will be present, but the 3540// value will be replaced with "sensitive". 3541func (s ListExperimentsInput) String() string { 3542 return awsutil.Prettify(s) 3543} 3544 3545// GoString returns the string representation. 3546// 3547// API parameter values that are decorated as "sensitive" in the API will not 3548// be included in the string output. The member name will be present, but the 3549// value will be replaced with "sensitive". 3550func (s ListExperimentsInput) GoString() string { 3551 return s.String() 3552} 3553 3554// Validate inspects the fields of the type to determine if they are valid. 3555func (s *ListExperimentsInput) Validate() error { 3556 invalidParams := request.ErrInvalidParams{Context: "ListExperimentsInput"} 3557 if s.MaxResults != nil && *s.MaxResults < 1 { 3558 invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1)) 3559 } 3560 if s.NextToken != nil && len(*s.NextToken) < 1 { 3561 invalidParams.Add(request.NewErrParamMinLen("NextToken", 1)) 3562 } 3563 3564 if invalidParams.Len() > 0 { 3565 return invalidParams 3566 } 3567 return nil 3568} 3569 3570// SetMaxResults sets the MaxResults field's value. 3571func (s *ListExperimentsInput) SetMaxResults(v int64) *ListExperimentsInput { 3572 s.MaxResults = &v 3573 return s 3574} 3575 3576// SetNextToken sets the NextToken field's value. 3577func (s *ListExperimentsInput) SetNextToken(v string) *ListExperimentsInput { 3578 s.NextToken = &v 3579 return s 3580} 3581 3582type ListExperimentsOutput struct { 3583 _ struct{} `type:"structure"` 3584 3585 // The experiments. 3586 Experiments []*ExperimentSummary `locationName:"experiments" type:"list"` 3587 3588 // The token to use to retrieve the next page of results. This value is null 3589 // when there are no more results to return. 3590 NextToken *string `locationName:"nextToken" min:"1" type:"string"` 3591} 3592 3593// String returns the string representation. 3594// 3595// API parameter values that are decorated as "sensitive" in the API will not 3596// be included in the string output. The member name will be present, but the 3597// value will be replaced with "sensitive". 3598func (s ListExperimentsOutput) String() string { 3599 return awsutil.Prettify(s) 3600} 3601 3602// GoString returns the string representation. 3603// 3604// API parameter values that are decorated as "sensitive" in the API will not 3605// be included in the string output. The member name will be present, but the 3606// value will be replaced with "sensitive". 3607func (s ListExperimentsOutput) GoString() string { 3608 return s.String() 3609} 3610 3611// SetExperiments sets the Experiments field's value. 3612func (s *ListExperimentsOutput) SetExperiments(v []*ExperimentSummary) *ListExperimentsOutput { 3613 s.Experiments = v 3614 return s 3615} 3616 3617// SetNextToken sets the NextToken field's value. 3618func (s *ListExperimentsOutput) SetNextToken(v string) *ListExperimentsOutput { 3619 s.NextToken = &v 3620 return s 3621} 3622 3623type ListTagsForResourceInput struct { 3624 _ struct{} `type:"structure" nopayload:"true"` 3625 3626 // The Amazon Resource Name (ARN) of the resource. 3627 // 3628 // ResourceArn is a required field 3629 ResourceArn *string `location:"uri" locationName:"resourceArn" min:"20" type:"string" required:"true"` 3630} 3631 3632// String returns the string representation. 3633// 3634// API parameter values that are decorated as "sensitive" in the API will not 3635// be included in the string output. The member name will be present, but the 3636// value will be replaced with "sensitive". 3637func (s ListTagsForResourceInput) String() string { 3638 return awsutil.Prettify(s) 3639} 3640 3641// GoString returns the string representation. 3642// 3643// API parameter values that are decorated as "sensitive" in the API will not 3644// be included in the string output. The member name will be present, but the 3645// value will be replaced with "sensitive". 3646func (s ListTagsForResourceInput) GoString() string { 3647 return s.String() 3648} 3649 3650// Validate inspects the fields of the type to determine if they are valid. 3651func (s *ListTagsForResourceInput) Validate() error { 3652 invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"} 3653 if s.ResourceArn == nil { 3654 invalidParams.Add(request.NewErrParamRequired("ResourceArn")) 3655 } 3656 if s.ResourceArn != nil && len(*s.ResourceArn) < 20 { 3657 invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 20)) 3658 } 3659 3660 if invalidParams.Len() > 0 { 3661 return invalidParams 3662 } 3663 return nil 3664} 3665 3666// SetResourceArn sets the ResourceArn field's value. 3667func (s *ListTagsForResourceInput) SetResourceArn(v string) *ListTagsForResourceInput { 3668 s.ResourceArn = &v 3669 return s 3670} 3671 3672type ListTagsForResourceOutput struct { 3673 _ struct{} `type:"structure"` 3674 3675 // The tags for the resource. 3676 Tags map[string]*string `locationName:"tags" type:"map"` 3677} 3678 3679// String returns the string representation. 3680// 3681// API parameter values that are decorated as "sensitive" in the API will not 3682// be included in the string output. The member name will be present, but the 3683// value will be replaced with "sensitive". 3684func (s ListTagsForResourceOutput) String() string { 3685 return awsutil.Prettify(s) 3686} 3687 3688// GoString returns the string representation. 3689// 3690// API parameter values that are decorated as "sensitive" in the API will not 3691// be included in the string output. The member name will be present, but the 3692// value will be replaced with "sensitive". 3693func (s ListTagsForResourceOutput) GoString() string { 3694 return s.String() 3695} 3696 3697// SetTags sets the Tags field's value. 3698func (s *ListTagsForResourceOutput) SetTags(v map[string]*string) *ListTagsForResourceOutput { 3699 s.Tags = v 3700 return s 3701} 3702 3703// The specified resource cannot be found. 3704type ResourceNotFoundException struct { 3705 _ struct{} `type:"structure"` 3706 RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` 3707 3708 Message_ *string `locationName:"message" type:"string"` 3709} 3710 3711// String returns the string representation. 3712// 3713// API parameter values that are decorated as "sensitive" in the API will not 3714// be included in the string output. The member name will be present, but the 3715// value will be replaced with "sensitive". 3716func (s ResourceNotFoundException) String() string { 3717 return awsutil.Prettify(s) 3718} 3719 3720// GoString returns the string representation. 3721// 3722// API parameter values that are decorated as "sensitive" in the API will not 3723// be included in the string output. The member name will be present, but the 3724// value will be replaced with "sensitive". 3725func (s ResourceNotFoundException) GoString() string { 3726 return s.String() 3727} 3728 3729func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error { 3730 return &ResourceNotFoundException{ 3731 RespMetadata: v, 3732 } 3733} 3734 3735// Code returns the exception type name. 3736func (s *ResourceNotFoundException) Code() string { 3737 return "ResourceNotFoundException" 3738} 3739 3740// Message returns the exception's message. 3741func (s *ResourceNotFoundException) Message() string { 3742 if s.Message_ != nil { 3743 return *s.Message_ 3744 } 3745 return "" 3746} 3747 3748// OrigErr always returns nil, satisfies awserr.Error interface. 3749func (s *ResourceNotFoundException) OrigErr() error { 3750 return nil 3751} 3752 3753func (s *ResourceNotFoundException) Error() string { 3754 return fmt.Sprintf("%s: %s", s.Code(), s.Message()) 3755} 3756 3757// Status code returns the HTTP status code for the request's response error. 3758func (s *ResourceNotFoundException) StatusCode() int { 3759 return s.RespMetadata.StatusCode 3760} 3761 3762// RequestID returns the service's response RequestID for request. 3763func (s *ResourceNotFoundException) RequestID() string { 3764 return s.RespMetadata.RequestID 3765} 3766 3767// You have exceeded your service quota. 3768type ServiceQuotaExceededException struct { 3769 _ struct{} `type:"structure"` 3770 RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` 3771 3772 Message_ *string `locationName:"message" type:"string"` 3773} 3774 3775// String returns the string representation. 3776// 3777// API parameter values that are decorated as "sensitive" in the API will not 3778// be included in the string output. The member name will be present, but the 3779// value will be replaced with "sensitive". 3780func (s ServiceQuotaExceededException) String() string { 3781 return awsutil.Prettify(s) 3782} 3783 3784// GoString returns the string representation. 3785// 3786// API parameter values that are decorated as "sensitive" in the API will not 3787// be included in the string output. The member name will be present, but the 3788// value will be replaced with "sensitive". 3789func (s ServiceQuotaExceededException) GoString() string { 3790 return s.String() 3791} 3792 3793func newErrorServiceQuotaExceededException(v protocol.ResponseMetadata) error { 3794 return &ServiceQuotaExceededException{ 3795 RespMetadata: v, 3796 } 3797} 3798 3799// Code returns the exception type name. 3800func (s *ServiceQuotaExceededException) Code() string { 3801 return "ServiceQuotaExceededException" 3802} 3803 3804// Message returns the exception's message. 3805func (s *ServiceQuotaExceededException) Message() string { 3806 if s.Message_ != nil { 3807 return *s.Message_ 3808 } 3809 return "" 3810} 3811 3812// OrigErr always returns nil, satisfies awserr.Error interface. 3813func (s *ServiceQuotaExceededException) OrigErr() error { 3814 return nil 3815} 3816 3817func (s *ServiceQuotaExceededException) Error() string { 3818 return fmt.Sprintf("%s: %s", s.Code(), s.Message()) 3819} 3820 3821// Status code returns the HTTP status code for the request's response error. 3822func (s *ServiceQuotaExceededException) StatusCode() int { 3823 return s.RespMetadata.StatusCode 3824} 3825 3826// RequestID returns the service's response RequestID for request. 3827func (s *ServiceQuotaExceededException) RequestID() string { 3828 return s.RespMetadata.RequestID 3829} 3830 3831type StartExperimentInput struct { 3832 _ struct{} `type:"structure"` 3833 3834 // Unique, case-sensitive identifier that you provide to ensure the idempotency 3835 // of the request. 3836 ClientToken *string `locationName:"clientToken" min:"1" type:"string" idempotencyToken:"true"` 3837 3838 // The ID of the experiment template. 3839 // 3840 // ExperimentTemplateId is a required field 3841 ExperimentTemplateId *string `locationName:"experimentTemplateId" type:"string" required:"true"` 3842 3843 // The tags to apply to the experiment. 3844 Tags map[string]*string `locationName:"tags" type:"map"` 3845} 3846 3847// String returns the string representation. 3848// 3849// API parameter values that are decorated as "sensitive" in the API will not 3850// be included in the string output. The member name will be present, but the 3851// value will be replaced with "sensitive". 3852func (s StartExperimentInput) String() string { 3853 return awsutil.Prettify(s) 3854} 3855 3856// GoString returns the string representation. 3857// 3858// API parameter values that are decorated as "sensitive" in the API will not 3859// be included in the string output. The member name will be present, but the 3860// value will be replaced with "sensitive". 3861func (s StartExperimentInput) GoString() string { 3862 return s.String() 3863} 3864 3865// Validate inspects the fields of the type to determine if they are valid. 3866func (s *StartExperimentInput) Validate() error { 3867 invalidParams := request.ErrInvalidParams{Context: "StartExperimentInput"} 3868 if s.ClientToken != nil && len(*s.ClientToken) < 1 { 3869 invalidParams.Add(request.NewErrParamMinLen("ClientToken", 1)) 3870 } 3871 if s.ExperimentTemplateId == nil { 3872 invalidParams.Add(request.NewErrParamRequired("ExperimentTemplateId")) 3873 } 3874 3875 if invalidParams.Len() > 0 { 3876 return invalidParams 3877 } 3878 return nil 3879} 3880 3881// SetClientToken sets the ClientToken field's value. 3882func (s *StartExperimentInput) SetClientToken(v string) *StartExperimentInput { 3883 s.ClientToken = &v 3884 return s 3885} 3886 3887// SetExperimentTemplateId sets the ExperimentTemplateId field's value. 3888func (s *StartExperimentInput) SetExperimentTemplateId(v string) *StartExperimentInput { 3889 s.ExperimentTemplateId = &v 3890 return s 3891} 3892 3893// SetTags sets the Tags field's value. 3894func (s *StartExperimentInput) SetTags(v map[string]*string) *StartExperimentInput { 3895 s.Tags = v 3896 return s 3897} 3898 3899type StartExperimentOutput struct { 3900 _ struct{} `type:"structure"` 3901 3902 // Information about the experiment. 3903 Experiment *Experiment `locationName:"experiment" type:"structure"` 3904} 3905 3906// String returns the string representation. 3907// 3908// API parameter values that are decorated as "sensitive" in the API will not 3909// be included in the string output. The member name will be present, but the 3910// value will be replaced with "sensitive". 3911func (s StartExperimentOutput) String() string { 3912 return awsutil.Prettify(s) 3913} 3914 3915// GoString returns the string representation. 3916// 3917// API parameter values that are decorated as "sensitive" in the API will not 3918// be included in the string output. The member name will be present, but the 3919// value will be replaced with "sensitive". 3920func (s StartExperimentOutput) GoString() string { 3921 return s.String() 3922} 3923 3924// SetExperiment sets the Experiment field's value. 3925func (s *StartExperimentOutput) SetExperiment(v *Experiment) *StartExperimentOutput { 3926 s.Experiment = v 3927 return s 3928} 3929 3930type StopExperimentInput struct { 3931 _ struct{} `type:"structure" nopayload:"true"` 3932 3933 // The ID of the experiment. 3934 // 3935 // Id is a required field 3936 Id *string `location:"uri" locationName:"id" type:"string" required:"true"` 3937} 3938 3939// String returns the string representation. 3940// 3941// API parameter values that are decorated as "sensitive" in the API will not 3942// be included in the string output. The member name will be present, but the 3943// value will be replaced with "sensitive". 3944func (s StopExperimentInput) String() string { 3945 return awsutil.Prettify(s) 3946} 3947 3948// GoString returns the string representation. 3949// 3950// API parameter values that are decorated as "sensitive" in the API will not 3951// be included in the string output. The member name will be present, but the 3952// value will be replaced with "sensitive". 3953func (s StopExperimentInput) GoString() string { 3954 return s.String() 3955} 3956 3957// Validate inspects the fields of the type to determine if they are valid. 3958func (s *StopExperimentInput) Validate() error { 3959 invalidParams := request.ErrInvalidParams{Context: "StopExperimentInput"} 3960 if s.Id == nil { 3961 invalidParams.Add(request.NewErrParamRequired("Id")) 3962 } 3963 if s.Id != nil && len(*s.Id) < 1 { 3964 invalidParams.Add(request.NewErrParamMinLen("Id", 1)) 3965 } 3966 3967 if invalidParams.Len() > 0 { 3968 return invalidParams 3969 } 3970 return nil 3971} 3972 3973// SetId sets the Id field's value. 3974func (s *StopExperimentInput) SetId(v string) *StopExperimentInput { 3975 s.Id = &v 3976 return s 3977} 3978 3979type StopExperimentOutput struct { 3980 _ struct{} `type:"structure"` 3981 3982 // Information about the experiment. 3983 Experiment *Experiment `locationName:"experiment" type:"structure"` 3984} 3985 3986// String returns the string representation. 3987// 3988// API parameter values that are decorated as "sensitive" in the API will not 3989// be included in the string output. The member name will be present, but the 3990// value will be replaced with "sensitive". 3991func (s StopExperimentOutput) String() string { 3992 return awsutil.Prettify(s) 3993} 3994 3995// GoString returns the string representation. 3996// 3997// API parameter values that are decorated as "sensitive" in the API will not 3998// be included in the string output. The member name will be present, but the 3999// value will be replaced with "sensitive". 4000func (s StopExperimentOutput) GoString() string { 4001 return s.String() 4002} 4003 4004// SetExperiment sets the Experiment field's value. 4005func (s *StopExperimentOutput) SetExperiment(v *Experiment) *StopExperimentOutput { 4006 s.Experiment = v 4007 return s 4008} 4009 4010type TagResourceInput struct { 4011 _ struct{} `type:"structure"` 4012 4013 // The Amazon Resource Name (ARN) of the resource. 4014 // 4015 // ResourceArn is a required field 4016 ResourceArn *string `location:"uri" locationName:"resourceArn" min:"20" type:"string" required:"true"` 4017 4018 // The tags for the resource. 4019 // 4020 // Tags is a required field 4021 Tags map[string]*string `locationName:"tags" type:"map" required:"true"` 4022} 4023 4024// String returns the string representation. 4025// 4026// API parameter values that are decorated as "sensitive" in the API will not 4027// be included in the string output. The member name will be present, but the 4028// value will be replaced with "sensitive". 4029func (s TagResourceInput) String() string { 4030 return awsutil.Prettify(s) 4031} 4032 4033// GoString returns the string representation. 4034// 4035// API parameter values that are decorated as "sensitive" in the API will not 4036// be included in the string output. The member name will be present, but the 4037// value will be replaced with "sensitive". 4038func (s TagResourceInput) GoString() string { 4039 return s.String() 4040} 4041 4042// Validate inspects the fields of the type to determine if they are valid. 4043func (s *TagResourceInput) Validate() error { 4044 invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"} 4045 if s.ResourceArn == nil { 4046 invalidParams.Add(request.NewErrParamRequired("ResourceArn")) 4047 } 4048 if s.ResourceArn != nil && len(*s.ResourceArn) < 20 { 4049 invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 20)) 4050 } 4051 if s.Tags == nil { 4052 invalidParams.Add(request.NewErrParamRequired("Tags")) 4053 } 4054 4055 if invalidParams.Len() > 0 { 4056 return invalidParams 4057 } 4058 return nil 4059} 4060 4061// SetResourceArn sets the ResourceArn field's value. 4062func (s *TagResourceInput) SetResourceArn(v string) *TagResourceInput { 4063 s.ResourceArn = &v 4064 return s 4065} 4066 4067// SetTags sets the Tags field's value. 4068func (s *TagResourceInput) SetTags(v map[string]*string) *TagResourceInput { 4069 s.Tags = v 4070 return s 4071} 4072 4073type TagResourceOutput struct { 4074 _ struct{} `type:"structure"` 4075} 4076 4077// String returns the string representation. 4078// 4079// API parameter values that are decorated as "sensitive" in the API will not 4080// be included in the string output. The member name will be present, but the 4081// value will be replaced with "sensitive". 4082func (s TagResourceOutput) String() string { 4083 return awsutil.Prettify(s) 4084} 4085 4086// GoString returns the string representation. 4087// 4088// API parameter values that are decorated as "sensitive" in the API will not 4089// be included in the string output. The member name will be present, but the 4090// value will be replaced with "sensitive". 4091func (s TagResourceOutput) GoString() string { 4092 return s.String() 4093} 4094 4095type UntagResourceInput struct { 4096 _ struct{} `type:"structure" nopayload:"true"` 4097 4098 // The Amazon Resource Name (ARN) of the resource. 4099 // 4100 // ResourceArn is a required field 4101 ResourceArn *string `location:"uri" locationName:"resourceArn" min:"20" type:"string" required:"true"` 4102 4103 // The tag keys to remove. 4104 TagKeys []*string `location:"querystring" locationName:"tagKeys" type:"list"` 4105} 4106 4107// String returns the string representation. 4108// 4109// API parameter values that are decorated as "sensitive" in the API will not 4110// be included in the string output. The member name will be present, but the 4111// value will be replaced with "sensitive". 4112func (s UntagResourceInput) String() string { 4113 return awsutil.Prettify(s) 4114} 4115 4116// GoString returns the string representation. 4117// 4118// API parameter values that are decorated as "sensitive" in the API will not 4119// be included in the string output. The member name will be present, but the 4120// value will be replaced with "sensitive". 4121func (s UntagResourceInput) GoString() string { 4122 return s.String() 4123} 4124 4125// Validate inspects the fields of the type to determine if they are valid. 4126func (s *UntagResourceInput) Validate() error { 4127 invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"} 4128 if s.ResourceArn == nil { 4129 invalidParams.Add(request.NewErrParamRequired("ResourceArn")) 4130 } 4131 if s.ResourceArn != nil && len(*s.ResourceArn) < 20 { 4132 invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 20)) 4133 } 4134 4135 if invalidParams.Len() > 0 { 4136 return invalidParams 4137 } 4138 return nil 4139} 4140 4141// SetResourceArn sets the ResourceArn field's value. 4142func (s *UntagResourceInput) SetResourceArn(v string) *UntagResourceInput { 4143 s.ResourceArn = &v 4144 return s 4145} 4146 4147// SetTagKeys sets the TagKeys field's value. 4148func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput { 4149 s.TagKeys = v 4150 return s 4151} 4152 4153type UntagResourceOutput struct { 4154 _ struct{} `type:"structure"` 4155} 4156 4157// String returns the string representation. 4158// 4159// API parameter values that are decorated as "sensitive" in the API will not 4160// be included in the string output. The member name will be present, but the 4161// value will be replaced with "sensitive". 4162func (s UntagResourceOutput) String() string { 4163 return awsutil.Prettify(s) 4164} 4165 4166// GoString returns the string representation. 4167// 4168// API parameter values that are decorated as "sensitive" in the API will not 4169// be included in the string output. The member name will be present, but the 4170// value will be replaced with "sensitive". 4171func (s UntagResourceOutput) GoString() string { 4172 return s.String() 4173} 4174 4175// Specifies an action for an experiment template. 4176type UpdateExperimentTemplateActionInputItem struct { 4177 _ struct{} `type:"structure"` 4178 4179 // The ID of the action. 4180 ActionId *string `locationName:"actionId" type:"string"` 4181 4182 // A description for the action. 4183 Description *string `locationName:"description" type:"string"` 4184 4185 // The parameters for the action, if applicable. 4186 Parameters map[string]*string `locationName:"parameters" type:"map"` 4187 4188 // The name of the action that must be completed before the current action starts. 4189 // Omit this parameter to run the action at the start of the experiment. 4190 StartAfter []*string `locationName:"startAfter" type:"list"` 4191 4192 // The targets for the action. 4193 Targets map[string]*string `locationName:"targets" type:"map"` 4194} 4195 4196// String returns the string representation. 4197// 4198// API parameter values that are decorated as "sensitive" in the API will not 4199// be included in the string output. The member name will be present, but the 4200// value will be replaced with "sensitive". 4201func (s UpdateExperimentTemplateActionInputItem) String() string { 4202 return awsutil.Prettify(s) 4203} 4204 4205// GoString returns the string representation. 4206// 4207// API parameter values that are decorated as "sensitive" in the API will not 4208// be included in the string output. The member name will be present, but the 4209// value will be replaced with "sensitive". 4210func (s UpdateExperimentTemplateActionInputItem) GoString() string { 4211 return s.String() 4212} 4213 4214// SetActionId sets the ActionId field's value. 4215func (s *UpdateExperimentTemplateActionInputItem) SetActionId(v string) *UpdateExperimentTemplateActionInputItem { 4216 s.ActionId = &v 4217 return s 4218} 4219 4220// SetDescription sets the Description field's value. 4221func (s *UpdateExperimentTemplateActionInputItem) SetDescription(v string) *UpdateExperimentTemplateActionInputItem { 4222 s.Description = &v 4223 return s 4224} 4225 4226// SetParameters sets the Parameters field's value. 4227func (s *UpdateExperimentTemplateActionInputItem) SetParameters(v map[string]*string) *UpdateExperimentTemplateActionInputItem { 4228 s.Parameters = v 4229 return s 4230} 4231 4232// SetStartAfter sets the StartAfter field's value. 4233func (s *UpdateExperimentTemplateActionInputItem) SetStartAfter(v []*string) *UpdateExperimentTemplateActionInputItem { 4234 s.StartAfter = v 4235 return s 4236} 4237 4238// SetTargets sets the Targets field's value. 4239func (s *UpdateExperimentTemplateActionInputItem) SetTargets(v map[string]*string) *UpdateExperimentTemplateActionInputItem { 4240 s.Targets = v 4241 return s 4242} 4243 4244type UpdateExperimentTemplateInput struct { 4245 _ struct{} `type:"structure"` 4246 4247 // The actions for the experiment. 4248 Actions map[string]*UpdateExperimentTemplateActionInputItem `locationName:"actions" type:"map"` 4249 4250 // A description for the template. 4251 Description *string `locationName:"description" type:"string"` 4252 4253 // The ID of the experiment template. 4254 // 4255 // Id is a required field 4256 Id *string `location:"uri" locationName:"id" type:"string" required:"true"` 4257 4258 // The Amazon Resource Name (ARN) of an IAM role that grants the AWS FIS service 4259 // permission to perform service actions on your behalf. 4260 RoleArn *string `locationName:"roleArn" min:"20" type:"string"` 4261 4262 // The stop conditions for the experiment. 4263 StopConditions []*UpdateExperimentTemplateStopConditionInput `locationName:"stopConditions" type:"list"` 4264 4265 // The targets for the experiment. 4266 Targets map[string]*UpdateExperimentTemplateTargetInput `locationName:"targets" type:"map"` 4267} 4268 4269// String returns the string representation. 4270// 4271// API parameter values that are decorated as "sensitive" in the API will not 4272// be included in the string output. The member name will be present, but the 4273// value will be replaced with "sensitive". 4274func (s UpdateExperimentTemplateInput) String() string { 4275 return awsutil.Prettify(s) 4276} 4277 4278// GoString returns the string representation. 4279// 4280// API parameter values that are decorated as "sensitive" in the API will not 4281// be included in the string output. The member name will be present, but the 4282// value will be replaced with "sensitive". 4283func (s UpdateExperimentTemplateInput) GoString() string { 4284 return s.String() 4285} 4286 4287// Validate inspects the fields of the type to determine if they are valid. 4288func (s *UpdateExperimentTemplateInput) Validate() error { 4289 invalidParams := request.ErrInvalidParams{Context: "UpdateExperimentTemplateInput"} 4290 if s.Id == nil { 4291 invalidParams.Add(request.NewErrParamRequired("Id")) 4292 } 4293 if s.Id != nil && len(*s.Id) < 1 { 4294 invalidParams.Add(request.NewErrParamMinLen("Id", 1)) 4295 } 4296 if s.RoleArn != nil && len(*s.RoleArn) < 20 { 4297 invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20)) 4298 } 4299 if s.StopConditions != nil { 4300 for i, v := range s.StopConditions { 4301 if v == nil { 4302 continue 4303 } 4304 if err := v.Validate(); err != nil { 4305 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "StopConditions", i), err.(request.ErrInvalidParams)) 4306 } 4307 } 4308 } 4309 if s.Targets != nil { 4310 for i, v := range s.Targets { 4311 if v == nil { 4312 continue 4313 } 4314 if err := v.Validate(); err != nil { 4315 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Targets", i), err.(request.ErrInvalidParams)) 4316 } 4317 } 4318 } 4319 4320 if invalidParams.Len() > 0 { 4321 return invalidParams 4322 } 4323 return nil 4324} 4325 4326// SetActions sets the Actions field's value. 4327func (s *UpdateExperimentTemplateInput) SetActions(v map[string]*UpdateExperimentTemplateActionInputItem) *UpdateExperimentTemplateInput { 4328 s.Actions = v 4329 return s 4330} 4331 4332// SetDescription sets the Description field's value. 4333func (s *UpdateExperimentTemplateInput) SetDescription(v string) *UpdateExperimentTemplateInput { 4334 s.Description = &v 4335 return s 4336} 4337 4338// SetId sets the Id field's value. 4339func (s *UpdateExperimentTemplateInput) SetId(v string) *UpdateExperimentTemplateInput { 4340 s.Id = &v 4341 return s 4342} 4343 4344// SetRoleArn sets the RoleArn field's value. 4345func (s *UpdateExperimentTemplateInput) SetRoleArn(v string) *UpdateExperimentTemplateInput { 4346 s.RoleArn = &v 4347 return s 4348} 4349 4350// SetStopConditions sets the StopConditions field's value. 4351func (s *UpdateExperimentTemplateInput) SetStopConditions(v []*UpdateExperimentTemplateStopConditionInput) *UpdateExperimentTemplateInput { 4352 s.StopConditions = v 4353 return s 4354} 4355 4356// SetTargets sets the Targets field's value. 4357func (s *UpdateExperimentTemplateInput) SetTargets(v map[string]*UpdateExperimentTemplateTargetInput) *UpdateExperimentTemplateInput { 4358 s.Targets = v 4359 return s 4360} 4361 4362type UpdateExperimentTemplateOutput struct { 4363 _ struct{} `type:"structure"` 4364 4365 // Information about the experiment template. 4366 ExperimentTemplate *ExperimentTemplate `locationName:"experimentTemplate" type:"structure"` 4367} 4368 4369// String returns the string representation. 4370// 4371// API parameter values that are decorated as "sensitive" in the API will not 4372// be included in the string output. The member name will be present, but the 4373// value will be replaced with "sensitive". 4374func (s UpdateExperimentTemplateOutput) String() string { 4375 return awsutil.Prettify(s) 4376} 4377 4378// GoString returns the string representation. 4379// 4380// API parameter values that are decorated as "sensitive" in the API will not 4381// be included in the string output. The member name will be present, but the 4382// value will be replaced with "sensitive". 4383func (s UpdateExperimentTemplateOutput) GoString() string { 4384 return s.String() 4385} 4386 4387// SetExperimentTemplate sets the ExperimentTemplate field's value. 4388func (s *UpdateExperimentTemplateOutput) SetExperimentTemplate(v *ExperimentTemplate) *UpdateExperimentTemplateOutput { 4389 s.ExperimentTemplate = v 4390 return s 4391} 4392 4393// Specifies a stop condition for an experiment. You can define a stop condition 4394// as a CloudWatch alarm. 4395type UpdateExperimentTemplateStopConditionInput struct { 4396 _ struct{} `type:"structure"` 4397 4398 // The source for the stop condition. Specify aws:cloudwatch:alarm if the stop 4399 // condition is defined by a CloudWatch alarm. Specify none if there is no stop 4400 // condition. 4401 // 4402 // Source is a required field 4403 Source *string `locationName:"source" type:"string" required:"true"` 4404 4405 // The Amazon Resource Name (ARN) of the CloudWatch alarm. 4406 Value *string `locationName:"value" min:"20" type:"string"` 4407} 4408 4409// String returns the string representation. 4410// 4411// API parameter values that are decorated as "sensitive" in the API will not 4412// be included in the string output. The member name will be present, but the 4413// value will be replaced with "sensitive". 4414func (s UpdateExperimentTemplateStopConditionInput) String() string { 4415 return awsutil.Prettify(s) 4416} 4417 4418// GoString returns the string representation. 4419// 4420// API parameter values that are decorated as "sensitive" in the API will not 4421// be included in the string output. The member name will be present, but the 4422// value will be replaced with "sensitive". 4423func (s UpdateExperimentTemplateStopConditionInput) GoString() string { 4424 return s.String() 4425} 4426 4427// Validate inspects the fields of the type to determine if they are valid. 4428func (s *UpdateExperimentTemplateStopConditionInput) Validate() error { 4429 invalidParams := request.ErrInvalidParams{Context: "UpdateExperimentTemplateStopConditionInput"} 4430 if s.Source == nil { 4431 invalidParams.Add(request.NewErrParamRequired("Source")) 4432 } 4433 if s.Value != nil && len(*s.Value) < 20 { 4434 invalidParams.Add(request.NewErrParamMinLen("Value", 20)) 4435 } 4436 4437 if invalidParams.Len() > 0 { 4438 return invalidParams 4439 } 4440 return nil 4441} 4442 4443// SetSource sets the Source field's value. 4444func (s *UpdateExperimentTemplateStopConditionInput) SetSource(v string) *UpdateExperimentTemplateStopConditionInput { 4445 s.Source = &v 4446 return s 4447} 4448 4449// SetValue sets the Value field's value. 4450func (s *UpdateExperimentTemplateStopConditionInput) SetValue(v string) *UpdateExperimentTemplateStopConditionInput { 4451 s.Value = &v 4452 return s 4453} 4454 4455// Specifies a target for an experiment. You must specify at least one Amazon 4456// Resource Name (ARN) or at least one resource tag. You cannot specify both. 4457type UpdateExperimentTemplateTargetInput struct { 4458 _ struct{} `type:"structure"` 4459 4460 // The filters to apply to identify target resources using specific attributes. 4461 Filters []*ExperimentTemplateTargetInputFilter `locationName:"filters" type:"list"` 4462 4463 // The Amazon Resource Names (ARNs) of the targets. 4464 ResourceArns []*string `locationName:"resourceArns" type:"list"` 4465 4466 // The tags for the target resources. 4467 ResourceTags map[string]*string `locationName:"resourceTags" type:"map"` 4468 4469 // The AWS resource type. The resource type must be supported for the specified 4470 // action. 4471 // 4472 // ResourceType is a required field 4473 ResourceType *string `locationName:"resourceType" type:"string" required:"true"` 4474 4475 // Scopes the identified resources to a specific count or percentage. 4476 // 4477 // SelectionMode is a required field 4478 SelectionMode *string `locationName:"selectionMode" type:"string" required:"true"` 4479} 4480 4481// String returns the string representation. 4482// 4483// API parameter values that are decorated as "sensitive" in the API will not 4484// be included in the string output. The member name will be present, but the 4485// value will be replaced with "sensitive". 4486func (s UpdateExperimentTemplateTargetInput) String() string { 4487 return awsutil.Prettify(s) 4488} 4489 4490// GoString returns the string representation. 4491// 4492// API parameter values that are decorated as "sensitive" in the API will not 4493// be included in the string output. The member name will be present, but the 4494// value will be replaced with "sensitive". 4495func (s UpdateExperimentTemplateTargetInput) GoString() string { 4496 return s.String() 4497} 4498 4499// Validate inspects the fields of the type to determine if they are valid. 4500func (s *UpdateExperimentTemplateTargetInput) Validate() error { 4501 invalidParams := request.ErrInvalidParams{Context: "UpdateExperimentTemplateTargetInput"} 4502 if s.ResourceType == nil { 4503 invalidParams.Add(request.NewErrParamRequired("ResourceType")) 4504 } 4505 if s.SelectionMode == nil { 4506 invalidParams.Add(request.NewErrParamRequired("SelectionMode")) 4507 } 4508 if s.Filters != nil { 4509 for i, v := range s.Filters { 4510 if v == nil { 4511 continue 4512 } 4513 if err := v.Validate(); err != nil { 4514 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams)) 4515 } 4516 } 4517 } 4518 4519 if invalidParams.Len() > 0 { 4520 return invalidParams 4521 } 4522 return nil 4523} 4524 4525// SetFilters sets the Filters field's value. 4526func (s *UpdateExperimentTemplateTargetInput) SetFilters(v []*ExperimentTemplateTargetInputFilter) *UpdateExperimentTemplateTargetInput { 4527 s.Filters = v 4528 return s 4529} 4530 4531// SetResourceArns sets the ResourceArns field's value. 4532func (s *UpdateExperimentTemplateTargetInput) SetResourceArns(v []*string) *UpdateExperimentTemplateTargetInput { 4533 s.ResourceArns = v 4534 return s 4535} 4536 4537// SetResourceTags sets the ResourceTags field's value. 4538func (s *UpdateExperimentTemplateTargetInput) SetResourceTags(v map[string]*string) *UpdateExperimentTemplateTargetInput { 4539 s.ResourceTags = v 4540 return s 4541} 4542 4543// SetResourceType sets the ResourceType field's value. 4544func (s *UpdateExperimentTemplateTargetInput) SetResourceType(v string) *UpdateExperimentTemplateTargetInput { 4545 s.ResourceType = &v 4546 return s 4547} 4548 4549// SetSelectionMode sets the SelectionMode field's value. 4550func (s *UpdateExperimentTemplateTargetInput) SetSelectionMode(v string) *UpdateExperimentTemplateTargetInput { 4551 s.SelectionMode = &v 4552 return s 4553} 4554 4555// The specified input is not valid, or fails to satisfy the constraints for 4556// the request. 4557type ValidationException struct { 4558 _ struct{} `type:"structure"` 4559 RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` 4560 4561 Message_ *string `locationName:"message" type:"string"` 4562} 4563 4564// String returns the string representation. 4565// 4566// API parameter values that are decorated as "sensitive" in the API will not 4567// be included in the string output. The member name will be present, but the 4568// value will be replaced with "sensitive". 4569func (s ValidationException) String() string { 4570 return awsutil.Prettify(s) 4571} 4572 4573// GoString returns the string representation. 4574// 4575// API parameter values that are decorated as "sensitive" in the API will not 4576// be included in the string output. The member name will be present, but the 4577// value will be replaced with "sensitive". 4578func (s ValidationException) GoString() string { 4579 return s.String() 4580} 4581 4582func newErrorValidationException(v protocol.ResponseMetadata) error { 4583 return &ValidationException{ 4584 RespMetadata: v, 4585 } 4586} 4587 4588// Code returns the exception type name. 4589func (s *ValidationException) Code() string { 4590 return "ValidationException" 4591} 4592 4593// Message returns the exception's message. 4594func (s *ValidationException) Message() string { 4595 if s.Message_ != nil { 4596 return *s.Message_ 4597 } 4598 return "" 4599} 4600 4601// OrigErr always returns nil, satisfies awserr.Error interface. 4602func (s *ValidationException) OrigErr() error { 4603 return nil 4604} 4605 4606func (s *ValidationException) Error() string { 4607 return fmt.Sprintf("%s: %s", s.Code(), s.Message()) 4608} 4609 4610// Status code returns the HTTP status code for the request's response error. 4611func (s *ValidationException) StatusCode() int { 4612 return s.RespMetadata.StatusCode 4613} 4614 4615// RequestID returns the service's response RequestID for request. 4616func (s *ValidationException) RequestID() string { 4617 return s.RespMetadata.RequestID 4618} 4619 4620const ( 4621 // ExperimentActionStatusPending is a ExperimentActionStatus enum value 4622 ExperimentActionStatusPending = "pending" 4623 4624 // ExperimentActionStatusInitiating is a ExperimentActionStatus enum value 4625 ExperimentActionStatusInitiating = "initiating" 4626 4627 // ExperimentActionStatusRunning is a ExperimentActionStatus enum value 4628 ExperimentActionStatusRunning = "running" 4629 4630 // ExperimentActionStatusCompleted is a ExperimentActionStatus enum value 4631 ExperimentActionStatusCompleted = "completed" 4632 4633 // ExperimentActionStatusCancelled is a ExperimentActionStatus enum value 4634 ExperimentActionStatusCancelled = "cancelled" 4635 4636 // ExperimentActionStatusStopping is a ExperimentActionStatus enum value 4637 ExperimentActionStatusStopping = "stopping" 4638 4639 // ExperimentActionStatusStopped is a ExperimentActionStatus enum value 4640 ExperimentActionStatusStopped = "stopped" 4641 4642 // ExperimentActionStatusFailed is a ExperimentActionStatus enum value 4643 ExperimentActionStatusFailed = "failed" 4644) 4645 4646// ExperimentActionStatus_Values returns all elements of the ExperimentActionStatus enum 4647func ExperimentActionStatus_Values() []string { 4648 return []string{ 4649 ExperimentActionStatusPending, 4650 ExperimentActionStatusInitiating, 4651 ExperimentActionStatusRunning, 4652 ExperimentActionStatusCompleted, 4653 ExperimentActionStatusCancelled, 4654 ExperimentActionStatusStopping, 4655 ExperimentActionStatusStopped, 4656 ExperimentActionStatusFailed, 4657 } 4658} 4659 4660const ( 4661 // ExperimentStatusPending is a ExperimentStatus enum value 4662 ExperimentStatusPending = "pending" 4663 4664 // ExperimentStatusInitiating is a ExperimentStatus enum value 4665 ExperimentStatusInitiating = "initiating" 4666 4667 // ExperimentStatusRunning is a ExperimentStatus enum value 4668 ExperimentStatusRunning = "running" 4669 4670 // ExperimentStatusCompleted is a ExperimentStatus enum value 4671 ExperimentStatusCompleted = "completed" 4672 4673 // ExperimentStatusStopping is a ExperimentStatus enum value 4674 ExperimentStatusStopping = "stopping" 4675 4676 // ExperimentStatusStopped is a ExperimentStatus enum value 4677 ExperimentStatusStopped = "stopped" 4678 4679 // ExperimentStatusFailed is a ExperimentStatus enum value 4680 ExperimentStatusFailed = "failed" 4681) 4682 4683// ExperimentStatus_Values returns all elements of the ExperimentStatus enum 4684func ExperimentStatus_Values() []string { 4685 return []string{ 4686 ExperimentStatusPending, 4687 ExperimentStatusInitiating, 4688 ExperimentStatusRunning, 4689 ExperimentStatusCompleted, 4690 ExperimentStatusStopping, 4691 ExperimentStatusStopped, 4692 ExperimentStatusFailed, 4693 } 4694} 4695