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

     1  // Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
     2  
     3  package elb
     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  // WaitUntilAnyInstanceInService uses the Elastic Load Balancing API operation
    13  // DescribeInstanceHealth 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 *ELB) WaitUntilAnyInstanceInService(input *DescribeInstanceHealthInput) error {
    17  	return c.WaitUntilAnyInstanceInServiceWithContext(aws.BackgroundContext(), input)
    18  }
    19  
    20  // WaitUntilAnyInstanceInServiceWithContext is an extended version of WaitUntilAnyInstanceInService.
    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 *ELB) WaitUntilAnyInstanceInServiceWithContext(ctx aws.Context, input *DescribeInstanceHealthInput, opts ...request.WaiterOption) error {
    29  	w := request.Waiter{
    30  		Name:        "WaitUntilAnyInstanceInService",
    31  		MaxAttempts: 40,
    32  		Delay:       request.ConstantWaiterDelay(15 * time.Second),
    33  		Acceptors: []request.WaiterAcceptor{
    34  			{
    35  				State:   request.SuccessWaiterState,
    36  				Matcher: request.PathAnyWaiterMatch, Argument: "InstanceStates[].State",
    37  				Expected: "InService",
    38  			},
    39  		},
    40  		Logger: c.Config.Logger,
    41  		NewRequest: func(opts []request.Option) (*request.Request, error) {
    42  			var inCpy *DescribeInstanceHealthInput
    43  			if input != nil {
    44  				tmp := *input
    45  				inCpy = &tmp
    46  			}
    47  			req, _ := c.DescribeInstanceHealthRequest(inCpy)
    48  			req.SetContext(ctx)
    49  			req.ApplyOptions(opts...)
    50  			return req, nil
    51  		},
    52  	}
    53  	w.ApplyOptions(opts...)
    54  
    55  	return w.WaitWithContext(ctx)
    56  }
    57  
    58  // WaitUntilInstanceDeregistered uses the Elastic Load Balancing API operation
    59  // DescribeInstanceHealth to wait for a condition to be met before returning.
    60  // If the condition is not met within the max attempt window, an error will
    61  // be returned.
    62  func (c *ELB) WaitUntilInstanceDeregistered(input *DescribeInstanceHealthInput) error {
    63  	return c.WaitUntilInstanceDeregisteredWithContext(aws.BackgroundContext(), input)
    64  }
    65  
    66  // WaitUntilInstanceDeregisteredWithContext is an extended version of WaitUntilInstanceDeregistered.
    67  // With the support for passing in a context and options to configure the
    68  // Waiter and the underlying request options.
    69  //
    70  // The context must be non-nil and will be used for request cancellation. If
    71  // the context is nil a panic will occur. In the future the SDK may create
    72  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
    73  // for more information on using Contexts.
    74  func (c *ELB) WaitUntilInstanceDeregisteredWithContext(ctx aws.Context, input *DescribeInstanceHealthInput, opts ...request.WaiterOption) error {
    75  	w := request.Waiter{
    76  		Name:        "WaitUntilInstanceDeregistered",
    77  		MaxAttempts: 40,
    78  		Delay:       request.ConstantWaiterDelay(15 * time.Second),
    79  		Acceptors: []request.WaiterAcceptor{
    80  			{
    81  				State:   request.SuccessWaiterState,
    82  				Matcher: request.PathAllWaiterMatch, Argument: "InstanceStates[].State",
    83  				Expected: "OutOfService",
    84  			},
    85  			{
    86  				State:    request.SuccessWaiterState,
    87  				Matcher:  request.ErrorWaiterMatch,
    88  				Expected: "InvalidInstance",
    89  			},
    90  		},
    91  		Logger: c.Config.Logger,
    92  		NewRequest: func(opts []request.Option) (*request.Request, error) {
    93  			var inCpy *DescribeInstanceHealthInput
    94  			if input != nil {
    95  				tmp := *input
    96  				inCpy = &tmp
    97  			}
    98  			req, _ := c.DescribeInstanceHealthRequest(inCpy)
    99  			req.SetContext(ctx)
   100  			req.ApplyOptions(opts...)
   101  			return req, nil
   102  		},
   103  	}
   104  	w.ApplyOptions(opts...)
   105  
   106  	return w.WaitWithContext(ctx)
   107  }
   108  
   109  // WaitUntilInstanceInService uses the Elastic Load Balancing API operation
   110  // DescribeInstanceHealth to wait for a condition to be met before returning.
   111  // If the condition is not met within the max attempt window, an error will
   112  // be returned.
   113  func (c *ELB) WaitUntilInstanceInService(input *DescribeInstanceHealthInput) error {
   114  	return c.WaitUntilInstanceInServiceWithContext(aws.BackgroundContext(), input)
   115  }
   116  
   117  // WaitUntilInstanceInServiceWithContext is an extended version of WaitUntilInstanceInService.
   118  // With the support for passing in a context and options to configure the
   119  // Waiter and the underlying request options.
   120  //
   121  // The context must be non-nil and will be used for request cancellation. If
   122  // the context is nil a panic will occur. In the future the SDK may create
   123  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   124  // for more information on using Contexts.
   125  func (c *ELB) WaitUntilInstanceInServiceWithContext(ctx aws.Context, input *DescribeInstanceHealthInput, opts ...request.WaiterOption) error {
   126  	w := request.Waiter{
   127  		Name:        "WaitUntilInstanceInService",
   128  		MaxAttempts: 40,
   129  		Delay:       request.ConstantWaiterDelay(15 * time.Second),
   130  		Acceptors: []request.WaiterAcceptor{
   131  			{
   132  				State:   request.SuccessWaiterState,
   133  				Matcher: request.PathAllWaiterMatch, Argument: "InstanceStates[].State",
   134  				Expected: "InService",
   135  			},
   136  			{
   137  				State:    request.RetryWaiterState,
   138  				Matcher:  request.ErrorWaiterMatch,
   139  				Expected: "InvalidInstance",
   140  			},
   141  		},
   142  		Logger: c.Config.Logger,
   143  		NewRequest: func(opts []request.Option) (*request.Request, error) {
   144  			var inCpy *DescribeInstanceHealthInput
   145  			if input != nil {
   146  				tmp := *input
   147  				inCpy = &tmp
   148  			}
   149  			req, _ := c.DescribeInstanceHealthRequest(inCpy)
   150  			req.SetContext(ctx)
   151  			req.ApplyOptions(opts...)
   152  			return req, nil
   153  		},
   154  	}
   155  	w.ApplyOptions(opts...)
   156  
   157  	return w.WaitWithContext(ctx)
   158  }