1// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. 2 3package rds 4 5import ( 6 "time" 7 8 "github.com/aws/aws-sdk-go/aws" 9 "github.com/aws/aws-sdk-go/aws/request" 10) 11 12// WaitUntilDBInstanceAvailable uses the Amazon RDS API operation 13// DescribeDBInstances to wait for a condition to be met before returning. 14// If the condition is not met within the max attempt window, an error will 15// be returned. 16func (c *RDS) WaitUntilDBInstanceAvailable(input *DescribeDBInstancesInput) error { 17 return c.WaitUntilDBInstanceAvailableWithContext(aws.BackgroundContext(), input) 18} 19 20// WaitUntilDBInstanceAvailableWithContext is an extended version of WaitUntilDBInstanceAvailable. 21// With the support for passing in a context and options to configure the 22// Waiter and the underlying request options. 23// 24// The context must be non-nil and will be used for request cancellation. If 25// the context is nil a panic will occur. In the future the SDK may create 26// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 27// for more information on using Contexts. 28func (c *RDS) WaitUntilDBInstanceAvailableWithContext(ctx aws.Context, input *DescribeDBInstancesInput, opts ...request.WaiterOption) error { 29 w := request.Waiter{ 30 Name: "WaitUntilDBInstanceAvailable", 31 MaxAttempts: 60, 32 Delay: request.ConstantWaiterDelay(30 * time.Second), 33 Acceptors: []request.WaiterAcceptor{ 34 { 35 State: request.SuccessWaiterState, 36 Matcher: request.PathAllWaiterMatch, Argument: "DBInstances[].DBInstanceStatus", 37 Expected: "available", 38 }, 39 { 40 State: request.FailureWaiterState, 41 Matcher: request.PathAnyWaiterMatch, Argument: "DBInstances[].DBInstanceStatus", 42 Expected: "deleted", 43 }, 44 { 45 State: request.FailureWaiterState, 46 Matcher: request.PathAnyWaiterMatch, Argument: "DBInstances[].DBInstanceStatus", 47 Expected: "deleting", 48 }, 49 { 50 State: request.FailureWaiterState, 51 Matcher: request.PathAnyWaiterMatch, Argument: "DBInstances[].DBInstanceStatus", 52 Expected: "failed", 53 }, 54 { 55 State: request.FailureWaiterState, 56 Matcher: request.PathAnyWaiterMatch, Argument: "DBInstances[].DBInstanceStatus", 57 Expected: "incompatible-restore", 58 }, 59 { 60 State: request.FailureWaiterState, 61 Matcher: request.PathAnyWaiterMatch, Argument: "DBInstances[].DBInstanceStatus", 62 Expected: "incompatible-parameters", 63 }, 64 }, 65 Logger: c.Config.Logger, 66 NewRequest: func(opts []request.Option) (*request.Request, error) { 67 var inCpy *DescribeDBInstancesInput 68 if input != nil { 69 tmp := *input 70 inCpy = &tmp 71 } 72 req, _ := c.DescribeDBInstancesRequest(inCpy) 73 req.SetContext(ctx) 74 req.ApplyOptions(opts...) 75 return req, nil 76 }, 77 } 78 w.ApplyOptions(opts...) 79 80 return w.WaitWithContext(ctx) 81} 82 83// WaitUntilDBInstanceDeleted uses the Amazon RDS API operation 84// DescribeDBInstances to wait for a condition to be met before returning. 85// If the condition is not met within the max attempt window, an error will 86// be returned. 87func (c *RDS) WaitUntilDBInstanceDeleted(input *DescribeDBInstancesInput) error { 88 return c.WaitUntilDBInstanceDeletedWithContext(aws.BackgroundContext(), input) 89} 90 91// WaitUntilDBInstanceDeletedWithContext is an extended version of WaitUntilDBInstanceDeleted. 92// With the support for passing in a context and options to configure the 93// Waiter and the underlying request options. 94// 95// The context must be non-nil and will be used for request cancellation. If 96// the context is nil a panic will occur. In the future the SDK may create 97// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 98// for more information on using Contexts. 99func (c *RDS) WaitUntilDBInstanceDeletedWithContext(ctx aws.Context, input *DescribeDBInstancesInput, opts ...request.WaiterOption) error { 100 w := request.Waiter{ 101 Name: "WaitUntilDBInstanceDeleted", 102 MaxAttempts: 60, 103 Delay: request.ConstantWaiterDelay(30 * time.Second), 104 Acceptors: []request.WaiterAcceptor{ 105 { 106 State: request.SuccessWaiterState, 107 Matcher: request.PathAllWaiterMatch, Argument: "DBInstances[].DBInstanceStatus", 108 Expected: "deleted", 109 }, 110 { 111 State: request.SuccessWaiterState, 112 Matcher: request.ErrorWaiterMatch, 113 Expected: "DBInstanceNotFound", 114 }, 115 { 116 State: request.FailureWaiterState, 117 Matcher: request.PathAnyWaiterMatch, Argument: "DBInstances[].DBInstanceStatus", 118 Expected: "creating", 119 }, 120 { 121 State: request.FailureWaiterState, 122 Matcher: request.PathAnyWaiterMatch, Argument: "DBInstances[].DBInstanceStatus", 123 Expected: "modifying", 124 }, 125 { 126 State: request.FailureWaiterState, 127 Matcher: request.PathAnyWaiterMatch, Argument: "DBInstances[].DBInstanceStatus", 128 Expected: "rebooting", 129 }, 130 { 131 State: request.FailureWaiterState, 132 Matcher: request.PathAnyWaiterMatch, Argument: "DBInstances[].DBInstanceStatus", 133 Expected: "resetting-master-credentials", 134 }, 135 }, 136 Logger: c.Config.Logger, 137 NewRequest: func(opts []request.Option) (*request.Request, error) { 138 var inCpy *DescribeDBInstancesInput 139 if input != nil { 140 tmp := *input 141 inCpy = &tmp 142 } 143 req, _ := c.DescribeDBInstancesRequest(inCpy) 144 req.SetContext(ctx) 145 req.ApplyOptions(opts...) 146 return req, nil 147 }, 148 } 149 w.ApplyOptions(opts...) 150 151 return w.WaitWithContext(ctx) 152} 153