OSDN Git Service

new repo
[bytom/vapor.git] / vendor / google.golang.org / genproto / googleapis / iam / admin / v1 / iam.pb.go
1 // Code generated by protoc-gen-go. DO NOT EDIT.
2 // source: google/iam/admin/v1/iam.proto
3
4 /*
5 Package admin is a generated protocol buffer package.
6
7 It is generated from these files:
8         google/iam/admin/v1/iam.proto
9
10 It has these top-level messages:
11         ServiceAccount
12         CreateServiceAccountRequest
13         ListServiceAccountsRequest
14         ListServiceAccountsResponse
15         GetServiceAccountRequest
16         DeleteServiceAccountRequest
17         ListServiceAccountKeysRequest
18         ListServiceAccountKeysResponse
19         GetServiceAccountKeyRequest
20         ServiceAccountKey
21         CreateServiceAccountKeyRequest
22         DeleteServiceAccountKeyRequest
23         SignBlobRequest
24         SignBlobResponse
25         Role
26         QueryGrantableRolesRequest
27         QueryGrantableRolesResponse
28 */
29 package admin
30
31 import proto "github.com/golang/protobuf/proto"
32 import fmt "fmt"
33 import math "math"
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"
40
41 import (
42         context "golang.org/x/net/context"
43         grpc "google.golang.org/grpc"
44 )
45
46 // Reference imports to suppress errors if they are not otherwise used.
47 var _ = proto.Marshal
48 var _ = fmt.Errorf
49 var _ = math.Inf
50
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
56
57 // Supported key algorithms.
58 type ServiceAccountKeyAlgorithm int32
59
60 const (
61         // An unspecified key algorithm.
62         ServiceAccountKeyAlgorithm_KEY_ALG_UNSPECIFIED ServiceAccountKeyAlgorithm = 0
63         // 1k RSA Key.
64         ServiceAccountKeyAlgorithm_KEY_ALG_RSA_1024 ServiceAccountKeyAlgorithm = 1
65         // 2k RSA Key.
66         ServiceAccountKeyAlgorithm_KEY_ALG_RSA_2048 ServiceAccountKeyAlgorithm = 2
67 )
68
69 var ServiceAccountKeyAlgorithm_name = map[int32]string{
70         0: "KEY_ALG_UNSPECIFIED",
71         1: "KEY_ALG_RSA_1024",
72         2: "KEY_ALG_RSA_2048",
73 }
74 var ServiceAccountKeyAlgorithm_value = map[string]int32{
75         "KEY_ALG_UNSPECIFIED": 0,
76         "KEY_ALG_RSA_1024":    1,
77         "KEY_ALG_RSA_2048":    2,
78 }
79
80 func (x ServiceAccountKeyAlgorithm) String() string {
81         return proto.EnumName(ServiceAccountKeyAlgorithm_name, int32(x))
82 }
83 func (ServiceAccountKeyAlgorithm) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{0} }
84
85 // Supported private key output formats.
86 type ServiceAccountPrivateKeyType int32
87
88 const (
89         // Unspecified. Equivalent to `TYPE_GOOGLE_CREDENTIALS_FILE`.
90         ServiceAccountPrivateKeyType_TYPE_UNSPECIFIED ServiceAccountPrivateKeyType = 0
91         // PKCS12 format.
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
97 )
98
99 var ServiceAccountPrivateKeyType_name = map[int32]string{
100         0: "TYPE_UNSPECIFIED",
101         1: "TYPE_PKCS12_FILE",
102         2: "TYPE_GOOGLE_CREDENTIALS_FILE",
103 }
104 var ServiceAccountPrivateKeyType_value = map[string]int32{
105         "TYPE_UNSPECIFIED":             0,
106         "TYPE_PKCS12_FILE":             1,
107         "TYPE_GOOGLE_CREDENTIALS_FILE": 2,
108 }
109
110 func (x ServiceAccountPrivateKeyType) String() string {
111         return proto.EnumName(ServiceAccountPrivateKeyType_name, int32(x))
112 }
113 func (ServiceAccountPrivateKeyType) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{1} }
114
115 // Supported public key output formats.
116 type ServiceAccountPublicKeyType int32
117
118 const (
119         // Unspecified. Returns nothing here.
120         ServiceAccountPublicKeyType_TYPE_NONE ServiceAccountPublicKeyType = 0
121         // X509 PEM format.
122         ServiceAccountPublicKeyType_TYPE_X509_PEM_FILE ServiceAccountPublicKeyType = 1
123         // Raw public key.
124         ServiceAccountPublicKeyType_TYPE_RAW_PUBLIC_KEY ServiceAccountPublicKeyType = 2
125 )
126
127 var ServiceAccountPublicKeyType_name = map[int32]string{
128         0: "TYPE_NONE",
129         1: "TYPE_X509_PEM_FILE",
130         2: "TYPE_RAW_PUBLIC_KEY",
131 }
132 var ServiceAccountPublicKeyType_value = map[string]int32{
133         "TYPE_NONE":           0,
134         "TYPE_X509_PEM_FILE":  1,
135         "TYPE_RAW_PUBLIC_KEY": 2,
136 }
137
138 func (x ServiceAccountPublicKeyType) String() string {
139         return proto.EnumName(ServiceAccountPublicKeyType_name, int32(x))
140 }
141 func (ServiceAccountPublicKeyType) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{2} }
142
143 // `KeyType` filters to selectively retrieve certain varieties
144 // of keys.
145 type ListServiceAccountKeysRequest_KeyType int32
146
147 const (
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
155 )
156
157 var ListServiceAccountKeysRequest_KeyType_name = map[int32]string{
158         0: "KEY_TYPE_UNSPECIFIED",
159         1: "USER_MANAGED",
160         2: "SYSTEM_MANAGED",
161 }
162 var ListServiceAccountKeysRequest_KeyType_value = map[string]int32{
163         "KEY_TYPE_UNSPECIFIED": 0,
164         "USER_MANAGED":         1,
165         "SYSTEM_MANAGED":       2,
166 }
167
168 func (x ListServiceAccountKeysRequest_KeyType) String() string {
169         return proto.EnumName(ListServiceAccountKeysRequest_KeyType_name, int32(x))
170 }
171 func (ListServiceAccountKeysRequest_KeyType) EnumDescriptor() ([]byte, []int) {
172         return fileDescriptor0, []int{6, 0}
173 }
174
175 // A service account in the Identity and Access Management API.
176 //
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
180 // `unique_id`.
181 //
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.
186 //
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}`.
195         //
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.
199         //
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"`
218 }
219
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} }
224
225 func (m *ServiceAccount) GetName() string {
226         if m != nil {
227                 return m.Name
228         }
229         return ""
230 }
231
232 func (m *ServiceAccount) GetProjectId() string {
233         if m != nil {
234                 return m.ProjectId
235         }
236         return ""
237 }
238
239 func (m *ServiceAccount) GetUniqueId() string {
240         if m != nil {
241                 return m.UniqueId
242         }
243         return ""
244 }
245
246 func (m *ServiceAccount) GetEmail() string {
247         if m != nil {
248                 return m.Email
249         }
250         return ""
251 }
252
253 func (m *ServiceAccount) GetDisplayName() string {
254         if m != nil {
255                 return m.DisplayName
256         }
257         return ""
258 }
259
260 func (m *ServiceAccount) GetEtag() []byte {
261         if m != nil {
262                 return m.Etag
263         }
264         return nil
265 }
266
267 func (m *ServiceAccount) GetOauth2ClientId() string {
268         if m != nil {
269                 return m.Oauth2ClientId
270         }
271         return ""
272 }
273
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:
286         // `display_name` .
287         ServiceAccount *ServiceAccount `protobuf:"bytes,3,opt,name=service_account,json=serviceAccount" json:"service_account,omitempty"`
288 }
289
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} }
294
295 func (m *CreateServiceAccountRequest) GetName() string {
296         if m != nil {
297                 return m.Name
298         }
299         return ""
300 }
301
302 func (m *CreateServiceAccountRequest) GetAccountId() string {
303         if m != nil {
304                 return m.AccountId
305         }
306         return ""
307 }
308
309 func (m *CreateServiceAccountRequest) GetServiceAccount() *ServiceAccount {
310         if m != nil {
311                 return m.ServiceAccount
312         }
313         return nil
314 }
315
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"`
329 }
330
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} }
335
336 func (m *ListServiceAccountsRequest) GetName() string {
337         if m != nil {
338                 return m.Name
339         }
340         return ""
341 }
342
343 func (m *ListServiceAccountsRequest) GetPageSize() int32 {
344         if m != nil {
345                 return m.PageSize
346         }
347         return 0
348 }
349
350 func (m *ListServiceAccountsRequest) GetPageToken() string {
351         if m != nil {
352                 return m.PageToken
353         }
354         return ""
355 }
356
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]
363         // to this value.
364         NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken" json:"next_page_token,omitempty"`
365 }
366
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} }
371
372 func (m *ListServiceAccountsResponse) GetAccounts() []*ServiceAccount {
373         if m != nil {
374                 return m.Accounts
375         }
376         return nil
377 }
378
379 func (m *ListServiceAccountsResponse) GetNextPageToken() string {
380         if m != nil {
381                 return m.NextPageToken
382         }
383         return ""
384 }
385
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"`
394 }
395
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} }
400
401 func (m *GetServiceAccountRequest) GetName() string {
402         if m != nil {
403                 return m.Name
404         }
405         return ""
406 }
407
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"`
416 }
417
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} }
422
423 func (m *DeleteServiceAccountRequest) GetName() string {
424         if m != nil {
425                 return m.Name
426         }
427         return ""
428 }
429
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}`.
434         //
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"`
443 }
444
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} }
449
450 func (m *ListServiceAccountKeysRequest) GetName() string {
451         if m != nil {
452                 return m.Name
453         }
454         return ""
455 }
456
457 func (m *ListServiceAccountKeysRequest) GetKeyTypes() []ListServiceAccountKeysRequest_KeyType {
458         if m != nil {
459                 return m.KeyTypes
460         }
461         return nil
462 }
463
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"`
468 }
469
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} }
474
475 func (m *ListServiceAccountKeysResponse) GetKeys() []*ServiceAccountKey {
476         if m != nil {
477                 return m.Keys
478         }
479         return nil
480 }
481
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}`.
486         //
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"`
494 }
495
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} }
500
501 func (m *GetServiceAccountKeyRequest) GetName() string {
502         if m != nil {
503                 return m.Name
504         }
505         return ""
506 }
507
508 func (m *GetServiceAccountKeyRequest) GetPublicKeyType() ServiceAccountPublicKeyType {
509         if m != nil {
510                 return m.PublicKeyType
511         }
512         return ServiceAccountPublicKeyType_TYPE_NONE
513 }
514
515 // Represents a service account key.
516 //
517 // A service account has two sets of key-pairs: user-managed, and
518 // system-managed.
519 //
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.
524 //
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.
528 //
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.
538         //
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`
545         // responses.
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"`
553 }
554
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} }
559
560 func (m *ServiceAccountKey) GetName() string {
561         if m != nil {
562                 return m.Name
563         }
564         return ""
565 }
566
567 func (m *ServiceAccountKey) GetPrivateKeyType() ServiceAccountPrivateKeyType {
568         if m != nil {
569                 return m.PrivateKeyType
570         }
571         return ServiceAccountPrivateKeyType_TYPE_UNSPECIFIED
572 }
573
574 func (m *ServiceAccountKey) GetKeyAlgorithm() ServiceAccountKeyAlgorithm {
575         if m != nil {
576                 return m.KeyAlgorithm
577         }
578         return ServiceAccountKeyAlgorithm_KEY_ALG_UNSPECIFIED
579 }
580
581 func (m *ServiceAccountKey) GetPrivateKeyData() []byte {
582         if m != nil {
583                 return m.PrivateKeyData
584         }
585         return nil
586 }
587
588 func (m *ServiceAccountKey) GetPublicKeyData() []byte {
589         if m != nil {
590                 return m.PublicKeyData
591         }
592         return nil
593 }
594
595 func (m *ServiceAccountKey) GetValidAfterTime() *google_protobuf3.Timestamp {
596         if m != nil {
597                 return m.ValidAfterTime
598         }
599         return nil
600 }
601
602 func (m *ServiceAccountKey) GetValidBeforeTime() *google_protobuf3.Timestamp {
603         if m != nil {
604                 return m.ValidBeforeTime
605         }
606         return nil
607 }
608
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
622         // future.
623         KeyAlgorithm ServiceAccountKeyAlgorithm `protobuf:"varint,3,opt,name=key_algorithm,json=keyAlgorithm,enum=google.iam.admin.v1.ServiceAccountKeyAlgorithm" json:"key_algorithm,omitempty"`
624 }
625
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} }
630
631 func (m *CreateServiceAccountKeyRequest) GetName() string {
632         if m != nil {
633                 return m.Name
634         }
635         return ""
636 }
637
638 func (m *CreateServiceAccountKeyRequest) GetPrivateKeyType() ServiceAccountPrivateKeyType {
639         if m != nil {
640                 return m.PrivateKeyType
641         }
642         return ServiceAccountPrivateKeyType_TYPE_UNSPECIFIED
643 }
644
645 func (m *CreateServiceAccountKeyRequest) GetKeyAlgorithm() ServiceAccountKeyAlgorithm {
646         if m != nil {
647                 return m.KeyAlgorithm
648         }
649         return ServiceAccountKeyAlgorithm_KEY_ALG_UNSPECIFIED
650 }
651
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"`
660 }
661
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} }
666
667 func (m *DeleteServiceAccountKeyRequest) GetName() string {
668         if m != nil {
669                 return m.Name
670         }
671         return ""
672 }
673
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"`
684 }
685
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} }
690
691 func (m *SignBlobRequest) GetName() string {
692         if m != nil {
693                 return m.Name
694         }
695         return ""
696 }
697
698 func (m *SignBlobRequest) GetBytesToSign() []byte {
699         if m != nil {
700                 return m.BytesToSign
701         }
702         return nil
703 }
704
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"`
709         // The signed blob.
710         Signature []byte `protobuf:"bytes,2,opt,name=signature,proto3" json:"signature,omitempty"`
711 }
712
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} }
717
718 func (m *SignBlobResponse) GetKeyId() string {
719         if m != nil {
720                 return m.KeyId
721         }
722         return ""
723 }
724
725 func (m *SignBlobResponse) GetSignature() []byte {
726         if m != nil {
727                 return m.Signature
728         }
729         return nil
730 }
731
732 // A role in the Identity and Access Management API.
733 type Role struct {
734         // The name of the role.
735         //
736         // When Role is used in CreateRole, the role name must not be set.
737         //
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"`
747 }
748
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} }
753
754 func (m *Role) GetName() string {
755         if m != nil {
756                 return m.Name
757         }
758         return ""
759 }
760
761 func (m *Role) GetTitle() string {
762         if m != nil {
763                 return m.Title
764         }
765         return ""
766 }
767
768 func (m *Role) GetDescription() string {
769         if m != nil {
770                 return m.Description
771         }
772         return ""
773 }
774
775 // The grantable role query request.
776 type QueryGrantableRolesRequest struct {
777         // Required. The full resource name to query from the list of grantable roles.
778         //
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"`
783 }
784
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} }
789
790 func (m *QueryGrantableRolesRequest) GetFullResourceName() string {
791         if m != nil {
792                 return m.FullResourceName
793         }
794         return ""
795 }
796
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"`
801 }
802
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} }
807
808 func (m *QueryGrantableRolesResponse) GetRoles() []*Role {
809         if m != nil {
810                 return m.Roles
811         }
812         return nil
813 }
814
815 func init() {
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)
837 }
838
839 // Reference imports to suppress errors if they are not otherwise used.
840 var _ context.Context
841 var _ grpc.ClientConn
842
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
846
847 // Client API for IAM service
848
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]
855         // and returns it.
856         CreateServiceAccount(ctx context.Context, in *CreateServiceAccountRequest, opts ...grpc.CallOption) (*ServiceAccount, error)
857         // Updates a [ServiceAccount][google.iam.admin.v1.ServiceAccount].
858         //
859         // Currently, only the following fields are updatable:
860         // `display_name` .
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]
868         // by key id.
869         GetServiceAccountKey(ctx context.Context, in *GetServiceAccountKeyRequest, opts ...grpc.CallOption) (*ServiceAccountKey, error)
870         // Creates a [ServiceAccountKey][google.iam.admin.v1.ServiceAccountKey]
871         // and returns it.
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)
890 }
891
892 type iAMClient struct {
893         cc *grpc.ClientConn
894 }
895
896 func NewIAMClient(cc *grpc.ClientConn) IAMClient {
897         return &iAMClient{cc}
898 }
899
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...)
903         if err != nil {
904                 return nil, err
905         }
906         return out, nil
907 }
908
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...)
912         if err != nil {
913                 return nil, err
914         }
915         return out, nil
916 }
917
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...)
921         if err != nil {
922                 return nil, err
923         }
924         return out, nil
925 }
926
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...)
930         if err != nil {
931                 return nil, err
932         }
933         return out, nil
934 }
935
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...)
939         if err != nil {
940                 return nil, err
941         }
942         return out, nil
943 }
944
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...)
948         if err != nil {
949                 return nil, err
950         }
951         return out, nil
952 }
953
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...)
957         if err != nil {
958                 return nil, err
959         }
960         return out, nil
961 }
962
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...)
966         if err != nil {
967                 return nil, err
968         }
969         return out, nil
970 }
971
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...)
975         if err != nil {
976                 return nil, err
977         }
978         return out, nil
979 }
980
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...)
984         if err != nil {
985                 return nil, err
986         }
987         return out, nil
988 }
989
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...)
993         if err != nil {
994                 return nil, err
995         }
996         return out, nil
997 }
998
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...)
1002         if err != nil {
1003                 return nil, err
1004         }
1005         return out, nil
1006 }
1007
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...)
1011         if err != nil {
1012                 return nil, err
1013         }
1014         return out, nil
1015 }
1016
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...)
1020         if err != nil {
1021                 return nil, err
1022         }
1023         return out, nil
1024 }
1025
1026 // Server API for IAM service
1027
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]
1034         // and returns it.
1035         CreateServiceAccount(context.Context, *CreateServiceAccountRequest) (*ServiceAccount, error)
1036         // Updates a [ServiceAccount][google.iam.admin.v1.ServiceAccount].
1037         //
1038         // Currently, only the following fields are updatable:
1039         // `display_name` .
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]
1047         // by key id.
1048         GetServiceAccountKey(context.Context, *GetServiceAccountKeyRequest) (*ServiceAccountKey, error)
1049         // Creates a [ServiceAccountKey][google.iam.admin.v1.ServiceAccountKey]
1050         // and returns it.
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)
1069 }
1070
1071 func RegisterIAMServer(s *grpc.Server, srv IAMServer) {
1072         s.RegisterService(&_IAM_serviceDesc, srv)
1073 }
1074
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 {
1078                 return nil, err
1079         }
1080         if interceptor == nil {
1081                 return srv.(IAMServer).ListServiceAccounts(ctx, in)
1082         }
1083         info := &grpc.UnaryServerInfo{
1084                 Server:     srv,
1085                 FullMethod: "/google.iam.admin.v1.IAM/ListServiceAccounts",
1086         }
1087         handler := func(ctx context.Context, req interface{}) (interface{}, error) {
1088                 return srv.(IAMServer).ListServiceAccounts(ctx, req.(*ListServiceAccountsRequest))
1089         }
1090         return interceptor(ctx, in, info, handler)
1091 }
1092
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 {
1096                 return nil, err
1097         }
1098         if interceptor == nil {
1099                 return srv.(IAMServer).GetServiceAccount(ctx, in)
1100         }
1101         info := &grpc.UnaryServerInfo{
1102                 Server:     srv,
1103                 FullMethod: "/google.iam.admin.v1.IAM/GetServiceAccount",
1104         }
1105         handler := func(ctx context.Context, req interface{}) (interface{}, error) {
1106                 return srv.(IAMServer).GetServiceAccount(ctx, req.(*GetServiceAccountRequest))
1107         }
1108         return interceptor(ctx, in, info, handler)
1109 }
1110
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 {
1114                 return nil, err
1115         }
1116         if interceptor == nil {
1117                 return srv.(IAMServer).CreateServiceAccount(ctx, in)
1118         }
1119         info := &grpc.UnaryServerInfo{
1120                 Server:     srv,
1121                 FullMethod: "/google.iam.admin.v1.IAM/CreateServiceAccount",
1122         }
1123         handler := func(ctx context.Context, req interface{}) (interface{}, error) {
1124                 return srv.(IAMServer).CreateServiceAccount(ctx, req.(*CreateServiceAccountRequest))
1125         }
1126         return interceptor(ctx, in, info, handler)
1127 }
1128
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 {
1132                 return nil, err
1133         }
1134         if interceptor == nil {
1135                 return srv.(IAMServer).UpdateServiceAccount(ctx, in)
1136         }
1137         info := &grpc.UnaryServerInfo{
1138                 Server:     srv,
1139                 FullMethod: "/google.iam.admin.v1.IAM/UpdateServiceAccount",
1140         }
1141         handler := func(ctx context.Context, req interface{}) (interface{}, error) {
1142                 return srv.(IAMServer).UpdateServiceAccount(ctx, req.(*ServiceAccount))
1143         }
1144         return interceptor(ctx, in, info, handler)
1145 }
1146
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 {
1150                 return nil, err
1151         }
1152         if interceptor == nil {
1153                 return srv.(IAMServer).DeleteServiceAccount(ctx, in)
1154         }
1155         info := &grpc.UnaryServerInfo{
1156                 Server:     srv,
1157                 FullMethod: "/google.iam.admin.v1.IAM/DeleteServiceAccount",
1158         }
1159         handler := func(ctx context.Context, req interface{}) (interface{}, error) {
1160                 return srv.(IAMServer).DeleteServiceAccount(ctx, req.(*DeleteServiceAccountRequest))
1161         }
1162         return interceptor(ctx, in, info, handler)
1163 }
1164
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 {
1168                 return nil, err
1169         }
1170         if interceptor == nil {
1171                 return srv.(IAMServer).ListServiceAccountKeys(ctx, in)
1172         }
1173         info := &grpc.UnaryServerInfo{
1174                 Server:     srv,
1175                 FullMethod: "/google.iam.admin.v1.IAM/ListServiceAccountKeys",
1176         }
1177         handler := func(ctx context.Context, req interface{}) (interface{}, error) {
1178                 return srv.(IAMServer).ListServiceAccountKeys(ctx, req.(*ListServiceAccountKeysRequest))
1179         }
1180         return interceptor(ctx, in, info, handler)
1181 }
1182
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 {
1186                 return nil, err
1187         }
1188         if interceptor == nil {
1189                 return srv.(IAMServer).GetServiceAccountKey(ctx, in)
1190         }
1191         info := &grpc.UnaryServerInfo{
1192                 Server:     srv,
1193                 FullMethod: "/google.iam.admin.v1.IAM/GetServiceAccountKey",
1194         }
1195         handler := func(ctx context.Context, req interface{}) (interface{}, error) {
1196                 return srv.(IAMServer).GetServiceAccountKey(ctx, req.(*GetServiceAccountKeyRequest))
1197         }
1198         return interceptor(ctx, in, info, handler)
1199 }
1200
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 {
1204                 return nil, err
1205         }
1206         if interceptor == nil {
1207                 return srv.(IAMServer).CreateServiceAccountKey(ctx, in)
1208         }
1209         info := &grpc.UnaryServerInfo{
1210                 Server:     srv,
1211                 FullMethod: "/google.iam.admin.v1.IAM/CreateServiceAccountKey",
1212         }
1213         handler := func(ctx context.Context, req interface{}) (interface{}, error) {
1214                 return srv.(IAMServer).CreateServiceAccountKey(ctx, req.(*CreateServiceAccountKeyRequest))
1215         }
1216         return interceptor(ctx, in, info, handler)
1217 }
1218
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 {
1222                 return nil, err
1223         }
1224         if interceptor == nil {
1225                 return srv.(IAMServer).DeleteServiceAccountKey(ctx, in)
1226         }
1227         info := &grpc.UnaryServerInfo{
1228                 Server:     srv,
1229                 FullMethod: "/google.iam.admin.v1.IAM/DeleteServiceAccountKey",
1230         }
1231         handler := func(ctx context.Context, req interface{}) (interface{}, error) {
1232                 return srv.(IAMServer).DeleteServiceAccountKey(ctx, req.(*DeleteServiceAccountKeyRequest))
1233         }
1234         return interceptor(ctx, in, info, handler)
1235 }
1236
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 {
1240                 return nil, err
1241         }
1242         if interceptor == nil {
1243                 return srv.(IAMServer).SignBlob(ctx, in)
1244         }
1245         info := &grpc.UnaryServerInfo{
1246                 Server:     srv,
1247                 FullMethod: "/google.iam.admin.v1.IAM/SignBlob",
1248         }
1249         handler := func(ctx context.Context, req interface{}) (interface{}, error) {
1250                 return srv.(IAMServer).SignBlob(ctx, req.(*SignBlobRequest))
1251         }
1252         return interceptor(ctx, in, info, handler)
1253 }
1254
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 {
1258                 return nil, err
1259         }
1260         if interceptor == nil {
1261                 return srv.(IAMServer).GetIamPolicy(ctx, in)
1262         }
1263         info := &grpc.UnaryServerInfo{
1264                 Server:     srv,
1265                 FullMethod: "/google.iam.admin.v1.IAM/GetIamPolicy",
1266         }
1267         handler := func(ctx context.Context, req interface{}) (interface{}, error) {
1268                 return srv.(IAMServer).GetIamPolicy(ctx, req.(*google_iam_v11.GetIamPolicyRequest))
1269         }
1270         return interceptor(ctx, in, info, handler)
1271 }
1272
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 {
1276                 return nil, err
1277         }
1278         if interceptor == nil {
1279                 return srv.(IAMServer).SetIamPolicy(ctx, in)
1280         }
1281         info := &grpc.UnaryServerInfo{
1282                 Server:     srv,
1283                 FullMethod: "/google.iam.admin.v1.IAM/SetIamPolicy",
1284         }
1285         handler := func(ctx context.Context, req interface{}) (interface{}, error) {
1286                 return srv.(IAMServer).SetIamPolicy(ctx, req.(*google_iam_v11.SetIamPolicyRequest))
1287         }
1288         return interceptor(ctx, in, info, handler)
1289 }
1290
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 {
1294                 return nil, err
1295         }
1296         if interceptor == nil {
1297                 return srv.(IAMServer).TestIamPermissions(ctx, in)
1298         }
1299         info := &grpc.UnaryServerInfo{
1300                 Server:     srv,
1301                 FullMethod: "/google.iam.admin.v1.IAM/TestIamPermissions",
1302         }
1303         handler := func(ctx context.Context, req interface{}) (interface{}, error) {
1304                 return srv.(IAMServer).TestIamPermissions(ctx, req.(*google_iam_v11.TestIamPermissionsRequest))
1305         }
1306         return interceptor(ctx, in, info, handler)
1307 }
1308
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 {
1312                 return nil, err
1313         }
1314         if interceptor == nil {
1315                 return srv.(IAMServer).QueryGrantableRoles(ctx, in)
1316         }
1317         info := &grpc.UnaryServerInfo{
1318                 Server:     srv,
1319                 FullMethod: "/google.iam.admin.v1.IAM/QueryGrantableRoles",
1320         }
1321         handler := func(ctx context.Context, req interface{}) (interface{}, error) {
1322                 return srv.(IAMServer).QueryGrantableRoles(ctx, req.(*QueryGrantableRolesRequest))
1323         }
1324         return interceptor(ctx, in, info, handler)
1325 }
1326
1327 var _IAM_serviceDesc = grpc.ServiceDesc{
1328         ServiceName: "google.iam.admin.v1.IAM",
1329         HandlerType: (*IAMServer)(nil),
1330         Methods: []grpc.MethodDesc{
1331                 {
1332                         MethodName: "ListServiceAccounts",
1333                         Handler:    _IAM_ListServiceAccounts_Handler,
1334                 },
1335                 {
1336                         MethodName: "GetServiceAccount",
1337                         Handler:    _IAM_GetServiceAccount_Handler,
1338                 },
1339                 {
1340                         MethodName: "CreateServiceAccount",
1341                         Handler:    _IAM_CreateServiceAccount_Handler,
1342                 },
1343                 {
1344                         MethodName: "UpdateServiceAccount",
1345                         Handler:    _IAM_UpdateServiceAccount_Handler,
1346                 },
1347                 {
1348                         MethodName: "DeleteServiceAccount",
1349                         Handler:    _IAM_DeleteServiceAccount_Handler,
1350                 },
1351                 {
1352                         MethodName: "ListServiceAccountKeys",
1353                         Handler:    _IAM_ListServiceAccountKeys_Handler,
1354                 },
1355                 {
1356                         MethodName: "GetServiceAccountKey",
1357                         Handler:    _IAM_GetServiceAccountKey_Handler,
1358                 },
1359                 {
1360                         MethodName: "CreateServiceAccountKey",
1361                         Handler:    _IAM_CreateServiceAccountKey_Handler,
1362                 },
1363                 {
1364                         MethodName: "DeleteServiceAccountKey",
1365                         Handler:    _IAM_DeleteServiceAccountKey_Handler,
1366                 },
1367                 {
1368                         MethodName: "SignBlob",
1369                         Handler:    _IAM_SignBlob_Handler,
1370                 },
1371                 {
1372                         MethodName: "GetIamPolicy",
1373                         Handler:    _IAM_GetIamPolicy_Handler,
1374                 },
1375                 {
1376                         MethodName: "SetIamPolicy",
1377                         Handler:    _IAM_SetIamPolicy_Handler,
1378                 },
1379                 {
1380                         MethodName: "TestIamPermissions",
1381                         Handler:    _IAM_TestIamPermissions_Handler,
1382                 },
1383                 {
1384                         MethodName: "QueryGrantableRoles",
1385                         Handler:    _IAM_QueryGrantableRoles_Handler,
1386                 },
1387         },
1388         Streams:  []grpc.StreamDesc{},
1389         Metadata: "google/iam/admin/v1/iam.proto",
1390 }
1391
1392 func init() { proto.RegisterFile("google/iam/admin/v1/iam.proto", fileDescriptor0) }
1393
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,
1497 }