service_account.go raw
1 // Code generated by sdkgen-v2. DO NOT EDIT.
2 package iamsdk
3
4 import (
5 "context"
6
7 access "github.com/yandex-cloud/go-genproto/yandex/cloud/access"
8 iam "github.com/yandex-cloud/go-genproto/yandex/cloud/iam/v1"
9 operation "github.com/yandex-cloud/go-genproto/yandex/cloud/operation"
10 sdkop "github.com/yandex-cloud/go-sdk/v2/pkg/operation"
11 "github.com/yandex-cloud/go-sdk/v2/pkg/transport"
12 "google.golang.org/grpc"
13 proto "google.golang.org/protobuf/proto"
14 "google.golang.org/protobuf/reflect/protoreflect"
15 emptypb "google.golang.org/protobuf/types/known/emptypb"
16 )
17
18 // ServiceAccountClient provides methods for managing ServiceAccount resources of Yandex.Cloud IAM.
19 type ServiceAccountClient interface {
20 Get(context.Context, *iam.GetServiceAccountRequest, ...grpc.CallOption) (*iam.ServiceAccount, error)
21 List(context.Context, *iam.ListServiceAccountsRequest, ...grpc.CallOption) (*iam.ListServiceAccountsResponse, error)
22 Create(context.Context, *iam.CreateServiceAccountRequest, ...grpc.CallOption) (*ServiceAccountCreateOperation, error)
23 Update(context.Context, *iam.UpdateServiceAccountRequest, ...grpc.CallOption) (*ServiceAccountUpdateOperation, error)
24 Delete(context.Context, *iam.DeleteServiceAccountRequest, ...grpc.CallOption) (*ServiceAccountDeleteOperation, error)
25 ListAccessBindings(context.Context, *access.ListAccessBindingsRequest, ...grpc.CallOption) (*access.ListAccessBindingsResponse, error)
26 SetAccessBindings(context.Context, *access.SetAccessBindingsRequest, ...grpc.CallOption) (*ServiceAccountSetAccessBindingsOperation, error)
27 UpdateAccessBindings(context.Context, *access.UpdateAccessBindingsRequest, ...grpc.CallOption) (*ServiceAccountUpdateAccessBindingsOperation, error)
28 ListOperations(context.Context, *iam.ListServiceAccountOperationsRequest, ...grpc.CallOption) (*iam.ListServiceAccountOperationsResponse, error)
29 }
30
31 var _ ServiceAccountClient = serviceAccountClient{}
32
33 type serviceAccountClient struct {
34 connector transport.Connector
35 }
36
37 // NewServiceAccountClient returns ServiceAccountClient implementation.
38 func NewServiceAccountClient(connector transport.Connector) ServiceAccountClient {
39 return serviceAccountClient{connector}
40 }
41
42 // Get is an operation of Yandex.Cloud IAM ServiceAccount service.
43 func (c serviceAccountClient) Get(ctx context.Context, in *iam.GetServiceAccountRequest, opts ...grpc.CallOption) (*iam.ServiceAccount, error) {
44 connection, err := c.connector.GetConnection(ctx, ServiceAccountGet, opts...)
45 if err != nil {
46 return nil, err
47 }
48 return iam.NewServiceAccountServiceClient(connection).Get(ctx, in, opts...)
49 }
50
51 // List is an operation of Yandex.Cloud IAM ServiceAccount service.
52 func (c serviceAccountClient) List(ctx context.Context, in *iam.ListServiceAccountsRequest, opts ...grpc.CallOption) (*iam.ListServiceAccountsResponse, error) {
53 connection, err := c.connector.GetConnection(ctx, ServiceAccountList, opts...)
54 if err != nil {
55 return nil, err
56 }
57 return iam.NewServiceAccountServiceClient(connection).List(ctx, in, opts...)
58 }
59
60 // ServiceAccountCreateOperation is used to monitor the state of Create operations.
61 type ServiceAccountCreateOperation struct {
62 sdkop.Operation
63 }
64
65 // Metadata retrieves the operation metadata.
66 func (o *ServiceAccountCreateOperation) Metadata() *iam.CreateServiceAccountMetadata {
67 return o.Operation.Metadata().(*iam.CreateServiceAccountMetadata)
68 }
69
70 // Response retrieves the operation response.
71 func (o *ServiceAccountCreateOperation) Response() *iam.ServiceAccount {
72 return o.Operation.Response().(*iam.ServiceAccount)
73 }
74
75 // Wait polls the operation until it's done.
76 func (o *ServiceAccountCreateOperation) Wait(ctx context.Context, opts ...grpc.CallOption) (*iam.ServiceAccount, error) {
77 abstract, err := o.Operation.Wait(ctx, opts...)
78 response, _ := abstract.(*iam.ServiceAccount)
79 return response, err
80 }
81
82 // WaitInterval polls the operation until it's done with custom interval.
83 func (o *ServiceAccountCreateOperation) WaitInterval(ctx context.Context, pollInterval sdkop.PollIntervalFunc, opts ...grpc.CallOption) (*iam.ServiceAccount, error) {
84 abstract, err := o.Operation.WaitInterval(ctx, pollInterval, opts...)
85 response, _ := abstract.(*iam.ServiceAccount)
86 return response, err
87 }
88
89 // Create is an operation of Yandex.Cloud IAM ServiceAccount service.
90 // It returns an object which should be used to monitor the operation state.
91 func (c serviceAccountClient) Create(ctx context.Context, in *iam.CreateServiceAccountRequest, opts ...grpc.CallOption) (*ServiceAccountCreateOperation, error) {
92 connection, err := c.connector.GetConnection(ctx, ServiceAccountCreate, opts...)
93 if err != nil {
94 return nil, err
95 }
96 pb, err := iam.NewServiceAccountServiceClient(connection).Create(ctx, in, opts...)
97 if err != nil {
98 return nil, err
99 }
100 op, err := sdkop.NewOperation(pb, &sdkop.Concretization{
101 Poll: c.pollOperation,
102 GetResourceID: func(metadata proto.Message) string {
103 return metadata.(*iam.CreateServiceAccountMetadata).GetServiceAccountId()
104 },
105 MetadataType: (*iam.CreateServiceAccountMetadata)(nil),
106 ResponseType: (*iam.ServiceAccount)(nil),
107 })
108 if err != nil {
109 return nil, err
110 }
111 return &ServiceAccountCreateOperation{*op}, nil
112 }
113
114 // ServiceAccountUpdateOperation is used to monitor the state of Update operations.
115 type ServiceAccountUpdateOperation struct {
116 sdkop.Operation
117 }
118
119 // Metadata retrieves the operation metadata.
120 func (o *ServiceAccountUpdateOperation) Metadata() *iam.UpdateServiceAccountMetadata {
121 return o.Operation.Metadata().(*iam.UpdateServiceAccountMetadata)
122 }
123
124 // Response retrieves the operation response.
125 func (o *ServiceAccountUpdateOperation) Response() *iam.ServiceAccount {
126 return o.Operation.Response().(*iam.ServiceAccount)
127 }
128
129 // Wait polls the operation until it's done.
130 func (o *ServiceAccountUpdateOperation) Wait(ctx context.Context, opts ...grpc.CallOption) (*iam.ServiceAccount, error) {
131 abstract, err := o.Operation.Wait(ctx, opts...)
132 response, _ := abstract.(*iam.ServiceAccount)
133 return response, err
134 }
135
136 // WaitInterval polls the operation until it's done with custom interval.
137 func (o *ServiceAccountUpdateOperation) WaitInterval(ctx context.Context, pollInterval sdkop.PollIntervalFunc, opts ...grpc.CallOption) (*iam.ServiceAccount, error) {
138 abstract, err := o.Operation.WaitInterval(ctx, pollInterval, opts...)
139 response, _ := abstract.(*iam.ServiceAccount)
140 return response, err
141 }
142
143 // Update is an operation of Yandex.Cloud IAM ServiceAccount service.
144 // It returns an object which should be used to monitor the operation state.
145 func (c serviceAccountClient) Update(ctx context.Context, in *iam.UpdateServiceAccountRequest, opts ...grpc.CallOption) (*ServiceAccountUpdateOperation, error) {
146 connection, err := c.connector.GetConnection(ctx, ServiceAccountUpdate, opts...)
147 if err != nil {
148 return nil, err
149 }
150 pb, err := iam.NewServiceAccountServiceClient(connection).Update(ctx, in, opts...)
151 if err != nil {
152 return nil, err
153 }
154 op, err := sdkop.NewOperation(pb, &sdkop.Concretization{
155 Poll: c.pollOperation,
156 GetResourceID: func(metadata proto.Message) string {
157 return metadata.(*iam.UpdateServiceAccountMetadata).GetServiceAccountId()
158 },
159 MetadataType: (*iam.UpdateServiceAccountMetadata)(nil),
160 ResponseType: (*iam.ServiceAccount)(nil),
161 })
162 if err != nil {
163 return nil, err
164 }
165 return &ServiceAccountUpdateOperation{*op}, nil
166 }
167
168 // ServiceAccountDeleteOperation is used to monitor the state of Delete operations.
169 type ServiceAccountDeleteOperation struct {
170 sdkop.Operation
171 }
172
173 // Metadata retrieves the operation metadata.
174 func (o *ServiceAccountDeleteOperation) Metadata() *iam.DeleteServiceAccountMetadata {
175 return o.Operation.Metadata().(*iam.DeleteServiceAccountMetadata)
176 }
177
178 // Response retrieves the operation response.
179 func (o *ServiceAccountDeleteOperation) Response() *emptypb.Empty {
180 return o.Operation.Response().(*emptypb.Empty)
181 }
182
183 // Wait polls the operation until it's done.
184 func (o *ServiceAccountDeleteOperation) Wait(ctx context.Context, opts ...grpc.CallOption) (*emptypb.Empty, error) {
185 abstract, err := o.Operation.Wait(ctx, opts...)
186 response, _ := abstract.(*emptypb.Empty)
187 return response, err
188 }
189
190 // WaitInterval polls the operation until it's done with custom interval.
191 func (o *ServiceAccountDeleteOperation) WaitInterval(ctx context.Context, pollInterval sdkop.PollIntervalFunc, opts ...grpc.CallOption) (*emptypb.Empty, error) {
192 abstract, err := o.Operation.WaitInterval(ctx, pollInterval, opts...)
193 response, _ := abstract.(*emptypb.Empty)
194 return response, err
195 }
196
197 // Delete is an operation of Yandex.Cloud IAM ServiceAccount service.
198 // It returns an object which should be used to monitor the operation state.
199 func (c serviceAccountClient) Delete(ctx context.Context, in *iam.DeleteServiceAccountRequest, opts ...grpc.CallOption) (*ServiceAccountDeleteOperation, error) {
200 connection, err := c.connector.GetConnection(ctx, ServiceAccountDelete, opts...)
201 if err != nil {
202 return nil, err
203 }
204 pb, err := iam.NewServiceAccountServiceClient(connection).Delete(ctx, in, opts...)
205 if err != nil {
206 return nil, err
207 }
208 op, err := sdkop.NewOperation(pb, &sdkop.Concretization{
209 Poll: c.pollOperation,
210 GetResourceID: func(metadata proto.Message) string {
211 return metadata.(*iam.DeleteServiceAccountMetadata).GetServiceAccountId()
212 },
213 MetadataType: (*iam.DeleteServiceAccountMetadata)(nil),
214 ResponseType: (*emptypb.Empty)(nil),
215 })
216 if err != nil {
217 return nil, err
218 }
219 return &ServiceAccountDeleteOperation{*op}, nil
220 }
221
222 // ListAccessBindings is an operation of Yandex.Cloud IAM ServiceAccount service.
223 func (c serviceAccountClient) ListAccessBindings(ctx context.Context, in *access.ListAccessBindingsRequest, opts ...grpc.CallOption) (*access.ListAccessBindingsResponse, error) {
224 connection, err := c.connector.GetConnection(ctx, ServiceAccountListAccessBindings, opts...)
225 if err != nil {
226 return nil, err
227 }
228 return iam.NewServiceAccountServiceClient(connection).ListAccessBindings(ctx, in, opts...)
229 }
230
231 // ServiceAccountSetAccessBindingsOperation is used to monitor the state of SetAccessBindings operations.
232 type ServiceAccountSetAccessBindingsOperation struct {
233 sdkop.Operation
234 }
235
236 // Metadata retrieves the operation metadata.
237 func (o *ServiceAccountSetAccessBindingsOperation) Metadata() *access.SetAccessBindingsMetadata {
238 return o.Operation.Metadata().(*access.SetAccessBindingsMetadata)
239 }
240
241 // Response retrieves the operation response.
242 func (o *ServiceAccountSetAccessBindingsOperation) Response() *access.AccessBindingsOperationResult {
243 return o.Operation.Response().(*access.AccessBindingsOperationResult)
244 }
245
246 // Wait polls the operation until it's done.
247 func (o *ServiceAccountSetAccessBindingsOperation) Wait(ctx context.Context, opts ...grpc.CallOption) (*access.AccessBindingsOperationResult, error) {
248 abstract, err := o.Operation.Wait(ctx, opts...)
249 response, _ := abstract.(*access.AccessBindingsOperationResult)
250 return response, err
251 }
252
253 // WaitInterval polls the operation until it's done with custom interval.
254 func (o *ServiceAccountSetAccessBindingsOperation) WaitInterval(ctx context.Context, pollInterval sdkop.PollIntervalFunc, opts ...grpc.CallOption) (*access.AccessBindingsOperationResult, error) {
255 abstract, err := o.Operation.WaitInterval(ctx, pollInterval, opts...)
256 response, _ := abstract.(*access.AccessBindingsOperationResult)
257 return response, err
258 }
259
260 // SetAccessBindings is an operation of Yandex.Cloud IAM ServiceAccount service.
261 // It returns an object which should be used to monitor the operation state.
262 func (c serviceAccountClient) SetAccessBindings(ctx context.Context, in *access.SetAccessBindingsRequest, opts ...grpc.CallOption) (*ServiceAccountSetAccessBindingsOperation, error) {
263 connection, err := c.connector.GetConnection(ctx, ServiceAccountSetAccessBindings, opts...)
264 if err != nil {
265 return nil, err
266 }
267 pb, err := iam.NewServiceAccountServiceClient(connection).SetAccessBindings(ctx, in, opts...)
268 if err != nil {
269 return nil, err
270 }
271 op, err := sdkop.NewOperation(pb, &sdkop.Concretization{
272 Poll: c.pollOperation,
273 MetadataType: (*access.SetAccessBindingsMetadata)(nil),
274 ResponseType: (*access.AccessBindingsOperationResult)(nil),
275 })
276 if err != nil {
277 return nil, err
278 }
279 return &ServiceAccountSetAccessBindingsOperation{*op}, nil
280 }
281
282 // ServiceAccountUpdateAccessBindingsOperation is used to monitor the state of UpdateAccessBindings operations.
283 type ServiceAccountUpdateAccessBindingsOperation struct {
284 sdkop.Operation
285 }
286
287 // Metadata retrieves the operation metadata.
288 func (o *ServiceAccountUpdateAccessBindingsOperation) Metadata() *access.UpdateAccessBindingsMetadata {
289 return o.Operation.Metadata().(*access.UpdateAccessBindingsMetadata)
290 }
291
292 // Response retrieves the operation response.
293 func (o *ServiceAccountUpdateAccessBindingsOperation) Response() *access.AccessBindingsOperationResult {
294 return o.Operation.Response().(*access.AccessBindingsOperationResult)
295 }
296
297 // Wait polls the operation until it's done.
298 func (o *ServiceAccountUpdateAccessBindingsOperation) Wait(ctx context.Context, opts ...grpc.CallOption) (*access.AccessBindingsOperationResult, error) {
299 abstract, err := o.Operation.Wait(ctx, opts...)
300 response, _ := abstract.(*access.AccessBindingsOperationResult)
301 return response, err
302 }
303
304 // WaitInterval polls the operation until it's done with custom interval.
305 func (o *ServiceAccountUpdateAccessBindingsOperation) WaitInterval(ctx context.Context, pollInterval sdkop.PollIntervalFunc, opts ...grpc.CallOption) (*access.AccessBindingsOperationResult, error) {
306 abstract, err := o.Operation.WaitInterval(ctx, pollInterval, opts...)
307 response, _ := abstract.(*access.AccessBindingsOperationResult)
308 return response, err
309 }
310
311 // UpdateAccessBindings is an operation of Yandex.Cloud IAM ServiceAccount service.
312 // It returns an object which should be used to monitor the operation state.
313 func (c serviceAccountClient) UpdateAccessBindings(ctx context.Context, in *access.UpdateAccessBindingsRequest, opts ...grpc.CallOption) (*ServiceAccountUpdateAccessBindingsOperation, error) {
314 connection, err := c.connector.GetConnection(ctx, ServiceAccountUpdateAccessBindings, opts...)
315 if err != nil {
316 return nil, err
317 }
318 pb, err := iam.NewServiceAccountServiceClient(connection).UpdateAccessBindings(ctx, in, opts...)
319 if err != nil {
320 return nil, err
321 }
322 op, err := sdkop.NewOperation(pb, &sdkop.Concretization{
323 Poll: c.pollOperation,
324 MetadataType: (*access.UpdateAccessBindingsMetadata)(nil),
325 ResponseType: (*access.AccessBindingsOperationResult)(nil),
326 })
327 if err != nil {
328 return nil, err
329 }
330 return &ServiceAccountUpdateAccessBindingsOperation{*op}, nil
331 }
332
333 // ListOperations is an operation of Yandex.Cloud IAM ServiceAccount service.
334 func (c serviceAccountClient) ListOperations(ctx context.Context, in *iam.ListServiceAccountOperationsRequest, opts ...grpc.CallOption) (*iam.ListServiceAccountOperationsResponse, error) {
335 connection, err := c.connector.GetConnection(ctx, ServiceAccountListOperations, opts...)
336 if err != nil {
337 return nil, err
338 }
339 return iam.NewServiceAccountServiceClient(connection).ListOperations(ctx, in, opts...)
340 }
341
342 // pollOperation returns the current state of the polled operation.
343 func (c serviceAccountClient) pollOperation(ctx context.Context, operationId string, opts ...grpc.CallOption) (sdkop.YCOperation, error) {
344 connection, err := c.connector.GetConnection(ctx, ServiceAccountOperationPoller, opts...)
345 if err != nil {
346 return nil, err
347 }
348 return operation.NewOperationServiceClient(connection).Get(ctx, &operation.GetOperationRequest{OperationId: operationId}, opts...)
349 }
350
351 var (
352 ServiceAccountGet = protoreflect.FullName("yandex.cloud.iam.v1.ServiceAccountService.Get")
353 ServiceAccountList = protoreflect.FullName("yandex.cloud.iam.v1.ServiceAccountService.List")
354 ServiceAccountCreate = protoreflect.FullName("yandex.cloud.iam.v1.ServiceAccountService.Create")
355 ServiceAccountUpdate = protoreflect.FullName("yandex.cloud.iam.v1.ServiceAccountService.Update")
356 ServiceAccountDelete = protoreflect.FullName("yandex.cloud.iam.v1.ServiceAccountService.Delete")
357 ServiceAccountListAccessBindings = protoreflect.FullName("yandex.cloud.iam.v1.ServiceAccountService.ListAccessBindings")
358 ServiceAccountSetAccessBindings = protoreflect.FullName("yandex.cloud.iam.v1.ServiceAccountService.SetAccessBindings")
359 ServiceAccountUpdateAccessBindings = protoreflect.FullName("yandex.cloud.iam.v1.ServiceAccountService.UpdateAccessBindings")
360 ServiceAccountListOperations = protoreflect.FullName("yandex.cloud.iam.v1.ServiceAccountService.ListOperations")
361 ServiceAccountOperationPoller = protoreflect.FullName("yandex.cloud.operation.OperationService.Get")
362 )
363