1 // Code generated by protoc-gen-go. DO NOT EDIT.
2 // source: google/iam/admin/v1/iam.proto
5 Package admin is a generated protocol buffer package.
7 It is generated from these files:
8 google/iam/admin/v1/iam.proto
10 It has these top-level messages:
12 CreateServiceAccountRequest
13 ListServiceAccountsRequest
14 ListServiceAccountsResponse
15 GetServiceAccountRequest
16 DeleteServiceAccountRequest
17 ListServiceAccountKeysRequest
18 ListServiceAccountKeysResponse
19 GetServiceAccountKeyRequest
21 CreateServiceAccountKeyRequest
22 DeleteServiceAccountKeyRequest
26 QueryGrantableRolesRequest
27 QueryGrantableRolesResponse
31 import proto "github.com/golang/protobuf/proto"
34 import _ "google.golang.org/genproto/googleapis/api/annotations"
35 import google_iam_v11 "google.golang.org/genproto/googleapis/iam/v1"
36 import google_iam_v1 "google.golang.org/genproto/googleapis/iam/v1"
37 import google_protobuf1 "github.com/golang/protobuf/ptypes/empty"
38 import _ "google.golang.org/genproto/protobuf/field_mask"
39 import google_protobuf3 "github.com/golang/protobuf/ptypes/timestamp"
42 context "golang.org/x/net/context"
43 grpc "google.golang.org/grpc"
46 // Reference imports to suppress errors if they are not otherwise used.
51 // This is a compile-time assertion to ensure that this generated file
52 // is compatible with the proto package it is being compiled against.
53 // A compilation error at this line likely means your copy of the
54 // proto package needs to be updated.
55 const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
57 // Supported key algorithms.
58 type ServiceAccountKeyAlgorithm int32
61 // An unspecified key algorithm.
62 ServiceAccountKeyAlgorithm_KEY_ALG_UNSPECIFIED ServiceAccountKeyAlgorithm = 0
64 ServiceAccountKeyAlgorithm_KEY_ALG_RSA_1024 ServiceAccountKeyAlgorithm = 1
66 ServiceAccountKeyAlgorithm_KEY_ALG_RSA_2048 ServiceAccountKeyAlgorithm = 2
69 var ServiceAccountKeyAlgorithm_name = map[int32]string{
70 0: "KEY_ALG_UNSPECIFIED",
71 1: "KEY_ALG_RSA_1024",
72 2: "KEY_ALG_RSA_2048",
74 var ServiceAccountKeyAlgorithm_value = map[string]int32{
75 "KEY_ALG_UNSPECIFIED": 0,
76 "KEY_ALG_RSA_1024": 1,
77 "KEY_ALG_RSA_2048": 2,
80 func (x ServiceAccountKeyAlgorithm) String() string {
81 return proto.EnumName(ServiceAccountKeyAlgorithm_name, int32(x))
83 func (ServiceAccountKeyAlgorithm) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{0} }
85 // Supported private key output formats.
86 type ServiceAccountPrivateKeyType int32
89 // Unspecified. Equivalent to `TYPE_GOOGLE_CREDENTIALS_FILE`.
90 ServiceAccountPrivateKeyType_TYPE_UNSPECIFIED ServiceAccountPrivateKeyType = 0
92 // The password for the PKCS12 file is `notasecret`.
93 // For more information, see https://tools.ietf.org/html/rfc7292.
94 ServiceAccountPrivateKeyType_TYPE_PKCS12_FILE ServiceAccountPrivateKeyType = 1
95 // Google Credentials File format.
96 ServiceAccountPrivateKeyType_TYPE_GOOGLE_CREDENTIALS_FILE ServiceAccountPrivateKeyType = 2
99 var ServiceAccountPrivateKeyType_name = map[int32]string{
100 0: "TYPE_UNSPECIFIED",
101 1: "TYPE_PKCS12_FILE",
102 2: "TYPE_GOOGLE_CREDENTIALS_FILE",
104 var ServiceAccountPrivateKeyType_value = map[string]int32{
105 "TYPE_UNSPECIFIED": 0,
106 "TYPE_PKCS12_FILE": 1,
107 "TYPE_GOOGLE_CREDENTIALS_FILE": 2,
110 func (x ServiceAccountPrivateKeyType) String() string {
111 return proto.EnumName(ServiceAccountPrivateKeyType_name, int32(x))
113 func (ServiceAccountPrivateKeyType) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{1} }
115 // Supported public key output formats.
116 type ServiceAccountPublicKeyType int32
119 // Unspecified. Returns nothing here.
120 ServiceAccountPublicKeyType_TYPE_NONE ServiceAccountPublicKeyType = 0
122 ServiceAccountPublicKeyType_TYPE_X509_PEM_FILE ServiceAccountPublicKeyType = 1
124 ServiceAccountPublicKeyType_TYPE_RAW_PUBLIC_KEY ServiceAccountPublicKeyType = 2
127 var ServiceAccountPublicKeyType_name = map[int32]string{
129 1: "TYPE_X509_PEM_FILE",
130 2: "TYPE_RAW_PUBLIC_KEY",
132 var ServiceAccountPublicKeyType_value = map[string]int32{
134 "TYPE_X509_PEM_FILE": 1,
135 "TYPE_RAW_PUBLIC_KEY": 2,
138 func (x ServiceAccountPublicKeyType) String() string {
139 return proto.EnumName(ServiceAccountPublicKeyType_name, int32(x))
141 func (ServiceAccountPublicKeyType) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{2} }
143 // `KeyType` filters to selectively retrieve certain varieties
145 type ListServiceAccountKeysRequest_KeyType int32
148 // Unspecified key type. The presence of this in the
149 // message will immediately result in an error.
150 ListServiceAccountKeysRequest_KEY_TYPE_UNSPECIFIED ListServiceAccountKeysRequest_KeyType = 0
151 // User-managed keys (managed and rotated by the user).
152 ListServiceAccountKeysRequest_USER_MANAGED ListServiceAccountKeysRequest_KeyType = 1
153 // System-managed keys (managed and rotated by Google).
154 ListServiceAccountKeysRequest_SYSTEM_MANAGED ListServiceAccountKeysRequest_KeyType = 2
157 var ListServiceAccountKeysRequest_KeyType_name = map[int32]string{
158 0: "KEY_TYPE_UNSPECIFIED",
162 var ListServiceAccountKeysRequest_KeyType_value = map[string]int32{
163 "KEY_TYPE_UNSPECIFIED": 0,
168 func (x ListServiceAccountKeysRequest_KeyType) String() string {
169 return proto.EnumName(ListServiceAccountKeysRequest_KeyType_name, int32(x))
171 func (ListServiceAccountKeysRequest_KeyType) EnumDescriptor() ([]byte, []int) {
172 return fileDescriptor0, []int{6, 0}
175 // A service account in the Identity and Access Management API.
177 // To create a service account, specify the `project_id` and the `account_id`
178 // for the account. The `account_id` is unique within the project, and is used
179 // to generate the service account email address and a stable
182 // If the account already exists, the account's resource name is returned
183 // in util::Status's ResourceInfo.resource_name in the format of
184 // projects/{project}/serviceAccounts/{email}. The caller can use the name in
185 // other methods to access the account.
187 // All other methods can identify the service account using the format
188 // `projects/{project}/serviceAccounts/{account}`.
189 // Using `-` as a wildcard for the project will infer the project from
190 // the account. The `account` value can be the `email` address or the
191 // `unique_id` of the service account.
192 type ServiceAccount struct {
193 // The resource name of the service account in the following format:
194 // `projects/{project}/serviceAccounts/{account}`.
196 // Requests using `-` as a wildcard for the project will infer the project
197 // from the `account` and the `account` value can be the `email` address or
198 // the `unique_id` of the service account.
200 // In responses the resource name will always be in the format
201 // `projects/{project}/serviceAccounts/{email}`.
202 Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
203 // @OutputOnly The id of the project that owns the service account.
204 ProjectId string `protobuf:"bytes,2,opt,name=project_id,json=projectId" json:"project_id,omitempty"`
205 // @OutputOnly The unique and stable id of the service account.
206 UniqueId string `protobuf:"bytes,4,opt,name=unique_id,json=uniqueId" json:"unique_id,omitempty"`
207 // @OutputOnly The email address of the service account.
208 Email string `protobuf:"bytes,5,opt,name=email" json:"email,omitempty"`
209 // Optional. A user-specified description of the service account. Must be
210 // fewer than 100 UTF-8 bytes.
211 DisplayName string `protobuf:"bytes,6,opt,name=display_name,json=displayName" json:"display_name,omitempty"`
212 // Used to perform a consistent read-modify-write.
213 Etag []byte `protobuf:"bytes,7,opt,name=etag,proto3" json:"etag,omitempty"`
214 // @OutputOnly. The OAuth2 client id for the service account.
215 // This is used in conjunction with the OAuth2 clientconfig API to make
216 // three legged OAuth2 (3LO) flows to access the data of Google users.
217 Oauth2ClientId string `protobuf:"bytes,9,opt,name=oauth2_client_id,json=oauth2ClientId" json:"oauth2_client_id,omitempty"`
220 func (m *ServiceAccount) Reset() { *m = ServiceAccount{} }
221 func (m *ServiceAccount) String() string { return proto.CompactTextString(m) }
222 func (*ServiceAccount) ProtoMessage() {}
223 func (*ServiceAccount) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} }
225 func (m *ServiceAccount) GetName() string {
232 func (m *ServiceAccount) GetProjectId() string {
239 func (m *ServiceAccount) GetUniqueId() string {
246 func (m *ServiceAccount) GetEmail() string {
253 func (m *ServiceAccount) GetDisplayName() string {
260 func (m *ServiceAccount) GetEtag() []byte {
267 func (m *ServiceAccount) GetOauth2ClientId() string {
269 return m.Oauth2ClientId
274 // The service account create request.
275 type CreateServiceAccountRequest struct {
276 // Required. The resource name of the project associated with the service
277 // accounts, such as `projects/my-project-123`.
278 Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
279 // Required. The account id that is used to generate the service account
280 // email address and a stable unique id. It is unique within a project,
281 // must be 6-30 characters long, and match the regular expression
282 // `[a-z]([-a-z0-9]*[a-z0-9])` to comply with RFC1035.
283 AccountId string `protobuf:"bytes,2,opt,name=account_id,json=accountId" json:"account_id,omitempty"`
284 // The [ServiceAccount][google.iam.admin.v1.ServiceAccount] resource to create.
285 // Currently, only the following values are user assignable:
287 ServiceAccount *ServiceAccount `protobuf:"bytes,3,opt,name=service_account,json=serviceAccount" json:"service_account,omitempty"`
290 func (m *CreateServiceAccountRequest) Reset() { *m = CreateServiceAccountRequest{} }
291 func (m *CreateServiceAccountRequest) String() string { return proto.CompactTextString(m) }
292 func (*CreateServiceAccountRequest) ProtoMessage() {}
293 func (*CreateServiceAccountRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} }
295 func (m *CreateServiceAccountRequest) GetName() string {
302 func (m *CreateServiceAccountRequest) GetAccountId() string {
309 func (m *CreateServiceAccountRequest) GetServiceAccount() *ServiceAccount {
311 return m.ServiceAccount
316 // The service account list request.
317 type ListServiceAccountsRequest struct {
318 // Required. The resource name of the project associated with the service
319 // accounts, such as `projects/my-project-123`.
320 Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
321 // Optional limit on the number of service accounts to include in the
322 // response. Further accounts can subsequently be obtained by including the
323 // [ListServiceAccountsResponse.next_page_token][google.iam.admin.v1.ListServiceAccountsResponse.next_page_token]
324 // in a subsequent request.
325 PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize" json:"page_size,omitempty"`
326 // Optional pagination token returned in an earlier
327 // [ListServiceAccountsResponse.next_page_token][google.iam.admin.v1.ListServiceAccountsResponse.next_page_token].
328 PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken" json:"page_token,omitempty"`
331 func (m *ListServiceAccountsRequest) Reset() { *m = ListServiceAccountsRequest{} }
332 func (m *ListServiceAccountsRequest) String() string { return proto.CompactTextString(m) }
333 func (*ListServiceAccountsRequest) ProtoMessage() {}
334 func (*ListServiceAccountsRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{2} }
336 func (m *ListServiceAccountsRequest) GetName() string {
343 func (m *ListServiceAccountsRequest) GetPageSize() int32 {
350 func (m *ListServiceAccountsRequest) GetPageToken() string {
357 // The service account list response.
358 type ListServiceAccountsResponse struct {
359 // The list of matching service accounts.
360 Accounts []*ServiceAccount `protobuf:"bytes,1,rep,name=accounts" json:"accounts,omitempty"`
361 // To retrieve the next page of results, set
362 // [ListServiceAccountsRequest.page_token][google.iam.admin.v1.ListServiceAccountsRequest.page_token]
364 NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
367 func (m *ListServiceAccountsResponse) Reset() { *m = ListServiceAccountsResponse{} }
368 func (m *ListServiceAccountsResponse) String() string { return proto.CompactTextString(m) }
369 func (*ListServiceAccountsResponse) ProtoMessage() {}
370 func (*ListServiceAccountsResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{3} }
372 func (m *ListServiceAccountsResponse) GetAccounts() []*ServiceAccount {
379 func (m *ListServiceAccountsResponse) GetNextPageToken() string {
381 return m.NextPageToken
386 // The service account get request.
387 type GetServiceAccountRequest struct {
388 // The resource name of the service account in the following format:
389 // `projects/{project}/serviceAccounts/{account}`.
390 // Using `-` as a wildcard for the project will infer the project from
391 // the account. The `account` value can be the `email` address or the
392 // `unique_id` of the service account.
393 Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
396 func (m *GetServiceAccountRequest) Reset() { *m = GetServiceAccountRequest{} }
397 func (m *GetServiceAccountRequest) String() string { return proto.CompactTextString(m) }
398 func (*GetServiceAccountRequest) ProtoMessage() {}
399 func (*GetServiceAccountRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{4} }
401 func (m *GetServiceAccountRequest) GetName() string {
408 // The service account delete request.
409 type DeleteServiceAccountRequest struct {
410 // The resource name of the service account in the following format:
411 // `projects/{project}/serviceAccounts/{account}`.
412 // Using `-` as a wildcard for the project will infer the project from
413 // the account. The `account` value can be the `email` address or the
414 // `unique_id` of the service account.
415 Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
418 func (m *DeleteServiceAccountRequest) Reset() { *m = DeleteServiceAccountRequest{} }
419 func (m *DeleteServiceAccountRequest) String() string { return proto.CompactTextString(m) }
420 func (*DeleteServiceAccountRequest) ProtoMessage() {}
421 func (*DeleteServiceAccountRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{5} }
423 func (m *DeleteServiceAccountRequest) GetName() string {
430 // The service account keys list request.
431 type ListServiceAccountKeysRequest struct {
432 // The resource name of the service account in the following format:
433 // `projects/{project}/serviceAccounts/{account}`.
435 // Using `-` as a wildcard for the project, will infer the project from
436 // the account. The `account` value can be the `email` address or the
437 // `unique_id` of the service account.
438 Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
439 // Filters the types of keys the user wants to include in the list
440 // response. Duplicate key types are not allowed. If no key type
441 // is provided, all keys are returned.
442 KeyTypes []ListServiceAccountKeysRequest_KeyType `protobuf:"varint,2,rep,packed,name=key_types,json=keyTypes,enum=google.iam.admin.v1.ListServiceAccountKeysRequest_KeyType" json:"key_types,omitempty"`
445 func (m *ListServiceAccountKeysRequest) Reset() { *m = ListServiceAccountKeysRequest{} }
446 func (m *ListServiceAccountKeysRequest) String() string { return proto.CompactTextString(m) }
447 func (*ListServiceAccountKeysRequest) ProtoMessage() {}
448 func (*ListServiceAccountKeysRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{6} }
450 func (m *ListServiceAccountKeysRequest) GetName() string {
457 func (m *ListServiceAccountKeysRequest) GetKeyTypes() []ListServiceAccountKeysRequest_KeyType {
464 // The service account keys list response.
465 type ListServiceAccountKeysResponse struct {
466 // The public keys for the service account.
467 Keys []*ServiceAccountKey `protobuf:"bytes,1,rep,name=keys" json:"keys,omitempty"`
470 func (m *ListServiceAccountKeysResponse) Reset() { *m = ListServiceAccountKeysResponse{} }
471 func (m *ListServiceAccountKeysResponse) String() string { return proto.CompactTextString(m) }
472 func (*ListServiceAccountKeysResponse) ProtoMessage() {}
473 func (*ListServiceAccountKeysResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{7} }
475 func (m *ListServiceAccountKeysResponse) GetKeys() []*ServiceAccountKey {
482 // The service account key get by id request.
483 type GetServiceAccountKeyRequest struct {
484 // The resource name of the service account key in the following format:
485 // `projects/{project}/serviceAccounts/{account}/keys/{key}`.
487 // Using `-` as a wildcard for the project will infer the project from
488 // the account. The `account` value can be the `email` address or the
489 // `unique_id` of the service account.
490 Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
491 // The output format of the public key requested.
492 // X509_PEM is the default output format.
493 PublicKeyType ServiceAccountPublicKeyType `protobuf:"varint,2,opt,name=public_key_type,json=publicKeyType,enum=google.iam.admin.v1.ServiceAccountPublicKeyType" json:"public_key_type,omitempty"`
496 func (m *GetServiceAccountKeyRequest) Reset() { *m = GetServiceAccountKeyRequest{} }
497 func (m *GetServiceAccountKeyRequest) String() string { return proto.CompactTextString(m) }
498 func (*GetServiceAccountKeyRequest) ProtoMessage() {}
499 func (*GetServiceAccountKeyRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{8} }
501 func (m *GetServiceAccountKeyRequest) GetName() string {
508 func (m *GetServiceAccountKeyRequest) GetPublicKeyType() ServiceAccountPublicKeyType {
510 return m.PublicKeyType
512 return ServiceAccountPublicKeyType_TYPE_NONE
515 // Represents a service account key.
517 // A service account has two sets of key-pairs: user-managed, and
520 // User-managed key-pairs can be created and deleted by users. Users are
521 // responsible for rotating these keys periodically to ensure security of
522 // their service accounts. Users retain the private key of these key-pairs,
523 // and Google retains ONLY the public key.
525 // System-managed key-pairs are managed automatically by Google, and rotated
526 // daily without user intervention. The private key never leaves Google's
527 // servers to maximize security.
529 // Public keys for all service accounts are also published at the OAuth2
530 // Service Account API.
531 type ServiceAccountKey struct {
532 // The resource name of the service account key in the following format
533 // `projects/{project}/serviceAccounts/{account}/keys/{key}`.
534 Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
535 // The output format for the private key.
536 // Only provided in `CreateServiceAccountKey` responses, not
537 // in `GetServiceAccountKey` or `ListServiceAccountKey` responses.
539 // Google never exposes system-managed private keys, and never retains
540 // user-managed private keys.
541 PrivateKeyType ServiceAccountPrivateKeyType `protobuf:"varint,2,opt,name=private_key_type,json=privateKeyType,enum=google.iam.admin.v1.ServiceAccountPrivateKeyType" json:"private_key_type,omitempty"`
542 // Specifies the algorithm (and possibly key size) for the key.
543 KeyAlgorithm ServiceAccountKeyAlgorithm `protobuf:"varint,8,opt,name=key_algorithm,json=keyAlgorithm,enum=google.iam.admin.v1.ServiceAccountKeyAlgorithm" json:"key_algorithm,omitempty"`
544 // The private key data. Only provided in `CreateServiceAccountKey`
546 PrivateKeyData []byte `protobuf:"bytes,3,opt,name=private_key_data,json=privateKeyData,proto3" json:"private_key_data,omitempty"`
547 // The public key data. Only provided in `GetServiceAccountKey` responses.
548 PublicKeyData []byte `protobuf:"bytes,7,opt,name=public_key_data,json=publicKeyData,proto3" json:"public_key_data,omitempty"`
549 // The key can be used after this timestamp.
550 ValidAfterTime *google_protobuf3.Timestamp `protobuf:"bytes,4,opt,name=valid_after_time,json=validAfterTime" json:"valid_after_time,omitempty"`
551 // The key can be used before this timestamp.
552 ValidBeforeTime *google_protobuf3.Timestamp `protobuf:"bytes,5,opt,name=valid_before_time,json=validBeforeTime" json:"valid_before_time,omitempty"`
555 func (m *ServiceAccountKey) Reset() { *m = ServiceAccountKey{} }
556 func (m *ServiceAccountKey) String() string { return proto.CompactTextString(m) }
557 func (*ServiceAccountKey) ProtoMessage() {}
558 func (*ServiceAccountKey) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{9} }
560 func (m *ServiceAccountKey) GetName() string {
567 func (m *ServiceAccountKey) GetPrivateKeyType() ServiceAccountPrivateKeyType {
569 return m.PrivateKeyType
571 return ServiceAccountPrivateKeyType_TYPE_UNSPECIFIED
574 func (m *ServiceAccountKey) GetKeyAlgorithm() ServiceAccountKeyAlgorithm {
576 return m.KeyAlgorithm
578 return ServiceAccountKeyAlgorithm_KEY_ALG_UNSPECIFIED
581 func (m *ServiceAccountKey) GetPrivateKeyData() []byte {
583 return m.PrivateKeyData
588 func (m *ServiceAccountKey) GetPublicKeyData() []byte {
590 return m.PublicKeyData
595 func (m *ServiceAccountKey) GetValidAfterTime() *google_protobuf3.Timestamp {
597 return m.ValidAfterTime
602 func (m *ServiceAccountKey) GetValidBeforeTime() *google_protobuf3.Timestamp {
604 return m.ValidBeforeTime
609 // The service account key create request.
610 type CreateServiceAccountKeyRequest struct {
611 // The resource name of the service account in the following format:
612 // `projects/{project}/serviceAccounts/{account}`.
613 // Using `-` as a wildcard for the project will infer the project from
614 // the account. The `account` value can be the `email` address or the
615 // `unique_id` of the service account.
616 Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
617 // The output format of the private key. `GOOGLE_CREDENTIALS_FILE` is the
618 // default output format.
619 PrivateKeyType ServiceAccountPrivateKeyType `protobuf:"varint,2,opt,name=private_key_type,json=privateKeyType,enum=google.iam.admin.v1.ServiceAccountPrivateKeyType" json:"private_key_type,omitempty"`
620 // Which type of key and algorithm to use for the key.
621 // The default is currently a 4K RSA key. However this may change in the
623 KeyAlgorithm ServiceAccountKeyAlgorithm `protobuf:"varint,3,opt,name=key_algorithm,json=keyAlgorithm,enum=google.iam.admin.v1.ServiceAccountKeyAlgorithm" json:"key_algorithm,omitempty"`
626 func (m *CreateServiceAccountKeyRequest) Reset() { *m = CreateServiceAccountKeyRequest{} }
627 func (m *CreateServiceAccountKeyRequest) String() string { return proto.CompactTextString(m) }
628 func (*CreateServiceAccountKeyRequest) ProtoMessage() {}
629 func (*CreateServiceAccountKeyRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{10} }
631 func (m *CreateServiceAccountKeyRequest) GetName() string {
638 func (m *CreateServiceAccountKeyRequest) GetPrivateKeyType() ServiceAccountPrivateKeyType {
640 return m.PrivateKeyType
642 return ServiceAccountPrivateKeyType_TYPE_UNSPECIFIED
645 func (m *CreateServiceAccountKeyRequest) GetKeyAlgorithm() ServiceAccountKeyAlgorithm {
647 return m.KeyAlgorithm
649 return ServiceAccountKeyAlgorithm_KEY_ALG_UNSPECIFIED
652 // The service account key delete request.
653 type DeleteServiceAccountKeyRequest struct {
654 // The resource name of the service account key in the following format:
655 // `projects/{project}/serviceAccounts/{account}/keys/{key}`.
656 // Using `-` as a wildcard for the project will infer the project from
657 // the account. The `account` value can be the `email` address or the
658 // `unique_id` of the service account.
659 Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
662 func (m *DeleteServiceAccountKeyRequest) Reset() { *m = DeleteServiceAccountKeyRequest{} }
663 func (m *DeleteServiceAccountKeyRequest) String() string { return proto.CompactTextString(m) }
664 func (*DeleteServiceAccountKeyRequest) ProtoMessage() {}
665 func (*DeleteServiceAccountKeyRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{11} }
667 func (m *DeleteServiceAccountKeyRequest) GetName() string {
674 // The service account sign blob request.
675 type SignBlobRequest struct {
676 // The resource name of the service account in the following format:
677 // `projects/{project}/serviceAccounts/{account}`.
678 // Using `-` as a wildcard for the project will infer the project from
679 // the account. The `account` value can be the `email` address or the
680 // `unique_id` of the service account.
681 Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
682 // The bytes to sign.
683 BytesToSign []byte `protobuf:"bytes,2,opt,name=bytes_to_sign,json=bytesToSign,proto3" json:"bytes_to_sign,omitempty"`
686 func (m *SignBlobRequest) Reset() { *m = SignBlobRequest{} }
687 func (m *SignBlobRequest) String() string { return proto.CompactTextString(m) }
688 func (*SignBlobRequest) ProtoMessage() {}
689 func (*SignBlobRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{12} }
691 func (m *SignBlobRequest) GetName() string {
698 func (m *SignBlobRequest) GetBytesToSign() []byte {
705 // The service account sign blob response.
706 type SignBlobResponse struct {
707 // The id of the key used to sign the blob.
708 KeyId string `protobuf:"bytes,1,opt,name=key_id,json=keyId" json:"key_id,omitempty"`
710 Signature []byte `protobuf:"bytes,2,opt,name=signature,proto3" json:"signature,omitempty"`
713 func (m *SignBlobResponse) Reset() { *m = SignBlobResponse{} }
714 func (m *SignBlobResponse) String() string { return proto.CompactTextString(m) }
715 func (*SignBlobResponse) ProtoMessage() {}
716 func (*SignBlobResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{13} }
718 func (m *SignBlobResponse) GetKeyId() string {
725 func (m *SignBlobResponse) GetSignature() []byte {
732 // A role in the Identity and Access Management API.
734 // The name of the role.
736 // When Role is used in CreateRole, the role name must not be set.
738 // When Role is used in output and other input such as UpdateRole, the role
739 // name is the complete path, e.g., roles/logging.viewer for curated roles
740 // and organizations/{organization-id}/roles/logging.viewer for custom roles.
741 Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
742 // Optional. A human-readable title for the role. Typically this
743 // is limited to 100 UTF-8 bytes.
744 Title string `protobuf:"bytes,2,opt,name=title" json:"title,omitempty"`
745 // Optional. A human-readable description for the role.
746 Description string `protobuf:"bytes,3,opt,name=description" json:"description,omitempty"`
749 func (m *Role) Reset() { *m = Role{} }
750 func (m *Role) String() string { return proto.CompactTextString(m) }
751 func (*Role) ProtoMessage() {}
752 func (*Role) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{14} }
754 func (m *Role) GetName() string {
761 func (m *Role) GetTitle() string {
768 func (m *Role) GetDescription() string {
775 // The grantable role query request.
776 type QueryGrantableRolesRequest struct {
777 // Required. The full resource name to query from the list of grantable roles.
779 // The name follows the Google Cloud Platform resource format.
780 // For example, a Cloud Platform project with id `my-project` will be named
781 // `//cloudresourcemanager.googleapis.com/projects/my-project`.
782 FullResourceName string `protobuf:"bytes,1,opt,name=full_resource_name,json=fullResourceName" json:"full_resource_name,omitempty"`
785 func (m *QueryGrantableRolesRequest) Reset() { *m = QueryGrantableRolesRequest{} }
786 func (m *QueryGrantableRolesRequest) String() string { return proto.CompactTextString(m) }
787 func (*QueryGrantableRolesRequest) ProtoMessage() {}
788 func (*QueryGrantableRolesRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{15} }
790 func (m *QueryGrantableRolesRequest) GetFullResourceName() string {
792 return m.FullResourceName
797 // The grantable role query response.
798 type QueryGrantableRolesResponse struct {
799 // The list of matching roles.
800 Roles []*Role `protobuf:"bytes,1,rep,name=roles" json:"roles,omitempty"`
803 func (m *QueryGrantableRolesResponse) Reset() { *m = QueryGrantableRolesResponse{} }
804 func (m *QueryGrantableRolesResponse) String() string { return proto.CompactTextString(m) }
805 func (*QueryGrantableRolesResponse) ProtoMessage() {}
806 func (*QueryGrantableRolesResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{16} }
808 func (m *QueryGrantableRolesResponse) GetRoles() []*Role {
816 proto.RegisterType((*ServiceAccount)(nil), "google.iam.admin.v1.ServiceAccount")
817 proto.RegisterType((*CreateServiceAccountRequest)(nil), "google.iam.admin.v1.CreateServiceAccountRequest")
818 proto.RegisterType((*ListServiceAccountsRequest)(nil), "google.iam.admin.v1.ListServiceAccountsRequest")
819 proto.RegisterType((*ListServiceAccountsResponse)(nil), "google.iam.admin.v1.ListServiceAccountsResponse")
820 proto.RegisterType((*GetServiceAccountRequest)(nil), "google.iam.admin.v1.GetServiceAccountRequest")
821 proto.RegisterType((*DeleteServiceAccountRequest)(nil), "google.iam.admin.v1.DeleteServiceAccountRequest")
822 proto.RegisterType((*ListServiceAccountKeysRequest)(nil), "google.iam.admin.v1.ListServiceAccountKeysRequest")
823 proto.RegisterType((*ListServiceAccountKeysResponse)(nil), "google.iam.admin.v1.ListServiceAccountKeysResponse")
824 proto.RegisterType((*GetServiceAccountKeyRequest)(nil), "google.iam.admin.v1.GetServiceAccountKeyRequest")
825 proto.RegisterType((*ServiceAccountKey)(nil), "google.iam.admin.v1.ServiceAccountKey")
826 proto.RegisterType((*CreateServiceAccountKeyRequest)(nil), "google.iam.admin.v1.CreateServiceAccountKeyRequest")
827 proto.RegisterType((*DeleteServiceAccountKeyRequest)(nil), "google.iam.admin.v1.DeleteServiceAccountKeyRequest")
828 proto.RegisterType((*SignBlobRequest)(nil), "google.iam.admin.v1.SignBlobRequest")
829 proto.RegisterType((*SignBlobResponse)(nil), "google.iam.admin.v1.SignBlobResponse")
830 proto.RegisterType((*Role)(nil), "google.iam.admin.v1.Role")
831 proto.RegisterType((*QueryGrantableRolesRequest)(nil), "google.iam.admin.v1.QueryGrantableRolesRequest")
832 proto.RegisterType((*QueryGrantableRolesResponse)(nil), "google.iam.admin.v1.QueryGrantableRolesResponse")
833 proto.RegisterEnum("google.iam.admin.v1.ServiceAccountKeyAlgorithm", ServiceAccountKeyAlgorithm_name, ServiceAccountKeyAlgorithm_value)
834 proto.RegisterEnum("google.iam.admin.v1.ServiceAccountPrivateKeyType", ServiceAccountPrivateKeyType_name, ServiceAccountPrivateKeyType_value)
835 proto.RegisterEnum("google.iam.admin.v1.ServiceAccountPublicKeyType", ServiceAccountPublicKeyType_name, ServiceAccountPublicKeyType_value)
836 proto.RegisterEnum("google.iam.admin.v1.ListServiceAccountKeysRequest_KeyType", ListServiceAccountKeysRequest_KeyType_name, ListServiceAccountKeysRequest_KeyType_value)
839 // Reference imports to suppress errors if they are not otherwise used.
840 var _ context.Context
841 var _ grpc.ClientConn
843 // This is a compile-time assertion to ensure that this generated file
844 // is compatible with the grpc package it is being compiled against.
845 const _ = grpc.SupportPackageIsVersion4
847 // Client API for IAM service
849 type IAMClient interface {
850 // Lists [ServiceAccounts][google.iam.admin.v1.ServiceAccount] for a project.
851 ListServiceAccounts(ctx context.Context, in *ListServiceAccountsRequest, opts ...grpc.CallOption) (*ListServiceAccountsResponse, error)
852 // Gets a [ServiceAccount][google.iam.admin.v1.ServiceAccount].
853 GetServiceAccount(ctx context.Context, in *GetServiceAccountRequest, opts ...grpc.CallOption) (*ServiceAccount, error)
854 // Creates a [ServiceAccount][google.iam.admin.v1.ServiceAccount]
856 CreateServiceAccount(ctx context.Context, in *CreateServiceAccountRequest, opts ...grpc.CallOption) (*ServiceAccount, error)
857 // Updates a [ServiceAccount][google.iam.admin.v1.ServiceAccount].
859 // Currently, only the following fields are updatable:
861 // The `etag` is mandatory.
862 UpdateServiceAccount(ctx context.Context, in *ServiceAccount, opts ...grpc.CallOption) (*ServiceAccount, error)
863 // Deletes a [ServiceAccount][google.iam.admin.v1.ServiceAccount].
864 DeleteServiceAccount(ctx context.Context, in *DeleteServiceAccountRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error)
865 // Lists [ServiceAccountKeys][google.iam.admin.v1.ServiceAccountKey].
866 ListServiceAccountKeys(ctx context.Context, in *ListServiceAccountKeysRequest, opts ...grpc.CallOption) (*ListServiceAccountKeysResponse, error)
867 // Gets the [ServiceAccountKey][google.iam.admin.v1.ServiceAccountKey]
869 GetServiceAccountKey(ctx context.Context, in *GetServiceAccountKeyRequest, opts ...grpc.CallOption) (*ServiceAccountKey, error)
870 // Creates a [ServiceAccountKey][google.iam.admin.v1.ServiceAccountKey]
872 CreateServiceAccountKey(ctx context.Context, in *CreateServiceAccountKeyRequest, opts ...grpc.CallOption) (*ServiceAccountKey, error)
873 // Deletes a [ServiceAccountKey][google.iam.admin.v1.ServiceAccountKey].
874 DeleteServiceAccountKey(ctx context.Context, in *DeleteServiceAccountKeyRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error)
875 // Signs a blob using a service account's system-managed private key.
876 SignBlob(ctx context.Context, in *SignBlobRequest, opts ...grpc.CallOption) (*SignBlobResponse, error)
877 // Returns the IAM access control policy for a
878 // [ServiceAccount][google.iam.admin.v1.ServiceAccount].
879 GetIamPolicy(ctx context.Context, in *google_iam_v11.GetIamPolicyRequest, opts ...grpc.CallOption) (*google_iam_v1.Policy, error)
880 // Sets the IAM access control policy for a
881 // [ServiceAccount][google.iam.admin.v1.ServiceAccount].
882 SetIamPolicy(ctx context.Context, in *google_iam_v11.SetIamPolicyRequest, opts ...grpc.CallOption) (*google_iam_v1.Policy, error)
883 // Tests the specified permissions against the IAM access control policy
884 // for a [ServiceAccount][google.iam.admin.v1.ServiceAccount].
885 TestIamPermissions(ctx context.Context, in *google_iam_v11.TestIamPermissionsRequest, opts ...grpc.CallOption) (*google_iam_v11.TestIamPermissionsResponse, error)
886 // Queries roles that can be granted on a particular resource.
887 // A role is grantable if it can be used as the role in a binding for a policy
888 // for that resource.
889 QueryGrantableRoles(ctx context.Context, in *QueryGrantableRolesRequest, opts ...grpc.CallOption) (*QueryGrantableRolesResponse, error)
892 type iAMClient struct {
896 func NewIAMClient(cc *grpc.ClientConn) IAMClient {
897 return &iAMClient{cc}
900 func (c *iAMClient) ListServiceAccounts(ctx context.Context, in *ListServiceAccountsRequest, opts ...grpc.CallOption) (*ListServiceAccountsResponse, error) {
901 out := new(ListServiceAccountsResponse)
902 err := grpc.Invoke(ctx, "/google.iam.admin.v1.IAM/ListServiceAccounts", in, out, c.cc, opts...)
909 func (c *iAMClient) GetServiceAccount(ctx context.Context, in *GetServiceAccountRequest, opts ...grpc.CallOption) (*ServiceAccount, error) {
910 out := new(ServiceAccount)
911 err := grpc.Invoke(ctx, "/google.iam.admin.v1.IAM/GetServiceAccount", in, out, c.cc, opts...)
918 func (c *iAMClient) CreateServiceAccount(ctx context.Context, in *CreateServiceAccountRequest, opts ...grpc.CallOption) (*ServiceAccount, error) {
919 out := new(ServiceAccount)
920 err := grpc.Invoke(ctx, "/google.iam.admin.v1.IAM/CreateServiceAccount", in, out, c.cc, opts...)
927 func (c *iAMClient) UpdateServiceAccount(ctx context.Context, in *ServiceAccount, opts ...grpc.CallOption) (*ServiceAccount, error) {
928 out := new(ServiceAccount)
929 err := grpc.Invoke(ctx, "/google.iam.admin.v1.IAM/UpdateServiceAccount", in, out, c.cc, opts...)
936 func (c *iAMClient) DeleteServiceAccount(ctx context.Context, in *DeleteServiceAccountRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) {
937 out := new(google_protobuf1.Empty)
938 err := grpc.Invoke(ctx, "/google.iam.admin.v1.IAM/DeleteServiceAccount", in, out, c.cc, opts...)
945 func (c *iAMClient) ListServiceAccountKeys(ctx context.Context, in *ListServiceAccountKeysRequest, opts ...grpc.CallOption) (*ListServiceAccountKeysResponse, error) {
946 out := new(ListServiceAccountKeysResponse)
947 err := grpc.Invoke(ctx, "/google.iam.admin.v1.IAM/ListServiceAccountKeys", in, out, c.cc, opts...)
954 func (c *iAMClient) GetServiceAccountKey(ctx context.Context, in *GetServiceAccountKeyRequest, opts ...grpc.CallOption) (*ServiceAccountKey, error) {
955 out := new(ServiceAccountKey)
956 err := grpc.Invoke(ctx, "/google.iam.admin.v1.IAM/GetServiceAccountKey", in, out, c.cc, opts...)
963 func (c *iAMClient) CreateServiceAccountKey(ctx context.Context, in *CreateServiceAccountKeyRequest, opts ...grpc.CallOption) (*ServiceAccountKey, error) {
964 out := new(ServiceAccountKey)
965 err := grpc.Invoke(ctx, "/google.iam.admin.v1.IAM/CreateServiceAccountKey", in, out, c.cc, opts...)
972 func (c *iAMClient) DeleteServiceAccountKey(ctx context.Context, in *DeleteServiceAccountKeyRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) {
973 out := new(google_protobuf1.Empty)
974 err := grpc.Invoke(ctx, "/google.iam.admin.v1.IAM/DeleteServiceAccountKey", in, out, c.cc, opts...)
981 func (c *iAMClient) SignBlob(ctx context.Context, in *SignBlobRequest, opts ...grpc.CallOption) (*SignBlobResponse, error) {
982 out := new(SignBlobResponse)
983 err := grpc.Invoke(ctx, "/google.iam.admin.v1.IAM/SignBlob", in, out, c.cc, opts...)
990 func (c *iAMClient) GetIamPolicy(ctx context.Context, in *google_iam_v11.GetIamPolicyRequest, opts ...grpc.CallOption) (*google_iam_v1.Policy, error) {
991 out := new(google_iam_v1.Policy)
992 err := grpc.Invoke(ctx, "/google.iam.admin.v1.IAM/GetIamPolicy", in, out, c.cc, opts...)
999 func (c *iAMClient) SetIamPolicy(ctx context.Context, in *google_iam_v11.SetIamPolicyRequest, opts ...grpc.CallOption) (*google_iam_v1.Policy, error) {
1000 out := new(google_iam_v1.Policy)
1001 err := grpc.Invoke(ctx, "/google.iam.admin.v1.IAM/SetIamPolicy", in, out, c.cc, opts...)
1008 func (c *iAMClient) TestIamPermissions(ctx context.Context, in *google_iam_v11.TestIamPermissionsRequest, opts ...grpc.CallOption) (*google_iam_v11.TestIamPermissionsResponse, error) {
1009 out := new(google_iam_v11.TestIamPermissionsResponse)
1010 err := grpc.Invoke(ctx, "/google.iam.admin.v1.IAM/TestIamPermissions", in, out, c.cc, opts...)
1017 func (c *iAMClient) QueryGrantableRoles(ctx context.Context, in *QueryGrantableRolesRequest, opts ...grpc.CallOption) (*QueryGrantableRolesResponse, error) {
1018 out := new(QueryGrantableRolesResponse)
1019 err := grpc.Invoke(ctx, "/google.iam.admin.v1.IAM/QueryGrantableRoles", in, out, c.cc, opts...)
1026 // Server API for IAM service
1028 type IAMServer interface {
1029 // Lists [ServiceAccounts][google.iam.admin.v1.ServiceAccount] for a project.
1030 ListServiceAccounts(context.Context, *ListServiceAccountsRequest) (*ListServiceAccountsResponse, error)
1031 // Gets a [ServiceAccount][google.iam.admin.v1.ServiceAccount].
1032 GetServiceAccount(context.Context, *GetServiceAccountRequest) (*ServiceAccount, error)
1033 // Creates a [ServiceAccount][google.iam.admin.v1.ServiceAccount]
1035 CreateServiceAccount(context.Context, *CreateServiceAccountRequest) (*ServiceAccount, error)
1036 // Updates a [ServiceAccount][google.iam.admin.v1.ServiceAccount].
1038 // Currently, only the following fields are updatable:
1040 // The `etag` is mandatory.
1041 UpdateServiceAccount(context.Context, *ServiceAccount) (*ServiceAccount, error)
1042 // Deletes a [ServiceAccount][google.iam.admin.v1.ServiceAccount].
1043 DeleteServiceAccount(context.Context, *DeleteServiceAccountRequest) (*google_protobuf1.Empty, error)
1044 // Lists [ServiceAccountKeys][google.iam.admin.v1.ServiceAccountKey].
1045 ListServiceAccountKeys(context.Context, *ListServiceAccountKeysRequest) (*ListServiceAccountKeysResponse, error)
1046 // Gets the [ServiceAccountKey][google.iam.admin.v1.ServiceAccountKey]
1048 GetServiceAccountKey(context.Context, *GetServiceAccountKeyRequest) (*ServiceAccountKey, error)
1049 // Creates a [ServiceAccountKey][google.iam.admin.v1.ServiceAccountKey]
1051 CreateServiceAccountKey(context.Context, *CreateServiceAccountKeyRequest) (*ServiceAccountKey, error)
1052 // Deletes a [ServiceAccountKey][google.iam.admin.v1.ServiceAccountKey].
1053 DeleteServiceAccountKey(context.Context, *DeleteServiceAccountKeyRequest) (*google_protobuf1.Empty, error)
1054 // Signs a blob using a service account's system-managed private key.
1055 SignBlob(context.Context, *SignBlobRequest) (*SignBlobResponse, error)
1056 // Returns the IAM access control policy for a
1057 // [ServiceAccount][google.iam.admin.v1.ServiceAccount].
1058 GetIamPolicy(context.Context, *google_iam_v11.GetIamPolicyRequest) (*google_iam_v1.Policy, error)
1059 // Sets the IAM access control policy for a
1060 // [ServiceAccount][google.iam.admin.v1.ServiceAccount].
1061 SetIamPolicy(context.Context, *google_iam_v11.SetIamPolicyRequest) (*google_iam_v1.Policy, error)
1062 // Tests the specified permissions against the IAM access control policy
1063 // for a [ServiceAccount][google.iam.admin.v1.ServiceAccount].
1064 TestIamPermissions(context.Context, *google_iam_v11.TestIamPermissionsRequest) (*google_iam_v11.TestIamPermissionsResponse, error)
1065 // Queries roles that can be granted on a particular resource.
1066 // A role is grantable if it can be used as the role in a binding for a policy
1067 // for that resource.
1068 QueryGrantableRoles(context.Context, *QueryGrantableRolesRequest) (*QueryGrantableRolesResponse, error)
1071 func RegisterIAMServer(s *grpc.Server, srv IAMServer) {
1072 s.RegisterService(&_IAM_serviceDesc, srv)
1075 func _IAM_ListServiceAccounts_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
1076 in := new(ListServiceAccountsRequest)
1077 if err := dec(in); err != nil {
1080 if interceptor == nil {
1081 return srv.(IAMServer).ListServiceAccounts(ctx, in)
1083 info := &grpc.UnaryServerInfo{
1085 FullMethod: "/google.iam.admin.v1.IAM/ListServiceAccounts",
1087 handler := func(ctx context.Context, req interface{}) (interface{}, error) {
1088 return srv.(IAMServer).ListServiceAccounts(ctx, req.(*ListServiceAccountsRequest))
1090 return interceptor(ctx, in, info, handler)
1093 func _IAM_GetServiceAccount_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
1094 in := new(GetServiceAccountRequest)
1095 if err := dec(in); err != nil {
1098 if interceptor == nil {
1099 return srv.(IAMServer).GetServiceAccount(ctx, in)
1101 info := &grpc.UnaryServerInfo{
1103 FullMethod: "/google.iam.admin.v1.IAM/GetServiceAccount",
1105 handler := func(ctx context.Context, req interface{}) (interface{}, error) {
1106 return srv.(IAMServer).GetServiceAccount(ctx, req.(*GetServiceAccountRequest))
1108 return interceptor(ctx, in, info, handler)
1111 func _IAM_CreateServiceAccount_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
1112 in := new(CreateServiceAccountRequest)
1113 if err := dec(in); err != nil {
1116 if interceptor == nil {
1117 return srv.(IAMServer).CreateServiceAccount(ctx, in)
1119 info := &grpc.UnaryServerInfo{
1121 FullMethod: "/google.iam.admin.v1.IAM/CreateServiceAccount",
1123 handler := func(ctx context.Context, req interface{}) (interface{}, error) {
1124 return srv.(IAMServer).CreateServiceAccount(ctx, req.(*CreateServiceAccountRequest))
1126 return interceptor(ctx, in, info, handler)
1129 func _IAM_UpdateServiceAccount_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
1130 in := new(ServiceAccount)
1131 if err := dec(in); err != nil {
1134 if interceptor == nil {
1135 return srv.(IAMServer).UpdateServiceAccount(ctx, in)
1137 info := &grpc.UnaryServerInfo{
1139 FullMethod: "/google.iam.admin.v1.IAM/UpdateServiceAccount",
1141 handler := func(ctx context.Context, req interface{}) (interface{}, error) {
1142 return srv.(IAMServer).UpdateServiceAccount(ctx, req.(*ServiceAccount))
1144 return interceptor(ctx, in, info, handler)
1147 func _IAM_DeleteServiceAccount_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
1148 in := new(DeleteServiceAccountRequest)
1149 if err := dec(in); err != nil {
1152 if interceptor == nil {
1153 return srv.(IAMServer).DeleteServiceAccount(ctx, in)
1155 info := &grpc.UnaryServerInfo{
1157 FullMethod: "/google.iam.admin.v1.IAM/DeleteServiceAccount",
1159 handler := func(ctx context.Context, req interface{}) (interface{}, error) {
1160 return srv.(IAMServer).DeleteServiceAccount(ctx, req.(*DeleteServiceAccountRequest))
1162 return interceptor(ctx, in, info, handler)
1165 func _IAM_ListServiceAccountKeys_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
1166 in := new(ListServiceAccountKeysRequest)
1167 if err := dec(in); err != nil {
1170 if interceptor == nil {
1171 return srv.(IAMServer).ListServiceAccountKeys(ctx, in)
1173 info := &grpc.UnaryServerInfo{
1175 FullMethod: "/google.iam.admin.v1.IAM/ListServiceAccountKeys",
1177 handler := func(ctx context.Context, req interface{}) (interface{}, error) {
1178 return srv.(IAMServer).ListServiceAccountKeys(ctx, req.(*ListServiceAccountKeysRequest))
1180 return interceptor(ctx, in, info, handler)
1183 func _IAM_GetServiceAccountKey_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
1184 in := new(GetServiceAccountKeyRequest)
1185 if err := dec(in); err != nil {
1188 if interceptor == nil {
1189 return srv.(IAMServer).GetServiceAccountKey(ctx, in)
1191 info := &grpc.UnaryServerInfo{
1193 FullMethod: "/google.iam.admin.v1.IAM/GetServiceAccountKey",
1195 handler := func(ctx context.Context, req interface{}) (interface{}, error) {
1196 return srv.(IAMServer).GetServiceAccountKey(ctx, req.(*GetServiceAccountKeyRequest))
1198 return interceptor(ctx, in, info, handler)
1201 func _IAM_CreateServiceAccountKey_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
1202 in := new(CreateServiceAccountKeyRequest)
1203 if err := dec(in); err != nil {
1206 if interceptor == nil {
1207 return srv.(IAMServer).CreateServiceAccountKey(ctx, in)
1209 info := &grpc.UnaryServerInfo{
1211 FullMethod: "/google.iam.admin.v1.IAM/CreateServiceAccountKey",
1213 handler := func(ctx context.Context, req interface{}) (interface{}, error) {
1214 return srv.(IAMServer).CreateServiceAccountKey(ctx, req.(*CreateServiceAccountKeyRequest))
1216 return interceptor(ctx, in, info, handler)
1219 func _IAM_DeleteServiceAccountKey_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
1220 in := new(DeleteServiceAccountKeyRequest)
1221 if err := dec(in); err != nil {
1224 if interceptor == nil {
1225 return srv.(IAMServer).DeleteServiceAccountKey(ctx, in)
1227 info := &grpc.UnaryServerInfo{
1229 FullMethod: "/google.iam.admin.v1.IAM/DeleteServiceAccountKey",
1231 handler := func(ctx context.Context, req interface{}) (interface{}, error) {
1232 return srv.(IAMServer).DeleteServiceAccountKey(ctx, req.(*DeleteServiceAccountKeyRequest))
1234 return interceptor(ctx, in, info, handler)
1237 func _IAM_SignBlob_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
1238 in := new(SignBlobRequest)
1239 if err := dec(in); err != nil {
1242 if interceptor == nil {
1243 return srv.(IAMServer).SignBlob(ctx, in)
1245 info := &grpc.UnaryServerInfo{
1247 FullMethod: "/google.iam.admin.v1.IAM/SignBlob",
1249 handler := func(ctx context.Context, req interface{}) (interface{}, error) {
1250 return srv.(IAMServer).SignBlob(ctx, req.(*SignBlobRequest))
1252 return interceptor(ctx, in, info, handler)
1255 func _IAM_GetIamPolicy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
1256 in := new(google_iam_v11.GetIamPolicyRequest)
1257 if err := dec(in); err != nil {
1260 if interceptor == nil {
1261 return srv.(IAMServer).GetIamPolicy(ctx, in)
1263 info := &grpc.UnaryServerInfo{
1265 FullMethod: "/google.iam.admin.v1.IAM/GetIamPolicy",
1267 handler := func(ctx context.Context, req interface{}) (interface{}, error) {
1268 return srv.(IAMServer).GetIamPolicy(ctx, req.(*google_iam_v11.GetIamPolicyRequest))
1270 return interceptor(ctx, in, info, handler)
1273 func _IAM_SetIamPolicy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
1274 in := new(google_iam_v11.SetIamPolicyRequest)
1275 if err := dec(in); err != nil {
1278 if interceptor == nil {
1279 return srv.(IAMServer).SetIamPolicy(ctx, in)
1281 info := &grpc.UnaryServerInfo{
1283 FullMethod: "/google.iam.admin.v1.IAM/SetIamPolicy",
1285 handler := func(ctx context.Context, req interface{}) (interface{}, error) {
1286 return srv.(IAMServer).SetIamPolicy(ctx, req.(*google_iam_v11.SetIamPolicyRequest))
1288 return interceptor(ctx, in, info, handler)
1291 func _IAM_TestIamPermissions_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
1292 in := new(google_iam_v11.TestIamPermissionsRequest)
1293 if err := dec(in); err != nil {
1296 if interceptor == nil {
1297 return srv.(IAMServer).TestIamPermissions(ctx, in)
1299 info := &grpc.UnaryServerInfo{
1301 FullMethod: "/google.iam.admin.v1.IAM/TestIamPermissions",
1303 handler := func(ctx context.Context, req interface{}) (interface{}, error) {
1304 return srv.(IAMServer).TestIamPermissions(ctx, req.(*google_iam_v11.TestIamPermissionsRequest))
1306 return interceptor(ctx, in, info, handler)
1309 func _IAM_QueryGrantableRoles_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
1310 in := new(QueryGrantableRolesRequest)
1311 if err := dec(in); err != nil {
1314 if interceptor == nil {
1315 return srv.(IAMServer).QueryGrantableRoles(ctx, in)
1317 info := &grpc.UnaryServerInfo{
1319 FullMethod: "/google.iam.admin.v1.IAM/QueryGrantableRoles",
1321 handler := func(ctx context.Context, req interface{}) (interface{}, error) {
1322 return srv.(IAMServer).QueryGrantableRoles(ctx, req.(*QueryGrantableRolesRequest))
1324 return interceptor(ctx, in, info, handler)
1327 var _IAM_serviceDesc = grpc.ServiceDesc{
1328 ServiceName: "google.iam.admin.v1.IAM",
1329 HandlerType: (*IAMServer)(nil),
1330 Methods: []grpc.MethodDesc{
1332 MethodName: "ListServiceAccounts",
1333 Handler: _IAM_ListServiceAccounts_Handler,
1336 MethodName: "GetServiceAccount",
1337 Handler: _IAM_GetServiceAccount_Handler,
1340 MethodName: "CreateServiceAccount",
1341 Handler: _IAM_CreateServiceAccount_Handler,
1344 MethodName: "UpdateServiceAccount",
1345 Handler: _IAM_UpdateServiceAccount_Handler,
1348 MethodName: "DeleteServiceAccount",
1349 Handler: _IAM_DeleteServiceAccount_Handler,
1352 MethodName: "ListServiceAccountKeys",
1353 Handler: _IAM_ListServiceAccountKeys_Handler,
1356 MethodName: "GetServiceAccountKey",
1357 Handler: _IAM_GetServiceAccountKey_Handler,
1360 MethodName: "CreateServiceAccountKey",
1361 Handler: _IAM_CreateServiceAccountKey_Handler,
1364 MethodName: "DeleteServiceAccountKey",
1365 Handler: _IAM_DeleteServiceAccountKey_Handler,
1368 MethodName: "SignBlob",
1369 Handler: _IAM_SignBlob_Handler,
1372 MethodName: "GetIamPolicy",
1373 Handler: _IAM_GetIamPolicy_Handler,
1376 MethodName: "SetIamPolicy",
1377 Handler: _IAM_SetIamPolicy_Handler,
1380 MethodName: "TestIamPermissions",
1381 Handler: _IAM_TestIamPermissions_Handler,
1384 MethodName: "QueryGrantableRoles",
1385 Handler: _IAM_QueryGrantableRoles_Handler,
1388 Streams: []grpc.StreamDesc{},
1389 Metadata: "google/iam/admin/v1/iam.proto",
1392 func init() { proto.RegisterFile("google/iam/admin/v1/iam.proto", fileDescriptor0) }
1394 var fileDescriptor0 = []byte{
1395 // 1604 bytes of a gzipped FileDescriptorProto
1396 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x58, 0x4b, 0x6f, 0xdb, 0xc6,
1397 0x16, 0xce, 0xf8, 0x91, 0x58, 0xc7, 0xb2, 0x2c, 0x8f, 0x95, 0x58, 0x57, 0xb2, 0x7d, 0x75, 0x79,
1398 0x6f, 0x12, 0x47, 0x48, 0x24, 0x59, 0x71, 0xee, 0xcd, 0x75, 0x90, 0xb6, 0xb2, 0xac, 0x08, 0xac,
1399 0x1f, 0x51, 0x29, 0x19, 0x89, 0xfb, 0x00, 0x31, 0x92, 0xc6, 0x0a, 0x6b, 0x8a, 0x64, 0x48, 0xca,
1400 0xa8, 0x52, 0x64, 0xd3, 0x45, 0x37, 0x01, 0x0a, 0x14, 0xcd, 0xa2, 0xab, 0x14, 0xe8, 0xa6, 0xdd,
1401 0x75, 0x53, 0xa0, 0x40, 0xff, 0x46, 0x17, 0x5d, 0x17, 0x28, 0xd0, 0xbf, 0xd0, 0x65, 0x31, 0x43,
1402 0xd2, 0xd1, 0x83, 0x92, 0xe9, 0xa2, 0xe8, 0x8e, 0x73, 0x9e, 0xdf, 0x9c, 0x33, 0x73, 0xe6, 0x93,
1403 0x60, 0xa5, 0xa5, 0xeb, 0x2d, 0x95, 0x66, 0x15, 0xd2, 0xce, 0x92, 0x66, 0x5b, 0xd1, 0xb2, 0x27,
1404 0xeb, 0x6c, 0x91, 0x31, 0x4c, 0xdd, 0xd6, 0xf1, 0xa2, 0xa3, 0xce, 0x30, 0x09, 0x57, 0x67, 0x4e,
1405 0xd6, 0x13, 0xcb, 0xae, 0x0f, 0x31, 0x94, 0x2c, 0xd1, 0x34, 0xdd, 0x26, 0xb6, 0xa2, 0x6b, 0x96,
1406 0xe3, 0x92, 0x58, 0xed, 0x89, 0xe8, 0xc4, 0x92, 0x0d, 0x5d, 0x55, 0x1a, 0x5d, 0x57, 0x9f, 0xe8,
1407 0xd7, 0xf7, 0xe9, 0x92, 0xae, 0x8e, 0xaf, 0xea, 0x9d, 0xa3, 0x2c, 0x6d, 0x1b, 0xb6, 0xa7, 0x4c,
1408 0x0d, 0x2a, 0x8f, 0x14, 0xaa, 0x36, 0xe5, 0x36, 0xb1, 0x8e, 0x5d, 0x8b, 0x7f, 0x0e, 0x5a, 0xd8,
1409 0x4a, 0x9b, 0x5a, 0x36, 0x69, 0x1b, 0x8e, 0x81, 0xf0, 0x33, 0x82, 0x48, 0x95, 0x9a, 0x27, 0x4a,
1410 0x83, 0x16, 0x1a, 0x0d, 0xbd, 0xa3, 0xd9, 0x18, 0xc3, 0x94, 0x46, 0xda, 0x34, 0x8e, 0x52, 0x68,
1411 0x2d, 0x24, 0xf1, 0x6f, 0xbc, 0x02, 0x60, 0x98, 0xfa, 0x87, 0xb4, 0x61, 0xcb, 0x4a, 0x33, 0x3e,
1412 0xc1, 0x35, 0x21, 0x57, 0x22, 0x36, 0x71, 0x12, 0x42, 0x1d, 0x4d, 0x79, 0xda, 0xa1, 0x4c, 0x3b,
1413 0xc5, 0xb5, 0x33, 0x8e, 0x40, 0x6c, 0xe2, 0x18, 0x4c, 0xd3, 0x36, 0x51, 0xd4, 0xf8, 0x34, 0x57,
1414 0x38, 0x0b, 0xfc, 0x2f, 0x08, 0x37, 0x15, 0xcb, 0x50, 0x49, 0x57, 0xe6, 0xd9, 0x2e, 0x72, 0xe5,
1415 0xac, 0x2b, 0xdb, 0x67, 0x49, 0x31, 0x4c, 0x51, 0x9b, 0xb4, 0xe2, 0x97, 0x52, 0x68, 0x2d, 0x2c,
1416 0xf1, 0x6f, 0xbc, 0x06, 0x51, 0x9d, 0x74, 0xec, 0x27, 0x79, 0xb9, 0xa1, 0x2a, 0x54, 0xe3, 0x70,
1417 0x42, 0xdc, 0x35, 0xe2, 0xc8, 0x8b, 0x5c, 0x2c, 0x36, 0x85, 0x57, 0x08, 0x92, 0x45, 0x93, 0x12,
1418 0x9b, 0xf6, 0xef, 0x4f, 0xa2, 0x4f, 0x3b, 0xd4, 0x1a, 0xb9, 0x4d, 0xe2, 0x58, 0xf5, 0x6c, 0xd3,
1419 0x95, 0x88, 0x4d, 0xbc, 0x0b, 0xf3, 0x96, 0x13, 0x4b, 0x76, 0x85, 0xf1, 0xc9, 0x14, 0x5a, 0x9b,
1420 0xcd, 0xff, 0x3b, 0xe3, 0x73, 0x2a, 0x32, 0x03, 0x79, 0x23, 0x56, 0xdf, 0x5a, 0x50, 0x21, 0xb1,
1421 0xab, 0x58, 0x76, 0xbf, 0x95, 0x35, 0x0e, 0x5e, 0x12, 0x42, 0x06, 0x69, 0x51, 0xd9, 0x52, 0x9e,
1422 0x51, 0x8e, 0x6e, 0x5a, 0x9a, 0x61, 0x82, 0xaa, 0xf2, 0xcc, 0x69, 0x11, 0x53, 0xda, 0xfa, 0x31,
1423 0xd5, 0x38, 0x2e, 0xd6, 0x22, 0xd2, 0xa2, 0x35, 0x26, 0x10, 0x3e, 0x45, 0x90, 0xf4, 0x4d, 0x67,
1424 0x19, 0xba, 0x66, 0x51, 0xfc, 0x26, 0xcc, 0xb8, 0x7b, 0xb2, 0xe2, 0x28, 0x35, 0x19, 0x74, 0x53,
1425 0xa7, 0x4e, 0xf8, 0x1a, 0xcc, 0x6b, 0xf4, 0x23, 0x5b, 0xee, 0x01, 0xe1, 0x14, 0x70, 0x8e, 0x89,
1426 0x2b, 0xa7, 0x40, 0x32, 0x10, 0x2f, 0x53, 0x3b, 0x70, 0x4f, 0x84, 0x75, 0x48, 0x6e, 0x53, 0x95,
1427 0x9e, 0xa3, 0x8d, 0xec, 0x50, 0xaf, 0x0c, 0xef, 0x75, 0x87, 0x76, 0xc7, 0x56, 0xf7, 0x11, 0x84,
1428 0x8e, 0x69, 0x57, 0xb6, 0xbb, 0x06, 0xb5, 0xe2, 0x13, 0xa9, 0xc9, 0xb5, 0x48, 0x7e, 0xd3, 0xb7,
1429 0x04, 0x63, 0x43, 0x67, 0x76, 0x68, 0xb7, 0xd6, 0x35, 0xa8, 0x34, 0x73, 0xec, 0x7c, 0x58, 0x82,
1430 0x08, 0x97, 0x5c, 0x21, 0x8e, 0x43, 0x6c, 0xa7, 0x74, 0x28, 0xd7, 0x0e, 0x2b, 0x25, 0xf9, 0x60,
1431 0xbf, 0x5a, 0x29, 0x15, 0xc5, 0x07, 0x62, 0x69, 0x3b, 0x7a, 0x01, 0x47, 0x21, 0x7c, 0x50, 0x2d,
1432 0x49, 0xf2, 0x5e, 0x61, 0xbf, 0x50, 0x2e, 0x6d, 0x47, 0x11, 0xc6, 0x10, 0xa9, 0x1e, 0x56, 0x6b,
1433 0xa5, 0xbd, 0x53, 0xd9, 0x84, 0xf0, 0x3e, 0xac, 0x8e, 0xca, 0xee, 0xf6, 0x71, 0x13, 0xa6, 0x8e,
1434 0x69, 0xd7, 0xeb, 0xe1, 0xb5, 0x00, 0x3d, 0xdc, 0xa1, 0x5d, 0x89, 0xfb, 0x08, 0x2f, 0x10, 0x24,
1435 0x87, 0x7a, 0xc3, 0xd4, 0x63, 0xaa, 0xf6, 0x18, 0xe6, 0x8d, 0x4e, 0x5d, 0x55, 0x1a, 0xb2, 0x57,
1436 0x3c, 0xde, 0xf6, 0x48, 0x3e, 0x17, 0x20, 0x75, 0x85, 0x7b, 0x7a, 0x15, 0x9b, 0x33, 0x7a, 0x97,
1437 0xc2, 0x8f, 0x93, 0xb0, 0x30, 0x04, 0xc5, 0x17, 0xc3, 0x7b, 0x10, 0x35, 0x4c, 0xe5, 0x84, 0xd8,
1438 0x74, 0x10, 0xc4, 0x7a, 0x10, 0x10, 0x8e, 0xab, 0x87, 0x22, 0x62, 0xf4, 0xad, 0x71, 0x0d, 0xe6,
1439 0x58, 0x50, 0xa2, 0xb6, 0x74, 0x53, 0xb1, 0x9f, 0xb4, 0xe3, 0x33, 0x3c, 0x72, 0x36, 0x58, 0x65,
1440 0x0b, 0x9e, 0x9b, 0x14, 0x3e, 0xee, 0x59, 0xb1, 0x39, 0xd6, 0x0b, 0xb9, 0x49, 0x6c, 0xc2, 0xef,
1441 0x6c, 0xb8, 0x37, 0xff, 0x36, 0xb1, 0x09, 0xbb, 0x57, 0x3d, 0x05, 0xe6, 0x86, 0xce, 0x40, 0x7c,
1442 0x5d, 0x2e, 0x6e, 0xb7, 0x0d, 0xd1, 0x13, 0xa2, 0x2a, 0x4d, 0x99, 0x1c, 0xd9, 0xd4, 0x94, 0xd9,
1443 0xa0, 0xe7, 0xa3, 0x78, 0x36, 0x9f, 0xf0, 0xa0, 0x7a, 0xaf, 0x40, 0xa6, 0xe6, 0xbd, 0x02, 0x52,
1444 0x84, 0xfb, 0x14, 0x98, 0x0b, 0x13, 0xe2, 0x07, 0xb0, 0xe0, 0x44, 0xa9, 0xd3, 0x23, 0xdd, 0xa4,
1445 0x4e, 0x98, 0xe9, 0x33, 0xc3, 0xcc, 0x73, 0xa7, 0x2d, 0xee, 0xc3, 0xa4, 0xc2, 0x6f, 0x08, 0x56,
1446 0xfd, 0xa6, 0xef, 0x19, 0xa7, 0xe9, 0xef, 0xed, 0xe4, 0xe4, 0x5f, 0xd0, 0x49, 0x61, 0x03, 0x56,
1447 0xfd, 0xe6, 0xd3, 0xf8, 0x8d, 0x0a, 0x22, 0xcc, 0x57, 0x95, 0x96, 0xb6, 0xa5, 0xea, 0xf5, 0x71,
1448 0xf5, 0x10, 0x60, 0xae, 0xde, 0xb5, 0xa9, 0x25, 0xdb, 0xba, 0x6c, 0x29, 0x2d, 0x67, 0xa4, 0x86,
1449 0xa5, 0x59, 0x2e, 0xac, 0xe9, 0x2c, 0x84, 0x50, 0x86, 0xe8, 0xeb, 0x50, 0xee, 0x14, 0xb8, 0x0c,
1450 0x17, 0xd9, 0x56, 0x95, 0xa6, 0x1b, 0x6d, 0xfa, 0x98, 0x76, 0xc5, 0x26, 0x5e, 0x86, 0x10, 0x8b,
1451 0x42, 0xec, 0x8e, 0x49, 0xdd, 0x50, 0xaf, 0x05, 0x82, 0x04, 0x53, 0x92, 0xae, 0x52, 0x5f, 0x20,
1452 0x31, 0x98, 0xb6, 0x15, 0x5b, 0xa5, 0xee, 0x4c, 0x77, 0x16, 0x38, 0x05, 0xb3, 0x4d, 0x6a, 0x35,
1453 0x4c, 0xc5, 0x60, 0x7c, 0xc7, 0x7d, 0x74, 0x7a, 0x45, 0xc2, 0xdb, 0x90, 0x78, 0xa7, 0x43, 0xcd,
1454 0x6e, 0xd9, 0x24, 0x9a, 0x4d, 0xea, 0x2a, 0x65, 0x19, 0x4e, 0xc7, 0xf0, 0x4d, 0xc0, 0x47, 0x1d,
1455 0x55, 0x95, 0x4d, 0x6a, 0xe9, 0x1d, 0xb3, 0x41, 0xe5, 0x9e, 0xbc, 0x51, 0xa6, 0x91, 0x5c, 0x05,
1456 0xe3, 0x03, 0xc2, 0x3e, 0x24, 0x7d, 0x63, 0xb9, 0x7b, 0xce, 0xc2, 0xb4, 0xc9, 0x04, 0xee, 0xe8,
1457 0xfb, 0x87, 0x6f, 0x5b, 0x99, 0x8b, 0xe4, 0xd8, 0xa5, 0x09, 0x24, 0x46, 0x77, 0x19, 0x2f, 0xc1,
1458 0x22, 0x1b, 0xd5, 0x85, 0xdd, 0xf2, 0xc0, 0xa4, 0x8e, 0x41, 0xd4, 0x53, 0x48, 0xd5, 0x82, 0xbc,
1459 0x9e, 0xcb, 0x6f, 0x44, 0xd1, 0xa0, 0x34, 0x9f, 0xdb, 0xb8, 0x1b, 0x9d, 0x48, 0xab, 0xb0, 0x3c,
1460 0xee, 0x88, 0x32, 0x2f, 0x9f, 0xb7, 0xc0, 0x93, 0x56, 0x76, 0x8a, 0xd5, 0xf5, 0xbc, 0xfc, 0x40,
1461 0xdc, 0x2d, 0x45, 0x11, 0x4e, 0xc1, 0x32, 0x97, 0x96, 0x1f, 0x3e, 0x2c, 0xef, 0x96, 0xe4, 0xa2,
1462 0x54, 0xda, 0x2e, 0xed, 0xd7, 0xc4, 0xc2, 0x6e, 0xd5, 0xb1, 0x98, 0x48, 0x7f, 0x00, 0xc9, 0x31,
1463 0xf3, 0x15, 0xcf, 0x41, 0x88, 0x07, 0xd8, 0x7f, 0xb8, 0x5f, 0x8a, 0x5e, 0xc0, 0x57, 0x00, 0xf3,
1464 0xe5, 0xe3, 0x3b, 0xb9, 0xff, 0xcb, 0x95, 0xd2, 0x9e, 0x97, 0x67, 0x09, 0x16, 0xb9, 0x5c, 0x2a,
1465 0x3c, 0x92, 0x2b, 0x07, 0x5b, 0xbb, 0x62, 0x51, 0xde, 0x29, 0x1d, 0x46, 0x27, 0xf2, 0xbf, 0x2c,
1466 0xc0, 0xa4, 0x58, 0xd8, 0xc3, 0xdf, 0x20, 0x58, 0xf4, 0xa1, 0x12, 0x38, 0x1b, 0xf0, 0xb5, 0xf4,
1467 0xda, 0x9f, 0xc8, 0x05, 0x77, 0x70, 0x7a, 0x2c, 0xdc, 0xfa, 0xe4, 0xa7, 0x5f, 0xbf, 0x98, 0xb8,
1468 0x8e, 0xaf, 0x32, 0xa2, 0xfc, 0x31, 0x3b, 0x2d, 0xf7, 0x5d, 0x16, 0x6a, 0x65, 0xd3, 0xcf, 0xb3,
1469 0xd6, 0x00, 0xa2, 0x2f, 0x11, 0x2c, 0x0c, 0x3d, 0x68, 0xf8, 0x96, 0x6f, 0xda, 0x51, 0xa4, 0x24,
1470 0x11, 0x84, 0x07, 0x09, 0x59, 0x0e, 0xec, 0x06, 0xbe, 0xee, 0x07, 0x6c, 0x10, 0x57, 0x36, 0xfd,
1471 0x1c, 0x7f, 0x85, 0x20, 0xe6, 0x37, 0x20, 0xb1, 0x7f, 0x51, 0xc6, 0x30, 0xd9, 0x60, 0x00, 0x73,
1472 0x1c, 0x60, 0x5a, 0x08, 0x56, 0xb9, 0x4d, 0x94, 0xc6, 0x2f, 0x11, 0xc4, 0x0e, 0x8c, 0xe6, 0x30,
1473 0xc2, 0x20, 0xf9, 0x82, 0x81, 0xca, 0x73, 0x50, 0x37, 0x13, 0x41, 0xab, 0xc6, 0x60, 0x7d, 0x8e,
1474 0x20, 0xe6, 0x37, 0x70, 0x47, 0x14, 0x6e, 0x0c, 0x77, 0x4c, 0x5c, 0x19, 0x7a, 0xd1, 0x4a, 0xec,
1475 0xd7, 0x95, 0xd7, 0xcc, 0x74, 0xe0, 0x66, 0xfe, 0x80, 0xe0, 0x8a, 0x3f, 0x2f, 0xc3, 0xf9, 0xf3,
1476 0x53, 0xc8, 0xc4, 0xed, 0x73, 0xf9, 0xb8, 0x57, 0x63, 0x83, 0x83, 0xce, 0xe0, 0x9b, 0x01, 0x41,
1477 0x67, 0x19, 0xe5, 0xc3, 0xdf, 0x22, 0x88, 0xf9, 0x51, 0xbe, 0x11, 0xd5, 0x1c, 0xc3, 0x0e, 0x13,
1478 0x01, 0xb9, 0xa6, 0xf0, 0x5f, 0x0e, 0x34, 0x87, 0x33, 0xc1, 0x80, 0x72, 0x9c, 0xac, 0xc8, 0xdf,
1479 0x21, 0x58, 0x1a, 0x41, 0x29, 0xf0, 0xed, 0xc0, 0x97, 0xe6, 0x4f, 0x00, 0xfe, 0x1f, 0x07, 0xbc,
1480 0x2e, 0x9c, 0xab, 0xb2, 0xec, 0xa8, 0xbe, 0x42, 0xb0, 0x34, 0x82, 0x1b, 0x8c, 0x40, 0x3c, 0x9e,
1481 0x49, 0x8c, 0x3c, 0xb0, 0x6e, 0x49, 0xd3, 0xe7, 0x2d, 0xe9, 0x4b, 0x04, 0x33, 0x1e, 0x77, 0xc0,
1482 0xff, 0xf1, 0x2f, 0x47, 0x3f, 0x4b, 0x49, 0x5c, 0x3d, 0xc3, 0xca, 0x3d, 0x8d, 0xf7, 0x38, 0xa2,
1483 0x3b, 0x42, 0x2e, 0xe8, 0xcd, 0xb6, 0xdc, 0x08, 0xac, 0x6e, 0x2f, 0x10, 0x84, 0xcb, 0xd4, 0x16,
1484 0x49, 0xbb, 0xc2, 0xff, 0x0b, 0xc1, 0x42, 0x6f, 0x52, 0xe7, 0x18, 0x9e, 0x2a, 0x3d, 0x60, 0x97,
1485 0x07, 0x6c, 0x1c, 0xad, 0xf0, 0x16, 0x07, 0xb2, 0x29, 0xdc, 0xe5, 0x40, 0x3c, 0xa2, 0x71, 0x06,
1486 0x98, 0x56, 0x6f, 0xf2, 0xcf, 0x10, 0x84, 0xab, 0xe3, 0xd0, 0x54, 0x83, 0xa3, 0x29, 0x72, 0x34,
1487 0xf7, 0xcf, 0x87, 0xc6, 0xea, 0x89, 0xcf, 0xca, 0xf3, 0x3d, 0x02, 0x5c, 0xa3, 0x16, 0x17, 0x52,
1488 0xb3, 0xad, 0x58, 0x96, 0xa2, 0x6b, 0x16, 0x5e, 0x1b, 0x48, 0x39, 0x6c, 0xe2, 0x81, 0xbb, 0x11,
1489 0xc0, 0xd2, 0xed, 0xa3, 0xc8, 0x01, 0x17, 0x85, 0x37, 0xce, 0x03, 0xd8, 0x1e, 0x8a, 0xc7, 0x60,
1490 0x7f, 0x8d, 0x60, 0xd1, 0x87, 0xbf, 0x8d, 0xa0, 0x0d, 0xa3, 0x59, 0xe3, 0x08, 0xda, 0x30, 0x86,
1491 0x1a, 0x0a, 0x6b, 0x7c, 0x17, 0x82, 0xb0, 0xc2, 0x76, 0xc1, 0xc9, 0xdf, 0xe6, 0xd3, 0x61, 0xf3,
1492 0x4d, 0x94, 0xde, 0xaa, 0xc3, 0x52, 0x43, 0x6f, 0xfb, 0x25, 0xd8, 0x9a, 0x61, 0x5b, 0x62, 0xf7,
1493 0xae, 0x82, 0xde, 0xbd, 0xeb, 0x1a, 0xb4, 0x74, 0x95, 0x68, 0xad, 0x8c, 0x6e, 0xb6, 0xb2, 0x2d,
1494 0xaa, 0xf1, 0x5b, 0x99, 0x75, 0x54, 0xc4, 0x50, 0xac, 0xbe, 0xff, 0x10, 0xef, 0xf1, 0x8f, 0xdf,
1495 0x11, 0xaa, 0x5f, 0xe4, 0x76, 0xb7, 0xff, 0x08, 0x00, 0x00, 0xff, 0xff, 0xfe, 0xae, 0xd0, 0x13,
1496 0x6a, 0x14, 0x00, 0x00,