service/arczonalshift/api.go (1,887 lines of code) (raw):
// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
package arczonalshift
import (
"fmt"
"time"
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/awsutil"
"github.com/aws/aws-sdk-go/aws/request"
"github.com/aws/aws-sdk-go/private/protocol"
)
const opCancelZonalShift = "CancelZonalShift"
// CancelZonalShiftRequest generates a "aws/request.Request" representing the
// client's request for the CancelZonalShift operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See CancelZonalShift for more information on using the CancelZonalShift
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
// // Example sending a request using the CancelZonalShiftRequest method.
// req, resp := client.CancelZonalShiftRequest(params)
//
// err := req.Send()
// if err == nil { // resp is now filled
// fmt.Println(resp)
// }
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/arc-zonal-shift-2022-10-30/CancelZonalShift
func (c *ARCZonalShift) CancelZonalShiftRequest(input *CancelZonalShiftInput) (req *request.Request, output *CancelZonalShiftOutput) {
op := &request.Operation{
Name: opCancelZonalShift,
HTTPMethod: "DELETE",
HTTPPath: "/zonalshifts/{zonalShiftId}",
}
if input == nil {
input = &CancelZonalShiftInput{}
}
output = &CancelZonalShiftOutput{}
req = c.newRequest(op, input, output)
return
}
// CancelZonalShift API operation for AWS ARC - Zonal Shift.
//
// Cancel a zonal shift in Amazon Route 53 Application Recovery Controller.
// To cancel the zonal shift, specify the zonal shift ID.
//
// A zonal shift can be one that you've started for a resource in your Amazon
// Web Services account in an Amazon Web Services Region, or it can be a zonal
// shift started by a practice run with zonal autoshift.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for AWS ARC - Zonal Shift's
// API operation CancelZonalShift for usage and error information.
//
// Returned Error Types:
//
// - InternalServerException
// There was an internal server error.
//
// - ConflictException
// The request could not be processed because of conflict in the current state
// of the resource.
//
// - ResourceNotFoundException
// The input requested a resource that was not found.
//
// - ThrottlingException
// The request was denied due to request throttling.
//
// - ValidationException
// The input fails to satisfy the constraints specified by an Amazon Web Services
// service.
//
// - AccessDeniedException
// You do not have sufficient access to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/arc-zonal-shift-2022-10-30/CancelZonalShift
func (c *ARCZonalShift) CancelZonalShift(input *CancelZonalShiftInput) (*CancelZonalShiftOutput, error) {
req, out := c.CancelZonalShiftRequest(input)
return out, req.Send()
}
// CancelZonalShiftWithContext is the same as CancelZonalShift with the addition of
// the ability to pass a context and additional request options.
//
// See CancelZonalShift for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *ARCZonalShift) CancelZonalShiftWithContext(ctx aws.Context, input *CancelZonalShiftInput, opts ...request.Option) (*CancelZonalShiftOutput, error) {
req, out := c.CancelZonalShiftRequest(input)
req.SetContext(ctx)
req.ApplyOptions(opts...)
return out, req.Send()
}
const opCreatePracticeRunConfiguration = "CreatePracticeRunConfiguration"
// CreatePracticeRunConfigurationRequest generates a "aws/request.Request" representing the
// client's request for the CreatePracticeRunConfiguration operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See CreatePracticeRunConfiguration for more information on using the CreatePracticeRunConfiguration
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
// // Example sending a request using the CreatePracticeRunConfigurationRequest method.
// req, resp := client.CreatePracticeRunConfigurationRequest(params)
//
// err := req.Send()
// if err == nil { // resp is now filled
// fmt.Println(resp)
// }
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/arc-zonal-shift-2022-10-30/CreatePracticeRunConfiguration
func (c *ARCZonalShift) CreatePracticeRunConfigurationRequest(input *CreatePracticeRunConfigurationInput) (req *request.Request, output *CreatePracticeRunConfigurationOutput) {
op := &request.Operation{
Name: opCreatePracticeRunConfiguration,
HTTPMethod: "POST",
HTTPPath: "/configuration",
}
if input == nil {
input = &CreatePracticeRunConfigurationInput{}
}
output = &CreatePracticeRunConfigurationOutput{}
req = c.newRequest(op, input, output)
return
}
// CreatePracticeRunConfiguration API operation for AWS ARC - Zonal Shift.
//
// A practice run configuration for zonal autoshift is required when you enable
// zonal autoshift. A practice run configuration includes specifications for
// blocked dates and blocked time windows, and for Amazon CloudWatch alarms
// that you create to use with practice runs. The alarms that you specify are
// an outcome alarm, to monitor application health during practice runs and,
// optionally, a blocking alarm, to block practice runs from starting.
//
// When a resource has a practice run configuration, Route 53 ARC starts zonal
// shifts for the resource weekly, to shift traffic for practice runs. Practice
// runs help you to ensure that shifting away traffic from an Availability Zone
// during an autoshift is safe for your application.
//
// For more information, see Considerations when you configure zonal autoshift
// (https://docs.aws.amazon.com/r53recovery/latest/dg/arc-zonal-autoshift.considerations.html)
// in the Amazon Route 53 Application Recovery Controller Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for AWS ARC - Zonal Shift's
// API operation CreatePracticeRunConfiguration for usage and error information.
//
// Returned Error Types:
//
// - InternalServerException
// There was an internal server error.
//
// - ConflictException
// The request could not be processed because of conflict in the current state
// of the resource.
//
// - ResourceNotFoundException
// The input requested a resource that was not found.
//
// - ThrottlingException
// The request was denied due to request throttling.
//
// - ValidationException
// The input fails to satisfy the constraints specified by an Amazon Web Services
// service.
//
// - AccessDeniedException
// You do not have sufficient access to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/arc-zonal-shift-2022-10-30/CreatePracticeRunConfiguration
func (c *ARCZonalShift) CreatePracticeRunConfiguration(input *CreatePracticeRunConfigurationInput) (*CreatePracticeRunConfigurationOutput, error) {
req, out := c.CreatePracticeRunConfigurationRequest(input)
return out, req.Send()
}
// CreatePracticeRunConfigurationWithContext is the same as CreatePracticeRunConfiguration with the addition of
// the ability to pass a context and additional request options.
//
// See CreatePracticeRunConfiguration for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *ARCZonalShift) CreatePracticeRunConfigurationWithContext(ctx aws.Context, input *CreatePracticeRunConfigurationInput, opts ...request.Option) (*CreatePracticeRunConfigurationOutput, error) {
req, out := c.CreatePracticeRunConfigurationRequest(input)
req.SetContext(ctx)
req.ApplyOptions(opts...)
return out, req.Send()
}
const opDeletePracticeRunConfiguration = "DeletePracticeRunConfiguration"
// DeletePracticeRunConfigurationRequest generates a "aws/request.Request" representing the
// client's request for the DeletePracticeRunConfiguration operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DeletePracticeRunConfiguration for more information on using the DeletePracticeRunConfiguration
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
// // Example sending a request using the DeletePracticeRunConfigurationRequest method.
// req, resp := client.DeletePracticeRunConfigurationRequest(params)
//
// err := req.Send()
// if err == nil { // resp is now filled
// fmt.Println(resp)
// }
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/arc-zonal-shift-2022-10-30/DeletePracticeRunConfiguration
func (c *ARCZonalShift) DeletePracticeRunConfigurationRequest(input *DeletePracticeRunConfigurationInput) (req *request.Request, output *DeletePracticeRunConfigurationOutput) {
op := &request.Operation{
Name: opDeletePracticeRunConfiguration,
HTTPMethod: "DELETE",
HTTPPath: "/configuration/{resourceIdentifier}",
}
if input == nil {
input = &DeletePracticeRunConfigurationInput{}
}
output = &DeletePracticeRunConfigurationOutput{}
req = c.newRequest(op, input, output)
return
}
// DeletePracticeRunConfiguration API operation for AWS ARC - Zonal Shift.
//
// Deletes the practice run configuration for a resource. Before you can delete
// a practice run configuration for a resource., you must disable zonal autoshift
// for the resource. Practice runs must be configured for zonal autoshift to
// be enabled.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for AWS ARC - Zonal Shift's
// API operation DeletePracticeRunConfiguration for usage and error information.
//
// Returned Error Types:
//
// - InternalServerException
// There was an internal server error.
//
// - ConflictException
// The request could not be processed because of conflict in the current state
// of the resource.
//
// - ResourceNotFoundException
// The input requested a resource that was not found.
//
// - ThrottlingException
// The request was denied due to request throttling.
//
// - ValidationException
// The input fails to satisfy the constraints specified by an Amazon Web Services
// service.
//
// - AccessDeniedException
// You do not have sufficient access to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/arc-zonal-shift-2022-10-30/DeletePracticeRunConfiguration
func (c *ARCZonalShift) DeletePracticeRunConfiguration(input *DeletePracticeRunConfigurationInput) (*DeletePracticeRunConfigurationOutput, error) {
req, out := c.DeletePracticeRunConfigurationRequest(input)
return out, req.Send()
}
// DeletePracticeRunConfigurationWithContext is the same as DeletePracticeRunConfiguration with the addition of
// the ability to pass a context and additional request options.
//
// See DeletePracticeRunConfiguration for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *ARCZonalShift) DeletePracticeRunConfigurationWithContext(ctx aws.Context, input *DeletePracticeRunConfigurationInput, opts ...request.Option) (*DeletePracticeRunConfigurationOutput, error) {
req, out := c.DeletePracticeRunConfigurationRequest(input)
req.SetContext(ctx)
req.ApplyOptions(opts...)
return out, req.Send()
}
const opGetAutoshiftObserverNotificationStatus = "GetAutoshiftObserverNotificationStatus"
// GetAutoshiftObserverNotificationStatusRequest generates a "aws/request.Request" representing the
// client's request for the GetAutoshiftObserverNotificationStatus operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See GetAutoshiftObserverNotificationStatus for more information on using the GetAutoshiftObserverNotificationStatus
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
// // Example sending a request using the GetAutoshiftObserverNotificationStatusRequest method.
// req, resp := client.GetAutoshiftObserverNotificationStatusRequest(params)
//
// err := req.Send()
// if err == nil { // resp is now filled
// fmt.Println(resp)
// }
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/arc-zonal-shift-2022-10-30/GetAutoshiftObserverNotificationStatus
func (c *ARCZonalShift) GetAutoshiftObserverNotificationStatusRequest(input *GetAutoshiftObserverNotificationStatusInput) (req *request.Request, output *GetAutoshiftObserverNotificationStatusOutput) {
op := &request.Operation{
Name: opGetAutoshiftObserverNotificationStatus,
HTTPMethod: "GET",
HTTPPath: "/autoshift-observer-notification",
}
if input == nil {
input = &GetAutoshiftObserverNotificationStatusInput{}
}
output = &GetAutoshiftObserverNotificationStatusOutput{}
req = c.newRequest(op, input, output)
return
}
// GetAutoshiftObserverNotificationStatus API operation for AWS ARC - Zonal Shift.
//
// Returns the status of autoshift observer notification. Autoshift observer
// notification enables you to be notified, through Amazon EventBridge, when
// there is an autoshift event for zonal autoshift.
//
// If the status is ENABLED, Route 53 ARC includes all autoshift events when
// you use the EventBridge pattern Autoshift In Progress. When the status is
// DISABLED, Route 53 ARC includes only autoshift events for autoshifts when
// one or more of your resources is included in the autoshift.
//
// For more information, see Notifications for practice runs and autoshifts
// (https://docs.aws.amazon.com/r53recovery/latest/dg/arc-zonal-autoshift.how-it-works.html#ZAShiftNotification)
// in the Amazon Route 53 Application Recovery Controller Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for AWS ARC - Zonal Shift's
// API operation GetAutoshiftObserverNotificationStatus for usage and error information.
//
// Returned Error Types:
//
// - InternalServerException
// There was an internal server error.
//
// - ThrottlingException
// The request was denied due to request throttling.
//
// - AccessDeniedException
// You do not have sufficient access to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/arc-zonal-shift-2022-10-30/GetAutoshiftObserverNotificationStatus
func (c *ARCZonalShift) GetAutoshiftObserverNotificationStatus(input *GetAutoshiftObserverNotificationStatusInput) (*GetAutoshiftObserverNotificationStatusOutput, error) {
req, out := c.GetAutoshiftObserverNotificationStatusRequest(input)
return out, req.Send()
}
// GetAutoshiftObserverNotificationStatusWithContext is the same as GetAutoshiftObserverNotificationStatus with the addition of
// the ability to pass a context and additional request options.
//
// See GetAutoshiftObserverNotificationStatus for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *ARCZonalShift) GetAutoshiftObserverNotificationStatusWithContext(ctx aws.Context, input *GetAutoshiftObserverNotificationStatusInput, opts ...request.Option) (*GetAutoshiftObserverNotificationStatusOutput, error) {
req, out := c.GetAutoshiftObserverNotificationStatusRequest(input)
req.SetContext(ctx)
req.ApplyOptions(opts...)
return out, req.Send()
}
const opGetManagedResource = "GetManagedResource"
// GetManagedResourceRequest generates a "aws/request.Request" representing the
// client's request for the GetManagedResource operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See GetManagedResource for more information on using the GetManagedResource
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
// // Example sending a request using the GetManagedResourceRequest method.
// req, resp := client.GetManagedResourceRequest(params)
//
// err := req.Send()
// if err == nil { // resp is now filled
// fmt.Println(resp)
// }
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/arc-zonal-shift-2022-10-30/GetManagedResource
func (c *ARCZonalShift) GetManagedResourceRequest(input *GetManagedResourceInput) (req *request.Request, output *GetManagedResourceOutput) {
op := &request.Operation{
Name: opGetManagedResource,
HTTPMethod: "GET",
HTTPPath: "/managedresources/{resourceIdentifier}",
}
if input == nil {
input = &GetManagedResourceInput{}
}
output = &GetManagedResourceOutput{}
req = c.newRequest(op, input, output)
return
}
// GetManagedResource API operation for AWS ARC - Zonal Shift.
//
// Get information about a resource that's been registered for zonal shifts
// with Amazon Route 53 Application Recovery Controller in this Amazon Web Services
// Region. Resources that are registered for zonal shifts are managed resources
// in Route 53 ARC. You can start zonal shifts and configure zonal autoshift
// for managed resources.
//
// At this time, you can only start a zonal shift or configure zonal autoshift
// for Network Load Balancers and Application Load Balancers with cross-zone
// load balancing turned off.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for AWS ARC - Zonal Shift's
// API operation GetManagedResource for usage and error information.
//
// Returned Error Types:
//
// - InternalServerException
// There was an internal server error.
//
// - ResourceNotFoundException
// The input requested a resource that was not found.
//
// - ThrottlingException
// The request was denied due to request throttling.
//
// - ValidationException
// The input fails to satisfy the constraints specified by an Amazon Web Services
// service.
//
// - AccessDeniedException
// You do not have sufficient access to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/arc-zonal-shift-2022-10-30/GetManagedResource
func (c *ARCZonalShift) GetManagedResource(input *GetManagedResourceInput) (*GetManagedResourceOutput, error) {
req, out := c.GetManagedResourceRequest(input)
return out, req.Send()
}
// GetManagedResourceWithContext is the same as GetManagedResource with the addition of
// the ability to pass a context and additional request options.
//
// See GetManagedResource for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *ARCZonalShift) GetManagedResourceWithContext(ctx aws.Context, input *GetManagedResourceInput, opts ...request.Option) (*GetManagedResourceOutput, error) {
req, out := c.GetManagedResourceRequest(input)
req.SetContext(ctx)
req.ApplyOptions(opts...)
return out, req.Send()
}
const opListAutoshifts = "ListAutoshifts"
// ListAutoshiftsRequest generates a "aws/request.Request" representing the
// client's request for the ListAutoshifts operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListAutoshifts for more information on using the ListAutoshifts
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
// // Example sending a request using the ListAutoshiftsRequest method.
// req, resp := client.ListAutoshiftsRequest(params)
//
// err := req.Send()
// if err == nil { // resp is now filled
// fmt.Println(resp)
// }
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/arc-zonal-shift-2022-10-30/ListAutoshifts
func (c *ARCZonalShift) ListAutoshiftsRequest(input *ListAutoshiftsInput) (req *request.Request, output *ListAutoshiftsOutput) {
op := &request.Operation{
Name: opListAutoshifts,
HTTPMethod: "GET",
HTTPPath: "/autoshifts",
Paginator: &request.Paginator{
InputTokens: []string{"nextToken"},
OutputTokens: []string{"nextToken"},
LimitToken: "maxResults",
TruncationToken: "",
},
}
if input == nil {
input = &ListAutoshiftsInput{}
}
output = &ListAutoshiftsOutput{}
req = c.newRequest(op, input, output)
return
}
// ListAutoshifts API operation for AWS ARC - Zonal Shift.
//
// Returns a list of autoshifts for an Amazon Web Services Region. By default,
// the call returns only ACTIVE autoshifts. Optionally, you can specify the
// status parameter to return COMPLETED autoshifts.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for AWS ARC - Zonal Shift's
// API operation ListAutoshifts for usage and error information.
//
// Returned Error Types:
//
// - InternalServerException
// There was an internal server error.
//
// - ThrottlingException
// The request was denied due to request throttling.
//
// - ValidationException
// The input fails to satisfy the constraints specified by an Amazon Web Services
// service.
//
// - AccessDeniedException
// You do not have sufficient access to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/arc-zonal-shift-2022-10-30/ListAutoshifts
func (c *ARCZonalShift) ListAutoshifts(input *ListAutoshiftsInput) (*ListAutoshiftsOutput, error) {
req, out := c.ListAutoshiftsRequest(input)
return out, req.Send()
}
// ListAutoshiftsWithContext is the same as ListAutoshifts with the addition of
// the ability to pass a context and additional request options.
//
// See ListAutoshifts for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *ARCZonalShift) ListAutoshiftsWithContext(ctx aws.Context, input *ListAutoshiftsInput, opts ...request.Option) (*ListAutoshiftsOutput, error) {
req, out := c.ListAutoshiftsRequest(input)
req.SetContext(ctx)
req.ApplyOptions(opts...)
return out, req.Send()
}
// ListAutoshiftsPages iterates over the pages of a ListAutoshifts operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListAutoshifts method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
// // Example iterating over at most 3 pages of a ListAutoshifts operation.
// pageNum := 0
// err := client.ListAutoshiftsPages(params,
// func(page *arczonalshift.ListAutoshiftsOutput, lastPage bool) bool {
// pageNum++
// fmt.Println(page)
// return pageNum <= 3
// })
func (c *ARCZonalShift) ListAutoshiftsPages(input *ListAutoshiftsInput, fn func(*ListAutoshiftsOutput, bool) bool) error {
return c.ListAutoshiftsPagesWithContext(aws.BackgroundContext(), input, fn)
}
// ListAutoshiftsPagesWithContext same as ListAutoshiftsPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *ARCZonalShift) ListAutoshiftsPagesWithContext(ctx aws.Context, input *ListAutoshiftsInput, fn func(*ListAutoshiftsOutput, bool) bool, opts ...request.Option) error {
p := request.Pagination{
NewRequest: func() (*request.Request, error) {
var inCpy *ListAutoshiftsInput
if input != nil {
tmp := *input
inCpy = &tmp
}
req, _ := c.ListAutoshiftsRequest(inCpy)
req.SetContext(ctx)
req.ApplyOptions(opts...)
return req, nil
},
}
for p.Next() {
if !fn(p.Page().(*ListAutoshiftsOutput), !p.HasNextPage()) {
break
}
}
return p.Err()
}
const opListManagedResources = "ListManagedResources"
// ListManagedResourcesRequest generates a "aws/request.Request" representing the
// client's request for the ListManagedResources operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListManagedResources for more information on using the ListManagedResources
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
// // Example sending a request using the ListManagedResourcesRequest method.
// req, resp := client.ListManagedResourcesRequest(params)
//
// err := req.Send()
// if err == nil { // resp is now filled
// fmt.Println(resp)
// }
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/arc-zonal-shift-2022-10-30/ListManagedResources
func (c *ARCZonalShift) ListManagedResourcesRequest(input *ListManagedResourcesInput) (req *request.Request, output *ListManagedResourcesOutput) {
op := &request.Operation{
Name: opListManagedResources,
HTTPMethod: "GET",
HTTPPath: "/managedresources",
Paginator: &request.Paginator{
InputTokens: []string{"nextToken"},
OutputTokens: []string{"nextToken"},
LimitToken: "maxResults",
TruncationToken: "",
},
}
if input == nil {
input = &ListManagedResourcesInput{}
}
output = &ListManagedResourcesOutput{}
req = c.newRequest(op, input, output)
return
}
// ListManagedResources API operation for AWS ARC - Zonal Shift.
//
// Lists all the resources in your Amazon Web Services account in this Amazon
// Web Services Region that are managed for zonal shifts in Amazon Route 53
// Application Recovery Controller, and information about them. The information
// includes the zonal autoshift status for the resource, as well as the Amazon
// Resource Name (ARN), the Availability Zones that each resource is deployed
// in, and the resource name.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for AWS ARC - Zonal Shift's
// API operation ListManagedResources for usage and error information.
//
// Returned Error Types:
//
// - InternalServerException
// There was an internal server error.
//
// - ThrottlingException
// The request was denied due to request throttling.
//
// - ValidationException
// The input fails to satisfy the constraints specified by an Amazon Web Services
// service.
//
// - AccessDeniedException
// You do not have sufficient access to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/arc-zonal-shift-2022-10-30/ListManagedResources
func (c *ARCZonalShift) ListManagedResources(input *ListManagedResourcesInput) (*ListManagedResourcesOutput, error) {
req, out := c.ListManagedResourcesRequest(input)
return out, req.Send()
}
// ListManagedResourcesWithContext is the same as ListManagedResources with the addition of
// the ability to pass a context and additional request options.
//
// See ListManagedResources for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *ARCZonalShift) ListManagedResourcesWithContext(ctx aws.Context, input *ListManagedResourcesInput, opts ...request.Option) (*ListManagedResourcesOutput, error) {
req, out := c.ListManagedResourcesRequest(input)
req.SetContext(ctx)
req.ApplyOptions(opts...)
return out, req.Send()
}
// ListManagedResourcesPages iterates over the pages of a ListManagedResources operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListManagedResources method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
// // Example iterating over at most 3 pages of a ListManagedResources operation.
// pageNum := 0
// err := client.ListManagedResourcesPages(params,
// func(page *arczonalshift.ListManagedResourcesOutput, lastPage bool) bool {
// pageNum++
// fmt.Println(page)
// return pageNum <= 3
// })
func (c *ARCZonalShift) ListManagedResourcesPages(input *ListManagedResourcesInput, fn func(*ListManagedResourcesOutput, bool) bool) error {
return c.ListManagedResourcesPagesWithContext(aws.BackgroundContext(), input, fn)
}
// ListManagedResourcesPagesWithContext same as ListManagedResourcesPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *ARCZonalShift) ListManagedResourcesPagesWithContext(ctx aws.Context, input *ListManagedResourcesInput, fn func(*ListManagedResourcesOutput, bool) bool, opts ...request.Option) error {
p := request.Pagination{
NewRequest: func() (*request.Request, error) {
var inCpy *ListManagedResourcesInput
if input != nil {
tmp := *input
inCpy = &tmp
}
req, _ := c.ListManagedResourcesRequest(inCpy)
req.SetContext(ctx)
req.ApplyOptions(opts...)
return req, nil
},
}
for p.Next() {
if !fn(p.Page().(*ListManagedResourcesOutput), !p.HasNextPage()) {
break
}
}
return p.Err()
}
const opListZonalShifts = "ListZonalShifts"
// ListZonalShiftsRequest generates a "aws/request.Request" representing the
// client's request for the ListZonalShifts operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListZonalShifts for more information on using the ListZonalShifts
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
// // Example sending a request using the ListZonalShiftsRequest method.
// req, resp := client.ListZonalShiftsRequest(params)
//
// err := req.Send()
// if err == nil { // resp is now filled
// fmt.Println(resp)
// }
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/arc-zonal-shift-2022-10-30/ListZonalShifts
func (c *ARCZonalShift) ListZonalShiftsRequest(input *ListZonalShiftsInput) (req *request.Request, output *ListZonalShiftsOutput) {
op := &request.Operation{
Name: opListZonalShifts,
HTTPMethod: "GET",
HTTPPath: "/zonalshifts",
Paginator: &request.Paginator{
InputTokens: []string{"nextToken"},
OutputTokens: []string{"nextToken"},
LimitToken: "maxResults",
TruncationToken: "",
},
}
if input == nil {
input = &ListZonalShiftsInput{}
}
output = &ListZonalShiftsOutput{}
req = c.newRequest(op, input, output)
return
}
// ListZonalShifts API operation for AWS ARC - Zonal Shift.
//
// Lists all active and completed zonal shifts in Amazon Route 53 Application
// Recovery Controller in your Amazon Web Services account in this Amazon Web
// Services Region. ListZonalShifts returns customer-initiated zonal shifts,
// as well as practice run zonal shifts that Route 53 ARC started on your behalf
// for zonal autoshift.
//
// The ListZonalShifts operation does not list autoshifts. For more information
// about listing autoshifts, see ">ListAutoshifts (https://docs.aws.amazon.com/arc-zonal-shift/latest/api/API_ListAutoshifts.html).
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for AWS ARC - Zonal Shift's
// API operation ListZonalShifts for usage and error information.
//
// Returned Error Types:
//
// - InternalServerException
// There was an internal server error.
//
// - ThrottlingException
// The request was denied due to request throttling.
//
// - ValidationException
// The input fails to satisfy the constraints specified by an Amazon Web Services
// service.
//
// - AccessDeniedException
// You do not have sufficient access to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/arc-zonal-shift-2022-10-30/ListZonalShifts
func (c *ARCZonalShift) ListZonalShifts(input *ListZonalShiftsInput) (*ListZonalShiftsOutput, error) {
req, out := c.ListZonalShiftsRequest(input)
return out, req.Send()
}
// ListZonalShiftsWithContext is the same as ListZonalShifts with the addition of
// the ability to pass a context and additional request options.
//
// See ListZonalShifts for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *ARCZonalShift) ListZonalShiftsWithContext(ctx aws.Context, input *ListZonalShiftsInput, opts ...request.Option) (*ListZonalShiftsOutput, error) {
req, out := c.ListZonalShiftsRequest(input)
req.SetContext(ctx)
req.ApplyOptions(opts...)
return out, req.Send()
}
// ListZonalShiftsPages iterates over the pages of a ListZonalShifts operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListZonalShifts method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
// // Example iterating over at most 3 pages of a ListZonalShifts operation.
// pageNum := 0
// err := client.ListZonalShiftsPages(params,
// func(page *arczonalshift.ListZonalShiftsOutput, lastPage bool) bool {
// pageNum++
// fmt.Println(page)
// return pageNum <= 3
// })
func (c *ARCZonalShift) ListZonalShiftsPages(input *ListZonalShiftsInput, fn func(*ListZonalShiftsOutput, bool) bool) error {
return c.ListZonalShiftsPagesWithContext(aws.BackgroundContext(), input, fn)
}
// ListZonalShiftsPagesWithContext same as ListZonalShiftsPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *ARCZonalShift) ListZonalShiftsPagesWithContext(ctx aws.Context, input *ListZonalShiftsInput, fn func(*ListZonalShiftsOutput, bool) bool, opts ...request.Option) error {
p := request.Pagination{
NewRequest: func() (*request.Request, error) {
var inCpy *ListZonalShiftsInput
if input != nil {
tmp := *input
inCpy = &tmp
}
req, _ := c.ListZonalShiftsRequest(inCpy)
req.SetContext(ctx)
req.ApplyOptions(opts...)
return req, nil
},
}
for p.Next() {
if !fn(p.Page().(*ListZonalShiftsOutput), !p.HasNextPage()) {
break
}
}
return p.Err()
}
const opStartZonalShift = "StartZonalShift"
// StartZonalShiftRequest generates a "aws/request.Request" representing the
// client's request for the StartZonalShift operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See StartZonalShift for more information on using the StartZonalShift
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
// // Example sending a request using the StartZonalShiftRequest method.
// req, resp := client.StartZonalShiftRequest(params)
//
// err := req.Send()
// if err == nil { // resp is now filled
// fmt.Println(resp)
// }
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/arc-zonal-shift-2022-10-30/StartZonalShift
func (c *ARCZonalShift) StartZonalShiftRequest(input *StartZonalShiftInput) (req *request.Request, output *StartZonalShiftOutput) {
op := &request.Operation{
Name: opStartZonalShift,
HTTPMethod: "POST",
HTTPPath: "/zonalshifts",
}
if input == nil {
input = &StartZonalShiftInput{}
}
output = &StartZonalShiftOutput{}
req = c.newRequest(op, input, output)
return
}
// StartZonalShift API operation for AWS ARC - Zonal Shift.
//
// You start a zonal shift to temporarily move load balancer traffic away from
// an Availability Zone in an Amazon Web Services Region, to help your application
// recover immediately, for example, from a developer's bad code deployment
// or from an Amazon Web Services infrastructure failure in a single Availability
// Zone. You can start a zonal shift in Route 53 ARC only for managed resources
// in your Amazon Web Services account in an Amazon Web Services Region. Resources
// are automatically registered with Route 53 ARC by Amazon Web Services services.
//
// At this time, you can only start a zonal shift for Network Load Balancers
// and Application Load Balancers with cross-zone load balancing turned off.
//
// When you start a zonal shift, traffic for the resource is no longer routed
// to the Availability Zone. The zonal shift is created immediately in Route
// 53 ARC. However, it can take a short time, typically up to a few minutes,
// for existing, in-progress connections in the Availability Zone to complete.
//
// For more information, see Zonal shift (https://docs.aws.amazon.com/r53recovery/latest/dg/arc-zonal-shift.html)
// in the Amazon Route 53 Application Recovery Controller Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for AWS ARC - Zonal Shift's
// API operation StartZonalShift for usage and error information.
//
// Returned Error Types:
//
// - InternalServerException
// There was an internal server error.
//
// - ConflictException
// The request could not be processed because of conflict in the current state
// of the resource.
//
// - ResourceNotFoundException
// The input requested a resource that was not found.
//
// - ThrottlingException
// The request was denied due to request throttling.
//
// - ValidationException
// The input fails to satisfy the constraints specified by an Amazon Web Services
// service.
//
// - AccessDeniedException
// You do not have sufficient access to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/arc-zonal-shift-2022-10-30/StartZonalShift
func (c *ARCZonalShift) StartZonalShift(input *StartZonalShiftInput) (*StartZonalShiftOutput, error) {
req, out := c.StartZonalShiftRequest(input)
return out, req.Send()
}
// StartZonalShiftWithContext is the same as StartZonalShift with the addition of
// the ability to pass a context and additional request options.
//
// See StartZonalShift for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *ARCZonalShift) StartZonalShiftWithContext(ctx aws.Context, input *StartZonalShiftInput, opts ...request.Option) (*StartZonalShiftOutput, error) {
req, out := c.StartZonalShiftRequest(input)
req.SetContext(ctx)
req.ApplyOptions(opts...)
return out, req.Send()
}
const opUpdateAutoshiftObserverNotificationStatus = "UpdateAutoshiftObserverNotificationStatus"
// UpdateAutoshiftObserverNotificationStatusRequest generates a "aws/request.Request" representing the
// client's request for the UpdateAutoshiftObserverNotificationStatus operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See UpdateAutoshiftObserverNotificationStatus for more information on using the UpdateAutoshiftObserverNotificationStatus
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
// // Example sending a request using the UpdateAutoshiftObserverNotificationStatusRequest method.
// req, resp := client.UpdateAutoshiftObserverNotificationStatusRequest(params)
//
// err := req.Send()
// if err == nil { // resp is now filled
// fmt.Println(resp)
// }
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/arc-zonal-shift-2022-10-30/UpdateAutoshiftObserverNotificationStatus
func (c *ARCZonalShift) UpdateAutoshiftObserverNotificationStatusRequest(input *UpdateAutoshiftObserverNotificationStatusInput) (req *request.Request, output *UpdateAutoshiftObserverNotificationStatusOutput) {
op := &request.Operation{
Name: opUpdateAutoshiftObserverNotificationStatus,
HTTPMethod: "PUT",
HTTPPath: "/autoshift-observer-notification",
}
if input == nil {
input = &UpdateAutoshiftObserverNotificationStatusInput{}
}
output = &UpdateAutoshiftObserverNotificationStatusOutput{}
req = c.newRequest(op, input, output)
return
}
// UpdateAutoshiftObserverNotificationStatus API operation for AWS ARC - Zonal Shift.
//
// Update the status of autoshift observer notification. Autoshift observer
// notification enables you to be notified, through Amazon EventBridge, when
// there is an autoshift event for zonal autoshift.
//
// If the status is ENABLED, Route 53 ARC includes all autoshift events when
// you use the EventBridge pattern Autoshift In Progress. When the status is
// DISABLED, Route 53 ARC includes only autoshift events for autoshifts when
// one or more of your resources is included in the autoshift.
//
// For more information, see Notifications for practice runs and autoshifts
// (https://docs.aws.amazon.com/r53recovery/latest/dg/arc-zonal-autoshift.how-it-works.html#ZAShiftNotification)
// in the Amazon Route 53 Application Recovery Controller Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for AWS ARC - Zonal Shift's
// API operation UpdateAutoshiftObserverNotificationStatus for usage and error information.
//
// Returned Error Types:
//
// - InternalServerException
// There was an internal server error.
//
// - ThrottlingException
// The request was denied due to request throttling.
//
// - ValidationException
// The input fails to satisfy the constraints specified by an Amazon Web Services
// service.
//
// - AccessDeniedException
// You do not have sufficient access to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/arc-zonal-shift-2022-10-30/UpdateAutoshiftObserverNotificationStatus
func (c *ARCZonalShift) UpdateAutoshiftObserverNotificationStatus(input *UpdateAutoshiftObserverNotificationStatusInput) (*UpdateAutoshiftObserverNotificationStatusOutput, error) {
req, out := c.UpdateAutoshiftObserverNotificationStatusRequest(input)
return out, req.Send()
}
// UpdateAutoshiftObserverNotificationStatusWithContext is the same as UpdateAutoshiftObserverNotificationStatus with the addition of
// the ability to pass a context and additional request options.
//
// See UpdateAutoshiftObserverNotificationStatus for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *ARCZonalShift) UpdateAutoshiftObserverNotificationStatusWithContext(ctx aws.Context, input *UpdateAutoshiftObserverNotificationStatusInput, opts ...request.Option) (*UpdateAutoshiftObserverNotificationStatusOutput, error) {
req, out := c.UpdateAutoshiftObserverNotificationStatusRequest(input)
req.SetContext(ctx)
req.ApplyOptions(opts...)
return out, req.Send()
}
const opUpdatePracticeRunConfiguration = "UpdatePracticeRunConfiguration"
// UpdatePracticeRunConfigurationRequest generates a "aws/request.Request" representing the
// client's request for the UpdatePracticeRunConfiguration operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See UpdatePracticeRunConfiguration for more information on using the UpdatePracticeRunConfiguration
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
// // Example sending a request using the UpdatePracticeRunConfigurationRequest method.
// req, resp := client.UpdatePracticeRunConfigurationRequest(params)
//
// err := req.Send()
// if err == nil { // resp is now filled
// fmt.Println(resp)
// }
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/arc-zonal-shift-2022-10-30/UpdatePracticeRunConfiguration
func (c *ARCZonalShift) UpdatePracticeRunConfigurationRequest(input *UpdatePracticeRunConfigurationInput) (req *request.Request, output *UpdatePracticeRunConfigurationOutput) {
op := &request.Operation{
Name: opUpdatePracticeRunConfiguration,
HTTPMethod: "PATCH",
HTTPPath: "/configuration/{resourceIdentifier}",
}
if input == nil {
input = &UpdatePracticeRunConfigurationInput{}
}
output = &UpdatePracticeRunConfigurationOutput{}
req = c.newRequest(op, input, output)
return
}
// UpdatePracticeRunConfiguration API operation for AWS ARC - Zonal Shift.
//
// Update a practice run configuration to change one or more of the following:
// add, change, or remove the blocking alarm; change the outcome alarm; or add,
// change, or remove blocking dates or time windows.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for AWS ARC - Zonal Shift's
// API operation UpdatePracticeRunConfiguration for usage and error information.
//
// Returned Error Types:
//
// - InternalServerException
// There was an internal server error.
//
// - ConflictException
// The request could not be processed because of conflict in the current state
// of the resource.
//
// - ResourceNotFoundException
// The input requested a resource that was not found.
//
// - ThrottlingException
// The request was denied due to request throttling.
//
// - ValidationException
// The input fails to satisfy the constraints specified by an Amazon Web Services
// service.
//
// - AccessDeniedException
// You do not have sufficient access to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/arc-zonal-shift-2022-10-30/UpdatePracticeRunConfiguration
func (c *ARCZonalShift) UpdatePracticeRunConfiguration(input *UpdatePracticeRunConfigurationInput) (*UpdatePracticeRunConfigurationOutput, error) {
req, out := c.UpdatePracticeRunConfigurationRequest(input)
return out, req.Send()
}
// UpdatePracticeRunConfigurationWithContext is the same as UpdatePracticeRunConfiguration with the addition of
// the ability to pass a context and additional request options.
//
// See UpdatePracticeRunConfiguration for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *ARCZonalShift) UpdatePracticeRunConfigurationWithContext(ctx aws.Context, input *UpdatePracticeRunConfigurationInput, opts ...request.Option) (*UpdatePracticeRunConfigurationOutput, error) {
req, out := c.UpdatePracticeRunConfigurationRequest(input)
req.SetContext(ctx)
req.ApplyOptions(opts...)
return out, req.Send()
}
const opUpdateZonalAutoshiftConfiguration = "UpdateZonalAutoshiftConfiguration"
// UpdateZonalAutoshiftConfigurationRequest generates a "aws/request.Request" representing the
// client's request for the UpdateZonalAutoshiftConfiguration operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See UpdateZonalAutoshiftConfiguration for more information on using the UpdateZonalAutoshiftConfiguration
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
// // Example sending a request using the UpdateZonalAutoshiftConfigurationRequest method.
// req, resp := client.UpdateZonalAutoshiftConfigurationRequest(params)
//
// err := req.Send()
// if err == nil { // resp is now filled
// fmt.Println(resp)
// }
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/arc-zonal-shift-2022-10-30/UpdateZonalAutoshiftConfiguration
func (c *ARCZonalShift) UpdateZonalAutoshiftConfigurationRequest(input *UpdateZonalAutoshiftConfigurationInput) (req *request.Request, output *UpdateZonalAutoshiftConfigurationOutput) {
op := &request.Operation{
Name: opUpdateZonalAutoshiftConfiguration,
HTTPMethod: "PUT",
HTTPPath: "/managedresources/{resourceIdentifier}",
}
if input == nil {
input = &UpdateZonalAutoshiftConfigurationInput{}
}
output = &UpdateZonalAutoshiftConfigurationOutput{}
req = c.newRequest(op, input, output)
return
}
// UpdateZonalAutoshiftConfiguration API operation for AWS ARC - Zonal Shift.
//
// The zonal autoshift configuration for a resource includes the practice run
// configuration and the status for running autoshifts, zonal autoshift status.
// When a resource has a practice run configuation, Route 53 ARC starts weekly
// zonal shifts for the resource, to shift traffic away from an Availability
// Zone. Weekly practice runs help you to make sure that your application can
// continue to operate normally with the loss of one Availability Zone.
//
// You can update the zonal autoshift autoshift status to enable or disable
// zonal autoshift. When zonal autoshift is ENABLED, you authorize Amazon Web
// Services to shift away resource traffic for an application from an Availability
// Zone during events, on your behalf, to help reduce time to recovery. Traffic
// is also shifted away for the required weekly practice runs.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for AWS ARC - Zonal Shift's
// API operation UpdateZonalAutoshiftConfiguration for usage and error information.
//
// Returned Error Types:
//
// - InternalServerException
// There was an internal server error.
//
// - ConflictException
// The request could not be processed because of conflict in the current state
// of the resource.
//
// - ResourceNotFoundException
// The input requested a resource that was not found.
//
// - ThrottlingException
// The request was denied due to request throttling.
//
// - ValidationException
// The input fails to satisfy the constraints specified by an Amazon Web Services
// service.
//
// - AccessDeniedException
// You do not have sufficient access to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/arc-zonal-shift-2022-10-30/UpdateZonalAutoshiftConfiguration
func (c *ARCZonalShift) UpdateZonalAutoshiftConfiguration(input *UpdateZonalAutoshiftConfigurationInput) (*UpdateZonalAutoshiftConfigurationOutput, error) {
req, out := c.UpdateZonalAutoshiftConfigurationRequest(input)
return out, req.Send()
}
// UpdateZonalAutoshiftConfigurationWithContext is the same as UpdateZonalAutoshiftConfiguration with the addition of
// the ability to pass a context and additional request options.
//
// See UpdateZonalAutoshiftConfiguration for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *ARCZonalShift) UpdateZonalAutoshiftConfigurationWithContext(ctx aws.Context, input *UpdateZonalAutoshiftConfigurationInput, opts ...request.Option) (*UpdateZonalAutoshiftConfigurationOutput, error) {
req, out := c.UpdateZonalAutoshiftConfigurationRequest(input)
req.SetContext(ctx)
req.ApplyOptions(opts...)
return out, req.Send()
}
const opUpdateZonalShift = "UpdateZonalShift"
// UpdateZonalShiftRequest generates a "aws/request.Request" representing the
// client's request for the UpdateZonalShift operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See UpdateZonalShift for more information on using the UpdateZonalShift
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
// // Example sending a request using the UpdateZonalShiftRequest method.
// req, resp := client.UpdateZonalShiftRequest(params)
//
// err := req.Send()
// if err == nil { // resp is now filled
// fmt.Println(resp)
// }
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/arc-zonal-shift-2022-10-30/UpdateZonalShift
func (c *ARCZonalShift) UpdateZonalShiftRequest(input *UpdateZonalShiftInput) (req *request.Request, output *UpdateZonalShiftOutput) {
op := &request.Operation{
Name: opUpdateZonalShift,
HTTPMethod: "PATCH",
HTTPPath: "/zonalshifts/{zonalShiftId}",
}
if input == nil {
input = &UpdateZonalShiftInput{}
}
output = &UpdateZonalShiftOutput{}
req = c.newRequest(op, input, output)
return
}
// UpdateZonalShift API operation for AWS ARC - Zonal Shift.
//
// Update an active zonal shift in Amazon Route 53 Application Recovery Controller
// in your Amazon Web Services account. You can update a zonal shift to set
// a new expiration, or edit or replace the comment for the zonal shift.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for AWS ARC - Zonal Shift's
// API operation UpdateZonalShift for usage and error information.
//
// Returned Error Types:
//
// - InternalServerException
// There was an internal server error.
//
// - ConflictException
// The request could not be processed because of conflict in the current state
// of the resource.
//
// - ResourceNotFoundException
// The input requested a resource that was not found.
//
// - ThrottlingException
// The request was denied due to request throttling.
//
// - ValidationException
// The input fails to satisfy the constraints specified by an Amazon Web Services
// service.
//
// - AccessDeniedException
// You do not have sufficient access to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/arc-zonal-shift-2022-10-30/UpdateZonalShift
func (c *ARCZonalShift) UpdateZonalShift(input *UpdateZonalShiftInput) (*UpdateZonalShiftOutput, error) {
req, out := c.UpdateZonalShiftRequest(input)
return out, req.Send()
}
// UpdateZonalShiftWithContext is the same as UpdateZonalShift with the addition of
// the ability to pass a context and additional request options.
//
// See UpdateZonalShift for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *ARCZonalShift) UpdateZonalShiftWithContext(ctx aws.Context, input *UpdateZonalShiftInput, opts ...request.Option) (*UpdateZonalShiftOutput, error) {
req, out := c.UpdateZonalShiftRequest(input)
req.SetContext(ctx)
req.ApplyOptions(opts...)
return out, req.Send()
}
// You do not have sufficient access to perform this action.
type AccessDeniedException struct {
_ struct{} `type:"structure"`
RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
Message_ *string `locationName:"message" type:"string"`
}
// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AccessDeniedException) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AccessDeniedException) GoString() string {
return s.String()
}
func newErrorAccessDeniedException(v protocol.ResponseMetadata) error {
return &AccessDeniedException{
RespMetadata: v,
}
}
// Code returns the exception type name.
func (s *AccessDeniedException) Code() string {
return "AccessDeniedException"
}
// Message returns the exception's message.
func (s *AccessDeniedException) Message() string {
if s.Message_ != nil {
return *s.Message_
}
return ""
}
// OrigErr always returns nil, satisfies awserr.Error interface.
func (s *AccessDeniedException) OrigErr() error {
return nil
}
func (s *AccessDeniedException) Error() string {
return fmt.Sprintf("%s: %s", s.Code(), s.Message())
}
// Status code returns the HTTP status code for the request's response error.
func (s *AccessDeniedException) StatusCode() int {
return s.RespMetadata.StatusCode
}
// RequestID returns the service's response RequestID for request.
func (s *AccessDeniedException) RequestID() string {
return s.RespMetadata.RequestID
}
// A complex structure that lists an autoshift that is currently active for
// a managed resource and information about the autoshift.
//
// For more information, see How zonal autoshift and practice runs work (https://docs.aws.amazon.com/r53recovery/latest/dg/arc-zonal-autoshift.how-it-works.html)
// in the Amazon Route 53 Application Recovery Controller Developer Guide.
type AutoshiftInResource struct {
_ struct{} `type:"structure"`
// The appliedStatus field specifies which application traffic shift is in effect
// for a resource when there is more than one active traffic shift. There can
// be more than one application traffic shift in progress at the same time -
// that is, practice run zonal shifts, customer-initiated zonal shifts, or an
// autoshift. The appliedStatus field for a shift that is in progress for a
// resource can have one of two values: APPLIED or NOT_APPLIED. The zonal shift
// or autoshift that is currently in effect for the resource has an appliedStatus
// set to APPLIED.
//
// The overall principle for precedence is that zonal shifts that you start
// as a customer take precedence autoshifts, which take precedence over practice
// runs. That is, customer-initiated zonal shifts > autoshifts > practice run
// zonal shifts.
//
// For more information, see How zonal autoshift and practice runs work (https://docs.aws.amazon.com/r53recovery/latest/dg/arc-zonal-autoshift.how-it-works.html)
// in the Amazon Route 53 Application Recovery Controller Developer Guide.
//
// AppliedStatus is a required field
AppliedStatus *string `locationName:"appliedStatus" type:"string" required:"true" enum:"AutoshiftAppliedStatus"`
// The Availability Zone (for example, use1-az1) that traffic is shifted away
// from for a resource, when Amazon Web Services starts an autoshift. Until
// the autoshift ends, traffic for the resource is instead directed to other
// Availability Zones in the Amazon Web Services Region. An autoshift can end
// for a resource, for example, when Amazon Web Services ends the autoshift
// for the Availability Zone or when you disable zonal autoshift for the resource.
//
// AwayFrom is a required field
AwayFrom *string `locationName:"awayFrom" type:"string" required:"true"`
// The time (UTC) when the autoshift started.
//
// StartTime is a required field
StartTime *time.Time `locationName:"startTime" type:"timestamp" required:"true"`
}
// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AutoshiftInResource) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AutoshiftInResource) GoString() string {
return s.String()
}
// SetAppliedStatus sets the AppliedStatus field's value.
func (s *AutoshiftInResource) SetAppliedStatus(v string) *AutoshiftInResource {
s.AppliedStatus = &v
return s
}
// SetAwayFrom sets the AwayFrom field's value.
func (s *AutoshiftInResource) SetAwayFrom(v string) *AutoshiftInResource {
s.AwayFrom = &v
return s
}
// SetStartTime sets the StartTime field's value.
func (s *AutoshiftInResource) SetStartTime(v time.Time) *AutoshiftInResource {
s.StartTime = &v
return s
}
// Information about an autoshift. Amazon Web Services starts an autoshift to
// temporarily move traffic for a resource away from an Availability Zone in
// an Amazon Web Services Region when Amazon Web Services determines that there's
// an issue in the Availability Zone that could potentially affect customers.
// You can configure zonal autoshift in Route 53 ARC for managed resources in
// your Amazon Web Services account in a Region. Supported Amazon Web Services
// resources are automatically registered with Route 53 ARC.
//
// Autoshifts are temporary. When the Availability Zone recovers, Amazon Web
// Services ends the autoshift, and traffic for the resource is no longer directed
// to the other Availability Zones in the Region.
//
// You can stop an autoshift for a resource by disabling zonal autoshift.
type AutoshiftSummary struct {
_ struct{} `type:"structure"`
// The Availability Zone (for example, use1-az1) that traffic is shifted away
// from for a resource when Amazon Web Services starts an autoshift. Until the
// autoshift ends, traffic for the resource is instead directed to other Availability
// Zones in the Amazon Web Services Region. An autoshift can end for a resource,
// for example, when Amazon Web Services ends the autoshift for the Availability
// Zone or when you disable zonal autoshift for the resource.
//
// AwayFrom is a required field
AwayFrom *string `locationName:"awayFrom" type:"string" required:"true"`
// The time (in UTC) when the autoshift ended.
//
// EndTime is a required field
EndTime *time.Time `locationName:"endTime" type:"timestamp" required:"true"`
// The time (in UTC) when the autoshift started.
//
// StartTime is a required field
StartTime *time.Time `locationName:"startTime" type:"timestamp" required:"true"`
// The status for an autoshift.
//
// Status is a required field
Status *string `locationName:"status" type:"string" required:"true" enum:"AutoshiftExecutionStatus"`
}
// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AutoshiftSummary) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AutoshiftSummary) GoString() string {
return s.String()
}
// SetAwayFrom sets the AwayFrom field's value.
func (s *AutoshiftSummary) SetAwayFrom(v string) *AutoshiftSummary {
s.AwayFrom = &v
return s
}
// SetEndTime sets the EndTime field's value.
func (s *AutoshiftSummary) SetEndTime(v time.Time) *AutoshiftSummary {
s.EndTime = &v
return s
}
// SetStartTime sets the StartTime field's value.
func (s *AutoshiftSummary) SetStartTime(v time.Time) *AutoshiftSummary {
s.StartTime = &v
return s
}
// SetStatus sets the Status field's value.
func (s *AutoshiftSummary) SetStatus(v string) *AutoshiftSummary {
s.Status = &v
return s
}
type CancelZonalShiftInput struct {
_ struct{} `type:"structure" nopayload:"true"`
// The internally-generated identifier of a zonal shift.
//
// ZonalShiftId is a required field
ZonalShiftId *string `location:"uri" locationName:"zonalShiftId" min:"6" type:"string" required:"true"`
}
// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CancelZonalShiftInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CancelZonalShiftInput) GoString() string {
return s.String()
}
// Validate inspects the fields of the type to determine if they are valid.
func (s *CancelZonalShiftInput) Validate() error {
invalidParams := request.ErrInvalidParams{Context: "CancelZonalShiftInput"}
if s.ZonalShiftId == nil {
invalidParams.Add(request.NewErrParamRequired("ZonalShiftId"))
}
if s.ZonalShiftId != nil && len(*s.ZonalShiftId) < 6 {
invalidParams.Add(request.NewErrParamMinLen("ZonalShiftId", 6))
}
if invalidParams.Len() > 0 {
return invalidParams
}
return nil
}
// SetZonalShiftId sets the ZonalShiftId field's value.
func (s *CancelZonalShiftInput) SetZonalShiftId(v string) *CancelZonalShiftInput {
s.ZonalShiftId = &v
return s
}
type CancelZonalShiftOutput struct {
_ struct{} `type:"structure"`
// The Availability Zone (for example, use1-az1) that traffic is moved away
// from for a resource when you start a zonal shift. Until the zonal shift expires
// or you cancel it, traffic for the resource is instead moved to other Availability
// Zones in the Amazon Web Services Region.
//
// AwayFrom is a required field
AwayFrom *string `locationName:"awayFrom" type:"string" required:"true"`
// A comment that you enter about the zonal shift. Only the latest comment is
// retained; no comment history is maintained. A new comment overwrites any
// existing comment string.
//
// Comment is a required field
Comment *string `locationName:"comment" type:"string" required:"true"`
// The expiry time (expiration time) for a customer-initiated zonal shift. A
// zonal shift is temporary and must be set to expire when you start the zonal
// shift. You can initially set a zonal shift to expire in a maximum of three
// days (72 hours). However, you can update a zonal shift to set a new expiration
// at any time.
//
// When you start a zonal shift, you specify how long you want it to be active,
// which Route 53 ARC converts to an expiry time (expiration time). You can
// cancel a zonal shift when you're ready to restore traffic to the Availability
// Zone, or just wait for it to expire. Or you can update the zonal shift to
// specify another length of time to expire in.
//
// ExpiryTime is a required field
ExpiryTime *time.Time `locationName:"expiryTime" type:"timestamp" required:"true"`
// The identifier for the resource that Amazon Web Services shifts traffic for.
// The identifier is the Amazon Resource Name (ARN) for the resource.
//
// At this time, supported resources are Network Load Balancers and Application
// Load Balancers with cross-zone load balancing turned off.
//
// ResourceIdentifier is a required field
ResourceIdentifier *string `locationName:"resourceIdentifier" min:"8" type:"string" required:"true"`
// The time (UTC) when the zonal shift starts.
//
// StartTime is a required field
StartTime *time.Time `locationName:"startTime" type:"timestamp" required:"true"`
// A status for a zonal shift.
//
// The Status for a zonal shift can have one of the following values:
//
// * ACTIVE: The zonal shift has been started and active.
//
// * EXPIRED: The zonal shift has expired (the expiry time was exceeded).
//
// * CANCELED: The zonal shift was canceled.
//
// Status is a required field
Status *string `locationName:"status" type:"string" required:"true" enum:"ZonalShiftStatus"`
// The identifier of a zonal shift.
//
// ZonalShiftId is a required field
ZonalShiftId *string `locationName:"zonalShiftId" min:"6" type:"string" required:"true"`
}
// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CancelZonalShiftOutput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CancelZonalShiftOutput) GoString() string {
return s.String()
}
// SetAwayFrom sets the AwayFrom field's value.
func (s *CancelZonalShiftOutput) SetAwayFrom(v string) *CancelZonalShiftOutput {
s.AwayFrom = &v
return s
}
// SetComment sets the Comment field's value.
func (s *CancelZonalShiftOutput) SetComment(v string) *CancelZonalShiftOutput {
s.Comment = &v
return s
}
// SetExpiryTime sets the ExpiryTime field's value.
func (s *CancelZonalShiftOutput) SetExpiryTime(v time.Time) *CancelZonalShiftOutput {
s.ExpiryTime = &v
return s
}
// SetResourceIdentifier sets the ResourceIdentifier field's value.
func (s *CancelZonalShiftOutput) SetResourceIdentifier(v string) *CancelZonalShiftOutput {
s.ResourceIdentifier = &v
return s
}
// SetStartTime sets the StartTime field's value.
func (s *CancelZonalShiftOutput) SetStartTime(v time.Time) *CancelZonalShiftOutput {
s.StartTime = &v
return s
}
// SetStatus sets the Status field's value.
func (s *CancelZonalShiftOutput) SetStatus(v string) *CancelZonalShiftOutput {
s.Status = &v
return s
}
// SetZonalShiftId sets the ZonalShiftId field's value.
func (s *CancelZonalShiftOutput) SetZonalShiftId(v string) *CancelZonalShiftOutput {
s.ZonalShiftId = &v
return s
}
// The request could not be processed because of conflict in the current state
// of the resource.
type ConflictException struct {
_ struct{} `type:"structure"`
RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
Message_ *string `locationName:"message" type:"string"`
// The reason for the conflict exception.
//
// Reason is a required field
Reason *string `locationName:"reason" type:"string" required:"true" enum:"ConflictExceptionReason"`
// The zonal shift ID associated with the conflict exception.
ZonalShiftId *string `locationName:"zonalShiftId" type:"string"`
}
// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ConflictException) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ConflictException) GoString() string {
return s.String()
}
func newErrorConflictException(v protocol.ResponseMetadata) error {
return &ConflictException{
RespMetadata: v,
}
}
// Code returns the exception type name.
func (s *ConflictException) Code() string {
return "ConflictException"
}
// Message returns the exception's message.
func (s *ConflictException) Message() string {
if s.Message_ != nil {
return *s.Message_
}
return ""
}
// OrigErr always returns nil, satisfies awserr.Error interface.
func (s *ConflictException) OrigErr() error {
return nil
}
func (s *ConflictException) Error() string {
return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
}
// Status code returns the HTTP status code for the request's response error.
func (s *ConflictException) StatusCode() int {
return s.RespMetadata.StatusCode
}
// RequestID returns the service's response RequestID for request.
func (s *ConflictException) RequestID() string {
return s.RespMetadata.RequestID
}
// A control condition is an alarm that you specify for a practice run. When
// you configure practice runs with zonal autoshift for a resource, you specify
// Amazon CloudWatch alarms, which you create in CloudWatch to use with the
// practice run. The alarms that you specify are an outcome alarm, to monitor
// application health during practice runs and, optionally, a blocking alarm,
// to block practice runs from starting or to interrupt a practice run in progress.
//
// Control condition alarms do not apply for autoshifts.
//
// For more information, see Considerations when you configure zonal autoshift
// (https://docs.aws.amazon.com/r53recovery/latest/dg/arc-zonal-autoshift.considerations.html)
// in the Amazon Route 53 Application Recovery Controller Developer Guide.
type ControlCondition struct {
_ struct{} `type:"structure"`
// The Amazon Resource Name (ARN) for an Amazon CloudWatch alarm that you specify
// as a control condition for a practice run.
//
// AlarmIdentifier is a required field
AlarmIdentifier *string `locationName:"alarmIdentifier" min:"8" type:"string" required:"true"`
// The type of alarm specified for a practice run. You can only specify Amazon
// CloudWatch alarms for practice runs, so the only valid value is CLOUDWATCH.
//
// Type is a required field
Type *string `locationName:"type" type:"string" required:"true" enum:"ControlConditionType"`
}
// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ControlCondition) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ControlCondition) GoString() string {
return s.String()
}
// Validate inspects the fields of the type to determine if they are valid.
func (s *ControlCondition) Validate() error {
invalidParams := request.ErrInvalidParams{Context: "ControlCondition"}
if s.AlarmIdentifier == nil {
invalidParams.Add(request.NewErrParamRequired("AlarmIdentifier"))
}
if s.AlarmIdentifier != nil && len(*s.AlarmIdentifier) < 8 {
invalidParams.Add(request.NewErrParamMinLen("AlarmIdentifier", 8))
}
if s.Type == nil {
invalidParams.Add(request.NewErrParamRequired("Type"))
}
if invalidParams.Len() > 0 {
return invalidParams
}
return nil
}
// SetAlarmIdentifier sets the AlarmIdentifier field's value.
func (s *ControlCondition) SetAlarmIdentifier(v string) *ControlCondition {
s.AlarmIdentifier = &v
return s
}
// SetType sets the Type field's value.
func (s *ControlCondition) SetType(v string) *ControlCondition {
s.Type = &v
return s
}
type CreatePracticeRunConfigurationInput struct {
_ struct{} `type:"structure"`
// Optionally, you can block Route 53 ARC from starting practice runs for a
// resource on specific calendar dates.
//
// The format for blocked dates is: YYYY-MM-DD. Keep in mind, when you specify
// dates, that dates and times for practice runs are in UTC. Separate multiple
// blocked dates with spaces.
//
// For example, if you have an application update scheduled to launch on May
// 1, 2024, and you don't want practice runs to shift traffic away at that time,
// you could set a blocked date for 2024-05-01.
BlockedDates []*string `locationName:"blockedDates" type:"list"`
// Optionally, you can block Route 53 ARC from starting practice runs for specific
// windows of days and times.
//
// The format for blocked windows is: DAY:HH:SS-DAY:HH:SS. Keep in mind, when
// you specify dates, that dates and times for practice runs are in UTC. Also,
// be aware of potential time adjustments that might be required for daylight
// saving time differences. Separate multiple blocked windows with spaces.
//
// For example, say you run business report summaries three days a week. For
// this scenario, you might set the following recurring days and times as blocked
// windows, for example: MON-20:30-21:30 WED-20:30-21:30 FRI-20:30-21:30.
BlockedWindows []*string `locationName:"blockedWindows" type:"list"`
// An Amazon CloudWatch alarm that you can specify for zonal autoshift practice
// runs. This alarm blocks Route 53 ARC from starting practice run zonal shifts,
// and ends a practice run that's in progress, when the alarm is in an ALARM
// state.
BlockingAlarms []*ControlCondition `locationName:"blockingAlarms" min:"1" type:"list"`
// The outcome alarm for practice runs is a required Amazon CloudWatch alarm
// that you specify that ends a practice run when the alarm is in an ALARM state.
//
// Configure the alarm to monitor the health of your application when traffic
// is shifted away from an Availability Zone during each weekly practice run.
// You should configure the alarm to go into an ALARM state if your application
// is impacted by the zonal shift, and you want to stop the zonal shift, to
// let traffic for the resource return to the Availability Zone.
//
// OutcomeAlarms is a required field
OutcomeAlarms []*ControlCondition `locationName:"outcomeAlarms" min:"1" type:"list" required:"true"`
// The identifier of the resource that Amazon Web Services shifts traffic for
// with a practice run zonal shift. The identifier is the Amazon Resource Name
// (ARN) for the resource.
//
// At this time, supported resources are Network Load Balancers and Application
// Load Balancers with cross-zone load balancing turned off.
//
// ResourceIdentifier is a required field
ResourceIdentifier *string `locationName:"resourceIdentifier" min:"8" type:"string" required:"true"`
}
// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreatePracticeRunConfigurationInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreatePracticeRunConfigurationInput) GoString() string {
return s.String()
}
// Validate inspects the fields of the type to determine if they are valid.
func (s *CreatePracticeRunConfigurationInput) Validate() error {
invalidParams := request.ErrInvalidParams{Context: "CreatePracticeRunConfigurationInput"}
if s.BlockingAlarms != nil && len(s.BlockingAlarms) < 1 {
invalidParams.Add(request.NewErrParamMinLen("BlockingAlarms", 1))
}
if s.OutcomeAlarms == nil {
invalidParams.Add(request.NewErrParamRequired("OutcomeAlarms"))
}
if s.OutcomeAlarms != nil && len(s.OutcomeAlarms) < 1 {
invalidParams.Add(request.NewErrParamMinLen("OutcomeAlarms", 1))
}
if s.ResourceIdentifier == nil {
invalidParams.Add(request.NewErrParamRequired("ResourceIdentifier"))
}
if s.ResourceIdentifier != nil && len(*s.ResourceIdentifier) < 8 {
invalidParams.Add(request.NewErrParamMinLen("ResourceIdentifier", 8))
}
if s.BlockingAlarms != nil {
for i, v := range s.BlockingAlarms {
if v == nil {
continue
}
if err := v.Validate(); err != nil {
invalidParams.AddNested(fmt.Sprintf("%s[%v]", "BlockingAlarms", i), err.(request.ErrInvalidParams))
}
}
}
if s.OutcomeAlarms != nil {
for i, v := range s.OutcomeAlarms {
if v == nil {
continue
}
if err := v.Validate(); err != nil {
invalidParams.AddNested(fmt.Sprintf("%s[%v]", "OutcomeAlarms", i), err.(request.ErrInvalidParams))
}
}
}
if invalidParams.Len() > 0 {
return invalidParams
}
return nil
}
// SetBlockedDates sets the BlockedDates field's value.
func (s *CreatePracticeRunConfigurationInput) SetBlockedDates(v []*string) *CreatePracticeRunConfigurationInput {
s.BlockedDates = v
return s
}
// SetBlockedWindows sets the BlockedWindows field's value.
func (s *CreatePracticeRunConfigurationInput) SetBlockedWindows(v []*string) *CreatePracticeRunConfigurationInput {
s.BlockedWindows = v
return s
}
// SetBlockingAlarms sets the BlockingAlarms field's value.
func (s *CreatePracticeRunConfigurationInput) SetBlockingAlarms(v []*ControlCondition) *CreatePracticeRunConfigurationInput {
s.BlockingAlarms = v
return s
}
// SetOutcomeAlarms sets the OutcomeAlarms field's value.
func (s *CreatePracticeRunConfigurationInput) SetOutcomeAlarms(v []*ControlCondition) *CreatePracticeRunConfigurationInput {
s.OutcomeAlarms = v
return s
}
// SetResourceIdentifier sets the ResourceIdentifier field's value.
func (s *CreatePracticeRunConfigurationInput) SetResourceIdentifier(v string) *CreatePracticeRunConfigurationInput {
s.ResourceIdentifier = &v
return s
}
type CreatePracticeRunConfigurationOutput struct {
_ struct{} `type:"structure"`
// The Amazon Resource Name (ARN) of the resource that you configured the practice
// run for.
//
// Arn is a required field
Arn *string `locationName:"arn" min:"8" type:"string" required:"true"`
// The name of the resource that you configured the practice run for.
//
// Name is a required field
Name *string `locationName:"name" min:"1" type:"string" required:"true"`
// A practice run configuration for a resource. Configurations include the outcome
// alarm that you specify for practice runs, and, optionally, a blocking alarm
// and blocking dates and windows.
//
// PracticeRunConfiguration is a required field
PracticeRunConfiguration *PracticeRunConfiguration `locationName:"practiceRunConfiguration" type:"structure" required:"true"`
// The status for zonal autoshift for a resource. When you specify ENABLED for
// the autoshift status, Amazon Web Services shifts traffic away from shifts
// away application resource traffic from an Availability Zone, on your behalf,
// when internal telemetry indicates that there is an Availability Zone impairment
// that could potentially impact customers.
//
// When you enable zonal autoshift, you must also configure practice runs for
// the resource.
//
// ZonalAutoshiftStatus is a required field
ZonalAutoshiftStatus *string `locationName:"zonalAutoshiftStatus" type:"string" required:"true" enum:"ZonalAutoshiftStatus"`
}
// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreatePracticeRunConfigurationOutput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreatePracticeRunConfigurationOutput) GoString() string {
return s.String()
}
// SetArn sets the Arn field's value.
func (s *CreatePracticeRunConfigurationOutput) SetArn(v string) *CreatePracticeRunConfigurationOutput {
s.Arn = &v
return s
}
// SetName sets the Name field's value.
func (s *CreatePracticeRunConfigurationOutput) SetName(v string) *CreatePracticeRunConfigurationOutput {
s.Name = &v
return s
}
// SetPracticeRunConfiguration sets the PracticeRunConfiguration field's value.
func (s *CreatePracticeRunConfigurationOutput) SetPracticeRunConfiguration(v *PracticeRunConfiguration) *CreatePracticeRunConfigurationOutput {
s.PracticeRunConfiguration = v
return s
}
// SetZonalAutoshiftStatus sets the ZonalAutoshiftStatus field's value.
func (s *CreatePracticeRunConfigurationOutput) SetZonalAutoshiftStatus(v string) *CreatePracticeRunConfigurationOutput {
s.ZonalAutoshiftStatus = &v
return s
}
type DeletePracticeRunConfigurationInput struct {
_ struct{} `type:"structure" nopayload:"true"`
// The identifier for the resource that you want to delete the practice run
// configuration for. The identifier is the Amazon Resource Name (ARN) for the
// resource.
//
// ResourceIdentifier is a required field
ResourceIdentifier *string `location:"uri" locationName:"resourceIdentifier" min:"8" type:"string" required:"true"`
}
// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeletePracticeRunConfigurationInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeletePracticeRunConfigurationInput) GoString() string {
return s.String()
}
// Validate inspects the fields of the type to determine if they are valid.
func (s *DeletePracticeRunConfigurationInput) Validate() error {
invalidParams := request.ErrInvalidParams{Context: "DeletePracticeRunConfigurationInput"}
if s.ResourceIdentifier == nil {
invalidParams.Add(request.NewErrParamRequired("ResourceIdentifier"))
}
if s.ResourceIdentifier != nil && len(*s.ResourceIdentifier) < 8 {
invalidParams.Add(request.NewErrParamMinLen("ResourceIdentifier", 8))
}
if invalidParams.Len() > 0 {
return invalidParams
}
return nil
}
// SetResourceIdentifier sets the ResourceIdentifier field's value.
func (s *DeletePracticeRunConfigurationInput) SetResourceIdentifier(v string) *DeletePracticeRunConfigurationInput {
s.ResourceIdentifier = &v
return s
}
type DeletePracticeRunConfigurationOutput struct {
_ struct{} `type:"structure"`
// The Amazon Resource Name (ARN) of the resource that you deleted the practice
// run for.
//
// Arn is a required field
Arn *string `locationName:"arn" min:"8" type:"string" required:"true"`
// The name of the resource that you deleted the practice run for.
//
// Name is a required field
Name *string `locationName:"name" min:"1" type:"string" required:"true"`
// The status of zonal autoshift for the resource.
//
// ZonalAutoshiftStatus is a required field
ZonalAutoshiftStatus *string `locationName:"zonalAutoshiftStatus" type:"string" required:"true" enum:"ZonalAutoshiftStatus"`
}
// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeletePracticeRunConfigurationOutput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeletePracticeRunConfigurationOutput) GoString() string {
return s.String()
}
// SetArn sets the Arn field's value.
func (s *DeletePracticeRunConfigurationOutput) SetArn(v string) *DeletePracticeRunConfigurationOutput {
s.Arn = &v
return s
}
// SetName sets the Name field's value.
func (s *DeletePracticeRunConfigurationOutput) SetName(v string) *DeletePracticeRunConfigurationOutput {
s.Name = &v
return s
}
// SetZonalAutoshiftStatus sets the ZonalAutoshiftStatus field's value.
func (s *DeletePracticeRunConfigurationOutput) SetZonalAutoshiftStatus(v string) *DeletePracticeRunConfigurationOutput {
s.ZonalAutoshiftStatus = &v
return s
}
type GetAutoshiftObserverNotificationStatusInput struct {
_ struct{} `type:"structure" nopayload:"true"`
}
// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetAutoshiftObserverNotificationStatusInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetAutoshiftObserverNotificationStatusInput) GoString() string {
return s.String()
}
type GetAutoshiftObserverNotificationStatusOutput struct {
_ struct{} `type:"structure"`
// The status of autoshift observer notification. If the status is ENABLED,
// Route 53 ARC includes all autoshift events when you use the Amazon EventBridge
// pattern Autoshift In Progress. When the status is DISABLED, Route 53 ARC
// includes only autoshift events for autoshifts when one or more of your resources
// is included in the autoshift.
//
// Status is a required field
Status *string `locationName:"status" type:"string" required:"true" enum:"AutoshiftObserverNotificationStatus"`
}
// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetAutoshiftObserverNotificationStatusOutput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetAutoshiftObserverNotificationStatusOutput) GoString() string {
return s.String()
}
// SetStatus sets the Status field's value.
func (s *GetAutoshiftObserverNotificationStatusOutput) SetStatus(v string) *GetAutoshiftObserverNotificationStatusOutput {
s.Status = &v
return s
}
type GetManagedResourceInput struct {
_ struct{} `type:"structure" nopayload:"true"`
// The identifier for the resource that Amazon Web Services shifts traffic for.
// The identifier is the Amazon Resource Name (ARN) for the resource.
//
// At this time, supported resources are Network Load Balancers and Application
// Load Balancers with cross-zone load balancing turned off.
//
// ResourceIdentifier is a required field
ResourceIdentifier *string `location:"uri" locationName:"resourceIdentifier" min:"8" type:"string" required:"true"`
}
// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetManagedResourceInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetManagedResourceInput) GoString() string {
return s.String()
}
// Validate inspects the fields of the type to determine if they are valid.
func (s *GetManagedResourceInput) Validate() error {
invalidParams := request.ErrInvalidParams{Context: "GetManagedResourceInput"}
if s.ResourceIdentifier == nil {
invalidParams.Add(request.NewErrParamRequired("ResourceIdentifier"))
}
if s.ResourceIdentifier != nil && len(*s.ResourceIdentifier) < 8 {
invalidParams.Add(request.NewErrParamMinLen("ResourceIdentifier", 8))
}
if invalidParams.Len() > 0 {
return invalidParams
}
return nil
}
// SetResourceIdentifier sets the ResourceIdentifier field's value.
func (s *GetManagedResourceInput) SetResourceIdentifier(v string) *GetManagedResourceInput {
s.ResourceIdentifier = &v
return s
}
type GetManagedResourceOutput struct {
_ struct{} `type:"structure"`
// A collection of key-value pairs that indicate whether resources are active
// in Availability Zones or not. The key name is the Availability Zone where
// the resource is deployed. The value is 1 or 0.
//
// AppliedWeights is a required field
AppliedWeights map[string]*float64 `locationName:"appliedWeights" type:"map" required:"true"`
// The Amazon Resource Name (ARN) for the resource.
Arn *string `locationName:"arn" min:"8" type:"string"`
// An array of the autoshifts that are active for the resource.
Autoshifts []*AutoshiftInResource `locationName:"autoshifts" type:"list"`
// The name of the resource.
Name *string `locationName:"name" min:"1" type:"string"`
// The practice run configuration for zonal autoshift that's associated with
// the resource.
PracticeRunConfiguration *PracticeRunConfiguration `locationName:"practiceRunConfiguration" type:"structure"`
// The status for zonal autoshift for a resource. When the autoshift status
// is ENABLED, Amazon Web Services shifts traffic for a resource away from an
// Availability Zone, on your behalf, when Amazon Web Services determines that
// there's an issue in the Availability Zone that could potentially affect customers.
ZonalAutoshiftStatus *string `locationName:"zonalAutoshiftStatus" type:"string" enum:"ZonalAutoshiftStatus"`
// The zonal shifts that are currently active for a resource.
//
// ZonalShifts is a required field
ZonalShifts []*ZonalShiftInResource `locationName:"zonalShifts" type:"list" required:"true"`
}
// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetManagedResourceOutput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetManagedResourceOutput) GoString() string {
return s.String()
}
// SetAppliedWeights sets the AppliedWeights field's value.
func (s *GetManagedResourceOutput) SetAppliedWeights(v map[string]*float64) *GetManagedResourceOutput {
s.AppliedWeights = v
return s
}
// SetArn sets the Arn field's value.
func (s *GetManagedResourceOutput) SetArn(v string) *GetManagedResourceOutput {
s.Arn = &v
return s
}
// SetAutoshifts sets the Autoshifts field's value.
func (s *GetManagedResourceOutput) SetAutoshifts(v []*AutoshiftInResource) *GetManagedResourceOutput {
s.Autoshifts = v
return s
}
// SetName sets the Name field's value.
func (s *GetManagedResourceOutput) SetName(v string) *GetManagedResourceOutput {
s.Name = &v
return s
}
// SetPracticeRunConfiguration sets the PracticeRunConfiguration field's value.
func (s *GetManagedResourceOutput) SetPracticeRunConfiguration(v *PracticeRunConfiguration) *GetManagedResourceOutput {
s.PracticeRunConfiguration = v
return s
}
// SetZonalAutoshiftStatus sets the ZonalAutoshiftStatus field's value.
func (s *GetManagedResourceOutput) SetZonalAutoshiftStatus(v string) *GetManagedResourceOutput {
s.ZonalAutoshiftStatus = &v
return s
}
// SetZonalShifts sets the ZonalShifts field's value.
func (s *GetManagedResourceOutput) SetZonalShifts(v []*ZonalShiftInResource) *GetManagedResourceOutput {
s.ZonalShifts = v
return s
}
// There was an internal server error.
type InternalServerException struct {
_ struct{} `type:"structure"`
RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
Message_ *string `locationName:"message" type:"string"`
}
// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s InternalServerException) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s InternalServerException) GoString() string {
return s.String()
}
func newErrorInternalServerException(v protocol.ResponseMetadata) error {
return &InternalServerException{
RespMetadata: v,
}
}
// Code returns the exception type name.
func (s *InternalServerException) Code() string {
return "InternalServerException"
}
// Message returns the exception's message.
func (s *InternalServerException) Message() string {
if s.Message_ != nil {
return *s.Message_
}
return ""
}
// OrigErr always returns nil, satisfies awserr.Error interface.
func (s *InternalServerException) OrigErr() error {
return nil
}
func (s *InternalServerException) Error() string {
return fmt.Sprintf("%s: %s", s.Code(), s.Message())
}
// Status code returns the HTTP status code for the request's response error.
func (s *InternalServerException) StatusCode() int {
return s.RespMetadata.StatusCode
}
// RequestID returns the service's response RequestID for request.
func (s *InternalServerException) RequestID() string {
return s.RespMetadata.RequestID
}
type ListAutoshiftsInput struct {
_ struct{} `type:"structure" nopayload:"true"`
// The number of objects that you want to return with this call.
MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
// Specifies that you want to receive the next page of results. Valid only if
// you received a NextToken response in the previous request. If you did, it
// indicates that more output is available. Set this parameter to the value
// provided by the previous call's NextToken response to request the next page
// of results.
NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
// The status of the autoshift.
Status *string `location:"querystring" locationName:"status" type:"string" enum:"AutoshiftExecutionStatus"`
}
// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListAutoshiftsInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListAutoshiftsInput) GoString() string {
return s.String()
}
// Validate inspects the fields of the type to determine if they are valid.
func (s *ListAutoshiftsInput) Validate() error {
invalidParams := request.ErrInvalidParams{Context: "ListAutoshiftsInput"}
if s.MaxResults != nil && *s.MaxResults < 1 {
invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
}
if invalidParams.Len() > 0 {
return invalidParams
}
return nil
}
// SetMaxResults sets the MaxResults field's value.
func (s *ListAutoshiftsInput) SetMaxResults(v int64) *ListAutoshiftsInput {
s.MaxResults = &v
return s
}
// SetNextToken sets the NextToken field's value.
func (s *ListAutoshiftsInput) SetNextToken(v string) *ListAutoshiftsInput {
s.NextToken = &v
return s
}
// SetStatus sets the Status field's value.
func (s *ListAutoshiftsInput) SetStatus(v string) *ListAutoshiftsInput {
s.Status = &v
return s
}
type ListAutoshiftsOutput struct {
_ struct{} `type:"structure"`
// The items in the response list.
Items []*AutoshiftSummary `locationName:"items" type:"list"`
// Specifies that you want to receive the next page of results. Valid only if
// you received a NextToken response in the previous request. If you did, it
// indicates that more output is available. Set this parameter to the value
// provided by the previous call's NextToken response to request the next page
// of results.
NextToken *string `locationName:"nextToken" type:"string"`
}
// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListAutoshiftsOutput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListAutoshiftsOutput) GoString() string {
return s.String()
}
// SetItems sets the Items field's value.
func (s *ListAutoshiftsOutput) SetItems(v []*AutoshiftSummary) *ListAutoshiftsOutput {
s.Items = v
return s
}
// SetNextToken sets the NextToken field's value.
func (s *ListAutoshiftsOutput) SetNextToken(v string) *ListAutoshiftsOutput {
s.NextToken = &v
return s
}
type ListManagedResourcesInput struct {
_ struct{} `type:"structure" nopayload:"true"`
// The number of objects that you want to return with this call.
MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
// Specifies that you want to receive the next page of results. Valid only if
// you received a NextToken response in the previous request. If you did, it
// indicates that more output is available. Set this parameter to the value
// provided by the previous call's NextToken response to request the next page
// of results.
NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
}
// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListManagedResourcesInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListManagedResourcesInput) GoString() string {
return s.String()
}
// Validate inspects the fields of the type to determine if they are valid.
func (s *ListManagedResourcesInput) Validate() error {
invalidParams := request.ErrInvalidParams{Context: "ListManagedResourcesInput"}
if s.MaxResults != nil && *s.MaxResults < 1 {
invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
}
if invalidParams.Len() > 0 {
return invalidParams
}
return nil
}
// SetMaxResults sets the MaxResults field's value.
func (s *ListManagedResourcesInput) SetMaxResults(v int64) *ListManagedResourcesInput {
s.MaxResults = &v
return s
}
// SetNextToken sets the NextToken field's value.
func (s *ListManagedResourcesInput) SetNextToken(v string) *ListManagedResourcesInput {
s.NextToken = &v
return s
}
type ListManagedResourcesOutput struct {
_ struct{} `type:"structure"`
// The items in the response list.
//
// Items is a required field
Items []*ManagedResourceSummary `locationName:"items" type:"list" required:"true"`
// Specifies that you want to receive the next page of results. Valid only if
// you received a NextToken response in the previous request. If you did, it
// indicates that more output is available. Set this parameter to the value
// provided by the previous call's NextToken response to request the next page
// of results.
NextToken *string `locationName:"nextToken" type:"string"`
}
// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListManagedResourcesOutput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListManagedResourcesOutput) GoString() string {
return s.String()
}
// SetItems sets the Items field's value.
func (s *ListManagedResourcesOutput) SetItems(v []*ManagedResourceSummary) *ListManagedResourcesOutput {
s.Items = v
return s
}
// SetNextToken sets the NextToken field's value.
func (s *ListManagedResourcesOutput) SetNextToken(v string) *ListManagedResourcesOutput {
s.NextToken = &v
return s
}
type ListZonalShiftsInput struct {
_ struct{} `type:"structure" nopayload:"true"`
// The number of objects that you want to return with this call.
MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
// Specifies that you want to receive the next page of results. Valid only if
// you received a NextToken response in the previous request. If you did, it
// indicates that more output is available. Set this parameter to the value
// provided by the previous call's NextToken response to request the next page
// of results.
NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
// The identifier for the resource that you want to list zonal shifts for. The
// identifier is the Amazon Resource Name (ARN) for the resource.
ResourceIdentifier *string `location:"querystring" locationName:"resourceIdentifier" min:"8" type:"string"`
// A status for a zonal shift.
//
// The Status for a zonal shift can have one of the following values:
//
// * ACTIVE: The zonal shift has been started and active.
//
// * EXPIRED: The zonal shift has expired (the expiry time was exceeded).
//
// * CANCELED: The zonal shift was canceled.
Status *string `location:"querystring" locationName:"status" type:"string" enum:"ZonalShiftStatus"`
}
// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListZonalShiftsInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListZonalShiftsInput) GoString() string {
return s.String()
}
// Validate inspects the fields of the type to determine if they are valid.
func (s *ListZonalShiftsInput) Validate() error {
invalidParams := request.ErrInvalidParams{Context: "ListZonalShiftsInput"}
if s.MaxResults != nil && *s.MaxResults < 1 {
invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
}
if s.ResourceIdentifier != nil && len(*s.ResourceIdentifier) < 8 {
invalidParams.Add(request.NewErrParamMinLen("ResourceIdentifier", 8))
}
if invalidParams.Len() > 0 {
return invalidParams
}
return nil
}
// SetMaxResults sets the MaxResults field's value.
func (s *ListZonalShiftsInput) SetMaxResults(v int64) *ListZonalShiftsInput {
s.MaxResults = &v
return s
}
// SetNextToken sets the NextToken field's value.
func (s *ListZonalShiftsInput) SetNextToken(v string) *ListZonalShiftsInput {
s.NextToken = &v
return s
}
// SetResourceIdentifier sets the ResourceIdentifier field's value.
func (s *ListZonalShiftsInput) SetResourceIdentifier(v string) *ListZonalShiftsInput {
s.ResourceIdentifier = &v
return s
}
// SetStatus sets the Status field's value.
func (s *ListZonalShiftsInput) SetStatus(v string) *ListZonalShiftsInput {
s.Status = &v
return s
}
type ListZonalShiftsOutput struct {
_ struct{} `type:"structure"`
// The items in the response list.
Items []*ZonalShiftSummary `locationName:"items" type:"list"`
// Specifies that you want to receive the next page of results. Valid only if
// you received a NextToken response in the previous request. If you did, it
// indicates that more output is available. Set this parameter to the value
// provided by the previous call's NextToken response to request the next page
// of results.
NextToken *string `locationName:"nextToken" type:"string"`
}
// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListZonalShiftsOutput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListZonalShiftsOutput) GoString() string {
return s.String()
}
// SetItems sets the Items field's value.
func (s *ListZonalShiftsOutput) SetItems(v []*ZonalShiftSummary) *ListZonalShiftsOutput {
s.Items = v
return s
}
// SetNextToken sets the NextToken field's value.
func (s *ListZonalShiftsOutput) SetNextToken(v string) *ListZonalShiftsOutput {
s.NextToken = &v
return s
}
// A complex structure for a managed resource in an Amazon Web Services account
// with information about zonal shifts and autoshifts.
//
// A managed resource is a load balancer that has been registered with Route
// 53 ARC by Elastic Load Balancing. You can start a zonal shift in Route 53
// ARC for a managed resource to temporarily move traffic for the resource away
// from an Availability Zone in an Amazon Web Services Region. You can also
// configure zonal autoshift for a managed resource.
//
// At this time, managed resources are Network Load Balancers and Application
// Load Balancers with cross-zone load balancing turned off.
type ManagedResourceSummary struct {
_ struct{} `type:"structure"`
// A collection of key-value pairs that indicate whether resources are active
// in Availability Zones or not. The key name is the Availability Zone where
// the resource is deployed. The value is 1 or 0.
AppliedWeights map[string]*float64 `locationName:"appliedWeights" type:"map"`
// The Amazon Resource Name (ARN) for the managed resource.
Arn *string `locationName:"arn" min:"8" type:"string"`
// An array of the autoshifts that have been completed for a resource.
Autoshifts []*AutoshiftInResource `locationName:"autoshifts" type:"list"`
// The Availability Zones that a resource is deployed in.
//
// AvailabilityZones is a required field
AvailabilityZones []*string `locationName:"availabilityZones" type:"list" required:"true"`
// The name of the managed resource.
Name *string `locationName:"name" min:"1" type:"string"`
// This status tracks whether a practice run configuration exists for a resource.
// When you configure a practice run for a resource so that a practice run configuration
// exists, Route 53 ARC sets this value to ENABLED. If a you have not configured
// a practice run for the resource, or delete a practice run configuration,
// Route 53 ARC sets the value to DISABLED.
//
// Route 53 ARC updates this status; you can't set a practice run status to
// ENABLED or DISABLED.
PracticeRunStatus *string `locationName:"practiceRunStatus" type:"string" enum:"ZonalAutoshiftStatus"`
// The status of autoshift for a resource. When you configure zonal autoshift
// for a resource, you can set the value of the status to ENABLED or DISABLED.
ZonalAutoshiftStatus *string `locationName:"zonalAutoshiftStatus" type:"string" enum:"ZonalAutoshiftStatus"`
// An array of the zonal shifts for a resource.
ZonalShifts []*ZonalShiftInResource `locationName:"zonalShifts" type:"list"`
}
// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ManagedResourceSummary) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ManagedResourceSummary) GoString() string {
return s.String()
}
// SetAppliedWeights sets the AppliedWeights field's value.
func (s *ManagedResourceSummary) SetAppliedWeights(v map[string]*float64) *ManagedResourceSummary {
s.AppliedWeights = v
return s
}
// SetArn sets the Arn field's value.
func (s *ManagedResourceSummary) SetArn(v string) *ManagedResourceSummary {
s.Arn = &v
return s
}
// SetAutoshifts sets the Autoshifts field's value.
func (s *ManagedResourceSummary) SetAutoshifts(v []*AutoshiftInResource) *ManagedResourceSummary {
s.Autoshifts = v
return s
}
// SetAvailabilityZones sets the AvailabilityZones field's value.
func (s *ManagedResourceSummary) SetAvailabilityZones(v []*string) *ManagedResourceSummary {
s.AvailabilityZones = v
return s
}
// SetName sets the Name field's value.
func (s *ManagedResourceSummary) SetName(v string) *ManagedResourceSummary {
s.Name = &v
return s
}
// SetPracticeRunStatus sets the PracticeRunStatus field's value.
func (s *ManagedResourceSummary) SetPracticeRunStatus(v string) *ManagedResourceSummary {
s.PracticeRunStatus = &v
return s
}
// SetZonalAutoshiftStatus sets the ZonalAutoshiftStatus field's value.
func (s *ManagedResourceSummary) SetZonalAutoshiftStatus(v string) *ManagedResourceSummary {
s.ZonalAutoshiftStatus = &v
return s
}
// SetZonalShifts sets the ZonalShifts field's value.
func (s *ManagedResourceSummary) SetZonalShifts(v []*ZonalShiftInResource) *ManagedResourceSummary {
s.ZonalShifts = v
return s
}
// A practice run configuration for a resource includes the Amazon CloudWatch
// alarms that you've specified for a practice run, as well as any blocked dates
// or blocked windows for the practice run. When a resource has a practice run
// configuration, Route 53 ARC shifts traffic for the resource weekly for practice
// runs.
//
// Practice runs are required for zonal autoshift. The zonal shifts that Route
// 53 ARC starts for practice runs help you to ensure that shifting away traffic
// from an Availability Zone during an autoshift is safe for your application.
//
// You can update or delete a practice run configuration. Before you delete
// a practice run configuration, you must disable zonal autoshift for the resource.
// A practice run configuration is required when zonal autoshift is enabled.
type PracticeRunConfiguration struct {
_ struct{} `type:"structure"`
// An array of one or more dates that you can specify when Amazon Web Services
// does not start practice runs for a resource.
//
// Specify blocked dates, in UTC, in the format YYYY-MM-DD, separated by spaces.
BlockedDates []*string `locationName:"blockedDates" type:"list"`
// An array of one or more windows of days and times that you can block Route
// 53 ARC from starting practice runs for a resource.
//
// Specify the blocked windows in UTC, using the format DAY:HH:MM-DAY:HH:MM,
// separated by spaces. For example, MON:18:30-MON:19:30 TUE:18:30-TUE:19:30.
BlockedWindows []*string `locationName:"blockedWindows" type:"list"`
// The blocking alarm for practice runs is an optional alarm that you can specify
// that blocks practice runs when the alarm is in an ALARM state.
BlockingAlarms []*ControlCondition `locationName:"blockingAlarms" min:"1" type:"list"`
// The outcome alarm for practice runs is an alarm that you specify that ends
// a practice run when the alarm is in an ALARM state.
//
// OutcomeAlarms is a required field
OutcomeAlarms []*ControlCondition `locationName:"outcomeAlarms" min:"1" type:"list" required:"true"`
}
// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PracticeRunConfiguration) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PracticeRunConfiguration) GoString() string {
return s.String()
}
// SetBlockedDates sets the BlockedDates field's value.
func (s *PracticeRunConfiguration) SetBlockedDates(v []*string) *PracticeRunConfiguration {
s.BlockedDates = v
return s
}
// SetBlockedWindows sets the BlockedWindows field's value.
func (s *PracticeRunConfiguration) SetBlockedWindows(v []*string) *PracticeRunConfiguration {
s.BlockedWindows = v
return s
}
// SetBlockingAlarms sets the BlockingAlarms field's value.
func (s *PracticeRunConfiguration) SetBlockingAlarms(v []*ControlCondition) *PracticeRunConfiguration {
s.BlockingAlarms = v
return s
}
// SetOutcomeAlarms sets the OutcomeAlarms field's value.
func (s *PracticeRunConfiguration) SetOutcomeAlarms(v []*ControlCondition) *PracticeRunConfiguration {
s.OutcomeAlarms = v
return s
}
// The input requested a resource that was not found.
type ResourceNotFoundException struct {
_ struct{} `type:"structure"`
RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
Message_ *string `locationName:"message" type:"string"`
}
// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ResourceNotFoundException) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ResourceNotFoundException) GoString() string {
return s.String()
}
func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error {
return &ResourceNotFoundException{
RespMetadata: v,
}
}
// Code returns the exception type name.
func (s *ResourceNotFoundException) Code() string {
return "ResourceNotFoundException"
}
// Message returns the exception's message.
func (s *ResourceNotFoundException) Message() string {
if s.Message_ != nil {
return *s.Message_
}
return ""
}
// OrigErr always returns nil, satisfies awserr.Error interface.
func (s *ResourceNotFoundException) OrigErr() error {
return nil
}
func (s *ResourceNotFoundException) Error() string {
return fmt.Sprintf("%s: %s", s.Code(), s.Message())
}
// Status code returns the HTTP status code for the request's response error.
func (s *ResourceNotFoundException) StatusCode() int {
return s.RespMetadata.StatusCode
}
// RequestID returns the service's response RequestID for request.
func (s *ResourceNotFoundException) RequestID() string {
return s.RespMetadata.RequestID
}
type StartZonalShiftInput struct {
_ struct{} `type:"structure"`
// The Availability Zone (for example, use1-az1) that traffic is moved away
// from for a resource when you start a zonal shift. Until the zonal shift expires
// or you cancel it, traffic for the resource is instead moved to other Availability
// Zones in the Amazon Web Services Region.
//
// AwayFrom is a required field
AwayFrom *string `locationName:"awayFrom" type:"string" required:"true"`
// A comment that you enter about the zonal shift. Only the latest comment is
// retained; no comment history is maintained. A new comment overwrites any
// existing comment string.
//
// Comment is a required field
Comment *string `locationName:"comment" type:"string" required:"true"`
// The length of time that you want a zonal shift to be active, which Route
// 53 ARC converts to an expiry time (expiration time). Zonal shifts are temporary.
// You can set a zonal shift to be active initially for up to three days (72
// hours).
//
// If you want to still keep traffic away from an Availability Zone, you can
// update the zonal shift and set a new expiration. You can also cancel a zonal
// shift, before it expires, for example, if you're ready to restore traffic
// to the Availability Zone.
//
// To set a length of time for a zonal shift to be active, specify a whole number,
// and then one of the following, with no space:
//
// * A lowercase letter m: To specify that the value is in minutes.
//
// * A lowercase letter h: To specify that the value is in hours.
//
// For example: 20h means the zonal shift expires in 20 hours. 120m means the
// zonal shift expires in 120 minutes (2 hours).
//
// ExpiresIn is a required field
ExpiresIn *string `locationName:"expiresIn" min:"2" type:"string" required:"true"`
// The identifier for the resource that Amazon Web Services shifts traffic for.
// The identifier is the Amazon Resource Name (ARN) for the resource.
//
// At this time, supported resources are Network Load Balancers and Application
// Load Balancers with cross-zone load balancing turned off.
//
// ResourceIdentifier is a required field
ResourceIdentifier *string `locationName:"resourceIdentifier" min:"8" type:"string" required:"true"`
}
// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StartZonalShiftInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StartZonalShiftInput) GoString() string {
return s.String()
}
// Validate inspects the fields of the type to determine if they are valid.
func (s *StartZonalShiftInput) Validate() error {
invalidParams := request.ErrInvalidParams{Context: "StartZonalShiftInput"}
if s.AwayFrom == nil {
invalidParams.Add(request.NewErrParamRequired("AwayFrom"))
}
if s.Comment == nil {
invalidParams.Add(request.NewErrParamRequired("Comment"))
}
if s.ExpiresIn == nil {
invalidParams.Add(request.NewErrParamRequired("ExpiresIn"))
}
if s.ExpiresIn != nil && len(*s.ExpiresIn) < 2 {
invalidParams.Add(request.NewErrParamMinLen("ExpiresIn", 2))
}
if s.ResourceIdentifier == nil {
invalidParams.Add(request.NewErrParamRequired("ResourceIdentifier"))
}
if s.ResourceIdentifier != nil && len(*s.ResourceIdentifier) < 8 {
invalidParams.Add(request.NewErrParamMinLen("ResourceIdentifier", 8))
}
if invalidParams.Len() > 0 {
return invalidParams
}
return nil
}
// SetAwayFrom sets the AwayFrom field's value.
func (s *StartZonalShiftInput) SetAwayFrom(v string) *StartZonalShiftInput {
s.AwayFrom = &v
return s
}
// SetComment sets the Comment field's value.
func (s *StartZonalShiftInput) SetComment(v string) *StartZonalShiftInput {
s.Comment = &v
return s
}
// SetExpiresIn sets the ExpiresIn field's value.
func (s *StartZonalShiftInput) SetExpiresIn(v string) *StartZonalShiftInput {
s.ExpiresIn = &v
return s
}
// SetResourceIdentifier sets the ResourceIdentifier field's value.
func (s *StartZonalShiftInput) SetResourceIdentifier(v string) *StartZonalShiftInput {
s.ResourceIdentifier = &v
return s
}
type StartZonalShiftOutput struct {
_ struct{} `type:"structure"`
// The Availability Zone (for example, use1-az1) that traffic is moved away
// from for a resource when you start a zonal shift. Until the zonal shift expires
// or you cancel it, traffic for the resource is instead moved to other Availability
// Zones in the Amazon Web Services Region.
//
// AwayFrom is a required field
AwayFrom *string `locationName:"awayFrom" type:"string" required:"true"`
// A comment that you enter about the zonal shift. Only the latest comment is
// retained; no comment history is maintained. A new comment overwrites any
// existing comment string.
//
// Comment is a required field
Comment *string `locationName:"comment" type:"string" required:"true"`
// The expiry time (expiration time) for a customer-initiated zonal shift. A
// zonal shift is temporary and must be set to expire when you start the zonal
// shift. You can initially set a zonal shift to expire in a maximum of three
// days (72 hours). However, you can update a zonal shift to set a new expiration
// at any time.
//
// When you start a zonal shift, you specify how long you want it to be active,
// which Route 53 ARC converts to an expiry time (expiration time). You can
// cancel a zonal shift when you're ready to restore traffic to the Availability
// Zone, or just wait for it to expire. Or you can update the zonal shift to
// specify another length of time to expire in.
//
// ExpiryTime is a required field
ExpiryTime *time.Time `locationName:"expiryTime" type:"timestamp" required:"true"`
// The identifier for the resource that Amazon Web Services shifts traffic for.
// The identifier is the Amazon Resource Name (ARN) for the resource.
//
// At this time, supported resources are Network Load Balancers and Application
// Load Balancers with cross-zone load balancing turned off.
//
// ResourceIdentifier is a required field
ResourceIdentifier *string `locationName:"resourceIdentifier" min:"8" type:"string" required:"true"`
// The time (UTC) when the zonal shift starts.
//
// StartTime is a required field
StartTime *time.Time `locationName:"startTime" type:"timestamp" required:"true"`
// A status for a zonal shift.
//
// The Status for a zonal shift can have one of the following values:
//
// * ACTIVE: The zonal shift has been started and active.
//
// * EXPIRED: The zonal shift has expired (the expiry time was exceeded).
//
// * CANCELED: The zonal shift was canceled.
//
// Status is a required field
Status *string `locationName:"status" type:"string" required:"true" enum:"ZonalShiftStatus"`
// The identifier of a zonal shift.
//
// ZonalShiftId is a required field
ZonalShiftId *string `locationName:"zonalShiftId" min:"6" type:"string" required:"true"`
}
// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StartZonalShiftOutput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StartZonalShiftOutput) GoString() string {
return s.String()
}
// SetAwayFrom sets the AwayFrom field's value.
func (s *StartZonalShiftOutput) SetAwayFrom(v string) *StartZonalShiftOutput {
s.AwayFrom = &v
return s
}
// SetComment sets the Comment field's value.
func (s *StartZonalShiftOutput) SetComment(v string) *StartZonalShiftOutput {
s.Comment = &v
return s
}
// SetExpiryTime sets the ExpiryTime field's value.
func (s *StartZonalShiftOutput) SetExpiryTime(v time.Time) *StartZonalShiftOutput {
s.ExpiryTime = &v
return s
}
// SetResourceIdentifier sets the ResourceIdentifier field's value.
func (s *StartZonalShiftOutput) SetResourceIdentifier(v string) *StartZonalShiftOutput {
s.ResourceIdentifier = &v
return s
}
// SetStartTime sets the StartTime field's value.
func (s *StartZonalShiftOutput) SetStartTime(v time.Time) *StartZonalShiftOutput {
s.StartTime = &v
return s
}
// SetStatus sets the Status field's value.
func (s *StartZonalShiftOutput) SetStatus(v string) *StartZonalShiftOutput {
s.Status = &v
return s
}
// SetZonalShiftId sets the ZonalShiftId field's value.
func (s *StartZonalShiftOutput) SetZonalShiftId(v string) *StartZonalShiftOutput {
s.ZonalShiftId = &v
return s
}
// The request was denied due to request throttling.
type ThrottlingException struct {
_ struct{} `type:"structure"`
RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
Message_ *string `locationName:"message" type:"string"`
}
// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ThrottlingException) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ThrottlingException) GoString() string {
return s.String()
}
func newErrorThrottlingException(v protocol.ResponseMetadata) error {
return &ThrottlingException{
RespMetadata: v,
}
}
// Code returns the exception type name.
func (s *ThrottlingException) Code() string {
return "ThrottlingException"
}
// Message returns the exception's message.
func (s *ThrottlingException) Message() string {
if s.Message_ != nil {
return *s.Message_
}
return ""
}
// OrigErr always returns nil, satisfies awserr.Error interface.
func (s *ThrottlingException) OrigErr() error {
return nil
}
func (s *ThrottlingException) Error() string {
return fmt.Sprintf("%s: %s", s.Code(), s.Message())
}
// Status code returns the HTTP status code for the request's response error.
func (s *ThrottlingException) StatusCode() int {
return s.RespMetadata.StatusCode
}
// RequestID returns the service's response RequestID for request.
func (s *ThrottlingException) RequestID() string {
return s.RespMetadata.RequestID
}
type UpdateAutoshiftObserverNotificationStatusInput struct {
_ struct{} `type:"structure"`
// The status to set for autoshift observer notification. If the status is ENABLED,
// Route 53 ARC includes all autoshift events when you use the Amazon EventBridge
// pattern Autoshift In Progress. When the status is DISABLED, Route 53 ARC
// includes only autoshift events for autoshifts when one or more of your resources
// is included in the autoshift.
//
// Status is a required field
Status *string `locationName:"status" type:"string" required:"true" enum:"AutoshiftObserverNotificationStatus"`
}
// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateAutoshiftObserverNotificationStatusInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateAutoshiftObserverNotificationStatusInput) GoString() string {
return s.String()
}
// Validate inspects the fields of the type to determine if they are valid.
func (s *UpdateAutoshiftObserverNotificationStatusInput) Validate() error {
invalidParams := request.ErrInvalidParams{Context: "UpdateAutoshiftObserverNotificationStatusInput"}
if s.Status == nil {
invalidParams.Add(request.NewErrParamRequired("Status"))
}
if invalidParams.Len() > 0 {
return invalidParams
}
return nil
}
// SetStatus sets the Status field's value.
func (s *UpdateAutoshiftObserverNotificationStatusInput) SetStatus(v string) *UpdateAutoshiftObserverNotificationStatusInput {
s.Status = &v
return s
}
type UpdateAutoshiftObserverNotificationStatusOutput struct {
_ struct{} `type:"structure"`
// The status for autoshift observer notification.
//
// Status is a required field
Status *string `locationName:"status" type:"string" required:"true" enum:"AutoshiftObserverNotificationStatus"`
}
// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateAutoshiftObserverNotificationStatusOutput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateAutoshiftObserverNotificationStatusOutput) GoString() string {
return s.String()
}
// SetStatus sets the Status field's value.
func (s *UpdateAutoshiftObserverNotificationStatusOutput) SetStatus(v string) *UpdateAutoshiftObserverNotificationStatusOutput {
s.Status = &v
return s
}
type UpdatePracticeRunConfigurationInput struct {
_ struct{} `type:"structure"`
// Add, change, or remove blocked dates for a practice run in zonal autoshift.
//
// Optionally, you can block practice runs for specific calendar dates. The
// format for blocked dates is: YYYY-MM-DD. Keep in mind, when you specify dates,
// that dates and times for practice runs are in UTC. Separate multiple blocked
// dates with spaces.
//
// For example, if you have an application update scheduled to launch on May
// 1, 2024, and you don't want practice runs to shift traffic away at that time,
// you could set a blocked date for 2024-05-01.
BlockedDates []*string `locationName:"blockedDates" type:"list"`
// Add, change, or remove windows of days and times for when you can, optionally,
// block Route 53 ARC from starting a practice run for a resource.
//
// The format for blocked windows is: DAY:HH:SS-DAY:HH:SS. Keep in mind, when
// you specify dates, that dates and times for practice runs are in UTC. Also,
// be aware of potential time adjustments that might be required for daylight
// saving time differences. Separate multiple blocked windows with spaces.
//
// For example, say you run business report summaries three days a week. For
// this scenario, you might set the following recurring days and times as blocked
// windows, for example: MON-20:30-21:30 WED-20:30-21:30 FRI-20:30-21:30.
BlockedWindows []*string `locationName:"blockedWindows" type:"list"`
// Add, change, or remove the Amazon CloudWatch alarm that you optionally specify
// as the blocking alarm for practice runs.
BlockingAlarms []*ControlCondition `locationName:"blockingAlarms" min:"1" type:"list"`
// Specify a new the Amazon CloudWatch alarm as the outcome alarm for practice
// runs.
OutcomeAlarms []*ControlCondition `locationName:"outcomeAlarms" min:"1" type:"list"`
// The identifier for the resource that you want to update the practice run
// configuration for. The identifier is the Amazon Resource Name (ARN) for the
// resource.
//
// ResourceIdentifier is a required field
ResourceIdentifier *string `location:"uri" locationName:"resourceIdentifier" min:"8" type:"string" required:"true"`
}
// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdatePracticeRunConfigurationInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdatePracticeRunConfigurationInput) GoString() string {
return s.String()
}
// Validate inspects the fields of the type to determine if they are valid.
func (s *UpdatePracticeRunConfigurationInput) Validate() error {
invalidParams := request.ErrInvalidParams{Context: "UpdatePracticeRunConfigurationInput"}
if s.BlockingAlarms != nil && len(s.BlockingAlarms) < 1 {
invalidParams.Add(request.NewErrParamMinLen("BlockingAlarms", 1))
}
if s.OutcomeAlarms != nil && len(s.OutcomeAlarms) < 1 {
invalidParams.Add(request.NewErrParamMinLen("OutcomeAlarms", 1))
}
if s.ResourceIdentifier == nil {
invalidParams.Add(request.NewErrParamRequired("ResourceIdentifier"))
}
if s.ResourceIdentifier != nil && len(*s.ResourceIdentifier) < 8 {
invalidParams.Add(request.NewErrParamMinLen("ResourceIdentifier", 8))
}
if s.BlockingAlarms != nil {
for i, v := range s.BlockingAlarms {
if v == nil {
continue
}
if err := v.Validate(); err != nil {
invalidParams.AddNested(fmt.Sprintf("%s[%v]", "BlockingAlarms", i), err.(request.ErrInvalidParams))
}
}
}
if s.OutcomeAlarms != nil {
for i, v := range s.OutcomeAlarms {
if v == nil {
continue
}
if err := v.Validate(); err != nil {
invalidParams.AddNested(fmt.Sprintf("%s[%v]", "OutcomeAlarms", i), err.(request.ErrInvalidParams))
}
}
}
if invalidParams.Len() > 0 {
return invalidParams
}
return nil
}
// SetBlockedDates sets the BlockedDates field's value.
func (s *UpdatePracticeRunConfigurationInput) SetBlockedDates(v []*string) *UpdatePracticeRunConfigurationInput {
s.BlockedDates = v
return s
}
// SetBlockedWindows sets the BlockedWindows field's value.
func (s *UpdatePracticeRunConfigurationInput) SetBlockedWindows(v []*string) *UpdatePracticeRunConfigurationInput {
s.BlockedWindows = v
return s
}
// SetBlockingAlarms sets the BlockingAlarms field's value.
func (s *UpdatePracticeRunConfigurationInput) SetBlockingAlarms(v []*ControlCondition) *UpdatePracticeRunConfigurationInput {
s.BlockingAlarms = v
return s
}
// SetOutcomeAlarms sets the OutcomeAlarms field's value.
func (s *UpdatePracticeRunConfigurationInput) SetOutcomeAlarms(v []*ControlCondition) *UpdatePracticeRunConfigurationInput {
s.OutcomeAlarms = v
return s
}
// SetResourceIdentifier sets the ResourceIdentifier field's value.
func (s *UpdatePracticeRunConfigurationInput) SetResourceIdentifier(v string) *UpdatePracticeRunConfigurationInput {
s.ResourceIdentifier = &v
return s
}
type UpdatePracticeRunConfigurationOutput struct {
_ struct{} `type:"structure"`
// The Amazon Resource Name (ARN) of the resource that you updated the practice
// run for.
//
// Arn is a required field
Arn *string `locationName:"arn" min:"8" type:"string" required:"true"`
// The name of the resource that you updated the practice run for.
//
// Name is a required field
Name *string `locationName:"name" min:"1" type:"string" required:"true"`
// The practice run configuration that was updated.
//
// PracticeRunConfiguration is a required field
PracticeRunConfiguration *PracticeRunConfiguration `locationName:"practiceRunConfiguration" type:"structure" required:"true"`
// The zonal autoshift status for the resource that you updated the practice
// run for.
//
// ZonalAutoshiftStatus is a required field
ZonalAutoshiftStatus *string `locationName:"zonalAutoshiftStatus" type:"string" required:"true" enum:"ZonalAutoshiftStatus"`
}
// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdatePracticeRunConfigurationOutput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdatePracticeRunConfigurationOutput) GoString() string {
return s.String()
}
// SetArn sets the Arn field's value.
func (s *UpdatePracticeRunConfigurationOutput) SetArn(v string) *UpdatePracticeRunConfigurationOutput {
s.Arn = &v
return s
}
// SetName sets the Name field's value.
func (s *UpdatePracticeRunConfigurationOutput) SetName(v string) *UpdatePracticeRunConfigurationOutput {
s.Name = &v
return s
}
// SetPracticeRunConfiguration sets the PracticeRunConfiguration field's value.
func (s *UpdatePracticeRunConfigurationOutput) SetPracticeRunConfiguration(v *PracticeRunConfiguration) *UpdatePracticeRunConfigurationOutput {
s.PracticeRunConfiguration = v
return s
}
// SetZonalAutoshiftStatus sets the ZonalAutoshiftStatus field's value.
func (s *UpdatePracticeRunConfigurationOutput) SetZonalAutoshiftStatus(v string) *UpdatePracticeRunConfigurationOutput {
s.ZonalAutoshiftStatus = &v
return s
}
type UpdateZonalAutoshiftConfigurationInput struct {
_ struct{} `type:"structure"`
// The identifier for the resource that you want to update the zonal autoshift
// configuration for. The identifier is the Amazon Resource Name (ARN) for the
// resource.
//
// ResourceIdentifier is a required field
ResourceIdentifier *string `location:"uri" locationName:"resourceIdentifier" min:"8" type:"string" required:"true"`
// The zonal autoshift status for the resource that you want to update the zonal
// autoshift configuration for. Choose ENABLED to authorize Amazon Web Services
// to shift away resource traffic for an application from an Availability Zone
// during events, on your behalf, to help reduce time to recovery.
//
// ZonalAutoshiftStatus is a required field
ZonalAutoshiftStatus *string `locationName:"zonalAutoshiftStatus" type:"string" required:"true" enum:"ZonalAutoshiftStatus"`
}
// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateZonalAutoshiftConfigurationInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateZonalAutoshiftConfigurationInput) GoString() string {
return s.String()
}
// Validate inspects the fields of the type to determine if they are valid.
func (s *UpdateZonalAutoshiftConfigurationInput) Validate() error {
invalidParams := request.ErrInvalidParams{Context: "UpdateZonalAutoshiftConfigurationInput"}
if s.ResourceIdentifier == nil {
invalidParams.Add(request.NewErrParamRequired("ResourceIdentifier"))
}
if s.ResourceIdentifier != nil && len(*s.ResourceIdentifier) < 8 {
invalidParams.Add(request.NewErrParamMinLen("ResourceIdentifier", 8))
}
if s.ZonalAutoshiftStatus == nil {
invalidParams.Add(request.NewErrParamRequired("ZonalAutoshiftStatus"))
}
if invalidParams.Len() > 0 {
return invalidParams
}
return nil
}
// SetResourceIdentifier sets the ResourceIdentifier field's value.
func (s *UpdateZonalAutoshiftConfigurationInput) SetResourceIdentifier(v string) *UpdateZonalAutoshiftConfigurationInput {
s.ResourceIdentifier = &v
return s
}
// SetZonalAutoshiftStatus sets the ZonalAutoshiftStatus field's value.
func (s *UpdateZonalAutoshiftConfigurationInput) SetZonalAutoshiftStatus(v string) *UpdateZonalAutoshiftConfigurationInput {
s.ZonalAutoshiftStatus = &v
return s
}
type UpdateZonalAutoshiftConfigurationOutput struct {
_ struct{} `type:"structure"`
// The identifier for the resource that you updated the zonal autoshift configuration
// for. The identifier is the Amazon Resource Name (ARN) for the resource.
//
// ResourceIdentifier is a required field
ResourceIdentifier *string `locationName:"resourceIdentifier" min:"8" type:"string" required:"true"`
// The updated zonal autoshift status for the resource.
//
// ZonalAutoshiftStatus is a required field
ZonalAutoshiftStatus *string `locationName:"zonalAutoshiftStatus" type:"string" required:"true" enum:"ZonalAutoshiftStatus"`
}
// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateZonalAutoshiftConfigurationOutput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateZonalAutoshiftConfigurationOutput) GoString() string {
return s.String()
}
// SetResourceIdentifier sets the ResourceIdentifier field's value.
func (s *UpdateZonalAutoshiftConfigurationOutput) SetResourceIdentifier(v string) *UpdateZonalAutoshiftConfigurationOutput {
s.ResourceIdentifier = &v
return s
}
// SetZonalAutoshiftStatus sets the ZonalAutoshiftStatus field's value.
func (s *UpdateZonalAutoshiftConfigurationOutput) SetZonalAutoshiftStatus(v string) *UpdateZonalAutoshiftConfigurationOutput {
s.ZonalAutoshiftStatus = &v
return s
}
type UpdateZonalShiftInput struct {
_ struct{} `type:"structure"`
// A comment that you enter about the zonal shift. Only the latest comment is
// retained; no comment history is maintained. A new comment overwrites any
// existing comment string.
Comment *string `locationName:"comment" type:"string"`
// The length of time that you want a zonal shift to be active, which Route
// 53 ARC converts to an expiry time (expiration time). Zonal shifts are temporary.
// You can set a zonal shift to be active initially for up to three days (72
// hours).
//
// If you want to still keep traffic away from an Availability Zone, you can
// update the zonal shift and set a new expiration. You can also cancel a zonal
// shift, before it expires, for example, if you're ready to restore traffic
// to the Availability Zone.
//
// To set a length of time for a zonal shift to be active, specify a whole number,
// and then one of the following, with no space:
//
// * A lowercase letter m: To specify that the value is in minutes.
//
// * A lowercase letter h: To specify that the value is in hours.
//
// For example: 20h means the zonal shift expires in 20 hours. 120m means the
// zonal shift expires in 120 minutes (2 hours).
ExpiresIn *string `locationName:"expiresIn" min:"2" type:"string"`
// The identifier of a zonal shift.
//
// ZonalShiftId is a required field
ZonalShiftId *string `location:"uri" locationName:"zonalShiftId" min:"6" type:"string" required:"true"`
}
// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateZonalShiftInput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateZonalShiftInput) GoString() string {
return s.String()
}
// Validate inspects the fields of the type to determine if they are valid.
func (s *UpdateZonalShiftInput) Validate() error {
invalidParams := request.ErrInvalidParams{Context: "UpdateZonalShiftInput"}
if s.ExpiresIn != nil && len(*s.ExpiresIn) < 2 {
invalidParams.Add(request.NewErrParamMinLen("ExpiresIn", 2))
}
if s.ZonalShiftId == nil {
invalidParams.Add(request.NewErrParamRequired("ZonalShiftId"))
}
if s.ZonalShiftId != nil && len(*s.ZonalShiftId) < 6 {
invalidParams.Add(request.NewErrParamMinLen("ZonalShiftId", 6))
}
if invalidParams.Len() > 0 {
return invalidParams
}
return nil
}
// SetComment sets the Comment field's value.
func (s *UpdateZonalShiftInput) SetComment(v string) *UpdateZonalShiftInput {
s.Comment = &v
return s
}
// SetExpiresIn sets the ExpiresIn field's value.
func (s *UpdateZonalShiftInput) SetExpiresIn(v string) *UpdateZonalShiftInput {
s.ExpiresIn = &v
return s
}
// SetZonalShiftId sets the ZonalShiftId field's value.
func (s *UpdateZonalShiftInput) SetZonalShiftId(v string) *UpdateZonalShiftInput {
s.ZonalShiftId = &v
return s
}
type UpdateZonalShiftOutput struct {
_ struct{} `type:"structure"`
// The Availability Zone (for example, use1-az1) that traffic is moved away
// from for a resource when you start a zonal shift. Until the zonal shift expires
// or you cancel it, traffic for the resource is instead moved to other Availability
// Zones in the Amazon Web Services Region.
//
// AwayFrom is a required field
AwayFrom *string `locationName:"awayFrom" type:"string" required:"true"`
// A comment that you enter about the zonal shift. Only the latest comment is
// retained; no comment history is maintained. A new comment overwrites any
// existing comment string.
//
// Comment is a required field
Comment *string `locationName:"comment" type:"string" required:"true"`
// The expiry time (expiration time) for a customer-initiated zonal shift. A
// zonal shift is temporary and must be set to expire when you start the zonal
// shift. You can initially set a zonal shift to expire in a maximum of three
// days (72 hours). However, you can update a zonal shift to set a new expiration
// at any time.
//
// When you start a zonal shift, you specify how long you want it to be active,
// which Route 53 ARC converts to an expiry time (expiration time). You can
// cancel a zonal shift when you're ready to restore traffic to the Availability
// Zone, or just wait for it to expire. Or you can update the zonal shift to
// specify another length of time to expire in.
//
// ExpiryTime is a required field
ExpiryTime *time.Time `locationName:"expiryTime" type:"timestamp" required:"true"`
// The identifier for the resource that Amazon Web Services shifts traffic for.
// The identifier is the Amazon Resource Name (ARN) for the resource.
//
// At this time, supported resources are Network Load Balancers and Application
// Load Balancers with cross-zone load balancing turned off.
//
// ResourceIdentifier is a required field
ResourceIdentifier *string `locationName:"resourceIdentifier" min:"8" type:"string" required:"true"`
// The time (UTC) when the zonal shift starts.
//
// StartTime is a required field
StartTime *time.Time `locationName:"startTime" type:"timestamp" required:"true"`
// A status for a zonal shift.
//
// The Status for a zonal shift can have one of the following values:
//
// * ACTIVE: The zonal shift has been started and active.
//
// * EXPIRED: The zonal shift has expired (the expiry time was exceeded).
//
// * CANCELED: The zonal shift was canceled.
//
// Status is a required field
Status *string `locationName:"status" type:"string" required:"true" enum:"ZonalShiftStatus"`
// The identifier of a zonal shift.
//
// ZonalShiftId is a required field
ZonalShiftId *string `locationName:"zonalShiftId" min:"6" type:"string" required:"true"`
}
// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateZonalShiftOutput) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateZonalShiftOutput) GoString() string {
return s.String()
}
// SetAwayFrom sets the AwayFrom field's value.
func (s *UpdateZonalShiftOutput) SetAwayFrom(v string) *UpdateZonalShiftOutput {
s.AwayFrom = &v
return s
}
// SetComment sets the Comment field's value.
func (s *UpdateZonalShiftOutput) SetComment(v string) *UpdateZonalShiftOutput {
s.Comment = &v
return s
}
// SetExpiryTime sets the ExpiryTime field's value.
func (s *UpdateZonalShiftOutput) SetExpiryTime(v time.Time) *UpdateZonalShiftOutput {
s.ExpiryTime = &v
return s
}
// SetResourceIdentifier sets the ResourceIdentifier field's value.
func (s *UpdateZonalShiftOutput) SetResourceIdentifier(v string) *UpdateZonalShiftOutput {
s.ResourceIdentifier = &v
return s
}
// SetStartTime sets the StartTime field's value.
func (s *UpdateZonalShiftOutput) SetStartTime(v time.Time) *UpdateZonalShiftOutput {
s.StartTime = &v
return s
}
// SetStatus sets the Status field's value.
func (s *UpdateZonalShiftOutput) SetStatus(v string) *UpdateZonalShiftOutput {
s.Status = &v
return s
}
// SetZonalShiftId sets the ZonalShiftId field's value.
func (s *UpdateZonalShiftOutput) SetZonalShiftId(v string) *UpdateZonalShiftOutput {
s.ZonalShiftId = &v
return s
}
// The input fails to satisfy the constraints specified by an Amazon Web Services
// service.
type ValidationException struct {
_ struct{} `type:"structure"`
RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
Message_ *string `locationName:"message" type:"string"`
// The reason for the validation exception.
//
// Reason is a required field
Reason *string `locationName:"reason" type:"string" required:"true" enum:"ValidationExceptionReason"`
}
// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ValidationException) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ValidationException) GoString() string {
return s.String()
}
func newErrorValidationException(v protocol.ResponseMetadata) error {
return &ValidationException{
RespMetadata: v,
}
}
// Code returns the exception type name.
func (s *ValidationException) Code() string {
return "ValidationException"
}
// Message returns the exception's message.
func (s *ValidationException) Message() string {
if s.Message_ != nil {
return *s.Message_
}
return ""
}
// OrigErr always returns nil, satisfies awserr.Error interface.
func (s *ValidationException) OrigErr() error {
return nil
}
func (s *ValidationException) Error() string {
return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
}
// Status code returns the HTTP status code for the request's response error.
func (s *ValidationException) StatusCode() int {
return s.RespMetadata.StatusCode
}
// RequestID returns the service's response RequestID for request.
func (s *ValidationException) RequestID() string {
return s.RespMetadata.RequestID
}
// A complex structure that lists the zonal shifts for a managed resource and
// their statuses for the resource.
type ZonalShiftInResource struct {
_ struct{} `type:"structure"`
// The appliedStatus field specifies which application traffic shift is in effect
// for a resource when there is more than one active traffic shift. There can
// be more than one application traffic shift in progress at the same time -
// that is, practice run zonal shifts, customer-initiated zonal shifts, or an
// autoshift. The appliedStatus field for a shift that is in progress for a
// resource can have one of two values: APPLIED or NOT_APPLIED. The zonal shift
// or autoshift that is currently in effect for the resource has an appliedStatus
// set to APPLIED.
//
// The overall principle for precedence is that zonal shifts that you start
// as a customer take precedence autoshifts, which take precedence over practice
// runs. That is, customer-initiated zonal shifts > autoshifts > practice run
// zonal shifts.
//
// For more information, see How zonal autoshift and practice runs work (https://docs.aws.amazon.com/r53recovery/latest/dg/arc-zonal-autoshift.how-it-works.html)
// in the Amazon Route 53 Application Recovery Controller Developer Guide.
//
// AppliedStatus is a required field
AppliedStatus *string `locationName:"appliedStatus" type:"string" required:"true" enum:"AppliedStatus"`
// The Availability Zone (for example, use1-az1) that traffic is moved away
// from for a resource when you start a zonal shift. Until the zonal shift expires
// or you cancel it, traffic for the resource is instead moved to other Availability
// Zones in the Amazon Web Services Region.
//
// AwayFrom is a required field
AwayFrom *string `locationName:"awayFrom" type:"string" required:"true"`
// A comment that you enter for a customer-initiated zonal shift. Only the latest
// comment is retained; no comment history is maintained. That is, a new comment
// overwrites any existing comment string.
//
// Comment is a required field
Comment *string `locationName:"comment" type:"string" required:"true"`
// The expiry time (expiration time) for a customer-initiated zonal shift. A
// zonal shift is temporary and must be set to expire when you start the zonal
// shift. You can initially set a zonal shift to expire in a maximum of three
// days (72 hours). However, you can update a zonal shift to set a new expiration
// at any time.
//
// When you start a zonal shift, you specify how long you want it to be active,
// which Route 53 ARC converts to an expiry time (expiration time). You can
// cancel a zonal shift when you're ready to restore traffic to the Availability
// Zone, or just wait for it to expire. Or you can update the zonal shift to
// specify another length of time to expire in.
//
// ExpiryTime is a required field
ExpiryTime *time.Time `locationName:"expiryTime" type:"timestamp" required:"true"`
// The outcome, or end state, returned for a practice run. The following values
// can be returned:
//
// * PENDING: Outcome value when a practice run is in progress.
//
// * SUCCEEDED: Outcome value when the outcome alarm specified for the practice
// run configuration does not go into an ALARM state during the practice
// run, and the practice run was not interrupted before it completed the
// expected 30 minute zonal shift.
//
// * INTERRUPTED: Outcome value when the practice run was stopped before
// the expected 30 minute zonal shift duration, or there was another problem
// with the practice run that created an inconclusive outcome.
//
// * FAILED: Outcome value when the outcome alarm specified for the practice
// run configuration goes into an ALARM state during the practice run, and
// the practice run was not interrupted before it completed.
//
// For more information about practice run outcomes, see Considerations when
// you configure zonal autoshift (https://docs.aws.amazon.com/r53recovery/latest/dg/arc-zonal-autoshift.configure.html)
// in the Amazon Route 53 Application Recovery Controller Developer Guide.
PracticeRunOutcome *string `locationName:"practiceRunOutcome" type:"string" enum:"PracticeRunOutcome"`
// The identifier for the resource to include in a zonal shift. The identifier
// is the Amazon Resource Name (ARN) for the resource.
//
// At this time, you can only start a zonal shift for Network Load Balancers
// and Application Load Balancers with cross-zone load balancing turned off.
//
// ResourceIdentifier is a required field
ResourceIdentifier *string `locationName:"resourceIdentifier" min:"8" type:"string" required:"true"`
// The time (UTC) when the zonal shift starts.
//
// StartTime is a required field
StartTime *time.Time `locationName:"startTime" type:"timestamp" required:"true"`
// The identifier of a zonal shift.
//
// ZonalShiftId is a required field
ZonalShiftId *string `locationName:"zonalShiftId" min:"6" type:"string" required:"true"`
}
// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ZonalShiftInResource) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ZonalShiftInResource) GoString() string {
return s.String()
}
// SetAppliedStatus sets the AppliedStatus field's value.
func (s *ZonalShiftInResource) SetAppliedStatus(v string) *ZonalShiftInResource {
s.AppliedStatus = &v
return s
}
// SetAwayFrom sets the AwayFrom field's value.
func (s *ZonalShiftInResource) SetAwayFrom(v string) *ZonalShiftInResource {
s.AwayFrom = &v
return s
}
// SetComment sets the Comment field's value.
func (s *ZonalShiftInResource) SetComment(v string) *ZonalShiftInResource {
s.Comment = &v
return s
}
// SetExpiryTime sets the ExpiryTime field's value.
func (s *ZonalShiftInResource) SetExpiryTime(v time.Time) *ZonalShiftInResource {
s.ExpiryTime = &v
return s
}
// SetPracticeRunOutcome sets the PracticeRunOutcome field's value.
func (s *ZonalShiftInResource) SetPracticeRunOutcome(v string) *ZonalShiftInResource {
s.PracticeRunOutcome = &v
return s
}
// SetResourceIdentifier sets the ResourceIdentifier field's value.
func (s *ZonalShiftInResource) SetResourceIdentifier(v string) *ZonalShiftInResource {
s.ResourceIdentifier = &v
return s
}
// SetStartTime sets the StartTime field's value.
func (s *ZonalShiftInResource) SetStartTime(v time.Time) *ZonalShiftInResource {
s.StartTime = &v
return s
}
// SetZonalShiftId sets the ZonalShiftId field's value.
func (s *ZonalShiftInResource) SetZonalShiftId(v string) *ZonalShiftInResource {
s.ZonalShiftId = &v
return s
}
// Lists information about zonal shifts in Amazon Route 53 Application Recovery
// Controller, including zonal shifts that you start yourself and zonal shifts
// that Route 53 ARC starts on your behalf for practice runs with zonal autoshift.
//
// Zonal shifts are temporary, including customer-initiated zonal shifts and
// the zonal autoshift practice run zonal shifts that Route 53 ARC starts weekly,
// on your behalf. A zonal shift that a customer starts can be active for up
// to three days (72 hours). A practice run zonal shift has a 30 minute duration.
type ZonalShiftSummary struct {
_ struct{} `type:"structure"`
// The Availability Zone (for example, use1-az1) that traffic is moved away
// from for a resource when you start a zonal shift. Until the zonal shift expires
// or you cancel it, traffic for the resource is instead moved to other Availability
// Zones in the Amazon Web Services Region.
//
// AwayFrom is a required field
AwayFrom *string `locationName:"awayFrom" type:"string" required:"true"`
// A comment that you enter about the zonal shift. Only the latest comment is
// retained; no comment history is maintained. That is, a new comment overwrites
// any existing comment string.
//
// Comment is a required field
Comment *string `locationName:"comment" type:"string" required:"true"`
// The expiry time (expiration time) for a customer-initiated zonal shift. A
// zonal shift is temporary and must be set to expire when you start the zonal
// shift. You can initially set a zonal shift to expire in a maximum of three
// days (72 hours). However, you can update a zonal shift to set a new expiration
// at any time.
//
// When you start a zonal shift, you specify how long you want it to be active,
// which Route 53 ARC converts to an expiry time (expiration time). You can
// cancel a zonal shift when you're ready to restore traffic to the Availability
// Zone, or just wait for it to expire. Or you can update the zonal shift to
// specify another length of time to expire in.
//
// ExpiryTime is a required field
ExpiryTime *time.Time `locationName:"expiryTime" type:"timestamp" required:"true"`
// The outcome, or end state, of a practice run. The following values can be
// returned:
//
// * PENDING: Outcome value when the practice run is in progress.
//
// * SUCCEEDED: Outcome value when the outcome alarm specified for the practice
// run configuration does not go into an ALARM state during the practice
// run, and the practice run was not interrupted before it completed.
//
// * INTERRUPTED: Outcome value when the practice run did not run for the
// expected 30 minutes or there was another problem with the practice run
// that created an inconclusive outcome.
//
// * FAILED: Outcome value when the outcome alarm specified for the practice
// run configuration goes into an ALARM state during the practice run, and
// the practice run was not interrupted before it completed.
//
// For more information about practice run outcomes, see Considerations when
// you configure zonal autoshift (https://docs.aws.amazon.com/r53recovery/latest/dg/arc-zonal-autoshift.configure.html)
// in the Amazon Route 53 Application Recovery Controller Developer Guide.
PracticeRunOutcome *string `locationName:"practiceRunOutcome" type:"string" enum:"PracticeRunOutcome"`
// The identifier for the resource to include in a zonal shift. The identifier
// is the Amazon Resource Name (ARN) for the resource.
//
// At this time, you can only start a zonal shift for Network Load Balancers
// and Application Load Balancers with cross-zone load balancing turned off.
//
// ResourceIdentifier is a required field
ResourceIdentifier *string `locationName:"resourceIdentifier" min:"8" type:"string" required:"true"`
// The time (UTC) when the zonal shift starts.
//
// StartTime is a required field
StartTime *time.Time `locationName:"startTime" type:"timestamp" required:"true"`
// A status for a zonal shift.
//
// The Status for a zonal shift can have one of the following values:
//
// * ACTIVE: The zonal shift has been started and active.
//
// * EXPIRED: The zonal shift has expired (the expiry time was exceeded).
//
// * CANCELED: The zonal shift was canceled.
//
// Status is a required field
Status *string `locationName:"status" type:"string" required:"true" enum:"ZonalShiftStatus"`
// The identifier of a zonal shift.
//
// ZonalShiftId is a required field
ZonalShiftId *string `locationName:"zonalShiftId" min:"6" type:"string" required:"true"`
}
// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ZonalShiftSummary) String() string {
return awsutil.Prettify(s)
}
// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ZonalShiftSummary) GoString() string {
return s.String()
}
// SetAwayFrom sets the AwayFrom field's value.
func (s *ZonalShiftSummary) SetAwayFrom(v string) *ZonalShiftSummary {
s.AwayFrom = &v
return s
}
// SetComment sets the Comment field's value.
func (s *ZonalShiftSummary) SetComment(v string) *ZonalShiftSummary {
s.Comment = &v
return s
}
// SetExpiryTime sets the ExpiryTime field's value.
func (s *ZonalShiftSummary) SetExpiryTime(v time.Time) *ZonalShiftSummary {
s.ExpiryTime = &v
return s
}
// SetPracticeRunOutcome sets the PracticeRunOutcome field's value.
func (s *ZonalShiftSummary) SetPracticeRunOutcome(v string) *ZonalShiftSummary {
s.PracticeRunOutcome = &v
return s
}
// SetResourceIdentifier sets the ResourceIdentifier field's value.
func (s *ZonalShiftSummary) SetResourceIdentifier(v string) *ZonalShiftSummary {
s.ResourceIdentifier = &v
return s
}
// SetStartTime sets the StartTime field's value.
func (s *ZonalShiftSummary) SetStartTime(v time.Time) *ZonalShiftSummary {
s.StartTime = &v
return s
}
// SetStatus sets the Status field's value.
func (s *ZonalShiftSummary) SetStatus(v string) *ZonalShiftSummary {
s.Status = &v
return s
}
// SetZonalShiftId sets the ZonalShiftId field's value.
func (s *ZonalShiftSummary) SetZonalShiftId(v string) *ZonalShiftSummary {
s.ZonalShiftId = &v
return s
}
const (
// AppliedStatusApplied is a AppliedStatus enum value
AppliedStatusApplied = "APPLIED"
// AppliedStatusNotApplied is a AppliedStatus enum value
AppliedStatusNotApplied = "NOT_APPLIED"
)
// AppliedStatus_Values returns all elements of the AppliedStatus enum
func AppliedStatus_Values() []string {
return []string{
AppliedStatusApplied,
AppliedStatusNotApplied,
}
}
const (
// AutoshiftAppliedStatusApplied is a AutoshiftAppliedStatus enum value
AutoshiftAppliedStatusApplied = "APPLIED"
// AutoshiftAppliedStatusNotApplied is a AutoshiftAppliedStatus enum value
AutoshiftAppliedStatusNotApplied = "NOT_APPLIED"
)
// AutoshiftAppliedStatus_Values returns all elements of the AutoshiftAppliedStatus enum
func AutoshiftAppliedStatus_Values() []string {
return []string{
AutoshiftAppliedStatusApplied,
AutoshiftAppliedStatusNotApplied,
}
}
const (
// AutoshiftExecutionStatusActive is a AutoshiftExecutionStatus enum value
AutoshiftExecutionStatusActive = "ACTIVE"
// AutoshiftExecutionStatusCompleted is a AutoshiftExecutionStatus enum value
AutoshiftExecutionStatusCompleted = "COMPLETED"
)
// AutoshiftExecutionStatus_Values returns all elements of the AutoshiftExecutionStatus enum
func AutoshiftExecutionStatus_Values() []string {
return []string{
AutoshiftExecutionStatusActive,
AutoshiftExecutionStatusCompleted,
}
}
const (
// AutoshiftObserverNotificationStatusEnabled is a AutoshiftObserverNotificationStatus enum value
AutoshiftObserverNotificationStatusEnabled = "ENABLED"
// AutoshiftObserverNotificationStatusDisabled is a AutoshiftObserverNotificationStatus enum value
AutoshiftObserverNotificationStatusDisabled = "DISABLED"
)
// AutoshiftObserverNotificationStatus_Values returns all elements of the AutoshiftObserverNotificationStatus enum
func AutoshiftObserverNotificationStatus_Values() []string {
return []string{
AutoshiftObserverNotificationStatusEnabled,
AutoshiftObserverNotificationStatusDisabled,
}
}
const (
// ConflictExceptionReasonZonalShiftAlreadyExists is a ConflictExceptionReason enum value
ConflictExceptionReasonZonalShiftAlreadyExists = "ZonalShiftAlreadyExists"
// ConflictExceptionReasonZonalShiftStatusNotActive is a ConflictExceptionReason enum value
ConflictExceptionReasonZonalShiftStatusNotActive = "ZonalShiftStatusNotActive"
// ConflictExceptionReasonSimultaneousZonalShiftsConflict is a ConflictExceptionReason enum value
ConflictExceptionReasonSimultaneousZonalShiftsConflict = "SimultaneousZonalShiftsConflict"
// ConflictExceptionReasonPracticeConfigurationAlreadyExists is a ConflictExceptionReason enum value
ConflictExceptionReasonPracticeConfigurationAlreadyExists = "PracticeConfigurationAlreadyExists"
// ConflictExceptionReasonAutoShiftEnabled is a ConflictExceptionReason enum value
ConflictExceptionReasonAutoShiftEnabled = "AutoShiftEnabled"
// ConflictExceptionReasonPracticeConfigurationDoesNotExist is a ConflictExceptionReason enum value
ConflictExceptionReasonPracticeConfigurationDoesNotExist = "PracticeConfigurationDoesNotExist"
)
// ConflictExceptionReason_Values returns all elements of the ConflictExceptionReason enum
func ConflictExceptionReason_Values() []string {
return []string{
ConflictExceptionReasonZonalShiftAlreadyExists,
ConflictExceptionReasonZonalShiftStatusNotActive,
ConflictExceptionReasonSimultaneousZonalShiftsConflict,
ConflictExceptionReasonPracticeConfigurationAlreadyExists,
ConflictExceptionReasonAutoShiftEnabled,
ConflictExceptionReasonPracticeConfigurationDoesNotExist,
}
}
const (
// ControlConditionTypeCloudwatch is a ControlConditionType enum value
ControlConditionTypeCloudwatch = "CLOUDWATCH"
)
// ControlConditionType_Values returns all elements of the ControlConditionType enum
func ControlConditionType_Values() []string {
return []string{
ControlConditionTypeCloudwatch,
}
}
const (
// PracticeRunOutcomeFailed is a PracticeRunOutcome enum value
PracticeRunOutcomeFailed = "FAILED"
// PracticeRunOutcomeInterrupted is a PracticeRunOutcome enum value
PracticeRunOutcomeInterrupted = "INTERRUPTED"
// PracticeRunOutcomePending is a PracticeRunOutcome enum value
PracticeRunOutcomePending = "PENDING"
// PracticeRunOutcomeSucceeded is a PracticeRunOutcome enum value
PracticeRunOutcomeSucceeded = "SUCCEEDED"
)
// PracticeRunOutcome_Values returns all elements of the PracticeRunOutcome enum
func PracticeRunOutcome_Values() []string {
return []string{
PracticeRunOutcomeFailed,
PracticeRunOutcomeInterrupted,
PracticeRunOutcomePending,
PracticeRunOutcomeSucceeded,
}
}
const (
// ValidationExceptionReasonInvalidExpiresIn is a ValidationExceptionReason enum value
ValidationExceptionReasonInvalidExpiresIn = "InvalidExpiresIn"
// ValidationExceptionReasonInvalidStatus is a ValidationExceptionReason enum value
ValidationExceptionReasonInvalidStatus = "InvalidStatus"
// ValidationExceptionReasonMissingValue is a ValidationExceptionReason enum value
ValidationExceptionReasonMissingValue = "MissingValue"
// ValidationExceptionReasonInvalidToken is a ValidationExceptionReason enum value
ValidationExceptionReasonInvalidToken = "InvalidToken"
// ValidationExceptionReasonInvalidResourceIdentifier is a ValidationExceptionReason enum value
ValidationExceptionReasonInvalidResourceIdentifier = "InvalidResourceIdentifier"
// ValidationExceptionReasonInvalidAz is a ValidationExceptionReason enum value
ValidationExceptionReasonInvalidAz = "InvalidAz"
// ValidationExceptionReasonUnsupportedAz is a ValidationExceptionReason enum value
ValidationExceptionReasonUnsupportedAz = "UnsupportedAz"
// ValidationExceptionReasonInvalidAlarmCondition is a ValidationExceptionReason enum value
ValidationExceptionReasonInvalidAlarmCondition = "InvalidAlarmCondition"
// ValidationExceptionReasonInvalidConditionType is a ValidationExceptionReason enum value
ValidationExceptionReasonInvalidConditionType = "InvalidConditionType"
// ValidationExceptionReasonInvalidPracticeBlocker is a ValidationExceptionReason enum value
ValidationExceptionReasonInvalidPracticeBlocker = "InvalidPracticeBlocker"
)
// ValidationExceptionReason_Values returns all elements of the ValidationExceptionReason enum
func ValidationExceptionReason_Values() []string {
return []string{
ValidationExceptionReasonInvalidExpiresIn,
ValidationExceptionReasonInvalidStatus,
ValidationExceptionReasonMissingValue,
ValidationExceptionReasonInvalidToken,
ValidationExceptionReasonInvalidResourceIdentifier,
ValidationExceptionReasonInvalidAz,
ValidationExceptionReasonUnsupportedAz,
ValidationExceptionReasonInvalidAlarmCondition,
ValidationExceptionReasonInvalidConditionType,
ValidationExceptionReasonInvalidPracticeBlocker,
}
}
const (
// ZonalAutoshiftStatusEnabled is a ZonalAutoshiftStatus enum value
ZonalAutoshiftStatusEnabled = "ENABLED"
// ZonalAutoshiftStatusDisabled is a ZonalAutoshiftStatus enum value
ZonalAutoshiftStatusDisabled = "DISABLED"
)
// ZonalAutoshiftStatus_Values returns all elements of the ZonalAutoshiftStatus enum
func ZonalAutoshiftStatus_Values() []string {
return []string{
ZonalAutoshiftStatusEnabled,
ZonalAutoshiftStatusDisabled,
}
}
const (
// ZonalShiftStatusActive is a ZonalShiftStatus enum value
ZonalShiftStatusActive = "ACTIVE"
// ZonalShiftStatusExpired is a ZonalShiftStatus enum value
ZonalShiftStatusExpired = "EXPIRED"
// ZonalShiftStatusCanceled is a ZonalShiftStatus enum value
ZonalShiftStatusCanceled = "CANCELED"
)
// ZonalShiftStatus_Values returns all elements of the ZonalShiftStatus enum
func ZonalShiftStatus_Values() []string {
return []string{
ZonalShiftStatusActive,
ZonalShiftStatusExpired,
ZonalShiftStatusCanceled,
}
}