123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227 |
- // Code generated by smithy-go-codegen DO NOT EDIT.
- package cloudwatchlogs
- import (
- "context"
- "fmt"
- awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware"
- "github.com/aws/aws-sdk-go-v2/aws/signer/v4"
- "github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs/types"
- "github.com/aws/smithy-go/middleware"
- smithyhttp "github.com/aws/smithy-go/transport/http"
- )
- // Lists the specified log groups. You can list all your log groups or filter the
- // results by prefix. The results are ASCII-sorted by log group name. CloudWatch
- // Logs doesn’t support IAM policies that control access to the DescribeLogGroups
- // action by using the aws:ResourceTag/key-name condition key. Other CloudWatch
- // Logs actions do support the use of the aws:ResourceTag/key-name condition key
- // to control access. For more information about using tags to control access, see
- // Controlling access to Amazon Web Services resources using tags
- // (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html).
- func (c *Client) DescribeLogGroups(ctx context.Context, params *DescribeLogGroupsInput, optFns ...func(*Options)) (*DescribeLogGroupsOutput, error) {
- if params == nil {
- params = &DescribeLogGroupsInput{}
- }
- result, metadata, err := c.invokeOperation(ctx, "DescribeLogGroups", params, optFns, c.addOperationDescribeLogGroupsMiddlewares)
- if err != nil {
- return nil, err
- }
- out := result.(*DescribeLogGroupsOutput)
- out.ResultMetadata = metadata
- return out, nil
- }
- type DescribeLogGroupsInput struct {
- // The maximum number of items returned. If you don't specify a value, the default
- // is up to 50 items.
- Limit *int32
- // The prefix to match.
- LogGroupNamePrefix *string
- // The token for the next set of items to return. (You received this token from a
- // previous call.)
- NextToken *string
- noSmithyDocumentSerde
- }
- type DescribeLogGroupsOutput struct {
- // The log groups. If the retentionInDays value is not included for a log group,
- // then that log group is set to have its events never expire.
- LogGroups []types.LogGroup
- // The token for the next set of items to return. The token expires after 24 hours.
- NextToken *string
- // Metadata pertaining to the operation's result.
- ResultMetadata middleware.Metadata
- noSmithyDocumentSerde
- }
- func (c *Client) addOperationDescribeLogGroupsMiddlewares(stack *middleware.Stack, options Options) (err error) {
- err = stack.Serialize.Add(&awsAwsjson11_serializeOpDescribeLogGroups{}, middleware.After)
- if err != nil {
- return err
- }
- err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpDescribeLogGroups{}, middleware.After)
- if err != nil {
- return err
- }
- if err = addSetLoggerMiddleware(stack, options); err != nil {
- return err
- }
- if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil {
- return err
- }
- if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil {
- return err
- }
- if err = addResolveEndpointMiddleware(stack, options); err != nil {
- return err
- }
- if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil {
- return err
- }
- if err = addRetryMiddlewares(stack, options); err != nil {
- return err
- }
- if err = addHTTPSignerV4Middleware(stack, options); err != nil {
- return err
- }
- if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil {
- return err
- }
- if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil {
- return err
- }
- if err = addClientUserAgent(stack); err != nil {
- return err
- }
- if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil {
- return err
- }
- if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil {
- return err
- }
- if err = stack.Initialize.Add(newServiceMetadataMiddleware_opDescribeLogGroups(options.Region), middleware.Before); err != nil {
- return err
- }
- if err = addRequestIDRetrieverMiddleware(stack); err != nil {
- return err
- }
- if err = addResponseErrorMiddleware(stack); err != nil {
- return err
- }
- if err = addRequestResponseLogging(stack, options); err != nil {
- return err
- }
- return nil
- }
- // DescribeLogGroupsAPIClient is a client that implements the DescribeLogGroups
- // operation.
- type DescribeLogGroupsAPIClient interface {
- DescribeLogGroups(context.Context, *DescribeLogGroupsInput, ...func(*Options)) (*DescribeLogGroupsOutput, error)
- }
- var _ DescribeLogGroupsAPIClient = (*Client)(nil)
- // DescribeLogGroupsPaginatorOptions is the paginator options for DescribeLogGroups
- type DescribeLogGroupsPaginatorOptions struct {
- // The maximum number of items returned. If you don't specify a value, the default
- // is up to 50 items.
- Limit int32
- // Set to true if pagination should stop if the service returns a pagination token
- // that matches the most recent token provided to the service.
- StopOnDuplicateToken bool
- }
- // DescribeLogGroupsPaginator is a paginator for DescribeLogGroups
- type DescribeLogGroupsPaginator struct {
- options DescribeLogGroupsPaginatorOptions
- client DescribeLogGroupsAPIClient
- params *DescribeLogGroupsInput
- nextToken *string
- firstPage bool
- }
- // NewDescribeLogGroupsPaginator returns a new DescribeLogGroupsPaginator
- func NewDescribeLogGroupsPaginator(client DescribeLogGroupsAPIClient, params *DescribeLogGroupsInput, optFns ...func(*DescribeLogGroupsPaginatorOptions)) *DescribeLogGroupsPaginator {
- if params == nil {
- params = &DescribeLogGroupsInput{}
- }
- options := DescribeLogGroupsPaginatorOptions{}
- if params.Limit != nil {
- options.Limit = *params.Limit
- }
- for _, fn := range optFns {
- fn(&options)
- }
- return &DescribeLogGroupsPaginator{
- options: options,
- client: client,
- params: params,
- firstPage: true,
- nextToken: params.NextToken,
- }
- }
- // HasMorePages returns a boolean indicating whether more pages are available
- func (p *DescribeLogGroupsPaginator) HasMorePages() bool {
- return p.firstPage || (p.nextToken != nil && len(*p.nextToken) != 0)
- }
- // NextPage retrieves the next DescribeLogGroups page.
- func (p *DescribeLogGroupsPaginator) NextPage(ctx context.Context, optFns ...func(*Options)) (*DescribeLogGroupsOutput, error) {
- if !p.HasMorePages() {
- return nil, fmt.Errorf("no more pages available")
- }
- params := *p.params
- params.NextToken = p.nextToken
- var limit *int32
- if p.options.Limit > 0 {
- limit = &p.options.Limit
- }
- params.Limit = limit
- result, err := p.client.DescribeLogGroups(ctx, ¶ms, optFns...)
- if err != nil {
- return nil, err
- }
- p.firstPage = false
- prevToken := p.nextToken
- p.nextToken = result.NextToken
- if p.options.StopOnDuplicateToken &&
- prevToken != nil &&
- p.nextToken != nil &&
- *prevToken == *p.nextToken {
- p.nextToken = nil
- }
- return result, nil
- }
- func newServiceMetadataMiddleware_opDescribeLogGroups(region string) *awsmiddleware.RegisterServiceMetadata {
- return &awsmiddleware.RegisterServiceMetadata{
- Region: region,
- ServiceID: ServiceID,
- SigningName: "logs",
- OperationName: "DescribeLogGroups",
- }
- }
|