code.dwrz.net

Go monorepo.
Log | Files | Refs

api_op_ListCidrBlocks.go (6330B)


      1 // Code generated by smithy-go-codegen DO NOT EDIT.
      2 
      3 package route53
      4 
      5 import (
      6 	"context"
      7 	"fmt"
      8 	awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware"
      9 	"github.com/aws/aws-sdk-go-v2/aws/signer/v4"
     10 	"github.com/aws/aws-sdk-go-v2/service/route53/types"
     11 	"github.com/aws/smithy-go/middleware"
     12 	smithyhttp "github.com/aws/smithy-go/transport/http"
     13 )
     14 
     15 // Returns a paginated list of location objects and their CIDR blocks.
     16 func (c *Client) ListCidrBlocks(ctx context.Context, params *ListCidrBlocksInput, optFns ...func(*Options)) (*ListCidrBlocksOutput, error) {
     17 	if params == nil {
     18 		params = &ListCidrBlocksInput{}
     19 	}
     20 
     21 	result, metadata, err := c.invokeOperation(ctx, "ListCidrBlocks", params, optFns, c.addOperationListCidrBlocksMiddlewares)
     22 	if err != nil {
     23 		return nil, err
     24 	}
     25 
     26 	out := result.(*ListCidrBlocksOutput)
     27 	out.ResultMetadata = metadata
     28 	return out, nil
     29 }
     30 
     31 type ListCidrBlocksInput struct {
     32 
     33 	// The UUID of the CIDR collection.
     34 	//
     35 	// This member is required.
     36 	CollectionId *string
     37 
     38 	// The name of the CIDR collection location.
     39 	LocationName *string
     40 
     41 	// Maximum number of results you want returned.
     42 	MaxResults *int32
     43 
     44 	// An opaque pagination token to indicate where the service is to begin enumerating
     45 	// results.
     46 	NextToken *string
     47 
     48 	noSmithyDocumentSerde
     49 }
     50 
     51 type ListCidrBlocksOutput struct {
     52 
     53 	// A complex type that contains information about the CIDR blocks.
     54 	CidrBlocks []types.CidrBlockSummary
     55 
     56 	// An opaque pagination token to indicate where the service is to begin enumerating
     57 	// results. If no value is provided, the listing of results starts from the
     58 	// beginning.
     59 	NextToken *string
     60 
     61 	// Metadata pertaining to the operation's result.
     62 	ResultMetadata middleware.Metadata
     63 
     64 	noSmithyDocumentSerde
     65 }
     66 
     67 func (c *Client) addOperationListCidrBlocksMiddlewares(stack *middleware.Stack, options Options) (err error) {
     68 	err = stack.Serialize.Add(&awsRestxml_serializeOpListCidrBlocks{}, middleware.After)
     69 	if err != nil {
     70 		return err
     71 	}
     72 	err = stack.Deserialize.Add(&awsRestxml_deserializeOpListCidrBlocks{}, middleware.After)
     73 	if err != nil {
     74 		return err
     75 	}
     76 	if err = addSetLoggerMiddleware(stack, options); err != nil {
     77 		return err
     78 	}
     79 	if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil {
     80 		return err
     81 	}
     82 	if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil {
     83 		return err
     84 	}
     85 	if err = addResolveEndpointMiddleware(stack, options); err != nil {
     86 		return err
     87 	}
     88 	if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil {
     89 		return err
     90 	}
     91 	if err = addRetryMiddlewares(stack, options); err != nil {
     92 		return err
     93 	}
     94 	if err = addHTTPSignerV4Middleware(stack, options); err != nil {
     95 		return err
     96 	}
     97 	if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil {
     98 		return err
     99 	}
    100 	if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil {
    101 		return err
    102 	}
    103 	if err = addClientUserAgent(stack); err != nil {
    104 		return err
    105 	}
    106 	if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil {
    107 		return err
    108 	}
    109 	if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil {
    110 		return err
    111 	}
    112 	if err = addOpListCidrBlocksValidationMiddleware(stack); err != nil {
    113 		return err
    114 	}
    115 	if err = stack.Initialize.Add(newServiceMetadataMiddleware_opListCidrBlocks(options.Region), middleware.Before); err != nil {
    116 		return err
    117 	}
    118 	if err = addRequestIDRetrieverMiddleware(stack); err != nil {
    119 		return err
    120 	}
    121 	if err = addResponseErrorMiddleware(stack); err != nil {
    122 		return err
    123 	}
    124 	if err = addRequestResponseLogging(stack, options); err != nil {
    125 		return err
    126 	}
    127 	return nil
    128 }
    129 
    130 // ListCidrBlocksAPIClient is a client that implements the ListCidrBlocks
    131 // operation.
    132 type ListCidrBlocksAPIClient interface {
    133 	ListCidrBlocks(context.Context, *ListCidrBlocksInput, ...func(*Options)) (*ListCidrBlocksOutput, error)
    134 }
    135 
    136 var _ ListCidrBlocksAPIClient = (*Client)(nil)
    137 
    138 // ListCidrBlocksPaginatorOptions is the paginator options for ListCidrBlocks
    139 type ListCidrBlocksPaginatorOptions struct {
    140 	// Maximum number of results you want returned.
    141 	Limit int32
    142 
    143 	// Set to true if pagination should stop if the service returns a pagination token
    144 	// that matches the most recent token provided to the service.
    145 	StopOnDuplicateToken bool
    146 }
    147 
    148 // ListCidrBlocksPaginator is a paginator for ListCidrBlocks
    149 type ListCidrBlocksPaginator struct {
    150 	options   ListCidrBlocksPaginatorOptions
    151 	client    ListCidrBlocksAPIClient
    152 	params    *ListCidrBlocksInput
    153 	nextToken *string
    154 	firstPage bool
    155 }
    156 
    157 // NewListCidrBlocksPaginator returns a new ListCidrBlocksPaginator
    158 func NewListCidrBlocksPaginator(client ListCidrBlocksAPIClient, params *ListCidrBlocksInput, optFns ...func(*ListCidrBlocksPaginatorOptions)) *ListCidrBlocksPaginator {
    159 	if params == nil {
    160 		params = &ListCidrBlocksInput{}
    161 	}
    162 
    163 	options := ListCidrBlocksPaginatorOptions{}
    164 	if params.MaxResults != nil {
    165 		options.Limit = *params.MaxResults
    166 	}
    167 
    168 	for _, fn := range optFns {
    169 		fn(&options)
    170 	}
    171 
    172 	return &ListCidrBlocksPaginator{
    173 		options:   options,
    174 		client:    client,
    175 		params:    params,
    176 		firstPage: true,
    177 		nextToken: params.NextToken,
    178 	}
    179 }
    180 
    181 // HasMorePages returns a boolean indicating whether more pages are available
    182 func (p *ListCidrBlocksPaginator) HasMorePages() bool {
    183 	return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0)
    184 }
    185 
    186 // NextPage retrieves the next ListCidrBlocks page.
    187 func (p *ListCidrBlocksPaginator) NextPage(ctx context.Context, optFns ...func(*Options)) (*ListCidrBlocksOutput, error) {
    188 	if !p.HasMorePages() {
    189 		return nil, fmt.Errorf("no more pages available")
    190 	}
    191 
    192 	params := *p.params
    193 	params.NextToken = p.nextToken
    194 
    195 	var limit *int32
    196 	if p.options.Limit > 0 {
    197 		limit = &p.options.Limit
    198 	}
    199 	params.MaxResults = limit
    200 
    201 	result, err := p.client.ListCidrBlocks(ctx, &params, optFns...)
    202 	if err != nil {
    203 		return nil, err
    204 	}
    205 	p.firstPage = false
    206 
    207 	prevToken := p.nextToken
    208 	p.nextToken = result.NextToken
    209 
    210 	if p.options.StopOnDuplicateToken &&
    211 		prevToken != nil &&
    212 		p.nextToken != nil &&
    213 		*prevToken == *p.nextToken {
    214 		p.nextToken = nil
    215 	}
    216 
    217 	return result, nil
    218 }
    219 
    220 func newServiceMetadataMiddleware_opListCidrBlocks(region string) *awsmiddleware.RegisterServiceMetadata {
    221 	return &awsmiddleware.RegisterServiceMetadata{
    222 		Region:        region,
    223 		ServiceID:     ServiceID,
    224 		SigningName:   "route53",
    225 		OperationName: "ListCidrBlocks",
    226 	}
    227 }