api_key.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 proto "google.golang.org/protobuf/proto"
13 "google.golang.org/protobuf/reflect/protoreflect"
14 emptypb "google.golang.org/protobuf/types/known/emptypb"
15 )
16
17 // ApiKeyClient provides methods for managing ApiKey resources of Yandex.Cloud IAM.
18 type ApiKeyClient interface {
19 List(context.Context, *iam.ListApiKeysRequest, ...grpc.CallOption) (*iam.ListApiKeysResponse, error)
20 Get(context.Context, *iam.GetApiKeyRequest, ...grpc.CallOption) (*iam.ApiKey, error)
21 Create(context.Context, *iam.CreateApiKeyRequest, ...grpc.CallOption) (*iam.CreateApiKeyResponse, error)
22 Update(context.Context, *iam.UpdateApiKeyRequest, ...grpc.CallOption) (*ApiKeyUpdateOperation, error)
23 Delete(context.Context, *iam.DeleteApiKeyRequest, ...grpc.CallOption) (*ApiKeyDeleteOperation, error)
24 ListOperations(context.Context, *iam.ListApiKeyOperationsRequest, ...grpc.CallOption) (*iam.ListApiKeyOperationsResponse, error)
25 ListScopes(context.Context, *iam.ListApiKeyScopesRequest, ...grpc.CallOption) (*iam.ListApiKeyScopesResponse, error)
26 }
27
28 var _ ApiKeyClient = apiKeyClient{}
29
30 type apiKeyClient struct {
31 connector transport.Connector
32 }
33
34 // NewApiKeyClient returns ApiKeyClient implementation.
35 func NewApiKeyClient(connector transport.Connector) ApiKeyClient {
36 return apiKeyClient{connector}
37 }
38
39 // List is an operation of Yandex.Cloud IAM ApiKey service.
40 func (c apiKeyClient) List(ctx context.Context, in *iam.ListApiKeysRequest, opts ...grpc.CallOption) (*iam.ListApiKeysResponse, error) {
41 connection, err := c.connector.GetConnection(ctx, ApiKeyList, opts...)
42 if err != nil {
43 return nil, err
44 }
45 return iam.NewApiKeyServiceClient(connection).List(ctx, in, opts...)
46 }
47
48 // Get is an operation of Yandex.Cloud IAM ApiKey service.
49 func (c apiKeyClient) Get(ctx context.Context, in *iam.GetApiKeyRequest, opts ...grpc.CallOption) (*iam.ApiKey, error) {
50 connection, err := c.connector.GetConnection(ctx, ApiKeyGet, opts...)
51 if err != nil {
52 return nil, err
53 }
54 return iam.NewApiKeyServiceClient(connection).Get(ctx, in, opts...)
55 }
56
57 // Create is an operation of Yandex.Cloud IAM ApiKey service.
58 func (c apiKeyClient) Create(ctx context.Context, in *iam.CreateApiKeyRequest, opts ...grpc.CallOption) (*iam.CreateApiKeyResponse, error) {
59 connection, err := c.connector.GetConnection(ctx, ApiKeyCreate, opts...)
60 if err != nil {
61 return nil, err
62 }
63 return iam.NewApiKeyServiceClient(connection).Create(ctx, in, opts...)
64 }
65
66 // ApiKeyUpdateOperation is used to monitor the state of Update operations.
67 type ApiKeyUpdateOperation struct {
68 sdkop.Operation
69 }
70
71 // Metadata retrieves the operation metadata.
72 func (o *ApiKeyUpdateOperation) Metadata() *iam.UpdateApiKeyMetadata {
73 return o.Operation.Metadata().(*iam.UpdateApiKeyMetadata)
74 }
75
76 // Response retrieves the operation response.
77 func (o *ApiKeyUpdateOperation) Response() *iam.ApiKey {
78 return o.Operation.Response().(*iam.ApiKey)
79 }
80
81 // Wait polls the operation until it's done.
82 func (o *ApiKeyUpdateOperation) Wait(ctx context.Context, opts ...grpc.CallOption) (*iam.ApiKey, error) {
83 abstract, err := o.Operation.Wait(ctx, opts...)
84 response, _ := abstract.(*iam.ApiKey)
85 return response, err
86 }
87
88 // WaitInterval polls the operation until it's done with custom interval.
89 func (o *ApiKeyUpdateOperation) WaitInterval(ctx context.Context, pollInterval sdkop.PollIntervalFunc, opts ...grpc.CallOption) (*iam.ApiKey, error) {
90 abstract, err := o.Operation.WaitInterval(ctx, pollInterval, opts...)
91 response, _ := abstract.(*iam.ApiKey)
92 return response, err
93 }
94
95 // Update is an operation of Yandex.Cloud IAM ApiKey service.
96 // It returns an object which should be used to monitor the operation state.
97 func (c apiKeyClient) Update(ctx context.Context, in *iam.UpdateApiKeyRequest, opts ...grpc.CallOption) (*ApiKeyUpdateOperation, error) {
98 connection, err := c.connector.GetConnection(ctx, ApiKeyUpdate, opts...)
99 if err != nil {
100 return nil, err
101 }
102 pb, err := iam.NewApiKeyServiceClient(connection).Update(ctx, in, opts...)
103 if err != nil {
104 return nil, err
105 }
106 op, err := sdkop.NewOperation(pb, &sdkop.Concretization{
107 Poll: c.pollOperation,
108 GetResourceID: func(metadata proto.Message) string {
109 return metadata.(*iam.UpdateApiKeyMetadata).GetApiKeyId()
110 },
111 MetadataType: (*iam.UpdateApiKeyMetadata)(nil),
112 ResponseType: (*iam.ApiKey)(nil),
113 })
114 if err != nil {
115 return nil, err
116 }
117 return &ApiKeyUpdateOperation{*op}, nil
118 }
119
120 // ApiKeyDeleteOperation is used to monitor the state of Delete operations.
121 type ApiKeyDeleteOperation struct {
122 sdkop.Operation
123 }
124
125 // Metadata retrieves the operation metadata.
126 func (o *ApiKeyDeleteOperation) Metadata() *iam.DeleteApiKeyMetadata {
127 return o.Operation.Metadata().(*iam.DeleteApiKeyMetadata)
128 }
129
130 // Response retrieves the operation response.
131 func (o *ApiKeyDeleteOperation) Response() *emptypb.Empty {
132 return o.Operation.Response().(*emptypb.Empty)
133 }
134
135 // Wait polls the operation until it's done.
136 func (o *ApiKeyDeleteOperation) Wait(ctx context.Context, opts ...grpc.CallOption) (*emptypb.Empty, error) {
137 abstract, err := o.Operation.Wait(ctx, opts...)
138 response, _ := abstract.(*emptypb.Empty)
139 return response, err
140 }
141
142 // WaitInterval polls the operation until it's done with custom interval.
143 func (o *ApiKeyDeleteOperation) WaitInterval(ctx context.Context, pollInterval sdkop.PollIntervalFunc, opts ...grpc.CallOption) (*emptypb.Empty, error) {
144 abstract, err := o.Operation.WaitInterval(ctx, pollInterval, opts...)
145 response, _ := abstract.(*emptypb.Empty)
146 return response, err
147 }
148
149 // Delete is an operation of Yandex.Cloud IAM ApiKey service.
150 // It returns an object which should be used to monitor the operation state.
151 func (c apiKeyClient) Delete(ctx context.Context, in *iam.DeleteApiKeyRequest, opts ...grpc.CallOption) (*ApiKeyDeleteOperation, error) {
152 connection, err := c.connector.GetConnection(ctx, ApiKeyDelete, opts...)
153 if err != nil {
154 return nil, err
155 }
156 pb, err := iam.NewApiKeyServiceClient(connection).Delete(ctx, in, opts...)
157 if err != nil {
158 return nil, err
159 }
160 op, err := sdkop.NewOperation(pb, &sdkop.Concretization{
161 Poll: c.pollOperation,
162 GetResourceID: func(metadata proto.Message) string {
163 return metadata.(*iam.DeleteApiKeyMetadata).GetApiKeyId()
164 },
165 MetadataType: (*iam.DeleteApiKeyMetadata)(nil),
166 ResponseType: (*emptypb.Empty)(nil),
167 })
168 if err != nil {
169 return nil, err
170 }
171 return &ApiKeyDeleteOperation{*op}, nil
172 }
173
174 // ListOperations is an operation of Yandex.Cloud IAM ApiKey service.
175 func (c apiKeyClient) ListOperations(ctx context.Context, in *iam.ListApiKeyOperationsRequest, opts ...grpc.CallOption) (*iam.ListApiKeyOperationsResponse, error) {
176 connection, err := c.connector.GetConnection(ctx, ApiKeyListOperations, opts...)
177 if err != nil {
178 return nil, err
179 }
180 return iam.NewApiKeyServiceClient(connection).ListOperations(ctx, in, opts...)
181 }
182
183 // ListScopes is an operation of Yandex.Cloud IAM ApiKey service.
184 func (c apiKeyClient) ListScopes(ctx context.Context, in *iam.ListApiKeyScopesRequest, opts ...grpc.CallOption) (*iam.ListApiKeyScopesResponse, error) {
185 connection, err := c.connector.GetConnection(ctx, ApiKeyListScopes, opts...)
186 if err != nil {
187 return nil, err
188 }
189 return iam.NewApiKeyServiceClient(connection).ListScopes(ctx, in, opts...)
190 }
191
192 // pollOperation returns the current state of the polled operation.
193 func (c apiKeyClient) pollOperation(ctx context.Context, operationId string, opts ...grpc.CallOption) (sdkop.YCOperation, error) {
194 connection, err := c.connector.GetConnection(ctx, ApiKeyOperationPoller, opts...)
195 if err != nil {
196 return nil, err
197 }
198 return operation.NewOperationServiceClient(connection).Get(ctx, &operation.GetOperationRequest{OperationId: operationId}, opts...)
199 }
200
201 var (
202 ApiKeyList = protoreflect.FullName("yandex.cloud.iam.v1.ApiKeyService.List")
203 ApiKeyGet = protoreflect.FullName("yandex.cloud.iam.v1.ApiKeyService.Get")
204 ApiKeyCreate = protoreflect.FullName("yandex.cloud.iam.v1.ApiKeyService.Create")
205 ApiKeyUpdate = protoreflect.FullName("yandex.cloud.iam.v1.ApiKeyService.Update")
206 ApiKeyDelete = protoreflect.FullName("yandex.cloud.iam.v1.ApiKeyService.Delete")
207 ApiKeyListOperations = protoreflect.FullName("yandex.cloud.iam.v1.ApiKeyService.ListOperations")
208 ApiKeyListScopes = protoreflect.FullName("yandex.cloud.iam.v1.ApiKeyService.ListScopes")
209 ApiKeyOperationPoller = protoreflect.FullName("yandex.cloud.operation.OperationService.Get")
210 )
211