Home | History | Annotate | Download | only in dyn
      1 <html><body>
      2 <style>
      3 
      4 body, h1, h2, h3, div, span, p, pre, a {
      5   margin: 0;
      6   padding: 0;
      7   border: 0;
      8   font-weight: inherit;
      9   font-style: inherit;
     10   font-size: 100%;
     11   font-family: inherit;
     12   vertical-align: baseline;
     13 }
     14 
     15 body {
     16   font-size: 13px;
     17   padding: 1em;
     18 }
     19 
     20 h1 {
     21   font-size: 26px;
     22   margin-bottom: 1em;
     23 }
     24 
     25 h2 {
     26   font-size: 24px;
     27   margin-bottom: 1em;
     28 }
     29 
     30 h3 {
     31   font-size: 20px;
     32   margin-bottom: 1em;
     33   margin-top: 1em;
     34 }
     35 
     36 pre, code {
     37   line-height: 1.5;
     38   font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
     39 }
     40 
     41 pre {
     42   margin-top: 0.5em;
     43 }
     44 
     45 h1, h2, h3, p {
     46   font-family: Arial, sans serif;
     47 }
     48 
     49 h1, h2, h3 {
     50   border-bottom: solid #CCC 1px;
     51 }
     52 
     53 .toc_element {
     54   margin-top: 0.5em;
     55 }
     56 
     57 .firstline {
     58   margin-left: 2 em;
     59 }
     60 
     61 .method  {
     62   margin-top: 1em;
     63   border: solid 1px #CCC;
     64   padding: 1em;
     65   background: #EEE;
     66 }
     67 
     68 .details {
     69   font-weight: bold;
     70   font-size: 14px;
     71 }
     72 
     73 </style>
     74 
     75 <h1><a href="iam_v1.html">Google Identity and Access Management (IAM) API</a> . <a href="iam_v1.projects.html">projects</a> . <a href="iam_v1.projects.serviceAccounts.html">serviceAccounts</a></h1>
     76 <h2>Instance Methods</h2>
     77 <p class="toc_element">
     78   <code><a href="iam_v1.projects.serviceAccounts.keys.html">keys()</a></code>
     79 </p>
     80 <p class="firstline">Returns the keys Resource.</p>
     81 
     82 <p class="toc_element">
     83   <code><a href="#create">create(name, body, x__xgafv=None)</a></code></p>
     84 <p class="firstline">Creates a ServiceAccount</p>
     85 <p class="toc_element">
     86   <code><a href="#delete">delete(name, x__xgafv=None)</a></code></p>
     87 <p class="firstline">Deletes a ServiceAccount.</p>
     88 <p class="toc_element">
     89   <code><a href="#get">get(name, x__xgafv=None)</a></code></p>
     90 <p class="firstline">Gets a ServiceAccount.</p>
     91 <p class="toc_element">
     92   <code><a href="#getIamPolicy">getIamPolicy(resource, x__xgafv=None)</a></code></p>
     93 <p class="firstline">Returns the IAM access control policy for a</p>
     94 <p class="toc_element">
     95   <code><a href="#list">list(name, pageToken=None, x__xgafv=None, pageSize=None)</a></code></p>
     96 <p class="firstline">Lists ServiceAccounts for a project.</p>
     97 <p class="toc_element">
     98   <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
     99 <p class="firstline">Retrieves the next page of results.</p>
    100 <p class="toc_element">
    101   <code><a href="#setIamPolicy">setIamPolicy(resource, body, x__xgafv=None)</a></code></p>
    102 <p class="firstline">Sets the IAM access control policy for a</p>
    103 <p class="toc_element">
    104   <code><a href="#signBlob">signBlob(name, body, x__xgafv=None)</a></code></p>
    105 <p class="firstline">Signs a blob using a service account's system-managed private key.</p>
    106 <p class="toc_element">
    107   <code><a href="#signJwt">signJwt(name, body, x__xgafv=None)</a></code></p>
    108 <p class="firstline">Signs a JWT using a service account's system-managed private key.</p>
    109 <p class="toc_element">
    110   <code><a href="#testIamPermissions">testIamPermissions(resource, body, x__xgafv=None)</a></code></p>
    111 <p class="firstline">Tests the specified permissions against the IAM access control policy</p>
    112 <p class="toc_element">
    113   <code><a href="#update">update(name, body, x__xgafv=None)</a></code></p>
    114 <p class="firstline">Updates a ServiceAccount.</p>
    115 <h3>Method Details</h3>
    116 <div class="method">
    117     <code class="details" id="create">create(name, body, x__xgafv=None)</code>
    118   <pre>Creates a ServiceAccount
    119 and returns it.
    120 
    121 Args:
    122   name: string, Required. The resource name of the project associated with the service
    123 accounts, such as `projects/my-project-123`. (required)
    124   body: object, The request body. (required)
    125     The object takes the form of:
    126 
    127 { # The service account create request.
    128     "serviceAccount": { # A service account in the Identity and Access Management API. # The ServiceAccount resource to create.
    129         # Currently, only the following values are user assignable:
    130         # `display_name` .
    131         #
    132         # To create a service account, specify the `project_id` and the `account_id`
    133         # for the account.  The `account_id` is unique within the project, and is used
    134         # to generate the service account email address and a stable
    135         # `unique_id`.
    136         #
    137         # If the account already exists, the account's resource name is returned
    138         # in util::Status's ResourceInfo.resource_name in the format of
    139         # projects/{PROJECT_ID}/serviceAccounts/{SERVICE_ACCOUNT_EMAIL}. The caller can
    140         # use the name in other methods to access the account.
    141         #
    142         # All other methods can identify the service account using the format
    143         # `projects/{PROJECT_ID}/serviceAccounts/{SERVICE_ACCOUNT_EMAIL}`.
    144         # Using `-` as a wildcard for the project will infer the project from
    145         # the account. The `account` value can be the `email` address or the
    146         # `unique_id` of the service account.
    147       "oauth2ClientId": "A String", # @OutputOnly. The OAuth2 client id for the service account.
    148           # This is used in conjunction with the OAuth2 clientconfig API to make
    149           # three legged OAuth2 (3LO) flows to access the data of Google users.
    150       "displayName": "A String", # Optional. A user-specified description of the service account.  Must be
    151           # fewer than 100 UTF-8 bytes.
    152       "name": "A String", # The resource name of the service account in the following format:
    153           # `projects/{PROJECT_ID}/serviceAccounts/{SERVICE_ACCOUNT_EMAIL}`.
    154           #
    155           # Requests using `-` as a wildcard for the project will infer the project
    156           # from the `account` and the `account` value can be the `email` address or
    157           # the `unique_id` of the service account.
    158           #
    159           # In responses the resource name will always be in the format
    160           # `projects/{PROJECT_ID}/serviceAccounts/{SERVICE_ACCOUNT_EMAIL}`.
    161       "projectId": "A String", # @OutputOnly The id of the project that owns the service account.
    162       "etag": "A String", # Used to perform a consistent read-modify-write.
    163       "uniqueId": "A String", # @OutputOnly The unique and stable id of the service account.
    164       "email": "A String", # @OutputOnly The email address of the service account.
    165     },
    166     "accountId": "A String", # Required. The account id that is used to generate the service account
    167         # email address and a stable unique id. It is unique within a project,
    168         # must be 6-30 characters long, and match the regular expression
    169         # `[a-z]([-a-z0-9]*[a-z0-9])` to comply with RFC1035.
    170   }
    171 
    172   x__xgafv: string, V1 error format.
    173     Allowed values
    174       1 - v1 error format
    175       2 - v2 error format
    176 
    177 Returns:
    178   An object of the form:
    179 
    180     { # A service account in the Identity and Access Management API.
    181       #
    182       # To create a service account, specify the `project_id` and the `account_id`
    183       # for the account.  The `account_id` is unique within the project, and is used
    184       # to generate the service account email address and a stable
    185       # `unique_id`.
    186       #
    187       # If the account already exists, the account's resource name is returned
    188       # in util::Status's ResourceInfo.resource_name in the format of
    189       # projects/{PROJECT_ID}/serviceAccounts/{SERVICE_ACCOUNT_EMAIL}. The caller can
    190       # use the name in other methods to access the account.
    191       #
    192       # All other methods can identify the service account using the format
    193       # `projects/{PROJECT_ID}/serviceAccounts/{SERVICE_ACCOUNT_EMAIL}`.
    194       # Using `-` as a wildcard for the project will infer the project from
    195       # the account. The `account` value can be the `email` address or the
    196       # `unique_id` of the service account.
    197     "oauth2ClientId": "A String", # @OutputOnly. The OAuth2 client id for the service account.
    198         # This is used in conjunction with the OAuth2 clientconfig API to make
    199         # three legged OAuth2 (3LO) flows to access the data of Google users.
    200     "displayName": "A String", # Optional. A user-specified description of the service account.  Must be
    201         # fewer than 100 UTF-8 bytes.
    202     "name": "A String", # The resource name of the service account in the following format:
    203         # `projects/{PROJECT_ID}/serviceAccounts/{SERVICE_ACCOUNT_EMAIL}`.
    204         #
    205         # Requests using `-` as a wildcard for the project will infer the project
    206         # from the `account` and the `account` value can be the `email` address or
    207         # the `unique_id` of the service account.
    208         #
    209         # In responses the resource name will always be in the format
    210         # `projects/{PROJECT_ID}/serviceAccounts/{SERVICE_ACCOUNT_EMAIL}`.
    211     "projectId": "A String", # @OutputOnly The id of the project that owns the service account.
    212     "etag": "A String", # Used to perform a consistent read-modify-write.
    213     "uniqueId": "A String", # @OutputOnly The unique and stable id of the service account.
    214     "email": "A String", # @OutputOnly The email address of the service account.
    215   }</pre>
    216 </div>
    217 
    218 <div class="method">
    219     <code class="details" id="delete">delete(name, x__xgafv=None)</code>
    220   <pre>Deletes a ServiceAccount.
    221 
    222 Args:
    223   name: string, The resource name of the service account in the following format:
    224 `projects/{PROJECT_ID}/serviceAccounts/{SERVICE_ACCOUNT_EMAIL}`.
    225 Using `-` as a wildcard for the project will infer the project from
    226 the account. The `account` value can be the `email` address or the
    227 `unique_id` of the service account. (required)
    228   x__xgafv: string, V1 error format.
    229     Allowed values
    230       1 - v1 error format
    231       2 - v2 error format
    232 
    233 Returns:
    234   An object of the form:
    235 
    236     { # A generic empty message that you can re-use to avoid defining duplicated
    237       # empty messages in your APIs. A typical example is to use it as the request
    238       # or the response type of an API method. For instance:
    239       #
    240       #     service Foo {
    241       #       rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
    242       #     }
    243       #
    244       # The JSON representation for `Empty` is empty JSON object `{}`.
    245   }</pre>
    246 </div>
    247 
    248 <div class="method">
    249     <code class="details" id="get">get(name, x__xgafv=None)</code>
    250   <pre>Gets a ServiceAccount.
    251 
    252 Args:
    253   name: string, The resource name of the service account in the following format:
    254 `projects/{PROJECT_ID}/serviceAccounts/{SERVICE_ACCOUNT_EMAIL}`.
    255 Using `-` as a wildcard for the project will infer the project from
    256 the account. The `account` value can be the `email` address or the
    257 `unique_id` of the service account. (required)
    258   x__xgafv: string, V1 error format.
    259     Allowed values
    260       1 - v1 error format
    261       2 - v2 error format
    262 
    263 Returns:
    264   An object of the form:
    265 
    266     { # A service account in the Identity and Access Management API.
    267       #
    268       # To create a service account, specify the `project_id` and the `account_id`
    269       # for the account.  The `account_id` is unique within the project, and is used
    270       # to generate the service account email address and a stable
    271       # `unique_id`.
    272       #
    273       # If the account already exists, the account's resource name is returned
    274       # in util::Status's ResourceInfo.resource_name in the format of
    275       # projects/{PROJECT_ID}/serviceAccounts/{SERVICE_ACCOUNT_EMAIL}. The caller can
    276       # use the name in other methods to access the account.
    277       #
    278       # All other methods can identify the service account using the format
    279       # `projects/{PROJECT_ID}/serviceAccounts/{SERVICE_ACCOUNT_EMAIL}`.
    280       # Using `-` as a wildcard for the project will infer the project from
    281       # the account. The `account` value can be the `email` address or the
    282       # `unique_id` of the service account.
    283     "oauth2ClientId": "A String", # @OutputOnly. The OAuth2 client id for the service account.
    284         # This is used in conjunction with the OAuth2 clientconfig API to make
    285         # three legged OAuth2 (3LO) flows to access the data of Google users.
    286     "displayName": "A String", # Optional. A user-specified description of the service account.  Must be
    287         # fewer than 100 UTF-8 bytes.
    288     "name": "A String", # The resource name of the service account in the following format:
    289         # `projects/{PROJECT_ID}/serviceAccounts/{SERVICE_ACCOUNT_EMAIL}`.
    290         #
    291         # Requests using `-` as a wildcard for the project will infer the project
    292         # from the `account` and the `account` value can be the `email` address or
    293         # the `unique_id` of the service account.
    294         #
    295         # In responses the resource name will always be in the format
    296         # `projects/{PROJECT_ID}/serviceAccounts/{SERVICE_ACCOUNT_EMAIL}`.
    297     "projectId": "A String", # @OutputOnly The id of the project that owns the service account.
    298     "etag": "A String", # Used to perform a consistent read-modify-write.
    299     "uniqueId": "A String", # @OutputOnly The unique and stable id of the service account.
    300     "email": "A String", # @OutputOnly The email address of the service account.
    301   }</pre>
    302 </div>
    303 
    304 <div class="method">
    305     <code class="details" id="getIamPolicy">getIamPolicy(resource, x__xgafv=None)</code>
    306   <pre>Returns the IAM access control policy for a
    307 ServiceAccount.
    308 
    309 Args:
    310   resource: string, REQUIRED: The resource for which the policy is being requested.
    311 See the operation documentation for the appropriate value for this field. (required)
    312   x__xgafv: string, V1 error format.
    313     Allowed values
    314       1 - v1 error format
    315       2 - v2 error format
    316 
    317 Returns:
    318   An object of the form:
    319 
    320     { # Defines an Identity and Access Management (IAM) policy. It is used to
    321       # specify access control policies for Cloud Platform resources.
    322       #
    323       #
    324       # A `Policy` consists of a list of `bindings`. A `Binding` binds a list of
    325       # `members` to a `role`, where the members can be user accounts, Google groups,
    326       # Google domains, and service accounts. A `role` is a named list of permissions
    327       # defined by IAM.
    328       #
    329       # **Example**
    330       #
    331       #     {
    332       #       "bindings": [
    333       #         {
    334       #           "role": "roles/owner",
    335       #           "members": [
    336       #             "user:mike (a] example.com",
    337       #             "group:admins (a] example.com",
    338       #             "domain:google.com",
    339       #             "serviceAccount:my-other-app (a] appspot.gserviceaccount.com",
    340       #           ]
    341       #         },
    342       #         {
    343       #           "role": "roles/viewer",
    344       #           "members": ["user:sean (a] example.com"]
    345       #         }
    346       #       ]
    347       #     }
    348       #
    349       # For a description of IAM and its features, see the
    350       # [IAM developer's guide](https://cloud.google.com/iam).
    351     "bindings": [ # Associates a list of `members` to a `role`.
    352         # Multiple `bindings` must not be specified for the same `role`.
    353         # `bindings` with no members will result in an error.
    354       { # Associates `members` with a `role`.
    355         "role": "A String", # Role that is assigned to `members`.
    356             # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
    357             # Required
    358         "members": [ # Specifies the identities requesting access for a Cloud Platform resource.
    359             # `members` can have the following values:
    360             #
    361             # * `allUsers`: A special identifier that represents anyone who is
    362             #    on the internet; with or without a Google account.
    363             #
    364             # * `allAuthenticatedUsers`: A special identifier that represents anyone
    365             #    who is authenticated with a Google account or a service account.
    366             #
    367             # * `user:{emailid}`: An email address that represents a specific Google
    368             #    account. For example, `alice (a] gmail.com` or `joe (a] example.com`.
    369             #
    370             #
    371             # * `serviceAccount:{emailid}`: An email address that represents a service
    372             #    account. For example, `my-other-app (a] appspot.gserviceaccount.com`.
    373             #
    374             # * `group:{emailid}`: An email address that represents a Google group.
    375             #    For example, `admins (a] example.com`.
    376             #
    377             #
    378             # * `domain:{domain}`: A Google Apps domain name that represents all the
    379             #    users of that domain. For example, `google.com` or `example.com`.
    380             #
    381           "A String",
    382         ],
    383       },
    384     ],
    385     "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help
    386         # prevent simultaneous updates of a policy from overwriting each other.
    387         # It is strongly suggested that systems make use of the `etag` in the
    388         # read-modify-write cycle to perform policy updates in order to avoid race
    389         # conditions: An `etag` is returned in the response to `getIamPolicy`, and
    390         # systems are expected to put that etag in the request to `setIamPolicy` to
    391         # ensure that their change will be applied to the same version of the policy.
    392         #
    393         # If no `etag` is provided in the call to `setIamPolicy`, then the existing
    394         # policy is overwritten blindly.
    395     "version": 42, # Version of the `Policy`. The default version is 0.
    396   }</pre>
    397 </div>
    398 
    399 <div class="method">
    400     <code class="details" id="list">list(name, pageToken=None, x__xgafv=None, pageSize=None)</code>
    401   <pre>Lists ServiceAccounts for a project.
    402 
    403 Args:
    404   name: string, Required. The resource name of the project associated with the service
    405 accounts, such as `projects/my-project-123`. (required)
    406   pageToken: string, Optional pagination token returned in an earlier
    407 ListServiceAccountsResponse.next_page_token.
    408   x__xgafv: string, V1 error format.
    409     Allowed values
    410       1 - v1 error format
    411       2 - v2 error format
    412   pageSize: integer, Optional limit on the number of service accounts to include in the
    413 response. Further accounts can subsequently be obtained by including the
    414 ListServiceAccountsResponse.next_page_token
    415 in a subsequent request.
    416 
    417 Returns:
    418   An object of the form:
    419 
    420     { # The service account list response.
    421     "nextPageToken": "A String", # To retrieve the next page of results, set
    422         # ListServiceAccountsRequest.page_token
    423         # to this value.
    424     "accounts": [ # The list of matching service accounts.
    425       { # A service account in the Identity and Access Management API.
    426           #
    427           # To create a service account, specify the `project_id` and the `account_id`
    428           # for the account.  The `account_id` is unique within the project, and is used
    429           # to generate the service account email address and a stable
    430           # `unique_id`.
    431           #
    432           # If the account already exists, the account's resource name is returned
    433           # in util::Status's ResourceInfo.resource_name in the format of
    434           # projects/{PROJECT_ID}/serviceAccounts/{SERVICE_ACCOUNT_EMAIL}. The caller can
    435           # use the name in other methods to access the account.
    436           #
    437           # All other methods can identify the service account using the format
    438           # `projects/{PROJECT_ID}/serviceAccounts/{SERVICE_ACCOUNT_EMAIL}`.
    439           # Using `-` as a wildcard for the project will infer the project from
    440           # the account. The `account` value can be the `email` address or the
    441           # `unique_id` of the service account.
    442         "oauth2ClientId": "A String", # @OutputOnly. The OAuth2 client id for the service account.
    443             # This is used in conjunction with the OAuth2 clientconfig API to make
    444             # three legged OAuth2 (3LO) flows to access the data of Google users.
    445         "displayName": "A String", # Optional. A user-specified description of the service account.  Must be
    446             # fewer than 100 UTF-8 bytes.
    447         "name": "A String", # The resource name of the service account in the following format:
    448             # `projects/{PROJECT_ID}/serviceAccounts/{SERVICE_ACCOUNT_EMAIL}`.
    449             #
    450             # Requests using `-` as a wildcard for the project will infer the project
    451             # from the `account` and the `account` value can be the `email` address or
    452             # the `unique_id` of the service account.
    453             #
    454             # In responses the resource name will always be in the format
    455             # `projects/{PROJECT_ID}/serviceAccounts/{SERVICE_ACCOUNT_EMAIL}`.
    456         "projectId": "A String", # @OutputOnly The id of the project that owns the service account.
    457         "etag": "A String", # Used to perform a consistent read-modify-write.
    458         "uniqueId": "A String", # @OutputOnly The unique and stable id of the service account.
    459         "email": "A String", # @OutputOnly The email address of the service account.
    460       },
    461     ],
    462   }</pre>
    463 </div>
    464 
    465 <div class="method">
    466     <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
    467   <pre>Retrieves the next page of results.
    468 
    469 Args:
    470   previous_request: The request for the previous page. (required)
    471   previous_response: The response from the request for the previous page. (required)
    472 
    473 Returns:
    474   A request object that you can call 'execute()' on to request the next
    475   page. Returns None if there are no more items in the collection.
    476     </pre>
    477 </div>
    478 
    479 <div class="method">
    480     <code class="details" id="setIamPolicy">setIamPolicy(resource, body, x__xgafv=None)</code>
    481   <pre>Sets the IAM access control policy for a
    482 ServiceAccount.
    483 
    484 Args:
    485   resource: string, REQUIRED: The resource for which the policy is being specified.
    486 See the operation documentation for the appropriate value for this field. (required)
    487   body: object, The request body. (required)
    488     The object takes the form of:
    489 
    490 { # Request message for `SetIamPolicy` method.
    491     "policy": { # Defines an Identity and Access Management (IAM) policy. It is used to # REQUIRED: The complete policy to be applied to the `resource`. The size of
    492         # the policy is limited to a few 10s of KB. An empty policy is a
    493         # valid policy but certain Cloud Platform services (such as Projects)
    494         # might reject them.
    495         # specify access control policies for Cloud Platform resources.
    496         #
    497         #
    498         # A `Policy` consists of a list of `bindings`. A `Binding` binds a list of
    499         # `members` to a `role`, where the members can be user accounts, Google groups,
    500         # Google domains, and service accounts. A `role` is a named list of permissions
    501         # defined by IAM.
    502         #
    503         # **Example**
    504         #
    505         #     {
    506         #       "bindings": [
    507         #         {
    508         #           "role": "roles/owner",
    509         #           "members": [
    510         #             "user:mike (a] example.com",
    511         #             "group:admins (a] example.com",
    512         #             "domain:google.com",
    513         #             "serviceAccount:my-other-app (a] appspot.gserviceaccount.com",
    514         #           ]
    515         #         },
    516         #         {
    517         #           "role": "roles/viewer",
    518         #           "members": ["user:sean (a] example.com"]
    519         #         }
    520         #       ]
    521         #     }
    522         #
    523         # For a description of IAM and its features, see the
    524         # [IAM developer's guide](https://cloud.google.com/iam).
    525       "bindings": [ # Associates a list of `members` to a `role`.
    526           # Multiple `bindings` must not be specified for the same `role`.
    527           # `bindings` with no members will result in an error.
    528         { # Associates `members` with a `role`.
    529           "role": "A String", # Role that is assigned to `members`.
    530               # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
    531               # Required
    532           "members": [ # Specifies the identities requesting access for a Cloud Platform resource.
    533               # `members` can have the following values:
    534               #
    535               # * `allUsers`: A special identifier that represents anyone who is
    536               #    on the internet; with or without a Google account.
    537               #
    538               # * `allAuthenticatedUsers`: A special identifier that represents anyone
    539               #    who is authenticated with a Google account or a service account.
    540               #
    541               # * `user:{emailid}`: An email address that represents a specific Google
    542               #    account. For example, `alice (a] gmail.com` or `joe (a] example.com`.
    543               #
    544               #
    545               # * `serviceAccount:{emailid}`: An email address that represents a service
    546               #    account. For example, `my-other-app (a] appspot.gserviceaccount.com`.
    547               #
    548               # * `group:{emailid}`: An email address that represents a Google group.
    549               #    For example, `admins (a] example.com`.
    550               #
    551               #
    552               # * `domain:{domain}`: A Google Apps domain name that represents all the
    553               #    users of that domain. For example, `google.com` or `example.com`.
    554               #
    555             "A String",
    556           ],
    557         },
    558       ],
    559       "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help
    560           # prevent simultaneous updates of a policy from overwriting each other.
    561           # It is strongly suggested that systems make use of the `etag` in the
    562           # read-modify-write cycle to perform policy updates in order to avoid race
    563           # conditions: An `etag` is returned in the response to `getIamPolicy`, and
    564           # systems are expected to put that etag in the request to `setIamPolicy` to
    565           # ensure that their change will be applied to the same version of the policy.
    566           #
    567           # If no `etag` is provided in the call to `setIamPolicy`, then the existing
    568           # policy is overwritten blindly.
    569       "version": 42, # Version of the `Policy`. The default version is 0.
    570     },
    571   }
    572 
    573   x__xgafv: string, V1 error format.
    574     Allowed values
    575       1 - v1 error format
    576       2 - v2 error format
    577 
    578 Returns:
    579   An object of the form:
    580 
    581     { # Defines an Identity and Access Management (IAM) policy. It is used to
    582       # specify access control policies for Cloud Platform resources.
    583       #
    584       #
    585       # A `Policy` consists of a list of `bindings`. A `Binding` binds a list of
    586       # `members` to a `role`, where the members can be user accounts, Google groups,
    587       # Google domains, and service accounts. A `role` is a named list of permissions
    588       # defined by IAM.
    589       #
    590       # **Example**
    591       #
    592       #     {
    593       #       "bindings": [
    594       #         {
    595       #           "role": "roles/owner",
    596       #           "members": [
    597       #             "user:mike (a] example.com",
    598       #             "group:admins (a] example.com",
    599       #             "domain:google.com",
    600       #             "serviceAccount:my-other-app (a] appspot.gserviceaccount.com",
    601       #           ]
    602       #         },
    603       #         {
    604       #           "role": "roles/viewer",
    605       #           "members": ["user:sean (a] example.com"]
    606       #         }
    607       #       ]
    608       #     }
    609       #
    610       # For a description of IAM and its features, see the
    611       # [IAM developer's guide](https://cloud.google.com/iam).
    612     "bindings": [ # Associates a list of `members` to a `role`.
    613         # Multiple `bindings` must not be specified for the same `role`.
    614         # `bindings` with no members will result in an error.
    615       { # Associates `members` with a `role`.
    616         "role": "A String", # Role that is assigned to `members`.
    617             # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
    618             # Required
    619         "members": [ # Specifies the identities requesting access for a Cloud Platform resource.
    620             # `members` can have the following values:
    621             #
    622             # * `allUsers`: A special identifier that represents anyone who is
    623             #    on the internet; with or without a Google account.
    624             #
    625             # * `allAuthenticatedUsers`: A special identifier that represents anyone
    626             #    who is authenticated with a Google account or a service account.
    627             #
    628             # * `user:{emailid}`: An email address that represents a specific Google
    629             #    account. For example, `alice (a] gmail.com` or `joe (a] example.com`.
    630             #
    631             #
    632             # * `serviceAccount:{emailid}`: An email address that represents a service
    633             #    account. For example, `my-other-app (a] appspot.gserviceaccount.com`.
    634             #
    635             # * `group:{emailid}`: An email address that represents a Google group.
    636             #    For example, `admins (a] example.com`.
    637             #
    638             #
    639             # * `domain:{domain}`: A Google Apps domain name that represents all the
    640             #    users of that domain. For example, `google.com` or `example.com`.
    641             #
    642           "A String",
    643         ],
    644       },
    645     ],
    646     "etag": "A String", # `etag` is used for optimistic concurrency control as a way to help
    647         # prevent simultaneous updates of a policy from overwriting each other.
    648         # It is strongly suggested that systems make use of the `etag` in the
    649         # read-modify-write cycle to perform policy updates in order to avoid race
    650         # conditions: An `etag` is returned in the response to `getIamPolicy`, and
    651         # systems are expected to put that etag in the request to `setIamPolicy` to
    652         # ensure that their change will be applied to the same version of the policy.
    653         #
    654         # If no `etag` is provided in the call to `setIamPolicy`, then the existing
    655         # policy is overwritten blindly.
    656     "version": 42, # Version of the `Policy`. The default version is 0.
    657   }</pre>
    658 </div>
    659 
    660 <div class="method">
    661     <code class="details" id="signBlob">signBlob(name, body, x__xgafv=None)</code>
    662   <pre>Signs a blob using a service account's system-managed private key.
    663 
    664 Args:
    665   name: string, The resource name of the service account in the following format:
    666 `projects/{PROJECT_ID}/serviceAccounts/{SERVICE_ACCOUNT_EMAIL}`.
    667 Using `-` as a wildcard for the project will infer the project from
    668 the account. The `account` value can be the `email` address or the
    669 `unique_id` of the service account. (required)
    670   body: object, The request body. (required)
    671     The object takes the form of:
    672 
    673 { # The service account sign blob request.
    674     "bytesToSign": "A String", # The bytes to sign.
    675   }
    676 
    677   x__xgafv: string, V1 error format.
    678     Allowed values
    679       1 - v1 error format
    680       2 - v2 error format
    681 
    682 Returns:
    683   An object of the form:
    684 
    685     { # The service account sign blob response.
    686     "keyId": "A String", # The id of the key used to sign the blob.
    687     "signature": "A String", # The signed blob.
    688   }</pre>
    689 </div>
    690 
    691 <div class="method">
    692     <code class="details" id="signJwt">signJwt(name, body, x__xgafv=None)</code>
    693   <pre>Signs a JWT using a service account's system-managed private key.
    694 
    695 If no expiry time (`exp`) is provided in the `SignJwtRequest`, IAM sets an
    696 an expiry time of one hour by default. If you request an expiry time of
    697 more than one hour, the request will fail.
    698 
    699 Args:
    700   name: string, The resource name of the service account in the following format:
    701 `projects/{PROJECT_ID}/serviceAccounts/{SERVICE_ACCOUNT_EMAIL}`.
    702 Using `-` as a wildcard for the project will infer the project from
    703 the account. The `account` value can be the `email` address or the
    704 `unique_id` of the service account. (required)
    705   body: object, The request body. (required)
    706     The object takes the form of:
    707 
    708 { # The service account sign JWT request.
    709     "payload": "A String", # The JWT payload to sign, a JSON JWT Claim set.
    710   }
    711 
    712   x__xgafv: string, V1 error format.
    713     Allowed values
    714       1 - v1 error format
    715       2 - v2 error format
    716 
    717 Returns:
    718   An object of the form:
    719 
    720     { # The service account sign JWT response.
    721     "keyId": "A String", # The id of the key used to sign the JWT.
    722     "signedJwt": "A String", # The signed JWT.
    723   }</pre>
    724 </div>
    725 
    726 <div class="method">
    727     <code class="details" id="testIamPermissions">testIamPermissions(resource, body, x__xgafv=None)</code>
    728   <pre>Tests the specified permissions against the IAM access control policy
    729 for a ServiceAccount.
    730 
    731 Args:
    732   resource: string, REQUIRED: The resource for which the policy detail is being requested.
    733 See the operation documentation for the appropriate value for this field. (required)
    734   body: object, The request body. (required)
    735     The object takes the form of:
    736 
    737 { # Request message for `TestIamPermissions` method.
    738     "permissions": [ # The set of permissions to check for the `resource`. Permissions with
    739         # wildcards (such as '*' or 'storage.*') are not allowed. For more
    740         # information see
    741         # [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).
    742       "A String",
    743     ],
    744   }
    745 
    746   x__xgafv: string, V1 error format.
    747     Allowed values
    748       1 - v1 error format
    749       2 - v2 error format
    750 
    751 Returns:
    752   An object of the form:
    753 
    754     { # Response message for `TestIamPermissions` method.
    755     "permissions": [ # A subset of `TestPermissionsRequest.permissions` that the caller is
    756         # allowed.
    757       "A String",
    758     ],
    759   }</pre>
    760 </div>
    761 
    762 <div class="method">
    763     <code class="details" id="update">update(name, body, x__xgafv=None)</code>
    764   <pre>Updates a ServiceAccount.
    765 
    766 Currently, only the following fields are updatable:
    767 `display_name` .
    768 The `etag` is mandatory.
    769 
    770 Args:
    771   name: string, The resource name of the service account in the following format:
    772 `projects/{PROJECT_ID}/serviceAccounts/{SERVICE_ACCOUNT_EMAIL}`.
    773 
    774 Requests using `-` as a wildcard for the project will infer the project
    775 from the `account` and the `account` value can be the `email` address or
    776 the `unique_id` of the service account.
    777 
    778 In responses the resource name will always be in the format
    779 `projects/{PROJECT_ID}/serviceAccounts/{SERVICE_ACCOUNT_EMAIL}`. (required)
    780   body: object, The request body. (required)
    781     The object takes the form of:
    782 
    783 { # A service account in the Identity and Access Management API.
    784     # 
    785     # To create a service account, specify the `project_id` and the `account_id`
    786     # for the account.  The `account_id` is unique within the project, and is used
    787     # to generate the service account email address and a stable
    788     # `unique_id`.
    789     # 
    790     # If the account already exists, the account's resource name is returned
    791     # in util::Status's ResourceInfo.resource_name in the format of
    792     # projects/{PROJECT_ID}/serviceAccounts/{SERVICE_ACCOUNT_EMAIL}. The caller can
    793     # use the name in other methods to access the account.
    794     # 
    795     # All other methods can identify the service account using the format
    796     # `projects/{PROJECT_ID}/serviceAccounts/{SERVICE_ACCOUNT_EMAIL}`.
    797     # Using `-` as a wildcard for the project will infer the project from
    798     # the account. The `account` value can be the `email` address or the
    799     # `unique_id` of the service account.
    800   "oauth2ClientId": "A String", # @OutputOnly. The OAuth2 client id for the service account.
    801       # This is used in conjunction with the OAuth2 clientconfig API to make
    802       # three legged OAuth2 (3LO) flows to access the data of Google users.
    803   "displayName": "A String", # Optional. A user-specified description of the service account.  Must be
    804       # fewer than 100 UTF-8 bytes.
    805   "name": "A String", # The resource name of the service account in the following format:
    806       # `projects/{PROJECT_ID}/serviceAccounts/{SERVICE_ACCOUNT_EMAIL}`.
    807       # 
    808       # Requests using `-` as a wildcard for the project will infer the project
    809       # from the `account` and the `account` value can be the `email` address or
    810       # the `unique_id` of the service account.
    811       # 
    812       # In responses the resource name will always be in the format
    813       # `projects/{PROJECT_ID}/serviceAccounts/{SERVICE_ACCOUNT_EMAIL}`.
    814   "projectId": "A String", # @OutputOnly The id of the project that owns the service account.
    815   "etag": "A String", # Used to perform a consistent read-modify-write.
    816   "uniqueId": "A String", # @OutputOnly The unique and stable id of the service account.
    817   "email": "A String", # @OutputOnly The email address of the service account.
    818 }
    819 
    820   x__xgafv: string, V1 error format.
    821     Allowed values
    822       1 - v1 error format
    823       2 - v2 error format
    824 
    825 Returns:
    826   An object of the form:
    827 
    828     { # A service account in the Identity and Access Management API.
    829       #
    830       # To create a service account, specify the `project_id` and the `account_id`
    831       # for the account.  The `account_id` is unique within the project, and is used
    832       # to generate the service account email address and a stable
    833       # `unique_id`.
    834       #
    835       # If the account already exists, the account's resource name is returned
    836       # in util::Status's ResourceInfo.resource_name in the format of
    837       # projects/{PROJECT_ID}/serviceAccounts/{SERVICE_ACCOUNT_EMAIL}. The caller can
    838       # use the name in other methods to access the account.
    839       #
    840       # All other methods can identify the service account using the format
    841       # `projects/{PROJECT_ID}/serviceAccounts/{SERVICE_ACCOUNT_EMAIL}`.
    842       # Using `-` as a wildcard for the project will infer the project from
    843       # the account. The `account` value can be the `email` address or the
    844       # `unique_id` of the service account.
    845     "oauth2ClientId": "A String", # @OutputOnly. The OAuth2 client id for the service account.
    846         # This is used in conjunction with the OAuth2 clientconfig API to make
    847         # three legged OAuth2 (3LO) flows to access the data of Google users.
    848     "displayName": "A String", # Optional. A user-specified description of the service account.  Must be
    849         # fewer than 100 UTF-8 bytes.
    850     "name": "A String", # The resource name of the service account in the following format:
    851         # `projects/{PROJECT_ID}/serviceAccounts/{SERVICE_ACCOUNT_EMAIL}`.
    852         #
    853         # Requests using `-` as a wildcard for the project will infer the project
    854         # from the `account` and the `account` value can be the `email` address or
    855         # the `unique_id` of the service account.
    856         #
    857         # In responses the resource name will always be in the format
    858         # `projects/{PROJECT_ID}/serviceAccounts/{SERVICE_ACCOUNT_EMAIL}`.
    859     "projectId": "A String", # @OutputOnly The id of the project that owns the service account.
    860     "etag": "A String", # Used to perform a consistent read-modify-write.
    861     "uniqueId": "A String", # @OutputOnly The unique and stable id of the service account.
    862     "email": "A String", # @OutputOnly The email address of the service account.
    863   }</pre>
    864 </div>
    865 
    866 </body></html>