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