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