github.com/aavshr/aws-sdk-go@v1.41.3/service/docdb/waiters.go (about)

     1  // Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
     2  
     3  package docdb
     4  
     5  import (
     6  	"time"
     7  
     8  	"github.com/aavshr/aws-sdk-go/aws"
     9  	"github.com/aavshr/aws-sdk-go/aws/request"
    10  )
    11  
    12  // WaitUntilDBInstanceAvailable uses the Amazon DocDB 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.
    16  func (c *DocDB) 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.
    28  func (c *DocDB) 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 DocDB 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.
    87  func (c *DocDB) 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.
    99  func (c *DocDB) 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  }