blob: ac2c557236d617ce541881d23678ea0dca982430 [file] [log] [blame]
<html><body>
<style>
body, h1, h2, h3, div, span, p, pre, a {
margin: 0;
padding: 0;
border: 0;
font-weight: inherit;
font-style: inherit;
font-size: 100%;
font-family: inherit;
vertical-align: baseline;
}
body {
font-size: 13px;
padding: 1em;
}
h1 {
font-size: 26px;
margin-bottom: 1em;
}
h2 {
font-size: 24px;
margin-bottom: 1em;
}
h3 {
font-size: 20px;
margin-bottom: 1em;
margin-top: 1em;
}
pre, code {
line-height: 1.5;
font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
}
pre {
margin-top: 0.5em;
}
h1, h2, h3, p {
font-family: Arial, sans serif;
}
h1, h2, h3 {
border-bottom: solid #CCC 1px;
}
.toc_element {
margin-top: 0.5em;
}
.firstline {
margin-left: 2 em;
}
.method {
margin-top: 1em;
border: solid 1px #CCC;
padding: 1em;
background: #EEE;
}
.details {
font-weight: bold;
font-size: 14px;
}
</style>
<h1><a href="binaryauthorization_v1beta1.html">Binary Authorization API</a> . <a href="binaryauthorization_v1beta1.projects.html">projects</a> . <a href="binaryauthorization_v1beta1.projects.attestors.html">attestors</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
<code><a href="#create">create(parent, body=None, attestorId=None, x__xgafv=None)</a></code></p>
<p class="firstline">Creates an attestor, and returns a copy of the new</p>
<p class="toc_element">
<code><a href="#delete">delete(name, x__xgafv=None)</a></code></p>
<p class="firstline">Deletes an attestor. Returns NOT_FOUND if the</p>
<p class="toc_element">
<code><a href="#get">get(name, x__xgafv=None)</a></code></p>
<p class="firstline">Gets an attestor.</p>
<p class="toc_element">
<code><a href="#getIamPolicy">getIamPolicy(resource, options_requestedPolicyVersion=None, x__xgafv=None)</a></code></p>
<p class="firstline">Gets the access control policy for a resource.</p>
<p class="toc_element">
<code><a href="#list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
<p class="firstline">Lists attestors.</p>
<p class="toc_element">
<code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
<p class="firstline">Retrieves the next page of results.</p>
<p class="toc_element">
<code><a href="#setIamPolicy">setIamPolicy(resource, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Sets the access control policy on the specified resource. Replaces any</p>
<p class="toc_element">
<code><a href="#testIamPermissions">testIamPermissions(resource, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Returns permissions that a caller has on the specified resource.</p>
<p class="toc_element">
<code><a href="#update">update(name, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Updates an attestor.</p>
<h3>Method Details</h3>
<div class="method">
<code class="details" id="create">create(parent, body=None, attestorId=None, x__xgafv=None)</code>
<pre>Creates an attestor, and returns a copy of the new
attestor. Returns NOT_FOUND if the project does not exist,
INVALID_ARGUMENT if the request is malformed, ALREADY_EXISTS if the
attestor already exists.
Args:
parent: string, Required. The parent of this attestor. (required)
body: object, The request body.
The object takes the form of:
{ # An attestor that attests to container image
# artifacts. An existing attestor cannot be modified except where
# indicated.
&quot;description&quot;: &quot;A String&quot;, # Optional. A descriptive comment. This field may be updated.
# The field may be displayed in chooser dialogs.
&quot;userOwnedDrydockNote&quot;: { # An user owned drydock note references a Drydock # A Drydock ATTESTATION_AUTHORITY Note, created by the user.
# ATTESTATION_AUTHORITY Note created by the user.
&quot;noteReference&quot;: &quot;A String&quot;, # Required. The Drydock resource name of a ATTESTATION_AUTHORITY Note,
# created by the user, in the format: `projects/*/notes/*` (or the legacy
# `providers/*/notes/*`). This field may not be updated.
#
# An attestation by this attestor is stored as a Drydock
# ATTESTATION_AUTHORITY Occurrence that names a container image and that
# links to this Note. Drydock is an external dependency.
&quot;delegationServiceAccountEmail&quot;: &quot;A String&quot;, # Output only. This field will contain the service account email address
# that this Attestor will use as the principal when querying Container
# Analysis. Attestor administrators must grant this service account the
# IAM role needed to read attestations from the note_reference in
# Container Analysis (`containeranalysis.notes.occurrences.viewer`).
#
# This email address is fixed for the lifetime of the Attestor, but callers
# should not make any other assumptions about the service account email;
# future versions may use an email based on a different naming pattern.
&quot;publicKeys&quot;: [ # Optional. Public keys that verify attestations signed by this
# attestor. This field may be updated.
#
# If this field is non-empty, one of the specified public keys must
# verify that an attestation was signed by this attestor for the
# image specified in the admission request.
#
# If this field is empty, this attestor always returns that no
# valid attestations exist.
{ # An attestor public key that will be used to verify
# attestations signed by this attestor.
&quot;id&quot;: &quot;A String&quot;, # The ID of this public key.
# Signatures verified by BinAuthz must include the ID of the public key that
# can be used to verify them, and that ID must match the contents of this
# field exactly.
# Additional restrictions on this field can be imposed based on which public
# key type is encapsulated. See the documentation on `public_key` cases below
# for details.
&quot;asciiArmoredPgpPublicKey&quot;: &quot;A String&quot;, # ASCII-armored representation of a PGP public key, as the entire output by
# the command `gpg --export --armor foo@example.com` (either LF or CRLF
# line endings).
# When using this field, `id` should be left blank. The BinAuthz API
# handlers will calculate the ID and fill it in automatically. BinAuthz
# computes this ID as the OpenPGP RFC4880 V4 fingerprint, represented as
# upper-case hex. If `id` is provided by the caller, it will be
# overwritten by the API-calculated ID.
&quot;pkixPublicKey&quot;: { # A public key in the PkixPublicKey format (see # A raw PKIX SubjectPublicKeyInfo format public key.
#
# NOTE: `id` may be explicitly provided by the caller when using this
# type of public key, but it MUST be a valid RFC3986 URI. If `id` is left
# blank, a default one will be computed based on the digest of the DER
# encoding of the public key.
# https://tools.ietf.org/html/rfc5280#section-4.1.2.7 for details).
# Public keys of this type are typically textually encoded using the PEM
# format.
&quot;signatureAlgorithm&quot;: &quot;A String&quot;, # The signature algorithm used to verify a message against a signature using
# this key.
# These signature algorithm must match the structure and any object
# identifiers encoded in `public_key_pem` (i.e. this algorithm must match
# that of the public key).
&quot;publicKeyPem&quot;: &quot;A String&quot;, # A PEM-encoded public key, as described in
# https://tools.ietf.org/html/rfc7468#section-13
},
&quot;comment&quot;: &quot;A String&quot;, # Optional. A descriptive comment. This field may be updated.
},
],
},
&quot;name&quot;: &quot;A String&quot;, # Required. The resource name, in the format:
# `projects/*/attestors/*`. This field may not be updated.
&quot;updateTime&quot;: &quot;A String&quot;, # Output only. Time when the attestor was last updated.
}
attestorId: string, Required. The attestors ID.
x__xgafv: string, V1 error format.
Allowed values
1 - v1 error format
2 - v2 error format
Returns:
An object of the form:
{ # An attestor that attests to container image
# artifacts. An existing attestor cannot be modified except where
# indicated.
&quot;description&quot;: &quot;A String&quot;, # Optional. A descriptive comment. This field may be updated.
# The field may be displayed in chooser dialogs.
&quot;userOwnedDrydockNote&quot;: { # An user owned drydock note references a Drydock # A Drydock ATTESTATION_AUTHORITY Note, created by the user.
# ATTESTATION_AUTHORITY Note created by the user.
&quot;noteReference&quot;: &quot;A String&quot;, # Required. The Drydock resource name of a ATTESTATION_AUTHORITY Note,
# created by the user, in the format: `projects/*/notes/*` (or the legacy
# `providers/*/notes/*`). This field may not be updated.
#
# An attestation by this attestor is stored as a Drydock
# ATTESTATION_AUTHORITY Occurrence that names a container image and that
# links to this Note. Drydock is an external dependency.
&quot;delegationServiceAccountEmail&quot;: &quot;A String&quot;, # Output only. This field will contain the service account email address
# that this Attestor will use as the principal when querying Container
# Analysis. Attestor administrators must grant this service account the
# IAM role needed to read attestations from the note_reference in
# Container Analysis (`containeranalysis.notes.occurrences.viewer`).
#
# This email address is fixed for the lifetime of the Attestor, but callers
# should not make any other assumptions about the service account email;
# future versions may use an email based on a different naming pattern.
&quot;publicKeys&quot;: [ # Optional. Public keys that verify attestations signed by this
# attestor. This field may be updated.
#
# If this field is non-empty, one of the specified public keys must
# verify that an attestation was signed by this attestor for the
# image specified in the admission request.
#
# If this field is empty, this attestor always returns that no
# valid attestations exist.
{ # An attestor public key that will be used to verify
# attestations signed by this attestor.
&quot;id&quot;: &quot;A String&quot;, # The ID of this public key.
# Signatures verified by BinAuthz must include the ID of the public key that
# can be used to verify them, and that ID must match the contents of this
# field exactly.
# Additional restrictions on this field can be imposed based on which public
# key type is encapsulated. See the documentation on `public_key` cases below
# for details.
&quot;asciiArmoredPgpPublicKey&quot;: &quot;A String&quot;, # ASCII-armored representation of a PGP public key, as the entire output by
# the command `gpg --export --armor foo@example.com` (either LF or CRLF
# line endings).
# When using this field, `id` should be left blank. The BinAuthz API
# handlers will calculate the ID and fill it in automatically. BinAuthz
# computes this ID as the OpenPGP RFC4880 V4 fingerprint, represented as
# upper-case hex. If `id` is provided by the caller, it will be
# overwritten by the API-calculated ID.
&quot;pkixPublicKey&quot;: { # A public key in the PkixPublicKey format (see # A raw PKIX SubjectPublicKeyInfo format public key.
#
# NOTE: `id` may be explicitly provided by the caller when using this
# type of public key, but it MUST be a valid RFC3986 URI. If `id` is left
# blank, a default one will be computed based on the digest of the DER
# encoding of the public key.
# https://tools.ietf.org/html/rfc5280#section-4.1.2.7 for details).
# Public keys of this type are typically textually encoded using the PEM
# format.
&quot;signatureAlgorithm&quot;: &quot;A String&quot;, # The signature algorithm used to verify a message against a signature using
# this key.
# These signature algorithm must match the structure and any object
# identifiers encoded in `public_key_pem` (i.e. this algorithm must match
# that of the public key).
&quot;publicKeyPem&quot;: &quot;A String&quot;, # A PEM-encoded public key, as described in
# https://tools.ietf.org/html/rfc7468#section-13
},
&quot;comment&quot;: &quot;A String&quot;, # Optional. A descriptive comment. This field may be updated.
},
],
},
&quot;name&quot;: &quot;A String&quot;, # Required. The resource name, in the format:
# `projects/*/attestors/*`. This field may not be updated.
&quot;updateTime&quot;: &quot;A String&quot;, # Output only. Time when the attestor was last updated.
}</pre>
</div>
<div class="method">
<code class="details" id="delete">delete(name, x__xgafv=None)</code>
<pre>Deletes an attestor. Returns NOT_FOUND if the
attestor does not exist.
Args:
name: string, Required. The name of the attestors to delete, in the format
`projects/*/attestors/*`. (required)
x__xgafv: string, V1 error format.
Allowed values
1 - v1 error format
2 - v2 error format
Returns:
An object of the form:
{ # A generic empty message that you can re-use to avoid defining duplicated
# empty messages in your APIs. A typical example is to use it as the request
# or the response type of an API method. For instance:
#
# service Foo {
# rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
# }
#
# The JSON representation for `Empty` is empty JSON object `{}`.
}</pre>
</div>
<div class="method">
<code class="details" id="get">get(name, x__xgafv=None)</code>
<pre>Gets an attestor.
Returns NOT_FOUND if the attestor does not exist.
Args:
name: string, Required. The name of the attestor to retrieve, in the format
`projects/*/attestors/*`. (required)
x__xgafv: string, V1 error format.
Allowed values
1 - v1 error format
2 - v2 error format
Returns:
An object of the form:
{ # An attestor that attests to container image
# artifacts. An existing attestor cannot be modified except where
# indicated.
&quot;description&quot;: &quot;A String&quot;, # Optional. A descriptive comment. This field may be updated.
# The field may be displayed in chooser dialogs.
&quot;userOwnedDrydockNote&quot;: { # An user owned drydock note references a Drydock # A Drydock ATTESTATION_AUTHORITY Note, created by the user.
# ATTESTATION_AUTHORITY Note created by the user.
&quot;noteReference&quot;: &quot;A String&quot;, # Required. The Drydock resource name of a ATTESTATION_AUTHORITY Note,
# created by the user, in the format: `projects/*/notes/*` (or the legacy
# `providers/*/notes/*`). This field may not be updated.
#
# An attestation by this attestor is stored as a Drydock
# ATTESTATION_AUTHORITY Occurrence that names a container image and that
# links to this Note. Drydock is an external dependency.
&quot;delegationServiceAccountEmail&quot;: &quot;A String&quot;, # Output only. This field will contain the service account email address
# that this Attestor will use as the principal when querying Container
# Analysis. Attestor administrators must grant this service account the
# IAM role needed to read attestations from the note_reference in
# Container Analysis (`containeranalysis.notes.occurrences.viewer`).
#
# This email address is fixed for the lifetime of the Attestor, but callers
# should not make any other assumptions about the service account email;
# future versions may use an email based on a different naming pattern.
&quot;publicKeys&quot;: [ # Optional. Public keys that verify attestations signed by this
# attestor. This field may be updated.
#
# If this field is non-empty, one of the specified public keys must
# verify that an attestation was signed by this attestor for the
# image specified in the admission request.
#
# If this field is empty, this attestor always returns that no
# valid attestations exist.
{ # An attestor public key that will be used to verify
# attestations signed by this attestor.
&quot;id&quot;: &quot;A String&quot;, # The ID of this public key.
# Signatures verified by BinAuthz must include the ID of the public key that
# can be used to verify them, and that ID must match the contents of this
# field exactly.
# Additional restrictions on this field can be imposed based on which public
# key type is encapsulated. See the documentation on `public_key` cases below
# for details.
&quot;asciiArmoredPgpPublicKey&quot;: &quot;A String&quot;, # ASCII-armored representation of a PGP public key, as the entire output by
# the command `gpg --export --armor foo@example.com` (either LF or CRLF
# line endings).
# When using this field, `id` should be left blank. The BinAuthz API
# handlers will calculate the ID and fill it in automatically. BinAuthz
# computes this ID as the OpenPGP RFC4880 V4 fingerprint, represented as
# upper-case hex. If `id` is provided by the caller, it will be
# overwritten by the API-calculated ID.
&quot;pkixPublicKey&quot;: { # A public key in the PkixPublicKey format (see # A raw PKIX SubjectPublicKeyInfo format public key.
#
# NOTE: `id` may be explicitly provided by the caller when using this
# type of public key, but it MUST be a valid RFC3986 URI. If `id` is left
# blank, a default one will be computed based on the digest of the DER
# encoding of the public key.
# https://tools.ietf.org/html/rfc5280#section-4.1.2.7 for details).
# Public keys of this type are typically textually encoded using the PEM
# format.
&quot;signatureAlgorithm&quot;: &quot;A String&quot;, # The signature algorithm used to verify a message against a signature using
# this key.
# These signature algorithm must match the structure and any object
# identifiers encoded in `public_key_pem` (i.e. this algorithm must match
# that of the public key).
&quot;publicKeyPem&quot;: &quot;A String&quot;, # A PEM-encoded public key, as described in
# https://tools.ietf.org/html/rfc7468#section-13
},
&quot;comment&quot;: &quot;A String&quot;, # Optional. A descriptive comment. This field may be updated.
},
],
},
&quot;name&quot;: &quot;A String&quot;, # Required. The resource name, in the format:
# `projects/*/attestors/*`. This field may not be updated.
&quot;updateTime&quot;: &quot;A String&quot;, # Output only. Time when the attestor was last updated.
}</pre>
</div>
<div class="method">
<code class="details" id="getIamPolicy">getIamPolicy(resource, options_requestedPolicyVersion=None, x__xgafv=None)</code>
<pre>Gets the access control policy for a resource.
Returns an empty policy if the resource exists and does not have a policy
set.
Args:
resource: string, REQUIRED: The resource for which the policy is being requested.
See the operation documentation for the appropriate value for this field. (required)
options_requestedPolicyVersion: integer, Optional. The policy format version to be returned.
Valid values are 0, 1, and 3. Requests specifying an invalid value will be
rejected.
Requests for policies with any conditional bindings must specify version 3.
Policies without any conditional bindings may specify any valid value or
leave the field unset.
To learn which resources support conditions in their IAM policies, see the
[IAM
documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
x__xgafv: string, V1 error format.
Allowed values
1 - v1 error format
2 - v2 error format
Returns:
An object of the form:
{ # An Identity and Access Management (IAM) policy, which specifies access
# controls for Google Cloud resources.
#
#
# A `Policy` is a collection of `bindings`. A `binding` binds one or more
# `members` to a single `role`. Members can be user accounts, service accounts,
# Google groups, and domains (such as G Suite). A `role` is a named list of
# permissions; each `role` can be an IAM predefined role or a user-created
# custom role.
#
# For some types of Google Cloud resources, a `binding` can also specify a
# `condition`, which is a logical expression that allows access to a resource
# only if the expression evaluates to `true`. A condition can add constraints
# based on attributes of the request, the resource, or both. To learn which
# resources support conditions in their IAM policies, see the
# [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
#
# **JSON example:**
#
# {
# &quot;bindings&quot;: [
# {
# &quot;role&quot;: &quot;roles/resourcemanager.organizationAdmin&quot;,
# &quot;members&quot;: [
# &quot;user:mike@example.com&quot;,
# &quot;group:admins@example.com&quot;,
# &quot;domain:google.com&quot;,
# &quot;serviceAccount:my-project-id@appspot.gserviceaccount.com&quot;
# ]
# },
# {
# &quot;role&quot;: &quot;roles/resourcemanager.organizationViewer&quot;,
# &quot;members&quot;: [
# &quot;user:eve@example.com&quot;
# ],
# &quot;condition&quot;: {
# &quot;title&quot;: &quot;expirable access&quot;,
# &quot;description&quot;: &quot;Does not grant access after Sep 2020&quot;,
# &quot;expression&quot;: &quot;request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;)&quot;,
# }
# }
# ],
# &quot;etag&quot;: &quot;BwWWja0YfJA=&quot;,
# &quot;version&quot;: 3
# }
#
# **YAML example:**
#
# bindings:
# - members:
# - user:mike@example.com
# - group:admins@example.com
# - domain:google.com
# - serviceAccount:my-project-id@appspot.gserviceaccount.com
# role: roles/resourcemanager.organizationAdmin
# - members:
# - user:eve@example.com
# role: roles/resourcemanager.organizationViewer
# condition:
# title: expirable access
# description: Does not grant access after Sep 2020
# expression: request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;)
# - etag: BwWWja0YfJA=
# - version: 3
#
# For a description of IAM and its features, see the
# [IAM documentation](https://cloud.google.com/iam/docs/).
&quot;etag&quot;: &quot;A String&quot;, # `etag` is used for optimistic concurrency control as a way to help
# prevent simultaneous updates of a policy from overwriting each other.
# It is strongly suggested that systems make use of the `etag` in the
# read-modify-write cycle to perform policy updates in order to avoid race
# conditions: An `etag` is returned in the response to `getIamPolicy`, and
# systems are expected to put that etag in the request to `setIamPolicy` to
# ensure that their change will be applied to the same version of the policy.
#
# **Important:** If you use IAM Conditions, you must include the `etag` field
# whenever you call `setIamPolicy`. If you omit this field, then IAM allows
# you to overwrite a version `3` policy with a version `1` policy, and all of
# the conditions in the version `3` policy are lost.
&quot;version&quot;: 42, # Specifies the format of the policy.
#
# Valid values are `0`, `1`, and `3`. Requests that specify an invalid value
# are rejected.
#
# Any operation that affects conditional role bindings must specify version
# `3`. This requirement applies to the following operations:
#
# * Getting a policy that includes a conditional role binding
# * Adding a conditional role binding to a policy
# * Changing a conditional role binding in a policy
# * Removing any role binding, with or without a condition, from a policy
# that includes conditions
#
# **Important:** If you use IAM Conditions, you must include the `etag` field
# whenever you call `setIamPolicy`. If you omit this field, then IAM allows
# you to overwrite a version `3` policy with a version `1` policy, and all of
# the conditions in the version `3` policy are lost.
#
# If a policy does not include any conditions, operations on that policy may
# specify any valid version or leave the field unset.
#
# To learn which resources support conditions in their IAM policies, see the
# [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
&quot;bindings&quot;: [ # Associates a list of `members` to a `role`. Optionally, may specify a
# `condition` that determines how and when the `bindings` are applied. Each
# of the `bindings` must contain at least one member.
{ # Associates `members` with a `role`.
&quot;members&quot;: [ # Specifies the identities requesting access for a Cloud Platform resource.
# `members` can have the following values:
#
# * `allUsers`: A special identifier that represents anyone who is
# on the internet; with or without a Google account.
#
# * `allAuthenticatedUsers`: A special identifier that represents anyone
# who is authenticated with a Google account or a service account.
#
# * `user:{emailid}`: An email address that represents a specific Google
# account. For example, `alice@example.com` .
#
#
# * `serviceAccount:{emailid}`: An email address that represents a service
# account. For example, `my-other-app@appspot.gserviceaccount.com`.
#
# * `group:{emailid}`: An email address that represents a Google group.
# For example, `admins@example.com`.
#
# * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique
# identifier) representing a user that has been recently deleted. For
# example, `alice@example.com?uid=123456789012345678901`. If the user is
# recovered, this value reverts to `user:{emailid}` and the recovered user
# retains the role in the binding.
#
# * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus
# unique identifier) representing a service account that has been recently
# deleted. For example,
# `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`.
# If the service account is undeleted, this value reverts to
# `serviceAccount:{emailid}` and the undeleted service account retains the
# role in the binding.
#
# * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique
# identifier) representing a Google group that has been recently
# deleted. For example, `admins@example.com?uid=123456789012345678901`. If
# the group is recovered, this value reverts to `group:{emailid}` and the
# recovered group retains the role in the binding.
#
#
# * `domain:{domain}`: The G Suite domain (primary) that represents all the
# users of that domain. For example, `google.com` or `example.com`.
#
&quot;A String&quot;,
],
&quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) # The condition that is associated with this binding.
#
# If the condition evaluates to `true`, then this binding applies to the
# current request.
#
# If the condition evaluates to `false`, then this binding does not apply to
# the current request. However, a different role binding might grant the same
# role to one or more of the members in this binding.
#
# To learn which resources support conditions in their IAM policies, see the
# [IAM
# documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
# syntax. CEL is a C-like expression language. The syntax and semantics of CEL
# are documented at https://github.com/google/cel-spec.
#
# Example (Comparison):
#
# title: &quot;Summary size limit&quot;
# description: &quot;Determines if a summary is less than 100 chars&quot;
# expression: &quot;document.summary.size() &lt; 100&quot;
#
# Example (Equality):
#
# title: &quot;Requestor is owner&quot;
# description: &quot;Determines if requestor is the document owner&quot;
# expression: &quot;document.owner == request.auth.claims.email&quot;
#
# Example (Logic):
#
# title: &quot;Public documents&quot;
# description: &quot;Determine whether the document should be publicly visible&quot;
# expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot;
#
# Example (Data Manipulation):
#
# title: &quot;Notification string&quot;
# description: &quot;Create a notification string with a timestamp.&quot;
# expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot;
#
# The exact variables and functions that may be referenced within an expression
# are determined by the service that evaluates it. See the service
# documentation for additional information.
&quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing
# its purpose. This can be used e.g. in UIs which allow to enter the
# expression.
&quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error
# reporting, e.g. a file name and a position in the file.
&quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which
# describes the expression, e.g. when hovered over it in a UI.
&quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language
# syntax.
},
&quot;role&quot;: &quot;A String&quot;, # Role that is assigned to `members`.
# For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
},
],
}</pre>
</div>
<div class="method">
<code class="details" id="list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</code>
<pre>Lists attestors.
Returns INVALID_ARGUMENT if the project does not exist.
Args:
parent: string, Required. The resource name of the project associated with the
attestors, in the format `projects/*`. (required)
pageSize: integer, Requested page size. The server may return fewer results than requested. If
unspecified, the server will pick an appropriate default.
pageToken: string, A token identifying a page of results the server should return. Typically,
this is the value of ListAttestorsResponse.next_page_token returned
from the previous call to the `ListAttestors` method.
x__xgafv: string, V1 error format.
Allowed values
1 - v1 error format
2 - v2 error format
Returns:
An object of the form:
{ # Response message for BinauthzManagementService.ListAttestors.
&quot;nextPageToken&quot;: &quot;A String&quot;, # A token to retrieve the next page of results. Pass this value in the
# ListAttestorsRequest.page_token field in the subsequent call to the
# `ListAttestors` method to retrieve the next page of results.
&quot;attestors&quot;: [ # The list of attestors.
{ # An attestor that attests to container image
# artifacts. An existing attestor cannot be modified except where
# indicated.
&quot;description&quot;: &quot;A String&quot;, # Optional. A descriptive comment. This field may be updated.
# The field may be displayed in chooser dialogs.
&quot;userOwnedDrydockNote&quot;: { # An user owned drydock note references a Drydock # A Drydock ATTESTATION_AUTHORITY Note, created by the user.
# ATTESTATION_AUTHORITY Note created by the user.
&quot;noteReference&quot;: &quot;A String&quot;, # Required. The Drydock resource name of a ATTESTATION_AUTHORITY Note,
# created by the user, in the format: `projects/*/notes/*` (or the legacy
# `providers/*/notes/*`). This field may not be updated.
#
# An attestation by this attestor is stored as a Drydock
# ATTESTATION_AUTHORITY Occurrence that names a container image and that
# links to this Note. Drydock is an external dependency.
&quot;delegationServiceAccountEmail&quot;: &quot;A String&quot;, # Output only. This field will contain the service account email address
# that this Attestor will use as the principal when querying Container
# Analysis. Attestor administrators must grant this service account the
# IAM role needed to read attestations from the note_reference in
# Container Analysis (`containeranalysis.notes.occurrences.viewer`).
#
# This email address is fixed for the lifetime of the Attestor, but callers
# should not make any other assumptions about the service account email;
# future versions may use an email based on a different naming pattern.
&quot;publicKeys&quot;: [ # Optional. Public keys that verify attestations signed by this
# attestor. This field may be updated.
#
# If this field is non-empty, one of the specified public keys must
# verify that an attestation was signed by this attestor for the
# image specified in the admission request.
#
# If this field is empty, this attestor always returns that no
# valid attestations exist.
{ # An attestor public key that will be used to verify
# attestations signed by this attestor.
&quot;id&quot;: &quot;A String&quot;, # The ID of this public key.
# Signatures verified by BinAuthz must include the ID of the public key that
# can be used to verify them, and that ID must match the contents of this
# field exactly.
# Additional restrictions on this field can be imposed based on which public
# key type is encapsulated. See the documentation on `public_key` cases below
# for details.
&quot;asciiArmoredPgpPublicKey&quot;: &quot;A String&quot;, # ASCII-armored representation of a PGP public key, as the entire output by
# the command `gpg --export --armor foo@example.com` (either LF or CRLF
# line endings).
# When using this field, `id` should be left blank. The BinAuthz API
# handlers will calculate the ID and fill it in automatically. BinAuthz
# computes this ID as the OpenPGP RFC4880 V4 fingerprint, represented as
# upper-case hex. If `id` is provided by the caller, it will be
# overwritten by the API-calculated ID.
&quot;pkixPublicKey&quot;: { # A public key in the PkixPublicKey format (see # A raw PKIX SubjectPublicKeyInfo format public key.
#
# NOTE: `id` may be explicitly provided by the caller when using this
# type of public key, but it MUST be a valid RFC3986 URI. If `id` is left
# blank, a default one will be computed based on the digest of the DER
# encoding of the public key.
# https://tools.ietf.org/html/rfc5280#section-4.1.2.7 for details).
# Public keys of this type are typically textually encoded using the PEM
# format.
&quot;signatureAlgorithm&quot;: &quot;A String&quot;, # The signature algorithm used to verify a message against a signature using
# this key.
# These signature algorithm must match the structure and any object
# identifiers encoded in `public_key_pem` (i.e. this algorithm must match
# that of the public key).
&quot;publicKeyPem&quot;: &quot;A String&quot;, # A PEM-encoded public key, as described in
# https://tools.ietf.org/html/rfc7468#section-13
},
&quot;comment&quot;: &quot;A String&quot;, # Optional. A descriptive comment. This field may be updated.
},
],
},
&quot;name&quot;: &quot;A String&quot;, # Required. The resource name, in the format:
# `projects/*/attestors/*`. This field may not be updated.
&quot;updateTime&quot;: &quot;A String&quot;, # Output only. Time when the attestor was last updated.
},
],
}</pre>
</div>
<div class="method">
<code class="details" id="list_next">list_next(previous_request, previous_response)</code>
<pre>Retrieves the next page of results.
Args:
previous_request: The request for the previous page. (required)
previous_response: The response from the request for the previous page. (required)
Returns:
A request object that you can call &#x27;execute()&#x27; on to request the next
page. Returns None if there are no more items in the collection.
</pre>
</div>
<div class="method">
<code class="details" id="setIamPolicy">setIamPolicy(resource, body=None, x__xgafv=None)</code>
<pre>Sets the access control policy on the specified resource. Replaces any
existing policy.
Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors.
Args:
resource: string, REQUIRED: The resource for which the policy is being specified.
See the operation documentation for the appropriate value for this field. (required)
body: object, The request body.
The object takes the form of:
{ # Request message for `SetIamPolicy` method.
&quot;policy&quot;: { # An Identity and Access Management (IAM) policy, which specifies access # REQUIRED: The complete policy to be applied to the `resource`. The size of
# the policy is limited to a few 10s of KB. An empty policy is a
# valid policy but certain Cloud Platform services (such as Projects)
# might reject them.
# controls for Google Cloud resources.
#
#
# A `Policy` is a collection of `bindings`. A `binding` binds one or more
# `members` to a single `role`. Members can be user accounts, service accounts,
# Google groups, and domains (such as G Suite). A `role` is a named list of
# permissions; each `role` can be an IAM predefined role or a user-created
# custom role.
#
# For some types of Google Cloud resources, a `binding` can also specify a
# `condition`, which is a logical expression that allows access to a resource
# only if the expression evaluates to `true`. A condition can add constraints
# based on attributes of the request, the resource, or both. To learn which
# resources support conditions in their IAM policies, see the
# [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
#
# **JSON example:**
#
# {
# &quot;bindings&quot;: [
# {
# &quot;role&quot;: &quot;roles/resourcemanager.organizationAdmin&quot;,
# &quot;members&quot;: [
# &quot;user:mike@example.com&quot;,
# &quot;group:admins@example.com&quot;,
# &quot;domain:google.com&quot;,
# &quot;serviceAccount:my-project-id@appspot.gserviceaccount.com&quot;
# ]
# },
# {
# &quot;role&quot;: &quot;roles/resourcemanager.organizationViewer&quot;,
# &quot;members&quot;: [
# &quot;user:eve@example.com&quot;
# ],
# &quot;condition&quot;: {
# &quot;title&quot;: &quot;expirable access&quot;,
# &quot;description&quot;: &quot;Does not grant access after Sep 2020&quot;,
# &quot;expression&quot;: &quot;request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;)&quot;,
# }
# }
# ],
# &quot;etag&quot;: &quot;BwWWja0YfJA=&quot;,
# &quot;version&quot;: 3
# }
#
# **YAML example:**
#
# bindings:
# - members:
# - user:mike@example.com
# - group:admins@example.com
# - domain:google.com
# - serviceAccount:my-project-id@appspot.gserviceaccount.com
# role: roles/resourcemanager.organizationAdmin
# - members:
# - user:eve@example.com
# role: roles/resourcemanager.organizationViewer
# condition:
# title: expirable access
# description: Does not grant access after Sep 2020
# expression: request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;)
# - etag: BwWWja0YfJA=
# - version: 3
#
# For a description of IAM and its features, see the
# [IAM documentation](https://cloud.google.com/iam/docs/).
&quot;etag&quot;: &quot;A String&quot;, # `etag` is used for optimistic concurrency control as a way to help
# prevent simultaneous updates of a policy from overwriting each other.
# It is strongly suggested that systems make use of the `etag` in the
# read-modify-write cycle to perform policy updates in order to avoid race
# conditions: An `etag` is returned in the response to `getIamPolicy`, and
# systems are expected to put that etag in the request to `setIamPolicy` to
# ensure that their change will be applied to the same version of the policy.
#
# **Important:** If you use IAM Conditions, you must include the `etag` field
# whenever you call `setIamPolicy`. If you omit this field, then IAM allows
# you to overwrite a version `3` policy with a version `1` policy, and all of
# the conditions in the version `3` policy are lost.
&quot;version&quot;: 42, # Specifies the format of the policy.
#
# Valid values are `0`, `1`, and `3`. Requests that specify an invalid value
# are rejected.
#
# Any operation that affects conditional role bindings must specify version
# `3`. This requirement applies to the following operations:
#
# * Getting a policy that includes a conditional role binding
# * Adding a conditional role binding to a policy
# * Changing a conditional role binding in a policy
# * Removing any role binding, with or without a condition, from a policy
# that includes conditions
#
# **Important:** If you use IAM Conditions, you must include the `etag` field
# whenever you call `setIamPolicy`. If you omit this field, then IAM allows
# you to overwrite a version `3` policy with a version `1` policy, and all of
# the conditions in the version `3` policy are lost.
#
# If a policy does not include any conditions, operations on that policy may
# specify any valid version or leave the field unset.
#
# To learn which resources support conditions in their IAM policies, see the
# [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
&quot;bindings&quot;: [ # Associates a list of `members` to a `role`. Optionally, may specify a
# `condition` that determines how and when the `bindings` are applied. Each
# of the `bindings` must contain at least one member.
{ # Associates `members` with a `role`.
&quot;members&quot;: [ # Specifies the identities requesting access for a Cloud Platform resource.
# `members` can have the following values:
#
# * `allUsers`: A special identifier that represents anyone who is
# on the internet; with or without a Google account.
#
# * `allAuthenticatedUsers`: A special identifier that represents anyone
# who is authenticated with a Google account or a service account.
#
# * `user:{emailid}`: An email address that represents a specific Google
# account. For example, `alice@example.com` .
#
#
# * `serviceAccount:{emailid}`: An email address that represents a service
# account. For example, `my-other-app@appspot.gserviceaccount.com`.
#
# * `group:{emailid}`: An email address that represents a Google group.
# For example, `admins@example.com`.
#
# * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique
# identifier) representing a user that has been recently deleted. For
# example, `alice@example.com?uid=123456789012345678901`. If the user is
# recovered, this value reverts to `user:{emailid}` and the recovered user
# retains the role in the binding.
#
# * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus
# unique identifier) representing a service account that has been recently
# deleted. For example,
# `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`.
# If the service account is undeleted, this value reverts to
# `serviceAccount:{emailid}` and the undeleted service account retains the
# role in the binding.
#
# * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique
# identifier) representing a Google group that has been recently
# deleted. For example, `admins@example.com?uid=123456789012345678901`. If
# the group is recovered, this value reverts to `group:{emailid}` and the
# recovered group retains the role in the binding.
#
#
# * `domain:{domain}`: The G Suite domain (primary) that represents all the
# users of that domain. For example, `google.com` or `example.com`.
#
&quot;A String&quot;,
],
&quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) # The condition that is associated with this binding.
#
# If the condition evaluates to `true`, then this binding applies to the
# current request.
#
# If the condition evaluates to `false`, then this binding does not apply to
# the current request. However, a different role binding might grant the same
# role to one or more of the members in this binding.
#
# To learn which resources support conditions in their IAM policies, see the
# [IAM
# documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
# syntax. CEL is a C-like expression language. The syntax and semantics of CEL
# are documented at https://github.com/google/cel-spec.
#
# Example (Comparison):
#
# title: &quot;Summary size limit&quot;
# description: &quot;Determines if a summary is less than 100 chars&quot;
# expression: &quot;document.summary.size() &lt; 100&quot;
#
# Example (Equality):
#
# title: &quot;Requestor is owner&quot;
# description: &quot;Determines if requestor is the document owner&quot;
# expression: &quot;document.owner == request.auth.claims.email&quot;
#
# Example (Logic):
#
# title: &quot;Public documents&quot;
# description: &quot;Determine whether the document should be publicly visible&quot;
# expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot;
#
# Example (Data Manipulation):
#
# title: &quot;Notification string&quot;
# description: &quot;Create a notification string with a timestamp.&quot;
# expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot;
#
# The exact variables and functions that may be referenced within an expression
# are determined by the service that evaluates it. See the service
# documentation for additional information.
&quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing
# its purpose. This can be used e.g. in UIs which allow to enter the
# expression.
&quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error
# reporting, e.g. a file name and a position in the file.
&quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which
# describes the expression, e.g. when hovered over it in a UI.
&quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language
# syntax.
},
&quot;role&quot;: &quot;A String&quot;, # Role that is assigned to `members`.
# For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
},
],
},
}
x__xgafv: string, V1 error format.
Allowed values
1 - v1 error format
2 - v2 error format
Returns:
An object of the form:
{ # An Identity and Access Management (IAM) policy, which specifies access
# controls for Google Cloud resources.
#
#
# A `Policy` is a collection of `bindings`. A `binding` binds one or more
# `members` to a single `role`. Members can be user accounts, service accounts,
# Google groups, and domains (such as G Suite). A `role` is a named list of
# permissions; each `role` can be an IAM predefined role or a user-created
# custom role.
#
# For some types of Google Cloud resources, a `binding` can also specify a
# `condition`, which is a logical expression that allows access to a resource
# only if the expression evaluates to `true`. A condition can add constraints
# based on attributes of the request, the resource, or both. To learn which
# resources support conditions in their IAM policies, see the
# [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
#
# **JSON example:**
#
# {
# &quot;bindings&quot;: [
# {
# &quot;role&quot;: &quot;roles/resourcemanager.organizationAdmin&quot;,
# &quot;members&quot;: [
# &quot;user:mike@example.com&quot;,
# &quot;group:admins@example.com&quot;,
# &quot;domain:google.com&quot;,
# &quot;serviceAccount:my-project-id@appspot.gserviceaccount.com&quot;
# ]
# },
# {
# &quot;role&quot;: &quot;roles/resourcemanager.organizationViewer&quot;,
# &quot;members&quot;: [
# &quot;user:eve@example.com&quot;
# ],
# &quot;condition&quot;: {
# &quot;title&quot;: &quot;expirable access&quot;,
# &quot;description&quot;: &quot;Does not grant access after Sep 2020&quot;,
# &quot;expression&quot;: &quot;request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;)&quot;,
# }
# }
# ],
# &quot;etag&quot;: &quot;BwWWja0YfJA=&quot;,
# &quot;version&quot;: 3
# }
#
# **YAML example:**
#
# bindings:
# - members:
# - user:mike@example.com
# - group:admins@example.com
# - domain:google.com
# - serviceAccount:my-project-id@appspot.gserviceaccount.com
# role: roles/resourcemanager.organizationAdmin
# - members:
# - user:eve@example.com
# role: roles/resourcemanager.organizationViewer
# condition:
# title: expirable access
# description: Does not grant access after Sep 2020
# expression: request.time &lt; timestamp(&#x27;2020-10-01T00:00:00.000Z&#x27;)
# - etag: BwWWja0YfJA=
# - version: 3
#
# For a description of IAM and its features, see the
# [IAM documentation](https://cloud.google.com/iam/docs/).
&quot;etag&quot;: &quot;A String&quot;, # `etag` is used for optimistic concurrency control as a way to help
# prevent simultaneous updates of a policy from overwriting each other.
# It is strongly suggested that systems make use of the `etag` in the
# read-modify-write cycle to perform policy updates in order to avoid race
# conditions: An `etag` is returned in the response to `getIamPolicy`, and
# systems are expected to put that etag in the request to `setIamPolicy` to
# ensure that their change will be applied to the same version of the policy.
#
# **Important:** If you use IAM Conditions, you must include the `etag` field
# whenever you call `setIamPolicy`. If you omit this field, then IAM allows
# you to overwrite a version `3` policy with a version `1` policy, and all of
# the conditions in the version `3` policy are lost.
&quot;version&quot;: 42, # Specifies the format of the policy.
#
# Valid values are `0`, `1`, and `3`. Requests that specify an invalid value
# are rejected.
#
# Any operation that affects conditional role bindings must specify version
# `3`. This requirement applies to the following operations:
#
# * Getting a policy that includes a conditional role binding
# * Adding a conditional role binding to a policy
# * Changing a conditional role binding in a policy
# * Removing any role binding, with or without a condition, from a policy
# that includes conditions
#
# **Important:** If you use IAM Conditions, you must include the `etag` field
# whenever you call `setIamPolicy`. If you omit this field, then IAM allows
# you to overwrite a version `3` policy with a version `1` policy, and all of
# the conditions in the version `3` policy are lost.
#
# If a policy does not include any conditions, operations on that policy may
# specify any valid version or leave the field unset.
#
# To learn which resources support conditions in their IAM policies, see the
# [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
&quot;bindings&quot;: [ # Associates a list of `members` to a `role`. Optionally, may specify a
# `condition` that determines how and when the `bindings` are applied. Each
# of the `bindings` must contain at least one member.
{ # Associates `members` with a `role`.
&quot;members&quot;: [ # Specifies the identities requesting access for a Cloud Platform resource.
# `members` can have the following values:
#
# * `allUsers`: A special identifier that represents anyone who is
# on the internet; with or without a Google account.
#
# * `allAuthenticatedUsers`: A special identifier that represents anyone
# who is authenticated with a Google account or a service account.
#
# * `user:{emailid}`: An email address that represents a specific Google
# account. For example, `alice@example.com` .
#
#
# * `serviceAccount:{emailid}`: An email address that represents a service
# account. For example, `my-other-app@appspot.gserviceaccount.com`.
#
# * `group:{emailid}`: An email address that represents a Google group.
# For example, `admins@example.com`.
#
# * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique
# identifier) representing a user that has been recently deleted. For
# example, `alice@example.com?uid=123456789012345678901`. If the user is
# recovered, this value reverts to `user:{emailid}` and the recovered user
# retains the role in the binding.
#
# * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus
# unique identifier) representing a service account that has been recently
# deleted. For example,
# `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`.
# If the service account is undeleted, this value reverts to
# `serviceAccount:{emailid}` and the undeleted service account retains the
# role in the binding.
#
# * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique
# identifier) representing a Google group that has been recently
# deleted. For example, `admins@example.com?uid=123456789012345678901`. If
# the group is recovered, this value reverts to `group:{emailid}` and the
# recovered group retains the role in the binding.
#
#
# * `domain:{domain}`: The G Suite domain (primary) that represents all the
# users of that domain. For example, `google.com` or `example.com`.
#
&quot;A String&quot;,
],
&quot;condition&quot;: { # Represents a textual expression in the Common Expression Language (CEL) # The condition that is associated with this binding.
#
# If the condition evaluates to `true`, then this binding applies to the
# current request.
#
# If the condition evaluates to `false`, then this binding does not apply to
# the current request. However, a different role binding might grant the same
# role to one or more of the members in this binding.
#
# To learn which resources support conditions in their IAM policies, see the
# [IAM
# documentation](https://cloud.google.com/iam/help/conditions/resource-policies).
# syntax. CEL is a C-like expression language. The syntax and semantics of CEL
# are documented at https://github.com/google/cel-spec.
#
# Example (Comparison):
#
# title: &quot;Summary size limit&quot;
# description: &quot;Determines if a summary is less than 100 chars&quot;
# expression: &quot;document.summary.size() &lt; 100&quot;
#
# Example (Equality):
#
# title: &quot;Requestor is owner&quot;
# description: &quot;Determines if requestor is the document owner&quot;
# expression: &quot;document.owner == request.auth.claims.email&quot;
#
# Example (Logic):
#
# title: &quot;Public documents&quot;
# description: &quot;Determine whether the document should be publicly visible&quot;
# expression: &quot;document.type != &#x27;private&#x27; &amp;&amp; document.type != &#x27;internal&#x27;&quot;
#
# Example (Data Manipulation):
#
# title: &quot;Notification string&quot;
# description: &quot;Create a notification string with a timestamp.&quot;
# expression: &quot;&#x27;New message received at &#x27; + string(document.create_time)&quot;
#
# The exact variables and functions that may be referenced within an expression
# are determined by the service that evaluates it. See the service
# documentation for additional information.
&quot;title&quot;: &quot;A String&quot;, # Optional. Title for the expression, i.e. a short string describing
# its purpose. This can be used e.g. in UIs which allow to enter the
# expression.
&quot;location&quot;: &quot;A String&quot;, # Optional. String indicating the location of the expression for error
# reporting, e.g. a file name and a position in the file.
&quot;description&quot;: &quot;A String&quot;, # Optional. Description of the expression. This is a longer text which
# describes the expression, e.g. when hovered over it in a UI.
&quot;expression&quot;: &quot;A String&quot;, # Textual representation of an expression in Common Expression Language
# syntax.
},
&quot;role&quot;: &quot;A String&quot;, # Role that is assigned to `members`.
# For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
},
],
}</pre>
</div>
<div class="method">
<code class="details" id="testIamPermissions">testIamPermissions(resource, body=None, x__xgafv=None)</code>
<pre>Returns permissions that a caller has on the specified resource.
If the resource does not exist, this will return an empty set of
permissions, not a `NOT_FOUND` error.
Note: This operation is designed to be used for building permission-aware
UIs and command-line tools, not for authorization checking. This operation
may &quot;fail open&quot; without warning.
Args:
resource: string, REQUIRED: The resource for which the policy detail is being requested.
See the operation documentation for the appropriate value for this field. (required)
body: object, The request body.
The object takes the form of:
{ # Request message for `TestIamPermissions` method.
&quot;permissions&quot;: [ # The set of permissions to check for the `resource`. Permissions with
# wildcards (such as &#x27;*&#x27; or &#x27;storage.*&#x27;) are not allowed. For more
# information see
# [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).
&quot;A String&quot;,
],
}
x__xgafv: string, V1 error format.
Allowed values
1 - v1 error format
2 - v2 error format
Returns:
An object of the form:
{ # Response message for `TestIamPermissions` method.
&quot;permissions&quot;: [ # A subset of `TestPermissionsRequest.permissions` that the caller is
# allowed.
&quot;A String&quot;,
],
}</pre>
</div>
<div class="method">
<code class="details" id="update">update(name, body=None, x__xgafv=None)</code>
<pre>Updates an attestor.
Returns NOT_FOUND if the attestor does not exist.
Args:
name: string, Required. The resource name, in the format:
`projects/*/attestors/*`. This field may not be updated. (required)
body: object, The request body.
The object takes the form of:
{ # An attestor that attests to container image
# artifacts. An existing attestor cannot be modified except where
# indicated.
&quot;description&quot;: &quot;A String&quot;, # Optional. A descriptive comment. This field may be updated.
# The field may be displayed in chooser dialogs.
&quot;userOwnedDrydockNote&quot;: { # An user owned drydock note references a Drydock # A Drydock ATTESTATION_AUTHORITY Note, created by the user.
# ATTESTATION_AUTHORITY Note created by the user.
&quot;noteReference&quot;: &quot;A String&quot;, # Required. The Drydock resource name of a ATTESTATION_AUTHORITY Note,
# created by the user, in the format: `projects/*/notes/*` (or the legacy
# `providers/*/notes/*`). This field may not be updated.
#
# An attestation by this attestor is stored as a Drydock
# ATTESTATION_AUTHORITY Occurrence that names a container image and that
# links to this Note. Drydock is an external dependency.
&quot;delegationServiceAccountEmail&quot;: &quot;A String&quot;, # Output only. This field will contain the service account email address
# that this Attestor will use as the principal when querying Container
# Analysis. Attestor administrators must grant this service account the
# IAM role needed to read attestations from the note_reference in
# Container Analysis (`containeranalysis.notes.occurrences.viewer`).
#
# This email address is fixed for the lifetime of the Attestor, but callers
# should not make any other assumptions about the service account email;
# future versions may use an email based on a different naming pattern.
&quot;publicKeys&quot;: [ # Optional. Public keys that verify attestations signed by this
# attestor. This field may be updated.
#
# If this field is non-empty, one of the specified public keys must
# verify that an attestation was signed by this attestor for the
# image specified in the admission request.
#
# If this field is empty, this attestor always returns that no
# valid attestations exist.
{ # An attestor public key that will be used to verify
# attestations signed by this attestor.
&quot;id&quot;: &quot;A String&quot;, # The ID of this public key.
# Signatures verified by BinAuthz must include the ID of the public key that
# can be used to verify them, and that ID must match the contents of this
# field exactly.
# Additional restrictions on this field can be imposed based on which public
# key type is encapsulated. See the documentation on `public_key` cases below
# for details.
&quot;asciiArmoredPgpPublicKey&quot;: &quot;A String&quot;, # ASCII-armored representation of a PGP public key, as the entire output by
# the command `gpg --export --armor foo@example.com` (either LF or CRLF
# line endings).
# When using this field, `id` should be left blank. The BinAuthz API
# handlers will calculate the ID and fill it in automatically. BinAuthz
# computes this ID as the OpenPGP RFC4880 V4 fingerprint, represented as
# upper-case hex. If `id` is provided by the caller, it will be
# overwritten by the API-calculated ID.
&quot;pkixPublicKey&quot;: { # A public key in the PkixPublicKey format (see # A raw PKIX SubjectPublicKeyInfo format public key.
#
# NOTE: `id` may be explicitly provided by the caller when using this
# type of public key, but it MUST be a valid RFC3986 URI. If `id` is left
# blank, a default one will be computed based on the digest of the DER
# encoding of the public key.
# https://tools.ietf.org/html/rfc5280#section-4.1.2.7 for details).
# Public keys of this type are typically textually encoded using the PEM
# format.
&quot;signatureAlgorithm&quot;: &quot;A String&quot;, # The signature algorithm used to verify a message against a signature using
# this key.
# These signature algorithm must match the structure and any object
# identifiers encoded in `public_key_pem` (i.e. this algorithm must match
# that of the public key).
&quot;publicKeyPem&quot;: &quot;A String&quot;, # A PEM-encoded public key, as described in
# https://tools.ietf.org/html/rfc7468#section-13
},
&quot;comment&quot;: &quot;A String&quot;, # Optional. A descriptive comment. This field may be updated.
},
],
},
&quot;name&quot;: &quot;A String&quot;, # Required. The resource name, in the format:
# `projects/*/attestors/*`. This field may not be updated.
&quot;updateTime&quot;: &quot;A String&quot;, # Output only. Time when the attestor was last updated.
}
x__xgafv: string, V1 error format.
Allowed values
1 - v1 error format
2 - v2 error format
Returns:
An object of the form:
{ # An attestor that attests to container image
# artifacts. An existing attestor cannot be modified except where
# indicated.
&quot;description&quot;: &quot;A String&quot;, # Optional. A descriptive comment. This field may be updated.
# The field may be displayed in chooser dialogs.
&quot;userOwnedDrydockNote&quot;: { # An user owned drydock note references a Drydock # A Drydock ATTESTATION_AUTHORITY Note, created by the user.
# ATTESTATION_AUTHORITY Note created by the user.
&quot;noteReference&quot;: &quot;A String&quot;, # Required. The Drydock resource name of a ATTESTATION_AUTHORITY Note,
# created by the user, in the format: `projects/*/notes/*` (or the legacy
# `providers/*/notes/*`). This field may not be updated.
#
# An attestation by this attestor is stored as a Drydock
# ATTESTATION_AUTHORITY Occurrence that names a container image and that
# links to this Note. Drydock is an external dependency.
&quot;delegationServiceAccountEmail&quot;: &quot;A String&quot;, # Output only. This field will contain the service account email address
# that this Attestor will use as the principal when querying Container
# Analysis. Attestor administrators must grant this service account the
# IAM role needed to read attestations from the note_reference in
# Container Analysis (`containeranalysis.notes.occurrences.viewer`).
#
# This email address is fixed for the lifetime of the Attestor, but callers
# should not make any other assumptions about the service account email;
# future versions may use an email based on a different naming pattern.
&quot;publicKeys&quot;: [ # Optional. Public keys that verify attestations signed by this
# attestor. This field may be updated.
#
# If this field is non-empty, one of the specified public keys must
# verify that an attestation was signed by this attestor for the
# image specified in the admission request.
#
# If this field is empty, this attestor always returns that no
# valid attestations exist.
{ # An attestor public key that will be used to verify
# attestations signed by this attestor.
&quot;id&quot;: &quot;A String&quot;, # The ID of this public key.
# Signatures verified by BinAuthz must include the ID of the public key that
# can be used to verify them, and that ID must match the contents of this
# field exactly.
# Additional restrictions on this field can be imposed based on which public
# key type is encapsulated. See the documentation on `public_key` cases below
# for details.
&quot;asciiArmoredPgpPublicKey&quot;: &quot;A String&quot;, # ASCII-armored representation of a PGP public key, as the entire output by
# the command `gpg --export --armor foo@example.com` (either LF or CRLF
# line endings).
# When using this field, `id` should be left blank. The BinAuthz API
# handlers will calculate the ID and fill it in automatically. BinAuthz
# computes this ID as the OpenPGP RFC4880 V4 fingerprint, represented as
# upper-case hex. If `id` is provided by the caller, it will be
# overwritten by the API-calculated ID.
&quot;pkixPublicKey&quot;: { # A public key in the PkixPublicKey format (see # A raw PKIX SubjectPublicKeyInfo format public key.
#
# NOTE: `id` may be explicitly provided by the caller when using this
# type of public key, but it MUST be a valid RFC3986 URI. If `id` is left
# blank, a default one will be computed based on the digest of the DER
# encoding of the public key.
# https://tools.ietf.org/html/rfc5280#section-4.1.2.7 for details).
# Public keys of this type are typically textually encoded using the PEM
# format.
&quot;signatureAlgorithm&quot;: &quot;A String&quot;, # The signature algorithm used to verify a message against a signature using
# this key.
# These signature algorithm must match the structure and any object
# identifiers encoded in `public_key_pem` (i.e. this algorithm must match
# that of the public key).
&quot;publicKeyPem&quot;: &quot;A String&quot;, # A PEM-encoded public key, as described in
# https://tools.ietf.org/html/rfc7468#section-13
},
&quot;comment&quot;: &quot;A String&quot;, # Optional. A descriptive comment. This field may be updated.
},
],
},
&quot;name&quot;: &quot;A String&quot;, # Required. The resource name, in the format:
# `projects/*/attestors/*`. This field may not be updated.
&quot;updateTime&quot;: &quot;A String&quot;, # Output only. Time when the attestor was last updated.
}</pre>
</div>
</body></html>