refresh_token.go raw

   1  // Code generated by sdkgen-v2. DO NOT EDIT.
   2  package iamsdk
   3  
   4  import (
   5  	"context"
   6  
   7  	iam "github.com/yandex-cloud/go-genproto/yandex/cloud/iam/v1"
   8  	operation "github.com/yandex-cloud/go-genproto/yandex/cloud/operation"
   9  	sdkop "github.com/yandex-cloud/go-sdk/v2/pkg/operation"
  10  	"github.com/yandex-cloud/go-sdk/v2/pkg/transport"
  11  	"google.golang.org/grpc"
  12  	"google.golang.org/protobuf/reflect/protoreflect"
  13  )
  14  
  15  // RefreshTokenClient provides methods for managing RefreshToken resources of Yandex.Cloud IAM.
  16  type RefreshTokenClient interface {
  17  	List(context.Context, *iam.ListRefreshTokensRequest, ...grpc.CallOption) (*iam.ListRefreshTokensResponse, error)
  18  	Revoke(context.Context, *iam.RevokeRefreshTokenRequest, ...grpc.CallOption) (*RefreshTokenRevokeOperation, error)
  19  }
  20  
  21  var _ RefreshTokenClient = refreshTokenClient{}
  22  
  23  type refreshTokenClient struct {
  24  	connector transport.Connector
  25  }
  26  
  27  // NewRefreshTokenClient returns RefreshTokenClient implementation.
  28  func NewRefreshTokenClient(connector transport.Connector) RefreshTokenClient {
  29  	return refreshTokenClient{connector}
  30  }
  31  
  32  // List is an operation of Yandex.Cloud IAM RefreshToken service.
  33  func (c refreshTokenClient) List(ctx context.Context, in *iam.ListRefreshTokensRequest, opts ...grpc.CallOption) (*iam.ListRefreshTokensResponse, error) {
  34  	connection, err := c.connector.GetConnection(ctx, RefreshTokenList, opts...)
  35  	if err != nil {
  36  		return nil, err
  37  	}
  38  	return iam.NewRefreshTokenServiceClient(connection).List(ctx, in, opts...)
  39  }
  40  
  41  // RefreshTokenRevokeOperation is used to monitor the state of Revoke operations.
  42  type RefreshTokenRevokeOperation struct {
  43  	sdkop.Operation
  44  }
  45  
  46  // Metadata retrieves the operation metadata.
  47  func (o *RefreshTokenRevokeOperation) Metadata() *iam.RevokeRefreshTokenMetadata {
  48  	return o.Operation.Metadata().(*iam.RevokeRefreshTokenMetadata)
  49  }
  50  
  51  // Response retrieves the operation response.
  52  func (o *RefreshTokenRevokeOperation) Response() *iam.RevokeRefreshTokenResponse {
  53  	return o.Operation.Response().(*iam.RevokeRefreshTokenResponse)
  54  }
  55  
  56  // Wait polls the operation until it's done.
  57  func (o *RefreshTokenRevokeOperation) Wait(ctx context.Context, opts ...grpc.CallOption) (*iam.RevokeRefreshTokenResponse, error) {
  58  	abstract, err := o.Operation.Wait(ctx, opts...)
  59  	response, _ := abstract.(*iam.RevokeRefreshTokenResponse)
  60  	return response, err
  61  }
  62  
  63  // WaitInterval polls the operation until it's done with custom interval.
  64  func (o *RefreshTokenRevokeOperation) WaitInterval(ctx context.Context, pollInterval sdkop.PollIntervalFunc, opts ...grpc.CallOption) (*iam.RevokeRefreshTokenResponse, error) {
  65  	abstract, err := o.Operation.WaitInterval(ctx, pollInterval, opts...)
  66  	response, _ := abstract.(*iam.RevokeRefreshTokenResponse)
  67  	return response, err
  68  }
  69  
  70  // Revoke is an operation of Yandex.Cloud IAM RefreshToken service.
  71  // It returns an object which should be used to monitor the operation state.
  72  func (c refreshTokenClient) Revoke(ctx context.Context, in *iam.RevokeRefreshTokenRequest, opts ...grpc.CallOption) (*RefreshTokenRevokeOperation, error) {
  73  	connection, err := c.connector.GetConnection(ctx, RefreshTokenRevoke, opts...)
  74  	if err != nil {
  75  		return nil, err
  76  	}
  77  	pb, err := iam.NewRefreshTokenServiceClient(connection).Revoke(ctx, in, opts...)
  78  	if err != nil {
  79  		return nil, err
  80  	}
  81  	op, err := sdkop.NewOperation(pb, &sdkop.Concretization{
  82  		Poll:         c.pollOperation,
  83  		MetadataType: (*iam.RevokeRefreshTokenMetadata)(nil),
  84  		ResponseType: (*iam.RevokeRefreshTokenResponse)(nil),
  85  	})
  86  	if err != nil {
  87  		return nil, err
  88  	}
  89  	return &RefreshTokenRevokeOperation{*op}, nil
  90  }
  91  
  92  // pollOperation returns the current state of the polled operation.
  93  func (c refreshTokenClient) pollOperation(ctx context.Context, operationId string, opts ...grpc.CallOption) (sdkop.YCOperation, error) {
  94  	connection, err := c.connector.GetConnection(ctx, RefreshTokenOperationPoller, opts...)
  95  	if err != nil {
  96  		return nil, err
  97  	}
  98  	return operation.NewOperationServiceClient(connection).Get(ctx, &operation.GetOperationRequest{OperationId: operationId}, opts...)
  99  }
 100  
 101  var (
 102  	RefreshTokenList            = protoreflect.FullName("yandex.cloud.iam.v1.RefreshTokenService.List")
 103  	RefreshTokenRevoke          = protoreflect.FullName("yandex.cloud.iam.v1.RefreshTokenService.Revoke")
 104  	RefreshTokenOperationPoller = protoreflect.FullName("yandex.cloud.operation.OperationService.Get")
 105  )
 106