Container Analysis API . projects . notes

Instance Methods

occurrences()

Returns the occurrences Resource.

batchCreate(parent, body=None, x__xgafv=None)

Creates new notes in batch.

create(parent, body=None, noteId=None, x__xgafv=None)

Creates a new note.

delete(name, x__xgafv=None)

Deletes the specified note.

get(name, x__xgafv=None)

Gets the specified note.

getIamPolicy(resource, body=None, x__xgafv=None)

Gets the access control policy for a note or an occurrence resource.

list(parent, pageToken=None, x__xgafv=None, pageSize=None, filter=None)

Lists notes for the specified project.

list_next(previous_request, previous_response)

Retrieves the next page of results.

patch(name, body=None, updateMask=None, x__xgafv=None)

Updates the specified note.

setIamPolicy(resource, body=None, x__xgafv=None)

Sets the access control policy on the specified note or occurrence.

testIamPermissions(resource, body=None, x__xgafv=None)

Returns the permissions that a caller has on the specified note or

Method Details

batchCreate(parent, body=None, x__xgafv=None)
Creates new notes in batch.

Args:
  parent: string, Required. The name of the project in the form of `projects/[PROJECT_ID]`, under which
the notes are to be created. (required)
  body: object, The request body.
    The object takes the form of:

{ # Request to create notes in batch.
    "notes": { # Required. The notes to create. Max allowed length is 1000.
      "a_key": { # A type of analysis that can be done for a resource.
        "updateTime": "A String", # Output only. The time this note was last updated. This field can be used as
            # a filter in list requests.
        "relatedNoteNames": [ # Other notes related to this note.
          "A String",
        ],
        "name": "A String", # Output only. The name of the note in the form of
            # `projects/[PROVIDER_ID]/notes/[NOTE_ID]`.
        "package": { # This represents a particular package that is distributed over various # A note describing a package hosted by various package managers.
            # channels. E.g., glibc (aka libc6) is distributed by many, at various
            # versions.
          "distribution": [ # The various channels by which a package is distributed.
            { # This represents a particular channel of distribution for a given package.
                # E.g., Debian's jessie-backports dpkg mirror.
              "cpeUri": "A String", # Required. The cpe_uri in [CPE format](https://cpe.mitre.org/specification/)
                  # denoting the package manager version distributing a package.
              "maintainer": "A String", # A freeform string denoting the maintainer of this package.
              "description": "A String", # The distribution channel-specific description of this package.
              "url": "A String", # The distribution channel-specific homepage for this package.
              "architecture": "A String", # The CPU architecture for which packages in this distribution channel were
                  # built.
              "latestVersion": { # Version contains structured information about the version of a package. # The latest available version of this package in this distribution channel.
                "epoch": 42, # Used to correct mistakes in the version numbering scheme.
                "kind": "A String", # Required. Distinguishes between sentinel MIN/MAX versions and normal
                    # versions.
                "name": "A String", # Required only when version kind is NORMAL. The main part of the version
                    # name.
                "revision": "A String", # The iteration of the package build from the above version.
              },
            },
          ],
          "name": "A String", # Required. Immutable. The name of the package.
        },
        "vulnerability": { # Vulnerability provides metadata about a security vulnerability in a Note. # A note describing a package vulnerability.
          "windowsDetails": [ # Windows details get their own format because the information format and
              # model don't match a normal detail. Specifically Windows updates are done as
              # patches, thus Windows vulnerabilities really are a missing package, rather
              # than a package being at an incorrect version.
            {
              "cpeUri": "A String", # Required. The CPE URI in
                  # [cpe format](https://cpe.mitre.org/specification/) in which the
                  # vulnerability manifests. Examples include distro or storage location for
                  # vulnerable jar.
              "fixingKbs": [ # Required. The names of the KBs which have hotfixes to mitigate this
                  # vulnerability. Note that there may be multiple hotfixes (and thus
                  # multiple KBs) that mitigate a given vulnerability. Currently any listed
                  # kb's presence is considered a fix.
                {
                  "url": "A String", # A link to the KB in the Windows update catalog -
                      # https://www.catalog.update.microsoft.com/
                  "name": "A String", # The KB name (generally of the form KB[0-9]+ i.e. KB123456).
                },
              ],
              "name": "A String", # Required. The name of the vulnerability.
              "description": "A String", # The description of the vulnerability.
            },
          ],
          "cvssV3": { # Common Vulnerability Scoring System version 3. # The full description of the CVSSv3.
              # For details, see https://www.first.org/cvss/specification-document
            "attackComplexity": "A String",
            "attackVector": "A String", # Base Metrics
                # Represents the intrinsic characteristics of a vulnerability that are
                # constant over time and across user environments.
            "privilegesRequired": "A String",
            "userInteraction": "A String",
            "baseScore": 3.14, # The base score is a function of the base metric scores.
            "availabilityImpact": "A String",
            "impactScore": 3.14,
            "exploitabilityScore": 3.14,
            "scope": "A String",
            "integrityImpact": "A String",
            "confidentialityImpact": "A String",
          },
          "cvssScore": 3.14, # The CVSS score for this vulnerability.
          "severity": "A String", # Note provider assigned impact of the vulnerability.
          "details": [ # All information about the package to specifically identify this
              # vulnerability. One entry per (version range and cpe_uri) the package
              # vulnerability has manifested in.
            { # Identifies all appearances of this vulnerability in the package for a
                # specific distro/location. For example: glibc in
                # cpe:/o:debian:debian_linux:8 for versions 2.1 - 2.2
              "severityName": "A String", # The severity (eg: distro assigned severity) for this vulnerability.
              "cpeUri": "A String", # Required. The CPE URI in
                  # [cpe format](https://cpe.mitre.org/specification/) in which the
                  # vulnerability manifests. Examples include distro or storage location for
                  # vulnerable jar.
              "description": "A String", # A vendor-specific description of this note.
              "minAffectedVersion": { # Version contains structured information about the version of a package. # The min version of the package in which the vulnerability exists.
                "epoch": 42, # Used to correct mistakes in the version numbering scheme.
                "kind": "A String", # Required. Distinguishes between sentinel MIN/MAX versions and normal
                    # versions.
                "name": "A String", # Required only when version kind is NORMAL. The main part of the version
                    # name.
                "revision": "A String", # The iteration of the package build from the above version.
              },
              "package": "A String", # Required. The name of the package where the vulnerability was found.
              "isObsolete": True or False, # Whether this detail is obsolete. Occurrences are expected not to point to
                  # obsolete details.
              "packageType": "A String", # The type of package; whether native or non native(ruby gems, node.js
                  # packages etc).
              "sourceUpdateTime": "A String", # The time this information was last changed at the source. This is an
                  # upstream timestamp from the underlying information source - e.g. Ubuntu
                  # security tracker.
              "maxAffectedVersion": { # Version contains structured information about the version of a package. # The max version of the package in which the vulnerability exists.
                "epoch": 42, # Used to correct mistakes in the version numbering scheme.
                "kind": "A String", # Required. Distinguishes between sentinel MIN/MAX versions and normal
                    # versions.
                "name": "A String", # Required only when version kind is NORMAL. The main part of the version
                    # name.
                "revision": "A String", # The iteration of the package build from the above version.
              },
              "fixedLocation": { # The location of the vulnerability. # The fix for this specific package version.
                "cpeUri": "A String", # Required. The CPE URI in [cpe format](https://cpe.mitre.org/specification/)
                    # format. Examples include distro or storage location for vulnerable jar.
                "version": { # Version contains structured information about the version of a package. # Required. The version of the package being described.
                  "epoch": 42, # Used to correct mistakes in the version numbering scheme.
                  "kind": "A String", # Required. Distinguishes between sentinel MIN/MAX versions and normal
                      # versions.
                  "name": "A String", # Required only when version kind is NORMAL. The main part of the version
                      # name.
                  "revision": "A String", # The iteration of the package build from the above version.
                },
                "package": "A String", # Required. The package being described.
              },
            },
          ],
          "sourceUpdateTime": "A String", # The time this information was last changed at the source. This is an
              # upstream timestamp from the underlying information source - e.g. Ubuntu
              # security tracker.
        },
        "kind": "A String", # Output only. The type of analysis. This field can be used as a filter in
            # list requests.
        "relatedUrl": [ # URLs associated with this note.
          { # Metadata for any related URL information.
            "url": "A String", # Specific URL associated with the resource.
            "label": "A String", # Label to describe usage of the URL.
          },
        ],
        "longDescription": "A String", # A detailed description of this note.
        "attestationAuthority": { # Note kind that represents a logical attestation "role" or "authority". For # A note describing an attestation role.
            # example, an organization might have one `Authority` for "QA" and one for
            # "build". This note is intended to act strictly as a grouping mechanism for
            # the attached occurrences (Attestations). This grouping mechanism also
            # provides a security boundary, since IAM ACLs gate the ability for a principle
            # to attach an occurrence to a given note. It also provides a single point of
            # lookup to find all attached attestation occurrences, even if they don't all
            # live in the same project.
          "hint": { # This submessage provides human-readable hints about the purpose of the # Hint hints at the purpose of the attestation authority.
              # authority. Because the name of a note acts as its resource reference, it is
              # important to disambiguate the canonical name of the Note (which might be a
              # UUID for security purposes) from "readable" names more suitable for debug
              # output. Note that these hints should not be used to look up authorities in
              # security sensitive contexts, such as when looking up attestations to
              # verify.
            "humanReadableName": "A String", # Required. The human readable name of this attestation authority, for
                # example "qa".
          },
        },
        "intoto": { # This contains the fields corresponding to the definition of a software supply # A note describing an in-toto link.
            # chain step in an in-toto layout. This information goes into a Grafeas note.
          "stepName": "A String", # This field identifies the name of the step in the supply chain.
          "expectedCommand": [ # This field contains the expected command used to perform the step.
            "A String",
          ],
          "threshold": "A String", # This field contains a value that indicates the minimum number of keys that
              # need to be used to sign the step's in-toto link.
          "expectedMaterials": [ # The following fields contain in-toto artifact rules identifying the
              # artifacts that enter this supply chain step, and exit the supply chain
              # step, i.e. materials and products of the step.
            { # Defines an object to declare an in-toto artifact rule
              "artifactRule": [
                "A String",
              ],
            },
          ],
          "expectedProducts": [
            { # Defines an object to declare an in-toto artifact rule
              "artifactRule": [
                "A String",
              ],
            },
          ],
          "signingKeys": [ # This field contains the public keys that can be used to verify the
              # signatures on the step metadata.
            { # This defines the format used to record keys used in the software supply
                # chain. An in-toto link is attested using one or more keys defined in the
                # in-toto layout. An example of this is:
                # {
                #   "key_id": "776a00e29f3559e0141b3b096f696abc6cfb0c657ab40f441132b345b0...",
                #   "key_type": "rsa",
                #   "public_key_value": "-----BEGIN PUBLIC KEY-----\nMIIBojANBgkqhkiG9w0B...",
                #   "key_scheme": "rsassa-pss-sha256"
                # }
                # The format for in-toto's key definition can be found in section 4.2 of the
                # in-toto specification.
              "keyType": "A String", # This field identifies the specific signing method. Eg: "rsa", "ed25519",
                  # and "ecdsa".
              "keyId": "A String", # key_id is an identifier for the signing key.
              "publicKeyValue": "A String", # This field contains the actual public key.
              "keyScheme": "A String", # This field contains the corresponding signature scheme.
                  # Eg: "rsassa-pss-sha256".
            },
          ],
        },
        "build": { # Note holding the version of the provider's builder and the signature of the # A note describing build provenance for a verifiable build.
            # provenance message in the build details occurrence.
          "builderVersion": "A String", # Required. Immutable. Version of the builder which produced this build.
          "signature": { # Message encapsulating the signature of the verified build. # Signature of the build in occurrences pointing to this build note
              # containing build details.
            "publicKey": "A String", # Public key of the builder which can be used to verify that the related
                # findings are valid and unchanged. If `key_type` is empty, this defaults
                # to PEM encoded public keys.
                #
                # This field may be empty if `key_id` references an external key.
                #
                # For Cloud Build based signatures, this is a PEM encoded public
                # key. To verify the Cloud Build signature, place the contents of
                # this field into a file (public.pem). The signature field is base64-decoded
                # into its binary representation in signature.bin, and the provenance bytes
                # from `BuildDetails` are base64-decoded into a binary representation in
                # signed.bin. OpenSSL can then verify the signature:
                # `openssl sha256 -verify public.pem -signature signature.bin signed.bin`
            "keyType": "A String", # The type of the key, either stored in `public_key` or referenced in
                # `key_id`.
            "keyId": "A String", # An ID for the key used to sign. This could be either an ID for the key
                # stored in `public_key` (such as the ID or fingerprint for a PGP key, or the
                # CN for a cert), or a reference to an external key (such as a reference to a
                # key in Cloud Key Management Service).
            "signature": "A String", # Required. Signature of the related `BuildProvenance`. In JSON, this is
                # base-64 encoded.
          },
        },
        "baseImage": { # Basis describes the base image portion (Note) of the DockerImage # A note describing a base image.
            # relationship. Linked occurrences are derived from this or an
            # equivalent image via:
            #   FROM <Basis.resource_url>
            # Or an equivalent reference, e.g. a tag of the resource_url.
          "resourceUrl": "A String", # Required. Immutable. The resource_url for the resource representing the
              # basis of associated occurrence images.
          "fingerprint": { # A set of properties that uniquely identify a given Docker image. # Required. Immutable. The fingerprint of the base image.
            "v1Name": "A String", # Required. The layer ID of the final layer in the Docker image's v1
                # representation.
            "v2Blob": [ # Required. The ordered list of v2 blobs that represent a given image.
              "A String",
            ],
            "v2Name": "A String", # Output only. The name of the image's v2 blobs computed via:
                #   [bottom] := v2_blobbottom := sha256(v2_blob[N] + " " + v2_name[N+1])
                # Only the name of the final blob is kept.
          },
        },
        "expirationTime": "A String", # Time of expiration for this note. Empty if note does not expire.
        "deployable": { # An artifact that can be deployed in some runtime. # A note describing something that can be deployed.
          "resourceUri": [ # Required. Resource URI for the artifact being deployed.
            "A String",
          ],
        },
        "shortDescription": "A String", # A one sentence description of this note.
        "createTime": "A String", # Output only. The time this note was created. This field can be used as a
            # filter in list requests.
        "discovery": { # A note that indicates a type of analysis a provider would perform. This note # A note describing the initial analysis of a resource.
            # exists in a provider's project. A `Discovery` occurrence is created in a
            # consumer's project at the start of analysis.
          "analysisKind": "A String", # Required. Immutable. The kind of analysis that is handled by this
              # discovery.
        },
      },
    },
  }

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Response for creating notes in batch.
    "notes": [ # The notes that were created.
      { # A type of analysis that can be done for a resource.
        "updateTime": "A String", # Output only. The time this note was last updated. This field can be used as
            # a filter in list requests.
        "relatedNoteNames": [ # Other notes related to this note.
          "A String",
        ],
        "name": "A String", # Output only. The name of the note in the form of
            # `projects/[PROVIDER_ID]/notes/[NOTE_ID]`.
        "package": { # This represents a particular package that is distributed over various # A note describing a package hosted by various package managers.
            # channels. E.g., glibc (aka libc6) is distributed by many, at various
            # versions.
          "distribution": [ # The various channels by which a package is distributed.
            { # This represents a particular channel of distribution for a given package.
                # E.g., Debian's jessie-backports dpkg mirror.
              "cpeUri": "A String", # Required. The cpe_uri in [CPE format](https://cpe.mitre.org/specification/)
                  # denoting the package manager version distributing a package.
              "maintainer": "A String", # A freeform string denoting the maintainer of this package.
              "description": "A String", # The distribution channel-specific description of this package.
              "url": "A String", # The distribution channel-specific homepage for this package.
              "architecture": "A String", # The CPU architecture for which packages in this distribution channel were
                  # built.
              "latestVersion": { # Version contains structured information about the version of a package. # The latest available version of this package in this distribution channel.
                "epoch": 42, # Used to correct mistakes in the version numbering scheme.
                "kind": "A String", # Required. Distinguishes between sentinel MIN/MAX versions and normal
                    # versions.
                "name": "A String", # Required only when version kind is NORMAL. The main part of the version
                    # name.
                "revision": "A String", # The iteration of the package build from the above version.
              },
            },
          ],
          "name": "A String", # Required. Immutable. The name of the package.
        },
        "vulnerability": { # Vulnerability provides metadata about a security vulnerability in a Note. # A note describing a package vulnerability.
          "windowsDetails": [ # Windows details get their own format because the information format and
              # model don't match a normal detail. Specifically Windows updates are done as
              # patches, thus Windows vulnerabilities really are a missing package, rather
              # than a package being at an incorrect version.
            {
              "cpeUri": "A String", # Required. The CPE URI in
                  # [cpe format](https://cpe.mitre.org/specification/) in which the
                  # vulnerability manifests. Examples include distro or storage location for
                  # vulnerable jar.
              "fixingKbs": [ # Required. The names of the KBs which have hotfixes to mitigate this
                  # vulnerability. Note that there may be multiple hotfixes (and thus
                  # multiple KBs) that mitigate a given vulnerability. Currently any listed
                  # kb's presence is considered a fix.
                {
                  "url": "A String", # A link to the KB in the Windows update catalog -
                      # https://www.catalog.update.microsoft.com/
                  "name": "A String", # The KB name (generally of the form KB[0-9]+ i.e. KB123456).
                },
              ],
              "name": "A String", # Required. The name of the vulnerability.
              "description": "A String", # The description of the vulnerability.
            },
          ],
          "cvssV3": { # Common Vulnerability Scoring System version 3. # The full description of the CVSSv3.
              # For details, see https://www.first.org/cvss/specification-document
            "attackComplexity": "A String",
            "attackVector": "A String", # Base Metrics
                # Represents the intrinsic characteristics of a vulnerability that are
                # constant over time and across user environments.
            "privilegesRequired": "A String",
            "userInteraction": "A String",
            "baseScore": 3.14, # The base score is a function of the base metric scores.
            "availabilityImpact": "A String",
            "impactScore": 3.14,
            "exploitabilityScore": 3.14,
            "scope": "A String",
            "integrityImpact": "A String",
            "confidentialityImpact": "A String",
          },
          "cvssScore": 3.14, # The CVSS score for this vulnerability.
          "severity": "A String", # Note provider assigned impact of the vulnerability.
          "details": [ # All information about the package to specifically identify this
              # vulnerability. One entry per (version range and cpe_uri) the package
              # vulnerability has manifested in.
            { # Identifies all appearances of this vulnerability in the package for a
                # specific distro/location. For example: glibc in
                # cpe:/o:debian:debian_linux:8 for versions 2.1 - 2.2
              "severityName": "A String", # The severity (eg: distro assigned severity) for this vulnerability.
              "cpeUri": "A String", # Required. The CPE URI in
                  # [cpe format](https://cpe.mitre.org/specification/) in which the
                  # vulnerability manifests. Examples include distro or storage location for
                  # vulnerable jar.
              "description": "A String", # A vendor-specific description of this note.
              "minAffectedVersion": { # Version contains structured information about the version of a package. # The min version of the package in which the vulnerability exists.
                "epoch": 42, # Used to correct mistakes in the version numbering scheme.
                "kind": "A String", # Required. Distinguishes between sentinel MIN/MAX versions and normal
                    # versions.
                "name": "A String", # Required only when version kind is NORMAL. The main part of the version
                    # name.
                "revision": "A String", # The iteration of the package build from the above version.
              },
              "package": "A String", # Required. The name of the package where the vulnerability was found.
              "isObsolete": True or False, # Whether this detail is obsolete. Occurrences are expected not to point to
                  # obsolete details.
              "packageType": "A String", # The type of package; whether native or non native(ruby gems, node.js
                  # packages etc).
              "sourceUpdateTime": "A String", # The time this information was last changed at the source. This is an
                  # upstream timestamp from the underlying information source - e.g. Ubuntu
                  # security tracker.
              "maxAffectedVersion": { # Version contains structured information about the version of a package. # The max version of the package in which the vulnerability exists.
                "epoch": 42, # Used to correct mistakes in the version numbering scheme.
                "kind": "A String", # Required. Distinguishes between sentinel MIN/MAX versions and normal
                    # versions.
                "name": "A String", # Required only when version kind is NORMAL. The main part of the version
                    # name.
                "revision": "A String", # The iteration of the package build from the above version.
              },
              "fixedLocation": { # The location of the vulnerability. # The fix for this specific package version.
                "cpeUri": "A String", # Required. The CPE URI in [cpe format](https://cpe.mitre.org/specification/)
                    # format. Examples include distro or storage location for vulnerable jar.
                "version": { # Version contains structured information about the version of a package. # Required. The version of the package being described.
                  "epoch": 42, # Used to correct mistakes in the version numbering scheme.
                  "kind": "A String", # Required. Distinguishes between sentinel MIN/MAX versions and normal
                      # versions.
                  "name": "A String", # Required only when version kind is NORMAL. The main part of the version
                      # name.
                  "revision": "A String", # The iteration of the package build from the above version.
                },
                "package": "A String", # Required. The package being described.
              },
            },
          ],
          "sourceUpdateTime": "A String", # The time this information was last changed at the source. This is an
              # upstream timestamp from the underlying information source - e.g. Ubuntu
              # security tracker.
        },
        "kind": "A String", # Output only. The type of analysis. This field can be used as a filter in
            # list requests.
        "relatedUrl": [ # URLs associated with this note.
          { # Metadata for any related URL information.
            "url": "A String", # Specific URL associated with the resource.
            "label": "A String", # Label to describe usage of the URL.
          },
        ],
        "longDescription": "A String", # A detailed description of this note.
        "attestationAuthority": { # Note kind that represents a logical attestation "role" or "authority". For # A note describing an attestation role.
            # example, an organization might have one `Authority` for "QA" and one for
            # "build". This note is intended to act strictly as a grouping mechanism for
            # the attached occurrences (Attestations). This grouping mechanism also
            # provides a security boundary, since IAM ACLs gate the ability for a principle
            # to attach an occurrence to a given note. It also provides a single point of
            # lookup to find all attached attestation occurrences, even if they don't all
            # live in the same project.
          "hint": { # This submessage provides human-readable hints about the purpose of the # Hint hints at the purpose of the attestation authority.
              # authority. Because the name of a note acts as its resource reference, it is
              # important to disambiguate the canonical name of the Note (which might be a
              # UUID for security purposes) from "readable" names more suitable for debug
              # output. Note that these hints should not be used to look up authorities in
              # security sensitive contexts, such as when looking up attestations to
              # verify.
            "humanReadableName": "A String", # Required. The human readable name of this attestation authority, for
                # example "qa".
          },
        },
        "intoto": { # This contains the fields corresponding to the definition of a software supply # A note describing an in-toto link.
            # chain step in an in-toto layout. This information goes into a Grafeas note.
          "stepName": "A String", # This field identifies the name of the step in the supply chain.
          "expectedCommand": [ # This field contains the expected command used to perform the step.
            "A String",
          ],
          "threshold": "A String", # This field contains a value that indicates the minimum number of keys that
              # need to be used to sign the step's in-toto link.
          "expectedMaterials": [ # The following fields contain in-toto artifact rules identifying the
              # artifacts that enter this supply chain step, and exit the supply chain
              # step, i.e. materials and products of the step.
            { # Defines an object to declare an in-toto artifact rule
              "artifactRule": [
                "A String",
              ],
            },
          ],
          "expectedProducts": [
            { # Defines an object to declare an in-toto artifact rule
              "artifactRule": [
                "A String",
              ],
            },
          ],
          "signingKeys": [ # This field contains the public keys that can be used to verify the
              # signatures on the step metadata.
            { # This defines the format used to record keys used in the software supply
                # chain. An in-toto link is attested using one or more keys defined in the
                # in-toto layout. An example of this is:
                # {
                #   "key_id": "776a00e29f3559e0141b3b096f696abc6cfb0c657ab40f441132b345b0...",
                #   "key_type": "rsa",
                #   "public_key_value": "-----BEGIN PUBLIC KEY-----\nMIIBojANBgkqhkiG9w0B...",
                #   "key_scheme": "rsassa-pss-sha256"
                # }
                # The format for in-toto's key definition can be found in section 4.2 of the
                # in-toto specification.
              "keyType": "A String", # This field identifies the specific signing method. Eg: "rsa", "ed25519",
                  # and "ecdsa".
              "keyId": "A String", # key_id is an identifier for the signing key.
              "publicKeyValue": "A String", # This field contains the actual public key.
              "keyScheme": "A String", # This field contains the corresponding signature scheme.
                  # Eg: "rsassa-pss-sha256".
            },
          ],
        },
        "build": { # Note holding the version of the provider's builder and the signature of the # A note describing build provenance for a verifiable build.
            # provenance message in the build details occurrence.
          "builderVersion": "A String", # Required. Immutable. Version of the builder which produced this build.
          "signature": { # Message encapsulating the signature of the verified build. # Signature of the build in occurrences pointing to this build note
              # containing build details.
            "publicKey": "A String", # Public key of the builder which can be used to verify that the related
                # findings are valid and unchanged. If `key_type` is empty, this defaults
                # to PEM encoded public keys.
                #
                # This field may be empty if `key_id` references an external key.
                #
                # For Cloud Build based signatures, this is a PEM encoded public
                # key. To verify the Cloud Build signature, place the contents of
                # this field into a file (public.pem). The signature field is base64-decoded
                # into its binary representation in signature.bin, and the provenance bytes
                # from `BuildDetails` are base64-decoded into a binary representation in
                # signed.bin. OpenSSL can then verify the signature:
                # `openssl sha256 -verify public.pem -signature signature.bin signed.bin`
            "keyType": "A String", # The type of the key, either stored in `public_key` or referenced in
                # `key_id`.
            "keyId": "A String", # An ID for the key used to sign. This could be either an ID for the key
                # stored in `public_key` (such as the ID or fingerprint for a PGP key, or the
                # CN for a cert), or a reference to an external key (such as a reference to a
                # key in Cloud Key Management Service).
            "signature": "A String", # Required. Signature of the related `BuildProvenance`. In JSON, this is
                # base-64 encoded.
          },
        },
        "baseImage": { # Basis describes the base image portion (Note) of the DockerImage # A note describing a base image.
            # relationship. Linked occurrences are derived from this or an
            # equivalent image via:
            #   FROM <Basis.resource_url>
            # Or an equivalent reference, e.g. a tag of the resource_url.
          "resourceUrl": "A String", # Required. Immutable. The resource_url for the resource representing the
              # basis of associated occurrence images.
          "fingerprint": { # A set of properties that uniquely identify a given Docker image. # Required. Immutable. The fingerprint of the base image.
            "v1Name": "A String", # Required. The layer ID of the final layer in the Docker image's v1
                # representation.
            "v2Blob": [ # Required. The ordered list of v2 blobs that represent a given image.
              "A String",
            ],
            "v2Name": "A String", # Output only. The name of the image's v2 blobs computed via:
                #   [bottom] := v2_blobbottom := sha256(v2_blob[N] + " " + v2_name[N+1])
                # Only the name of the final blob is kept.
          },
        },
        "expirationTime": "A String", # Time of expiration for this note. Empty if note does not expire.
        "deployable": { # An artifact that can be deployed in some runtime. # A note describing something that can be deployed.
          "resourceUri": [ # Required. Resource URI for the artifact being deployed.
            "A String",
          ],
        },
        "shortDescription": "A String", # A one sentence description of this note.
        "createTime": "A String", # Output only. The time this note was created. This field can be used as a
            # filter in list requests.
        "discovery": { # A note that indicates a type of analysis a provider would perform. This note # A note describing the initial analysis of a resource.
            # exists in a provider's project. A `Discovery` occurrence is created in a
            # consumer's project at the start of analysis.
          "analysisKind": "A String", # Required. Immutable. The kind of analysis that is handled by this
              # discovery.
        },
      },
    ],
  }
create(parent, body=None, noteId=None, x__xgafv=None)
Creates a new note.

Args:
  parent: string, Required. The name of the project in the form of `projects/[PROJECT_ID]`, under which
the note is to be created. (required)
  body: object, The request body.
    The object takes the form of:

{ # A type of analysis that can be done for a resource.
  "updateTime": "A String", # Output only. The time this note was last updated. This field can be used as
      # a filter in list requests.
  "relatedNoteNames": [ # Other notes related to this note.
    "A String",
  ],
  "name": "A String", # Output only. The name of the note in the form of
      # `projects/[PROVIDER_ID]/notes/[NOTE_ID]`.
  "package": { # This represents a particular package that is distributed over various # A note describing a package hosted by various package managers.
      # channels. E.g., glibc (aka libc6) is distributed by many, at various
      # versions.
    "distribution": [ # The various channels by which a package is distributed.
      { # This represents a particular channel of distribution for a given package.
          # E.g., Debian's jessie-backports dpkg mirror.
        "cpeUri": "A String", # Required. The cpe_uri in [CPE format](https://cpe.mitre.org/specification/)
            # denoting the package manager version distributing a package.
        "maintainer": "A String", # A freeform string denoting the maintainer of this package.
        "description": "A String", # The distribution channel-specific description of this package.
        "url": "A String", # The distribution channel-specific homepage for this package.
        "architecture": "A String", # The CPU architecture for which packages in this distribution channel were
            # built.
        "latestVersion": { # Version contains structured information about the version of a package. # The latest available version of this package in this distribution channel.
          "epoch": 42, # Used to correct mistakes in the version numbering scheme.
          "kind": "A String", # Required. Distinguishes between sentinel MIN/MAX versions and normal
              # versions.
          "name": "A String", # Required only when version kind is NORMAL. The main part of the version
              # name.
          "revision": "A String", # The iteration of the package build from the above version.
        },
      },
    ],
    "name": "A String", # Required. Immutable. The name of the package.
  },
  "vulnerability": { # Vulnerability provides metadata about a security vulnerability in a Note. # A note describing a package vulnerability.
    "windowsDetails": [ # Windows details get their own format because the information format and
        # model don't match a normal detail. Specifically Windows updates are done as
        # patches, thus Windows vulnerabilities really are a missing package, rather
        # than a package being at an incorrect version.
      {
        "cpeUri": "A String", # Required. The CPE URI in
            # [cpe format](https://cpe.mitre.org/specification/) in which the
            # vulnerability manifests. Examples include distro or storage location for
            # vulnerable jar.
        "fixingKbs": [ # Required. The names of the KBs which have hotfixes to mitigate this
            # vulnerability. Note that there may be multiple hotfixes (and thus
            # multiple KBs) that mitigate a given vulnerability. Currently any listed
            # kb's presence is considered a fix.
          {
            "url": "A String", # A link to the KB in the Windows update catalog -
                # https://www.catalog.update.microsoft.com/
            "name": "A String", # The KB name (generally of the form KB[0-9]+ i.e. KB123456).
          },
        ],
        "name": "A String", # Required. The name of the vulnerability.
        "description": "A String", # The description of the vulnerability.
      },
    ],
    "cvssV3": { # Common Vulnerability Scoring System version 3. # The full description of the CVSSv3.
        # For details, see https://www.first.org/cvss/specification-document
      "attackComplexity": "A String",
      "attackVector": "A String", # Base Metrics
          # Represents the intrinsic characteristics of a vulnerability that are
          # constant over time and across user environments.
      "privilegesRequired": "A String",
      "userInteraction": "A String",
      "baseScore": 3.14, # The base score is a function of the base metric scores.
      "availabilityImpact": "A String",
      "impactScore": 3.14,
      "exploitabilityScore": 3.14,
      "scope": "A String",
      "integrityImpact": "A String",
      "confidentialityImpact": "A String",
    },
    "cvssScore": 3.14, # The CVSS score for this vulnerability.
    "severity": "A String", # Note provider assigned impact of the vulnerability.
    "details": [ # All information about the package to specifically identify this
        # vulnerability. One entry per (version range and cpe_uri) the package
        # vulnerability has manifested in.
      { # Identifies all appearances of this vulnerability in the package for a
          # specific distro/location. For example: glibc in
          # cpe:/o:debian:debian_linux:8 for versions 2.1 - 2.2
        "severityName": "A String", # The severity (eg: distro assigned severity) for this vulnerability.
        "cpeUri": "A String", # Required. The CPE URI in
            # [cpe format](https://cpe.mitre.org/specification/) in which the
            # vulnerability manifests. Examples include distro or storage location for
            # vulnerable jar.
        "description": "A String", # A vendor-specific description of this note.
        "minAffectedVersion": { # Version contains structured information about the version of a package. # The min version of the package in which the vulnerability exists.
          "epoch": 42, # Used to correct mistakes in the version numbering scheme.
          "kind": "A String", # Required. Distinguishes between sentinel MIN/MAX versions and normal
              # versions.
          "name": "A String", # Required only when version kind is NORMAL. The main part of the version
              # name.
          "revision": "A String", # The iteration of the package build from the above version.
        },
        "package": "A String", # Required. The name of the package where the vulnerability was found.
        "isObsolete": True or False, # Whether this detail is obsolete. Occurrences are expected not to point to
            # obsolete details.
        "packageType": "A String", # The type of package; whether native or non native(ruby gems, node.js
            # packages etc).
        "sourceUpdateTime": "A String", # The time this information was last changed at the source. This is an
            # upstream timestamp from the underlying information source - e.g. Ubuntu
            # security tracker.
        "maxAffectedVersion": { # Version contains structured information about the version of a package. # The max version of the package in which the vulnerability exists.
          "epoch": 42, # Used to correct mistakes in the version numbering scheme.
          "kind": "A String", # Required. Distinguishes between sentinel MIN/MAX versions and normal
              # versions.
          "name": "A String", # Required only when version kind is NORMAL. The main part of the version
              # name.
          "revision": "A String", # The iteration of the package build from the above version.
        },
        "fixedLocation": { # The location of the vulnerability. # The fix for this specific package version.
          "cpeUri": "A String", # Required. The CPE URI in [cpe format](https://cpe.mitre.org/specification/)
              # format. Examples include distro or storage location for vulnerable jar.
          "version": { # Version contains structured information about the version of a package. # Required. The version of the package being described.
            "epoch": 42, # Used to correct mistakes in the version numbering scheme.
            "kind": "A String", # Required. Distinguishes between sentinel MIN/MAX versions and normal
                # versions.
            "name": "A String", # Required only when version kind is NORMAL. The main part of the version
                # name.
            "revision": "A String", # The iteration of the package build from the above version.
          },
          "package": "A String", # Required. The package being described.
        },
      },
    ],
    "sourceUpdateTime": "A String", # The time this information was last changed at the source. This is an
        # upstream timestamp from the underlying information source - e.g. Ubuntu
        # security tracker.
  },
  "kind": "A String", # Output only. The type of analysis. This field can be used as a filter in
      # list requests.
  "relatedUrl": [ # URLs associated with this note.
    { # Metadata for any related URL information.
      "url": "A String", # Specific URL associated with the resource.
      "label": "A String", # Label to describe usage of the URL.
    },
  ],
  "longDescription": "A String", # A detailed description of this note.
  "attestationAuthority": { # Note kind that represents a logical attestation "role" or "authority". For # A note describing an attestation role.
      # example, an organization might have one `Authority` for "QA" and one for
      # "build". This note is intended to act strictly as a grouping mechanism for
      # the attached occurrences (Attestations). This grouping mechanism also
      # provides a security boundary, since IAM ACLs gate the ability for a principle
      # to attach an occurrence to a given note. It also provides a single point of
      # lookup to find all attached attestation occurrences, even if they don't all
      # live in the same project.
    "hint": { # This submessage provides human-readable hints about the purpose of the # Hint hints at the purpose of the attestation authority.
        # authority. Because the name of a note acts as its resource reference, it is
        # important to disambiguate the canonical name of the Note (which might be a
        # UUID for security purposes) from "readable" names more suitable for debug
        # output. Note that these hints should not be used to look up authorities in
        # security sensitive contexts, such as when looking up attestations to
        # verify.
      "humanReadableName": "A String", # Required. The human readable name of this attestation authority, for
          # example "qa".
    },
  },
  "intoto": { # This contains the fields corresponding to the definition of a software supply # A note describing an in-toto link.
      # chain step in an in-toto layout. This information goes into a Grafeas note.
    "stepName": "A String", # This field identifies the name of the step in the supply chain.
    "expectedCommand": [ # This field contains the expected command used to perform the step.
      "A String",
    ],
    "threshold": "A String", # This field contains a value that indicates the minimum number of keys that
        # need to be used to sign the step's in-toto link.
    "expectedMaterials": [ # The following fields contain in-toto artifact rules identifying the
        # artifacts that enter this supply chain step, and exit the supply chain
        # step, i.e. materials and products of the step.
      { # Defines an object to declare an in-toto artifact rule
        "artifactRule": [
          "A String",
        ],
      },
    ],
    "expectedProducts": [
      { # Defines an object to declare an in-toto artifact rule
        "artifactRule": [
          "A String",
        ],
      },
    ],
    "signingKeys": [ # This field contains the public keys that can be used to verify the
        # signatures on the step metadata.
      { # This defines the format used to record keys used in the software supply
          # chain. An in-toto link is attested using one or more keys defined in the
          # in-toto layout. An example of this is:
          # {
          #   "key_id": "776a00e29f3559e0141b3b096f696abc6cfb0c657ab40f441132b345b0...",
          #   "key_type": "rsa",
          #   "public_key_value": "-----BEGIN PUBLIC KEY-----\nMIIBojANBgkqhkiG9w0B...",
          #   "key_scheme": "rsassa-pss-sha256"
          # }
          # The format for in-toto's key definition can be found in section 4.2 of the
          # in-toto specification.
        "keyType": "A String", # This field identifies the specific signing method. Eg: "rsa", "ed25519",
            # and "ecdsa".
        "keyId": "A String", # key_id is an identifier for the signing key.
        "publicKeyValue": "A String", # This field contains the actual public key.
        "keyScheme": "A String", # This field contains the corresponding signature scheme.
            # Eg: "rsassa-pss-sha256".
      },
    ],
  },
  "build": { # Note holding the version of the provider's builder and the signature of the # A note describing build provenance for a verifiable build.
      # provenance message in the build details occurrence.
    "builderVersion": "A String", # Required. Immutable. Version of the builder which produced this build.
    "signature": { # Message encapsulating the signature of the verified build. # Signature of the build in occurrences pointing to this build note
        # containing build details.
      "publicKey": "A String", # Public key of the builder which can be used to verify that the related
          # findings are valid and unchanged. If `key_type` is empty, this defaults
          # to PEM encoded public keys.
          #
          # This field may be empty if `key_id` references an external key.
          #
          # For Cloud Build based signatures, this is a PEM encoded public
          # key. To verify the Cloud Build signature, place the contents of
          # this field into a file (public.pem). The signature field is base64-decoded
          # into its binary representation in signature.bin, and the provenance bytes
          # from `BuildDetails` are base64-decoded into a binary representation in
          # signed.bin. OpenSSL can then verify the signature:
          # `openssl sha256 -verify public.pem -signature signature.bin signed.bin`
      "keyType": "A String", # The type of the key, either stored in `public_key` or referenced in
          # `key_id`.
      "keyId": "A String", # An ID for the key used to sign. This could be either an ID for the key
          # stored in `public_key` (such as the ID or fingerprint for a PGP key, or the
          # CN for a cert), or a reference to an external key (such as a reference to a
          # key in Cloud Key Management Service).
      "signature": "A String", # Required. Signature of the related `BuildProvenance`. In JSON, this is
          # base-64 encoded.
    },
  },
  "baseImage": { # Basis describes the base image portion (Note) of the DockerImage # A note describing a base image.
      # relationship. Linked occurrences are derived from this or an
      # equivalent image via:
      #   FROM <Basis.resource_url>
      # Or an equivalent reference, e.g. a tag of the resource_url.
    "resourceUrl": "A String", # Required. Immutable. The resource_url for the resource representing the
        # basis of associated occurrence images.
    "fingerprint": { # A set of properties that uniquely identify a given Docker image. # Required. Immutable. The fingerprint of the base image.
      "v1Name": "A String", # Required. The layer ID of the final layer in the Docker image's v1
          # representation.
      "v2Blob": [ # Required. The ordered list of v2 blobs that represent a given image.
        "A String",
      ],
      "v2Name": "A String", # Output only. The name of the image's v2 blobs computed via:
          #   [bottom] := v2_blobbottom := sha256(v2_blob[N] + " " + v2_name[N+1])
          # Only the name of the final blob is kept.
    },
  },
  "expirationTime": "A String", # Time of expiration for this note. Empty if note does not expire.
  "deployable": { # An artifact that can be deployed in some runtime. # A note describing something that can be deployed.
    "resourceUri": [ # Required. Resource URI for the artifact being deployed.
      "A String",
    ],
  },
  "shortDescription": "A String", # A one sentence description of this note.
  "createTime": "A String", # Output only. The time this note was created. This field can be used as a
      # filter in list requests.
  "discovery": { # A note that indicates a type of analysis a provider would perform. This note # A note describing the initial analysis of a resource.
      # exists in a provider's project. A `Discovery` occurrence is created in a
      # consumer's project at the start of analysis.
    "analysisKind": "A String", # Required. Immutable. The kind of analysis that is handled by this
        # discovery.
  },
}

  noteId: string, Required. The ID to use for this note.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # A type of analysis that can be done for a resource.
    "updateTime": "A String", # Output only. The time this note was last updated. This field can be used as
        # a filter in list requests.
    "relatedNoteNames": [ # Other notes related to this note.
      "A String",
    ],
    "name": "A String", # Output only. The name of the note in the form of
        # `projects/[PROVIDER_ID]/notes/[NOTE_ID]`.
    "package": { # This represents a particular package that is distributed over various # A note describing a package hosted by various package managers.
        # channels. E.g., glibc (aka libc6) is distributed by many, at various
        # versions.
      "distribution": [ # The various channels by which a package is distributed.
        { # This represents a particular channel of distribution for a given package.
            # E.g., Debian's jessie-backports dpkg mirror.
          "cpeUri": "A String", # Required. The cpe_uri in [CPE format](https://cpe.mitre.org/specification/)
              # denoting the package manager version distributing a package.
          "maintainer": "A String", # A freeform string denoting the maintainer of this package.
          "description": "A String", # The distribution channel-specific description of this package.
          "url": "A String", # The distribution channel-specific homepage for this package.
          "architecture": "A String", # The CPU architecture for which packages in this distribution channel were
              # built.
          "latestVersion": { # Version contains structured information about the version of a package. # The latest available version of this package in this distribution channel.
            "epoch": 42, # Used to correct mistakes in the version numbering scheme.
            "kind": "A String", # Required. Distinguishes between sentinel MIN/MAX versions and normal
                # versions.
            "name": "A String", # Required only when version kind is NORMAL. The main part of the version
                # name.
            "revision": "A String", # The iteration of the package build from the above version.
          },
        },
      ],
      "name": "A String", # Required. Immutable. The name of the package.
    },
    "vulnerability": { # Vulnerability provides metadata about a security vulnerability in a Note. # A note describing a package vulnerability.
      "windowsDetails": [ # Windows details get their own format because the information format and
          # model don't match a normal detail. Specifically Windows updates are done as
          # patches, thus Windows vulnerabilities really are a missing package, rather
          # than a package being at an incorrect version.
        {
          "cpeUri": "A String", # Required. The CPE URI in
              # [cpe format](https://cpe.mitre.org/specification/) in which the
              # vulnerability manifests. Examples include distro or storage location for
              # vulnerable jar.
          "fixingKbs": [ # Required. The names of the KBs which have hotfixes to mitigate this
              # vulnerability. Note that there may be multiple hotfixes (and thus
              # multiple KBs) that mitigate a given vulnerability. Currently any listed
              # kb's presence is considered a fix.
            {
              "url": "A String", # A link to the KB in the Windows update catalog -
                  # https://www.catalog.update.microsoft.com/
              "name": "A String", # The KB name (generally of the form KB[0-9]+ i.e. KB123456).
            },
          ],
          "name": "A String", # Required. The name of the vulnerability.
          "description": "A String", # The description of the vulnerability.
        },
      ],
      "cvssV3": { # Common Vulnerability Scoring System version 3. # The full description of the CVSSv3.
          # For details, see https://www.first.org/cvss/specification-document
        "attackComplexity": "A String",
        "attackVector": "A String", # Base Metrics
            # Represents the intrinsic characteristics of a vulnerability that are
            # constant over time and across user environments.
        "privilegesRequired": "A String",
        "userInteraction": "A String",
        "baseScore": 3.14, # The base score is a function of the base metric scores.
        "availabilityImpact": "A String",
        "impactScore": 3.14,
        "exploitabilityScore": 3.14,
        "scope": "A String",
        "integrityImpact": "A String",
        "confidentialityImpact": "A String",
      },
      "cvssScore": 3.14, # The CVSS score for this vulnerability.
      "severity": "A String", # Note provider assigned impact of the vulnerability.
      "details": [ # All information about the package to specifically identify this
          # vulnerability. One entry per (version range and cpe_uri) the package
          # vulnerability has manifested in.
        { # Identifies all appearances of this vulnerability in the package for a
            # specific distro/location. For example: glibc in
            # cpe:/o:debian:debian_linux:8 for versions 2.1 - 2.2
          "severityName": "A String", # The severity (eg: distro assigned severity) for this vulnerability.
          "cpeUri": "A String", # Required. The CPE URI in
              # [cpe format](https://cpe.mitre.org/specification/) in which the
              # vulnerability manifests. Examples include distro or storage location for
              # vulnerable jar.
          "description": "A String", # A vendor-specific description of this note.
          "minAffectedVersion": { # Version contains structured information about the version of a package. # The min version of the package in which the vulnerability exists.
            "epoch": 42, # Used to correct mistakes in the version numbering scheme.
            "kind": "A String", # Required. Distinguishes between sentinel MIN/MAX versions and normal
                # versions.
            "name": "A String", # Required only when version kind is NORMAL. The main part of the version
                # name.
            "revision": "A String", # The iteration of the package build from the above version.
          },
          "package": "A String", # Required. The name of the package where the vulnerability was found.
          "isObsolete": True or False, # Whether this detail is obsolete. Occurrences are expected not to point to
              # obsolete details.
          "packageType": "A String", # The type of package; whether native or non native(ruby gems, node.js
              # packages etc).
          "sourceUpdateTime": "A String", # The time this information was last changed at the source. This is an
              # upstream timestamp from the underlying information source - e.g. Ubuntu
              # security tracker.
          "maxAffectedVersion": { # Version contains structured information about the version of a package. # The max version of the package in which the vulnerability exists.
            "epoch": 42, # Used to correct mistakes in the version numbering scheme.
            "kind": "A String", # Required. Distinguishes between sentinel MIN/MAX versions and normal
                # versions.
            "name": "A String", # Required only when version kind is NORMAL. The main part of the version
                # name.
            "revision": "A String", # The iteration of the package build from the above version.
          },
          "fixedLocation": { # The location of the vulnerability. # The fix for this specific package version.
            "cpeUri": "A String", # Required. The CPE URI in [cpe format](https://cpe.mitre.org/specification/)
                # format. Examples include distro or storage location for vulnerable jar.
            "version": { # Version contains structured information about the version of a package. # Required. The version of the package being described.
              "epoch": 42, # Used to correct mistakes in the version numbering scheme.
              "kind": "A String", # Required. Distinguishes between sentinel MIN/MAX versions and normal
                  # versions.
              "name": "A String", # Required only when version kind is NORMAL. The main part of the version
                  # name.
              "revision": "A String", # The iteration of the package build from the above version.
            },
            "package": "A String", # Required. The package being described.
          },
        },
      ],
      "sourceUpdateTime": "A String", # The time this information was last changed at the source. This is an
          # upstream timestamp from the underlying information source - e.g. Ubuntu
          # security tracker.
    },
    "kind": "A String", # Output only. The type of analysis. This field can be used as a filter in
        # list requests.
    "relatedUrl": [ # URLs associated with this note.
      { # Metadata for any related URL information.
        "url": "A String", # Specific URL associated with the resource.
        "label": "A String", # Label to describe usage of the URL.
      },
    ],
    "longDescription": "A String", # A detailed description of this note.
    "attestationAuthority": { # Note kind that represents a logical attestation "role" or "authority". For # A note describing an attestation role.
        # example, an organization might have one `Authority` for "QA" and one for
        # "build". This note is intended to act strictly as a grouping mechanism for
        # the attached occurrences (Attestations). This grouping mechanism also
        # provides a security boundary, since IAM ACLs gate the ability for a principle
        # to attach an occurrence to a given note. It also provides a single point of
        # lookup to find all attached attestation occurrences, even if they don't all
        # live in the same project.
      "hint": { # This submessage provides human-readable hints about the purpose of the # Hint hints at the purpose of the attestation authority.
          # authority. Because the name of a note acts as its resource reference, it is
          # important to disambiguate the canonical name of the Note (which might be a
          # UUID for security purposes) from "readable" names more suitable for debug
          # output. Note that these hints should not be used to look up authorities in
          # security sensitive contexts, such as when looking up attestations to
          # verify.
        "humanReadableName": "A String", # Required. The human readable name of this attestation authority, for
            # example "qa".
      },
    },
    "intoto": { # This contains the fields corresponding to the definition of a software supply # A note describing an in-toto link.
        # chain step in an in-toto layout. This information goes into a Grafeas note.
      "stepName": "A String", # This field identifies the name of the step in the supply chain.
      "expectedCommand": [ # This field contains the expected command used to perform the step.
        "A String",
      ],
      "threshold": "A String", # This field contains a value that indicates the minimum number of keys that
          # need to be used to sign the step's in-toto link.
      "expectedMaterials": [ # The following fields contain in-toto artifact rules identifying the
          # artifacts that enter this supply chain step, and exit the supply chain
          # step, i.e. materials and products of the step.
        { # Defines an object to declare an in-toto artifact rule
          "artifactRule": [
            "A String",
          ],
        },
      ],
      "expectedProducts": [
        { # Defines an object to declare an in-toto artifact rule
          "artifactRule": [
            "A String",
          ],
        },
      ],
      "signingKeys": [ # This field contains the public keys that can be used to verify the
          # signatures on the step metadata.
        { # This defines the format used to record keys used in the software supply
            # chain. An in-toto link is attested using one or more keys defined in the
            # in-toto layout. An example of this is:
            # {
            #   "key_id": "776a00e29f3559e0141b3b096f696abc6cfb0c657ab40f441132b345b0...",
            #   "key_type": "rsa",
            #   "public_key_value": "-----BEGIN PUBLIC KEY-----\nMIIBojANBgkqhkiG9w0B...",
            #   "key_scheme": "rsassa-pss-sha256"
            # }
            # The format for in-toto's key definition can be found in section 4.2 of the
            # in-toto specification.
          "keyType": "A String", # This field identifies the specific signing method. Eg: "rsa", "ed25519",
              # and "ecdsa".
          "keyId": "A String", # key_id is an identifier for the signing key.
          "publicKeyValue": "A String", # This field contains the actual public key.
          "keyScheme": "A String", # This field contains the corresponding signature scheme.
              # Eg: "rsassa-pss-sha256".
        },
      ],
    },
    "build": { # Note holding the version of the provider's builder and the signature of the # A note describing build provenance for a verifiable build.
        # provenance message in the build details occurrence.
      "builderVersion": "A String", # Required. Immutable. Version of the builder which produced this build.
      "signature": { # Message encapsulating the signature of the verified build. # Signature of the build in occurrences pointing to this build note
          # containing build details.
        "publicKey": "A String", # Public key of the builder which can be used to verify that the related
            # findings are valid and unchanged. If `key_type` is empty, this defaults
            # to PEM encoded public keys.
            #
            # This field may be empty if `key_id` references an external key.
            #
            # For Cloud Build based signatures, this is a PEM encoded public
            # key. To verify the Cloud Build signature, place the contents of
            # this field into a file (public.pem). The signature field is base64-decoded
            # into its binary representation in signature.bin, and the provenance bytes
            # from `BuildDetails` are base64-decoded into a binary representation in
            # signed.bin. OpenSSL can then verify the signature:
            # `openssl sha256 -verify public.pem -signature signature.bin signed.bin`
        "keyType": "A String", # The type of the key, either stored in `public_key` or referenced in
            # `key_id`.
        "keyId": "A String", # An ID for the key used to sign. This could be either an ID for the key
            # stored in `public_key` (such as the ID or fingerprint for a PGP key, or the
            # CN for a cert), or a reference to an external key (such as a reference to a
            # key in Cloud Key Management Service).
        "signature": "A String", # Required. Signature of the related `BuildProvenance`. In JSON, this is
            # base-64 encoded.
      },
    },
    "baseImage": { # Basis describes the base image portion (Note) of the DockerImage # A note describing a base image.
        # relationship. Linked occurrences are derived from this or an
        # equivalent image via:
        #   FROM <Basis.resource_url>
        # Or an equivalent reference, e.g. a tag of the resource_url.
      "resourceUrl": "A String", # Required. Immutable. The resource_url for the resource representing the
          # basis of associated occurrence images.
      "fingerprint": { # A set of properties that uniquely identify a given Docker image. # Required. Immutable. The fingerprint of the base image.
        "v1Name": "A String", # Required. The layer ID of the final layer in the Docker image's v1
            # representation.
        "v2Blob": [ # Required. The ordered list of v2 blobs that represent a given image.
          "A String",
        ],
        "v2Name": "A String", # Output only. The name of the image's v2 blobs computed via:
            #   [bottom] := v2_blobbottom := sha256(v2_blob[N] + " " + v2_name[N+1])
            # Only the name of the final blob is kept.
      },
    },
    "expirationTime": "A String", # Time of expiration for this note. Empty if note does not expire.
    "deployable": { # An artifact that can be deployed in some runtime. # A note describing something that can be deployed.
      "resourceUri": [ # Required. Resource URI for the artifact being deployed.
        "A String",
      ],
    },
    "shortDescription": "A String", # A one sentence description of this note.
    "createTime": "A String", # Output only. The time this note was created. This field can be used as a
        # filter in list requests.
    "discovery": { # A note that indicates a type of analysis a provider would perform. This note # A note describing the initial analysis of a resource.
        # exists in a provider's project. A `Discovery` occurrence is created in a
        # consumer's project at the start of analysis.
      "analysisKind": "A String", # Required. Immutable. The kind of analysis that is handled by this
          # discovery.
    },
  }
delete(name, x__xgafv=None)
Deletes the specified note.

Args:
  name: string, Required. The name of the note in the form of
`projects/[PROVIDER_ID]/notes/[NOTE_ID]`. (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 `{}`.
  }
get(name, x__xgafv=None)
Gets the specified note.

Args:
  name: string, Required. The name of the note in the form of
`projects/[PROVIDER_ID]/notes/[NOTE_ID]`. (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # A type of analysis that can be done for a resource.
    "updateTime": "A String", # Output only. The time this note was last updated. This field can be used as
        # a filter in list requests.
    "relatedNoteNames": [ # Other notes related to this note.
      "A String",
    ],
    "name": "A String", # Output only. The name of the note in the form of
        # `projects/[PROVIDER_ID]/notes/[NOTE_ID]`.
    "package": { # This represents a particular package that is distributed over various # A note describing a package hosted by various package managers.
        # channels. E.g., glibc (aka libc6) is distributed by many, at various
        # versions.
      "distribution": [ # The various channels by which a package is distributed.
        { # This represents a particular channel of distribution for a given package.
            # E.g., Debian's jessie-backports dpkg mirror.
          "cpeUri": "A String", # Required. The cpe_uri in [CPE format](https://cpe.mitre.org/specification/)
              # denoting the package manager version distributing a package.
          "maintainer": "A String", # A freeform string denoting the maintainer of this package.
          "description": "A String", # The distribution channel-specific description of this package.
          "url": "A String", # The distribution channel-specific homepage for this package.
          "architecture": "A String", # The CPU architecture for which packages in this distribution channel were
              # built.
          "latestVersion": { # Version contains structured information about the version of a package. # The latest available version of this package in this distribution channel.
            "epoch": 42, # Used to correct mistakes in the version numbering scheme.
            "kind": "A String", # Required. Distinguishes between sentinel MIN/MAX versions and normal
                # versions.
            "name": "A String", # Required only when version kind is NORMAL. The main part of the version
                # name.
            "revision": "A String", # The iteration of the package build from the above version.
          },
        },
      ],
      "name": "A String", # Required. Immutable. The name of the package.
    },
    "vulnerability": { # Vulnerability provides metadata about a security vulnerability in a Note. # A note describing a package vulnerability.
      "windowsDetails": [ # Windows details get their own format because the information format and
          # model don't match a normal detail. Specifically Windows updates are done as
          # patches, thus Windows vulnerabilities really are a missing package, rather
          # than a package being at an incorrect version.
        {
          "cpeUri": "A String", # Required. The CPE URI in
              # [cpe format](https://cpe.mitre.org/specification/) in which the
              # vulnerability manifests. Examples include distro or storage location for
              # vulnerable jar.
          "fixingKbs": [ # Required. The names of the KBs which have hotfixes to mitigate this
              # vulnerability. Note that there may be multiple hotfixes (and thus
              # multiple KBs) that mitigate a given vulnerability. Currently any listed
              # kb's presence is considered a fix.
            {
              "url": "A String", # A link to the KB in the Windows update catalog -
                  # https://www.catalog.update.microsoft.com/
              "name": "A String", # The KB name (generally of the form KB[0-9]+ i.e. KB123456).
            },
          ],
          "name": "A String", # Required. The name of the vulnerability.
          "description": "A String", # The description of the vulnerability.
        },
      ],
      "cvssV3": { # Common Vulnerability Scoring System version 3. # The full description of the CVSSv3.
          # For details, see https://www.first.org/cvss/specification-document
        "attackComplexity": "A String",
        "attackVector": "A String", # Base Metrics
            # Represents the intrinsic characteristics of a vulnerability that are
            # constant over time and across user environments.
        "privilegesRequired": "A String",
        "userInteraction": "A String",
        "baseScore": 3.14, # The base score is a function of the base metric scores.
        "availabilityImpact": "A String",
        "impactScore": 3.14,
        "exploitabilityScore": 3.14,
        "scope": "A String",
        "integrityImpact": "A String",
        "confidentialityImpact": "A String",
      },
      "cvssScore": 3.14, # The CVSS score for this vulnerability.
      "severity": "A String", # Note provider assigned impact of the vulnerability.
      "details": [ # All information about the package to specifically identify this
          # vulnerability. One entry per (version range and cpe_uri) the package
          # vulnerability has manifested in.
        { # Identifies all appearances of this vulnerability in the package for a
            # specific distro/location. For example: glibc in
            # cpe:/o:debian:debian_linux:8 for versions 2.1 - 2.2
          "severityName": "A String", # The severity (eg: distro assigned severity) for this vulnerability.
          "cpeUri": "A String", # Required. The CPE URI in
              # [cpe format](https://cpe.mitre.org/specification/) in which the
              # vulnerability manifests. Examples include distro or storage location for
              # vulnerable jar.
          "description": "A String", # A vendor-specific description of this note.
          "minAffectedVersion": { # Version contains structured information about the version of a package. # The min version of the package in which the vulnerability exists.
            "epoch": 42, # Used to correct mistakes in the version numbering scheme.
            "kind": "A String", # Required. Distinguishes between sentinel MIN/MAX versions and normal
                # versions.
            "name": "A String", # Required only when version kind is NORMAL. The main part of the version
                # name.
            "revision": "A String", # The iteration of the package build from the above version.
          },
          "package": "A String", # Required. The name of the package where the vulnerability was found.
          "isObsolete": True or False, # Whether this detail is obsolete. Occurrences are expected not to point to
              # obsolete details.
          "packageType": "A String", # The type of package; whether native or non native(ruby gems, node.js
              # packages etc).
          "sourceUpdateTime": "A String", # The time this information was last changed at the source. This is an
              # upstream timestamp from the underlying information source - e.g. Ubuntu
              # security tracker.
          "maxAffectedVersion": { # Version contains structured information about the version of a package. # The max version of the package in which the vulnerability exists.
            "epoch": 42, # Used to correct mistakes in the version numbering scheme.
            "kind": "A String", # Required. Distinguishes between sentinel MIN/MAX versions and normal
                # versions.
            "name": "A String", # Required only when version kind is NORMAL. The main part of the version
                # name.
            "revision": "A String", # The iteration of the package build from the above version.
          },
          "fixedLocation": { # The location of the vulnerability. # The fix for this specific package version.
            "cpeUri": "A String", # Required. The CPE URI in [cpe format](https://cpe.mitre.org/specification/)
                # format. Examples include distro or storage location for vulnerable jar.
            "version": { # Version contains structured information about the version of a package. # Required. The version of the package being described.
              "epoch": 42, # Used to correct mistakes in the version numbering scheme.
              "kind": "A String", # Required. Distinguishes between sentinel MIN/MAX versions and normal
                  # versions.
              "name": "A String", # Required only when version kind is NORMAL. The main part of the version
                  # name.
              "revision": "A String", # The iteration of the package build from the above version.
            },
            "package": "A String", # Required. The package being described.
          },
        },
      ],
      "sourceUpdateTime": "A String", # The time this information was last changed at the source. This is an
          # upstream timestamp from the underlying information source - e.g. Ubuntu
          # security tracker.
    },
    "kind": "A String", # Output only. The type of analysis. This field can be used as a filter in
        # list requests.
    "relatedUrl": [ # URLs associated with this note.
      { # Metadata for any related URL information.
        "url": "A String", # Specific URL associated with the resource.
        "label": "A String", # Label to describe usage of the URL.
      },
    ],
    "longDescription": "A String", # A detailed description of this note.
    "attestationAuthority": { # Note kind that represents a logical attestation "role" or "authority". For # A note describing an attestation role.
        # example, an organization might have one `Authority` for "QA" and one for
        # "build". This note is intended to act strictly as a grouping mechanism for
        # the attached occurrences (Attestations). This grouping mechanism also
        # provides a security boundary, since IAM ACLs gate the ability for a principle
        # to attach an occurrence to a given note. It also provides a single point of
        # lookup to find all attached attestation occurrences, even if they don't all
        # live in the same project.
      "hint": { # This submessage provides human-readable hints about the purpose of the # Hint hints at the purpose of the attestation authority.
          # authority. Because the name of a note acts as its resource reference, it is
          # important to disambiguate the canonical name of the Note (which might be a
          # UUID for security purposes) from "readable" names more suitable for debug
          # output. Note that these hints should not be used to look up authorities in
          # security sensitive contexts, such as when looking up attestations to
          # verify.
        "humanReadableName": "A String", # Required. The human readable name of this attestation authority, for
            # example "qa".
      },
    },
    "intoto": { # This contains the fields corresponding to the definition of a software supply # A note describing an in-toto link.
        # chain step in an in-toto layout. This information goes into a Grafeas note.
      "stepName": "A String", # This field identifies the name of the step in the supply chain.
      "expectedCommand": [ # This field contains the expected command used to perform the step.
        "A String",
      ],
      "threshold": "A String", # This field contains a value that indicates the minimum number of keys that
          # need to be used to sign the step's in-toto link.
      "expectedMaterials": [ # The following fields contain in-toto artifact rules identifying the
          # artifacts that enter this supply chain step, and exit the supply chain
          # step, i.e. materials and products of the step.
        { # Defines an object to declare an in-toto artifact rule
          "artifactRule": [
            "A String",
          ],
        },
      ],
      "expectedProducts": [
        { # Defines an object to declare an in-toto artifact rule
          "artifactRule": [
            "A String",
          ],
        },
      ],
      "signingKeys": [ # This field contains the public keys that can be used to verify the
          # signatures on the step metadata.
        { # This defines the format used to record keys used in the software supply
            # chain. An in-toto link is attested using one or more keys defined in the
            # in-toto layout. An example of this is:
            # {
            #   "key_id": "776a00e29f3559e0141b3b096f696abc6cfb0c657ab40f441132b345b0...",
            #   "key_type": "rsa",
            #   "public_key_value": "-----BEGIN PUBLIC KEY-----\nMIIBojANBgkqhkiG9w0B...",
            #   "key_scheme": "rsassa-pss-sha256"
            # }
            # The format for in-toto's key definition can be found in section 4.2 of the
            # in-toto specification.
          "keyType": "A String", # This field identifies the specific signing method. Eg: "rsa", "ed25519",
              # and "ecdsa".
          "keyId": "A String", # key_id is an identifier for the signing key.
          "publicKeyValue": "A String", # This field contains the actual public key.
          "keyScheme": "A String", # This field contains the corresponding signature scheme.
              # Eg: "rsassa-pss-sha256".
        },
      ],
    },
    "build": { # Note holding the version of the provider's builder and the signature of the # A note describing build provenance for a verifiable build.
        # provenance message in the build details occurrence.
      "builderVersion": "A String", # Required. Immutable. Version of the builder which produced this build.
      "signature": { # Message encapsulating the signature of the verified build. # Signature of the build in occurrences pointing to this build note
          # containing build details.
        "publicKey": "A String", # Public key of the builder which can be used to verify that the related
            # findings are valid and unchanged. If `key_type` is empty, this defaults
            # to PEM encoded public keys.
            #
            # This field may be empty if `key_id` references an external key.
            #
            # For Cloud Build based signatures, this is a PEM encoded public
            # key. To verify the Cloud Build signature, place the contents of
            # this field into a file (public.pem). The signature field is base64-decoded
            # into its binary representation in signature.bin, and the provenance bytes
            # from `BuildDetails` are base64-decoded into a binary representation in
            # signed.bin. OpenSSL can then verify the signature:
            # `openssl sha256 -verify public.pem -signature signature.bin signed.bin`
        "keyType": "A String", # The type of the key, either stored in `public_key` or referenced in
            # `key_id`.
        "keyId": "A String", # An ID for the key used to sign. This could be either an ID for the key
            # stored in `public_key` (such as the ID or fingerprint for a PGP key, or the
            # CN for a cert), or a reference to an external key (such as a reference to a
            # key in Cloud Key Management Service).
        "signature": "A String", # Required. Signature of the related `BuildProvenance`. In JSON, this is
            # base-64 encoded.
      },
    },
    "baseImage": { # Basis describes the base image portion (Note) of the DockerImage # A note describing a base image.
        # relationship. Linked occurrences are derived from this or an
        # equivalent image via:
        #   FROM <Basis.resource_url>
        # Or an equivalent reference, e.g. a tag of the resource_url.
      "resourceUrl": "A String", # Required. Immutable. The resource_url for the resource representing the
          # basis of associated occurrence images.
      "fingerprint": { # A set of properties that uniquely identify a given Docker image. # Required. Immutable. The fingerprint of the base image.
        "v1Name": "A String", # Required. The layer ID of the final layer in the Docker image's v1
            # representation.
        "v2Blob": [ # Required. The ordered list of v2 blobs that represent a given image.
          "A String",
        ],
        "v2Name": "A String", # Output only. The name of the image's v2 blobs computed via:
            #   [bottom] := v2_blobbottom := sha256(v2_blob[N] + " " + v2_name[N+1])
            # Only the name of the final blob is kept.
      },
    },
    "expirationTime": "A String", # Time of expiration for this note. Empty if note does not expire.
    "deployable": { # An artifact that can be deployed in some runtime. # A note describing something that can be deployed.
      "resourceUri": [ # Required. Resource URI for the artifact being deployed.
        "A String",
      ],
    },
    "shortDescription": "A String", # A one sentence description of this note.
    "createTime": "A String", # Output only. The time this note was created. This field can be used as a
        # filter in list requests.
    "discovery": { # A note that indicates a type of analysis a provider would perform. This note # A note describing the initial analysis of a resource.
        # exists in a provider's project. A `Discovery` occurrence is created in a
        # consumer's project at the start of analysis.
      "analysisKind": "A String", # Required. Immutable. The kind of analysis that is handled by this
          # discovery.
    },
  }
getIamPolicy(resource, body=None, x__xgafv=None)
Gets the access control policy for a note or an occurrence resource.
Requires `containeranalysis.notes.setIamPolicy` or
`containeranalysis.occurrences.setIamPolicy` permission if the resource is
a note or occurrence, respectively.

The resource takes the format `projects/[PROJECT_ID]/notes/[NOTE_ID]` for
notes and `projects/[PROJECT_ID]/occurrences/[OCCURRENCE_ID]` for
occurrences.

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)
  body: object, The request body.
    The object takes the form of:

{ # Request message for `GetIamPolicy` method.
    "options": { # Encapsulates settings provided to GetIamPolicy. # OPTIONAL: A `GetPolicyOptions` object for specifying options to
        # `GetIamPolicy`.
      "requestedPolicyVersion": 42, # 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.
    },
  }

  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.
      #
      # Optionally, a `binding` can 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.
      #
      # **JSON example:**
      #
      #     {
      #       "bindings": [
      #         {
      #           "role": "roles/resourcemanager.organizationAdmin",
      #           "members": [
      #             "user:mike@example.com",
      #             "group:admins@example.com",
      #             "domain:google.com",
      #             "serviceAccount:my-project-id@appspot.gserviceaccount.com"
      #           ]
      #         },
      #         {
      #           "role": "roles/resourcemanager.organizationViewer",
      #           "members": ["user:eve@example.com"],
      #           "condition": {
      #             "title": "expirable access",
      #             "description": "Does not grant access after Sep 2020",
      #             "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')",
      #           }
      #         }
      #       ],
      #       "etag": "BwWWja0YfJA=",
      #       "version": 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 < timestamp('2020-10-01T00:00:00.000Z')
      #     - etag: BwWWja0YfJA=
      #     - version: 3
      #
      # For a description of IAM and its features, see the
      # [IAM documentation](https://cloud.google.com/iam/docs/).
    "bindings": [ # 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`.
        "role": "A String", # Role that is assigned to `members`.
            # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
        "condition": { # Represents a textual expression in the Common Expression Language (CEL) # The condition that is associated with this binding.
            # NOTE: An unsatisfied condition will not allow user access via current
            # binding. Different bindings, including their conditions, are examined
            # independently.
            # 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: "Summary size limit"
            #     description: "Determines if a summary is less than 100 chars"
            #     expression: "document.summary.size() < 100"
            #
            # Example (Equality):
            #
            #     title: "Requestor is owner"
            #     description: "Determines if requestor is the document owner"
            #     expression: "document.owner == request.auth.claims.email"
            #
            # Example (Logic):
            #
            #     title: "Public documents"
            #     description: "Determine whether the document should be publicly visible"
            #     expression: "document.type != 'private' && document.type != 'internal'"
            #
            # Example (Data Manipulation):
            #
            #     title: "Notification string"
            #     description: "Create a notification string with a timestamp."
            #     expression: "'New message received at ' + string(document.create_time)"
            #
            # 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.
          "description": "A String", # Optional. Description of the expression. This is a longer text which
              # describes the expression, e.g. when hovered over it in a UI.
          "expression": "A String", # Textual representation of an expression in Common Expression Language
              # syntax.
          "location": "A String", # Optional. String indicating the location of the expression for error
              # reporting, e.g. a file name and a position in the file.
          "title": "A String", # 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.
        },
        "members": [ # 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`.
            #
          "A String",
        ],
      },
    ],
    "etag": "A String", # `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.
    "version": 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.
  }
list(parent, pageToken=None, x__xgafv=None, pageSize=None, filter=None)
Lists notes for the specified project.

Args:
  parent: string, Required. The name of the project to list notes for in the form of
`projects/[PROJECT_ID]`. (required)
  pageToken: string, Token to provide to skip to a particular spot in the list.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format
  pageSize: integer, Number of notes to return in the list. Must be positive. Max allowed page
size is 1000. If not specified, page size defaults to 20.
  filter: string, The filter expression.

Returns:
  An object of the form:

    { # Response for listing notes.
    "nextPageToken": "A String", # The next pagination token in the list response. It should be used as
        # `page_token` for the following request. An empty value means no more
        # results.
    "notes": [ # The notes requested.
      { # A type of analysis that can be done for a resource.
        "updateTime": "A String", # Output only. The time this note was last updated. This field can be used as
            # a filter in list requests.
        "relatedNoteNames": [ # Other notes related to this note.
          "A String",
        ],
        "name": "A String", # Output only. The name of the note in the form of
            # `projects/[PROVIDER_ID]/notes/[NOTE_ID]`.
        "package": { # This represents a particular package that is distributed over various # A note describing a package hosted by various package managers.
            # channels. E.g., glibc (aka libc6) is distributed by many, at various
            # versions.
          "distribution": [ # The various channels by which a package is distributed.
            { # This represents a particular channel of distribution for a given package.
                # E.g., Debian's jessie-backports dpkg mirror.
              "cpeUri": "A String", # Required. The cpe_uri in [CPE format](https://cpe.mitre.org/specification/)
                  # denoting the package manager version distributing a package.
              "maintainer": "A String", # A freeform string denoting the maintainer of this package.
              "description": "A String", # The distribution channel-specific description of this package.
              "url": "A String", # The distribution channel-specific homepage for this package.
              "architecture": "A String", # The CPU architecture for which packages in this distribution channel were
                  # built.
              "latestVersion": { # Version contains structured information about the version of a package. # The latest available version of this package in this distribution channel.
                "epoch": 42, # Used to correct mistakes in the version numbering scheme.
                "kind": "A String", # Required. Distinguishes between sentinel MIN/MAX versions and normal
                    # versions.
                "name": "A String", # Required only when version kind is NORMAL. The main part of the version
                    # name.
                "revision": "A String", # The iteration of the package build from the above version.
              },
            },
          ],
          "name": "A String", # Required. Immutable. The name of the package.
        },
        "vulnerability": { # Vulnerability provides metadata about a security vulnerability in a Note. # A note describing a package vulnerability.
          "windowsDetails": [ # Windows details get their own format because the information format and
              # model don't match a normal detail. Specifically Windows updates are done as
              # patches, thus Windows vulnerabilities really are a missing package, rather
              # than a package being at an incorrect version.
            {
              "cpeUri": "A String", # Required. The CPE URI in
                  # [cpe format](https://cpe.mitre.org/specification/) in which the
                  # vulnerability manifests. Examples include distro or storage location for
                  # vulnerable jar.
              "fixingKbs": [ # Required. The names of the KBs which have hotfixes to mitigate this
                  # vulnerability. Note that there may be multiple hotfixes (and thus
                  # multiple KBs) that mitigate a given vulnerability. Currently any listed
                  # kb's presence is considered a fix.
                {
                  "url": "A String", # A link to the KB in the Windows update catalog -
                      # https://www.catalog.update.microsoft.com/
                  "name": "A String", # The KB name (generally of the form KB[0-9]+ i.e. KB123456).
                },
              ],
              "name": "A String", # Required. The name of the vulnerability.
              "description": "A String", # The description of the vulnerability.
            },
          ],
          "cvssV3": { # Common Vulnerability Scoring System version 3. # The full description of the CVSSv3.
              # For details, see https://www.first.org/cvss/specification-document
            "attackComplexity": "A String",
            "attackVector": "A String", # Base Metrics
                # Represents the intrinsic characteristics of a vulnerability that are
                # constant over time and across user environments.
            "privilegesRequired": "A String",
            "userInteraction": "A String",
            "baseScore": 3.14, # The base score is a function of the base metric scores.
            "availabilityImpact": "A String",
            "impactScore": 3.14,
            "exploitabilityScore": 3.14,
            "scope": "A String",
            "integrityImpact": "A String",
            "confidentialityImpact": "A String",
          },
          "cvssScore": 3.14, # The CVSS score for this vulnerability.
          "severity": "A String", # Note provider assigned impact of the vulnerability.
          "details": [ # All information about the package to specifically identify this
              # vulnerability. One entry per (version range and cpe_uri) the package
              # vulnerability has manifested in.
            { # Identifies all appearances of this vulnerability in the package for a
                # specific distro/location. For example: glibc in
                # cpe:/o:debian:debian_linux:8 for versions 2.1 - 2.2
              "severityName": "A String", # The severity (eg: distro assigned severity) for this vulnerability.
              "cpeUri": "A String", # Required. The CPE URI in
                  # [cpe format](https://cpe.mitre.org/specification/) in which the
                  # vulnerability manifests. Examples include distro or storage location for
                  # vulnerable jar.
              "description": "A String", # A vendor-specific description of this note.
              "minAffectedVersion": { # Version contains structured information about the version of a package. # The min version of the package in which the vulnerability exists.
                "epoch": 42, # Used to correct mistakes in the version numbering scheme.
                "kind": "A String", # Required. Distinguishes between sentinel MIN/MAX versions and normal
                    # versions.
                "name": "A String", # Required only when version kind is NORMAL. The main part of the version
                    # name.
                "revision": "A String", # The iteration of the package build from the above version.
              },
              "package": "A String", # Required. The name of the package where the vulnerability was found.
              "isObsolete": True or False, # Whether this detail is obsolete. Occurrences are expected not to point to
                  # obsolete details.
              "packageType": "A String", # The type of package; whether native or non native(ruby gems, node.js
                  # packages etc).
              "sourceUpdateTime": "A String", # The time this information was last changed at the source. This is an
                  # upstream timestamp from the underlying information source - e.g. Ubuntu
                  # security tracker.
              "maxAffectedVersion": { # Version contains structured information about the version of a package. # The max version of the package in which the vulnerability exists.
                "epoch": 42, # Used to correct mistakes in the version numbering scheme.
                "kind": "A String", # Required. Distinguishes between sentinel MIN/MAX versions and normal
                    # versions.
                "name": "A String", # Required only when version kind is NORMAL. The main part of the version
                    # name.
                "revision": "A String", # The iteration of the package build from the above version.
              },
              "fixedLocation": { # The location of the vulnerability. # The fix for this specific package version.
                "cpeUri": "A String", # Required. The CPE URI in [cpe format](https://cpe.mitre.org/specification/)
                    # format. Examples include distro or storage location for vulnerable jar.
                "version": { # Version contains structured information about the version of a package. # Required. The version of the package being described.
                  "epoch": 42, # Used to correct mistakes in the version numbering scheme.
                  "kind": "A String", # Required. Distinguishes between sentinel MIN/MAX versions and normal
                      # versions.
                  "name": "A String", # Required only when version kind is NORMAL. The main part of the version
                      # name.
                  "revision": "A String", # The iteration of the package build from the above version.
                },
                "package": "A String", # Required. The package being described.
              },
            },
          ],
          "sourceUpdateTime": "A String", # The time this information was last changed at the source. This is an
              # upstream timestamp from the underlying information source - e.g. Ubuntu
              # security tracker.
        },
        "kind": "A String", # Output only. The type of analysis. This field can be used as a filter in
            # list requests.
        "relatedUrl": [ # URLs associated with this note.
          { # Metadata for any related URL information.
            "url": "A String", # Specific URL associated with the resource.
            "label": "A String", # Label to describe usage of the URL.
          },
        ],
        "longDescription": "A String", # A detailed description of this note.
        "attestationAuthority": { # Note kind that represents a logical attestation "role" or "authority". For # A note describing an attestation role.
            # example, an organization might have one `Authority` for "QA" and one for
            # "build". This note is intended to act strictly as a grouping mechanism for
            # the attached occurrences (Attestations). This grouping mechanism also
            # provides a security boundary, since IAM ACLs gate the ability for a principle
            # to attach an occurrence to a given note. It also provides a single point of
            # lookup to find all attached attestation occurrences, even if they don't all
            # live in the same project.
          "hint": { # This submessage provides human-readable hints about the purpose of the # Hint hints at the purpose of the attestation authority.
              # authority. Because the name of a note acts as its resource reference, it is
              # important to disambiguate the canonical name of the Note (which might be a
              # UUID for security purposes) from "readable" names more suitable for debug
              # output. Note that these hints should not be used to look up authorities in
              # security sensitive contexts, such as when looking up attestations to
              # verify.
            "humanReadableName": "A String", # Required. The human readable name of this attestation authority, for
                # example "qa".
          },
        },
        "intoto": { # This contains the fields corresponding to the definition of a software supply # A note describing an in-toto link.
            # chain step in an in-toto layout. This information goes into a Grafeas note.
          "stepName": "A String", # This field identifies the name of the step in the supply chain.
          "expectedCommand": [ # This field contains the expected command used to perform the step.
            "A String",
          ],
          "threshold": "A String", # This field contains a value that indicates the minimum number of keys that
              # need to be used to sign the step's in-toto link.
          "expectedMaterials": [ # The following fields contain in-toto artifact rules identifying the
              # artifacts that enter this supply chain step, and exit the supply chain
              # step, i.e. materials and products of the step.
            { # Defines an object to declare an in-toto artifact rule
              "artifactRule": [
                "A String",
              ],
            },
          ],
          "expectedProducts": [
            { # Defines an object to declare an in-toto artifact rule
              "artifactRule": [
                "A String",
              ],
            },
          ],
          "signingKeys": [ # This field contains the public keys that can be used to verify the
              # signatures on the step metadata.
            { # This defines the format used to record keys used in the software supply
                # chain. An in-toto link is attested using one or more keys defined in the
                # in-toto layout. An example of this is:
                # {
                #   "key_id": "776a00e29f3559e0141b3b096f696abc6cfb0c657ab40f441132b345b0...",
                #   "key_type": "rsa",
                #   "public_key_value": "-----BEGIN PUBLIC KEY-----\nMIIBojANBgkqhkiG9w0B...",
                #   "key_scheme": "rsassa-pss-sha256"
                # }
                # The format for in-toto's key definition can be found in section 4.2 of the
                # in-toto specification.
              "keyType": "A String", # This field identifies the specific signing method. Eg: "rsa", "ed25519",
                  # and "ecdsa".
              "keyId": "A String", # key_id is an identifier for the signing key.
              "publicKeyValue": "A String", # This field contains the actual public key.
              "keyScheme": "A String", # This field contains the corresponding signature scheme.
                  # Eg: "rsassa-pss-sha256".
            },
          ],
        },
        "build": { # Note holding the version of the provider's builder and the signature of the # A note describing build provenance for a verifiable build.
            # provenance message in the build details occurrence.
          "builderVersion": "A String", # Required. Immutable. Version of the builder which produced this build.
          "signature": { # Message encapsulating the signature of the verified build. # Signature of the build in occurrences pointing to this build note
              # containing build details.
            "publicKey": "A String", # Public key of the builder which can be used to verify that the related
                # findings are valid and unchanged. If `key_type` is empty, this defaults
                # to PEM encoded public keys.
                #
                # This field may be empty if `key_id` references an external key.
                #
                # For Cloud Build based signatures, this is a PEM encoded public
                # key. To verify the Cloud Build signature, place the contents of
                # this field into a file (public.pem). The signature field is base64-decoded
                # into its binary representation in signature.bin, and the provenance bytes
                # from `BuildDetails` are base64-decoded into a binary representation in
                # signed.bin. OpenSSL can then verify the signature:
                # `openssl sha256 -verify public.pem -signature signature.bin signed.bin`
            "keyType": "A String", # The type of the key, either stored in `public_key` or referenced in
                # `key_id`.
            "keyId": "A String", # An ID for the key used to sign. This could be either an ID for the key
                # stored in `public_key` (such as the ID or fingerprint for a PGP key, or the
                # CN for a cert), or a reference to an external key (such as a reference to a
                # key in Cloud Key Management Service).
            "signature": "A String", # Required. Signature of the related `BuildProvenance`. In JSON, this is
                # base-64 encoded.
          },
        },
        "baseImage": { # Basis describes the base image portion (Note) of the DockerImage # A note describing a base image.
            # relationship. Linked occurrences are derived from this or an
            # equivalent image via:
            #   FROM <Basis.resource_url>
            # Or an equivalent reference, e.g. a tag of the resource_url.
          "resourceUrl": "A String", # Required. Immutable. The resource_url for the resource representing the
              # basis of associated occurrence images.
          "fingerprint": { # A set of properties that uniquely identify a given Docker image. # Required. Immutable. The fingerprint of the base image.
            "v1Name": "A String", # Required. The layer ID of the final layer in the Docker image's v1
                # representation.
            "v2Blob": [ # Required. The ordered list of v2 blobs that represent a given image.
              "A String",
            ],
            "v2Name": "A String", # Output only. The name of the image's v2 blobs computed via:
                #   [bottom] := v2_blobbottom := sha256(v2_blob[N] + " " + v2_name[N+1])
                # Only the name of the final blob is kept.
          },
        },
        "expirationTime": "A String", # Time of expiration for this note. Empty if note does not expire.
        "deployable": { # An artifact that can be deployed in some runtime. # A note describing something that can be deployed.
          "resourceUri": [ # Required. Resource URI for the artifact being deployed.
            "A String",
          ],
        },
        "shortDescription": "A String", # A one sentence description of this note.
        "createTime": "A String", # Output only. The time this note was created. This field can be used as a
            # filter in list requests.
        "discovery": { # A note that indicates a type of analysis a provider would perform. This note # A note describing the initial analysis of a resource.
            # exists in a provider's project. A `Discovery` occurrence is created in a
            # consumer's project at the start of analysis.
          "analysisKind": "A String", # Required. Immutable. The kind of analysis that is handled by this
              # discovery.
        },
      },
    ],
  }
list_next(previous_request, previous_response)
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 'execute()' on to request the next
  page. Returns None if there are no more items in the collection.
    
patch(name, body=None, updateMask=None, x__xgafv=None)
Updates the specified note.

Args:
  name: string, Required. The name of the note in the form of
`projects/[PROVIDER_ID]/notes/[NOTE_ID]`. (required)
  body: object, The request body.
    The object takes the form of:

{ # A type of analysis that can be done for a resource.
  "updateTime": "A String", # Output only. The time this note was last updated. This field can be used as
      # a filter in list requests.
  "relatedNoteNames": [ # Other notes related to this note.
    "A String",
  ],
  "name": "A String", # Output only. The name of the note in the form of
      # `projects/[PROVIDER_ID]/notes/[NOTE_ID]`.
  "package": { # This represents a particular package that is distributed over various # A note describing a package hosted by various package managers.
      # channels. E.g., glibc (aka libc6) is distributed by many, at various
      # versions.
    "distribution": [ # The various channels by which a package is distributed.
      { # This represents a particular channel of distribution for a given package.
          # E.g., Debian's jessie-backports dpkg mirror.
        "cpeUri": "A String", # Required. The cpe_uri in [CPE format](https://cpe.mitre.org/specification/)
            # denoting the package manager version distributing a package.
        "maintainer": "A String", # A freeform string denoting the maintainer of this package.
        "description": "A String", # The distribution channel-specific description of this package.
        "url": "A String", # The distribution channel-specific homepage for this package.
        "architecture": "A String", # The CPU architecture for which packages in this distribution channel were
            # built.
        "latestVersion": { # Version contains structured information about the version of a package. # The latest available version of this package in this distribution channel.
          "epoch": 42, # Used to correct mistakes in the version numbering scheme.
          "kind": "A String", # Required. Distinguishes between sentinel MIN/MAX versions and normal
              # versions.
          "name": "A String", # Required only when version kind is NORMAL. The main part of the version
              # name.
          "revision": "A String", # The iteration of the package build from the above version.
        },
      },
    ],
    "name": "A String", # Required. Immutable. The name of the package.
  },
  "vulnerability": { # Vulnerability provides metadata about a security vulnerability in a Note. # A note describing a package vulnerability.
    "windowsDetails": [ # Windows details get their own format because the information format and
        # model don't match a normal detail. Specifically Windows updates are done as
        # patches, thus Windows vulnerabilities really are a missing package, rather
        # than a package being at an incorrect version.
      {
        "cpeUri": "A String", # Required. The CPE URI in
            # [cpe format](https://cpe.mitre.org/specification/) in which the
            # vulnerability manifests. Examples include distro or storage location for
            # vulnerable jar.
        "fixingKbs": [ # Required. The names of the KBs which have hotfixes to mitigate this
            # vulnerability. Note that there may be multiple hotfixes (and thus
            # multiple KBs) that mitigate a given vulnerability. Currently any listed
            # kb's presence is considered a fix.
          {
            "url": "A String", # A link to the KB in the Windows update catalog -
                # https://www.catalog.update.microsoft.com/
            "name": "A String", # The KB name (generally of the form KB[0-9]+ i.e. KB123456).
          },
        ],
        "name": "A String", # Required. The name of the vulnerability.
        "description": "A String", # The description of the vulnerability.
      },
    ],
    "cvssV3": { # Common Vulnerability Scoring System version 3. # The full description of the CVSSv3.
        # For details, see https://www.first.org/cvss/specification-document
      "attackComplexity": "A String",
      "attackVector": "A String", # Base Metrics
          # Represents the intrinsic characteristics of a vulnerability that are
          # constant over time and across user environments.
      "privilegesRequired": "A String",
      "userInteraction": "A String",
      "baseScore": 3.14, # The base score is a function of the base metric scores.
      "availabilityImpact": "A String",
      "impactScore": 3.14,
      "exploitabilityScore": 3.14,
      "scope": "A String",
      "integrityImpact": "A String",
      "confidentialityImpact": "A String",
    },
    "cvssScore": 3.14, # The CVSS score for this vulnerability.
    "severity": "A String", # Note provider assigned impact of the vulnerability.
    "details": [ # All information about the package to specifically identify this
        # vulnerability. One entry per (version range and cpe_uri) the package
        # vulnerability has manifested in.
      { # Identifies all appearances of this vulnerability in the package for a
          # specific distro/location. For example: glibc in
          # cpe:/o:debian:debian_linux:8 for versions 2.1 - 2.2
        "severityName": "A String", # The severity (eg: distro assigned severity) for this vulnerability.
        "cpeUri": "A String", # Required. The CPE URI in
            # [cpe format](https://cpe.mitre.org/specification/) in which the
            # vulnerability manifests. Examples include distro or storage location for
            # vulnerable jar.
        "description": "A String", # A vendor-specific description of this note.
        "minAffectedVersion": { # Version contains structured information about the version of a package. # The min version of the package in which the vulnerability exists.
          "epoch": 42, # Used to correct mistakes in the version numbering scheme.
          "kind": "A String", # Required. Distinguishes between sentinel MIN/MAX versions and normal
              # versions.
          "name": "A String", # Required only when version kind is NORMAL. The main part of the version
              # name.
          "revision": "A String", # The iteration of the package build from the above version.
        },
        "package": "A String", # Required. The name of the package where the vulnerability was found.
        "isObsolete": True or False, # Whether this detail is obsolete. Occurrences are expected not to point to
            # obsolete details.
        "packageType": "A String", # The type of package; whether native or non native(ruby gems, node.js
            # packages etc).
        "sourceUpdateTime": "A String", # The time this information was last changed at the source. This is an
            # upstream timestamp from the underlying information source - e.g. Ubuntu
            # security tracker.
        "maxAffectedVersion": { # Version contains structured information about the version of a package. # The max version of the package in which the vulnerability exists.
          "epoch": 42, # Used to correct mistakes in the version numbering scheme.
          "kind": "A String", # Required. Distinguishes between sentinel MIN/MAX versions and normal
              # versions.
          "name": "A String", # Required only when version kind is NORMAL. The main part of the version
              # name.
          "revision": "A String", # The iteration of the package build from the above version.
        },
        "fixedLocation": { # The location of the vulnerability. # The fix for this specific package version.
          "cpeUri": "A String", # Required. The CPE URI in [cpe format](https://cpe.mitre.org/specification/)
              # format. Examples include distro or storage location for vulnerable jar.
          "version": { # Version contains structured information about the version of a package. # Required. The version of the package being described.
            "epoch": 42, # Used to correct mistakes in the version numbering scheme.
            "kind": "A String", # Required. Distinguishes between sentinel MIN/MAX versions and normal
                # versions.
            "name": "A String", # Required only when version kind is NORMAL. The main part of the version
                # name.
            "revision": "A String", # The iteration of the package build from the above version.
          },
          "package": "A String", # Required. The package being described.
        },
      },
    ],
    "sourceUpdateTime": "A String", # The time this information was last changed at the source. This is an
        # upstream timestamp from the underlying information source - e.g. Ubuntu
        # security tracker.
  },
  "kind": "A String", # Output only. The type of analysis. This field can be used as a filter in
      # list requests.
  "relatedUrl": [ # URLs associated with this note.
    { # Metadata for any related URL information.
      "url": "A String", # Specific URL associated with the resource.
      "label": "A String", # Label to describe usage of the URL.
    },
  ],
  "longDescription": "A String", # A detailed description of this note.
  "attestationAuthority": { # Note kind that represents a logical attestation "role" or "authority". For # A note describing an attestation role.
      # example, an organization might have one `Authority` for "QA" and one for
      # "build". This note is intended to act strictly as a grouping mechanism for
      # the attached occurrences (Attestations). This grouping mechanism also
      # provides a security boundary, since IAM ACLs gate the ability for a principle
      # to attach an occurrence to a given note. It also provides a single point of
      # lookup to find all attached attestation occurrences, even if they don't all
      # live in the same project.
    "hint": { # This submessage provides human-readable hints about the purpose of the # Hint hints at the purpose of the attestation authority.
        # authority. Because the name of a note acts as its resource reference, it is
        # important to disambiguate the canonical name of the Note (which might be a
        # UUID for security purposes) from "readable" names more suitable for debug
        # output. Note that these hints should not be used to look up authorities in
        # security sensitive contexts, such as when looking up attestations to
        # verify.
      "humanReadableName": "A String", # Required. The human readable name of this attestation authority, for
          # example "qa".
    },
  },
  "intoto": { # This contains the fields corresponding to the definition of a software supply # A note describing an in-toto link.
      # chain step in an in-toto layout. This information goes into a Grafeas note.
    "stepName": "A String", # This field identifies the name of the step in the supply chain.
    "expectedCommand": [ # This field contains the expected command used to perform the step.
      "A String",
    ],
    "threshold": "A String", # This field contains a value that indicates the minimum number of keys that
        # need to be used to sign the step's in-toto link.
    "expectedMaterials": [ # The following fields contain in-toto artifact rules identifying the
        # artifacts that enter this supply chain step, and exit the supply chain
        # step, i.e. materials and products of the step.
      { # Defines an object to declare an in-toto artifact rule
        "artifactRule": [
          "A String",
        ],
      },
    ],
    "expectedProducts": [
      { # Defines an object to declare an in-toto artifact rule
        "artifactRule": [
          "A String",
        ],
      },
    ],
    "signingKeys": [ # This field contains the public keys that can be used to verify the
        # signatures on the step metadata.
      { # This defines the format used to record keys used in the software supply
          # chain. An in-toto link is attested using one or more keys defined in the
          # in-toto layout. An example of this is:
          # {
          #   "key_id": "776a00e29f3559e0141b3b096f696abc6cfb0c657ab40f441132b345b0...",
          #   "key_type": "rsa",
          #   "public_key_value": "-----BEGIN PUBLIC KEY-----\nMIIBojANBgkqhkiG9w0B...",
          #   "key_scheme": "rsassa-pss-sha256"
          # }
          # The format for in-toto's key definition can be found in section 4.2 of the
          # in-toto specification.
        "keyType": "A String", # This field identifies the specific signing method. Eg: "rsa", "ed25519",
            # and "ecdsa".
        "keyId": "A String", # key_id is an identifier for the signing key.
        "publicKeyValue": "A String", # This field contains the actual public key.
        "keyScheme": "A String", # This field contains the corresponding signature scheme.
            # Eg: "rsassa-pss-sha256".
      },
    ],
  },
  "build": { # Note holding the version of the provider's builder and the signature of the # A note describing build provenance for a verifiable build.
      # provenance message in the build details occurrence.
    "builderVersion": "A String", # Required. Immutable. Version of the builder which produced this build.
    "signature": { # Message encapsulating the signature of the verified build. # Signature of the build in occurrences pointing to this build note
        # containing build details.
      "publicKey": "A String", # Public key of the builder which can be used to verify that the related
          # findings are valid and unchanged. If `key_type` is empty, this defaults
          # to PEM encoded public keys.
          #
          # This field may be empty if `key_id` references an external key.
          #
          # For Cloud Build based signatures, this is a PEM encoded public
          # key. To verify the Cloud Build signature, place the contents of
          # this field into a file (public.pem). The signature field is base64-decoded
          # into its binary representation in signature.bin, and the provenance bytes
          # from `BuildDetails` are base64-decoded into a binary representation in
          # signed.bin. OpenSSL can then verify the signature:
          # `openssl sha256 -verify public.pem -signature signature.bin signed.bin`
      "keyType": "A String", # The type of the key, either stored in `public_key` or referenced in
          # `key_id`.
      "keyId": "A String", # An ID for the key used to sign. This could be either an ID for the key
          # stored in `public_key` (such as the ID or fingerprint for a PGP key, or the
          # CN for a cert), or a reference to an external key (such as a reference to a
          # key in Cloud Key Management Service).
      "signature": "A String", # Required. Signature of the related `BuildProvenance`. In JSON, this is
          # base-64 encoded.
    },
  },
  "baseImage": { # Basis describes the base image portion (Note) of the DockerImage # A note describing a base image.
      # relationship. Linked occurrences are derived from this or an
      # equivalent image via:
      #   FROM <Basis.resource_url>
      # Or an equivalent reference, e.g. a tag of the resource_url.
    "resourceUrl": "A String", # Required. Immutable. The resource_url for the resource representing the
        # basis of associated occurrence images.
    "fingerprint": { # A set of properties that uniquely identify a given Docker image. # Required. Immutable. The fingerprint of the base image.
      "v1Name": "A String", # Required. The layer ID of the final layer in the Docker image's v1
          # representation.
      "v2Blob": [ # Required. The ordered list of v2 blobs that represent a given image.
        "A String",
      ],
      "v2Name": "A String", # Output only. The name of the image's v2 blobs computed via:
          #   [bottom] := v2_blobbottom := sha256(v2_blob[N] + " " + v2_name[N+1])
          # Only the name of the final blob is kept.
    },
  },
  "expirationTime": "A String", # Time of expiration for this note. Empty if note does not expire.
  "deployable": { # An artifact that can be deployed in some runtime. # A note describing something that can be deployed.
    "resourceUri": [ # Required. Resource URI for the artifact being deployed.
      "A String",
    ],
  },
  "shortDescription": "A String", # A one sentence description of this note.
  "createTime": "A String", # Output only. The time this note was created. This field can be used as a
      # filter in list requests.
  "discovery": { # A note that indicates a type of analysis a provider would perform. This note # A note describing the initial analysis of a resource.
      # exists in a provider's project. A `Discovery` occurrence is created in a
      # consumer's project at the start of analysis.
    "analysisKind": "A String", # Required. Immutable. The kind of analysis that is handled by this
        # discovery.
  },
}

  updateMask: string, The fields to update.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # A type of analysis that can be done for a resource.
    "updateTime": "A String", # Output only. The time this note was last updated. This field can be used as
        # a filter in list requests.
    "relatedNoteNames": [ # Other notes related to this note.
      "A String",
    ],
    "name": "A String", # Output only. The name of the note in the form of
        # `projects/[PROVIDER_ID]/notes/[NOTE_ID]`.
    "package": { # This represents a particular package that is distributed over various # A note describing a package hosted by various package managers.
        # channels. E.g., glibc (aka libc6) is distributed by many, at various
        # versions.
      "distribution": [ # The various channels by which a package is distributed.
        { # This represents a particular channel of distribution for a given package.
            # E.g., Debian's jessie-backports dpkg mirror.
          "cpeUri": "A String", # Required. The cpe_uri in [CPE format](https://cpe.mitre.org/specification/)
              # denoting the package manager version distributing a package.
          "maintainer": "A String", # A freeform string denoting the maintainer of this package.
          "description": "A String", # The distribution channel-specific description of this package.
          "url": "A String", # The distribution channel-specific homepage for this package.
          "architecture": "A String", # The CPU architecture for which packages in this distribution channel were
              # built.
          "latestVersion": { # Version contains structured information about the version of a package. # The latest available version of this package in this distribution channel.
            "epoch": 42, # Used to correct mistakes in the version numbering scheme.
            "kind": "A String", # Required. Distinguishes between sentinel MIN/MAX versions and normal
                # versions.
            "name": "A String", # Required only when version kind is NORMAL. The main part of the version
                # name.
            "revision": "A String", # The iteration of the package build from the above version.
          },
        },
      ],
      "name": "A String", # Required. Immutable. The name of the package.
    },
    "vulnerability": { # Vulnerability provides metadata about a security vulnerability in a Note. # A note describing a package vulnerability.
      "windowsDetails": [ # Windows details get their own format because the information format and
          # model don't match a normal detail. Specifically Windows updates are done as
          # patches, thus Windows vulnerabilities really are a missing package, rather
          # than a package being at an incorrect version.
        {
          "cpeUri": "A String", # Required. The CPE URI in
              # [cpe format](https://cpe.mitre.org/specification/) in which the
              # vulnerability manifests. Examples include distro or storage location for
              # vulnerable jar.
          "fixingKbs": [ # Required. The names of the KBs which have hotfixes to mitigate this
              # vulnerability. Note that there may be multiple hotfixes (and thus
              # multiple KBs) that mitigate a given vulnerability. Currently any listed
              # kb's presence is considered a fix.
            {
              "url": "A String", # A link to the KB in the Windows update catalog -
                  # https://www.catalog.update.microsoft.com/
              "name": "A String", # The KB name (generally of the form KB[0-9]+ i.e. KB123456).
            },
          ],
          "name": "A String", # Required. The name of the vulnerability.
          "description": "A String", # The description of the vulnerability.
        },
      ],
      "cvssV3": { # Common Vulnerability Scoring System version 3. # The full description of the CVSSv3.
          # For details, see https://www.first.org/cvss/specification-document
        "attackComplexity": "A String",
        "attackVector": "A String", # Base Metrics
            # Represents the intrinsic characteristics of a vulnerability that are
            # constant over time and across user environments.
        "privilegesRequired": "A String",
        "userInteraction": "A String",
        "baseScore": 3.14, # The base score is a function of the base metric scores.
        "availabilityImpact": "A String",
        "impactScore": 3.14,
        "exploitabilityScore": 3.14,
        "scope": "A String",
        "integrityImpact": "A String",
        "confidentialityImpact": "A String",
      },
      "cvssScore": 3.14, # The CVSS score for this vulnerability.
      "severity": "A String", # Note provider assigned impact of the vulnerability.
      "details": [ # All information about the package to specifically identify this
          # vulnerability. One entry per (version range and cpe_uri) the package
          # vulnerability has manifested in.
        { # Identifies all appearances of this vulnerability in the package for a
            # specific distro/location. For example: glibc in
            # cpe:/o:debian:debian_linux:8 for versions 2.1 - 2.2
          "severityName": "A String", # The severity (eg: distro assigned severity) for this vulnerability.
          "cpeUri": "A String", # Required. The CPE URI in
              # [cpe format](https://cpe.mitre.org/specification/) in which the
              # vulnerability manifests. Examples include distro or storage location for
              # vulnerable jar.
          "description": "A String", # A vendor-specific description of this note.
          "minAffectedVersion": { # Version contains structured information about the version of a package. # The min version of the package in which the vulnerability exists.
            "epoch": 42, # Used to correct mistakes in the version numbering scheme.
            "kind": "A String", # Required. Distinguishes between sentinel MIN/MAX versions and normal
                # versions.
            "name": "A String", # Required only when version kind is NORMAL. The main part of the version
                # name.
            "revision": "A String", # The iteration of the package build from the above version.
          },
          "package": "A String", # Required. The name of the package where the vulnerability was found.
          "isObsolete": True or False, # Whether this detail is obsolete. Occurrences are expected not to point to
              # obsolete details.
          "packageType": "A String", # The type of package; whether native or non native(ruby gems, node.js
              # packages etc).
          "sourceUpdateTime": "A String", # The time this information was last changed at the source. This is an
              # upstream timestamp from the underlying information source - e.g. Ubuntu
              # security tracker.
          "maxAffectedVersion": { # Version contains structured information about the version of a package. # The max version of the package in which the vulnerability exists.
            "epoch": 42, # Used to correct mistakes in the version numbering scheme.
            "kind": "A String", # Required. Distinguishes between sentinel MIN/MAX versions and normal
                # versions.
            "name": "A String", # Required only when version kind is NORMAL. The main part of the version
                # name.
            "revision": "A String", # The iteration of the package build from the above version.
          },
          "fixedLocation": { # The location of the vulnerability. # The fix for this specific package version.
            "cpeUri": "A String", # Required. The CPE URI in [cpe format](https://cpe.mitre.org/specification/)
                # format. Examples include distro or storage location for vulnerable jar.
            "version": { # Version contains structured information about the version of a package. # Required. The version of the package being described.
              "epoch": 42, # Used to correct mistakes in the version numbering scheme.
              "kind": "A String", # Required. Distinguishes between sentinel MIN/MAX versions and normal
                  # versions.
              "name": "A String", # Required only when version kind is NORMAL. The main part of the version
                  # name.
              "revision": "A String", # The iteration of the package build from the above version.
            },
            "package": "A String", # Required. The package being described.
          },
        },
      ],
      "sourceUpdateTime": "A String", # The time this information was last changed at the source. This is an
          # upstream timestamp from the underlying information source - e.g. Ubuntu
          # security tracker.
    },
    "kind": "A String", # Output only. The type of analysis. This field can be used as a filter in
        # list requests.
    "relatedUrl": [ # URLs associated with this note.
      { # Metadata for any related URL information.
        "url": "A String", # Specific URL associated with the resource.
        "label": "A String", # Label to describe usage of the URL.
      },
    ],
    "longDescription": "A String", # A detailed description of this note.
    "attestationAuthority": { # Note kind that represents a logical attestation "role" or "authority". For # A note describing an attestation role.
        # example, an organization might have one `Authority` for "QA" and one for
        # "build". This note is intended to act strictly as a grouping mechanism for
        # the attached occurrences (Attestations). This grouping mechanism also
        # provides a security boundary, since IAM ACLs gate the ability for a principle
        # to attach an occurrence to a given note. It also provides a single point of
        # lookup to find all attached attestation occurrences, even if they don't all
        # live in the same project.
      "hint": { # This submessage provides human-readable hints about the purpose of the # Hint hints at the purpose of the attestation authority.
          # authority. Because the name of a note acts as its resource reference, it is
          # important to disambiguate the canonical name of the Note (which might be a
          # UUID for security purposes) from "readable" names more suitable for debug
          # output. Note that these hints should not be used to look up authorities in
          # security sensitive contexts, such as when looking up attestations to
          # verify.
        "humanReadableName": "A String", # Required. The human readable name of this attestation authority, for
            # example "qa".
      },
    },
    "intoto": { # This contains the fields corresponding to the definition of a software supply # A note describing an in-toto link.
        # chain step in an in-toto layout. This information goes into a Grafeas note.
      "stepName": "A String", # This field identifies the name of the step in the supply chain.
      "expectedCommand": [ # This field contains the expected command used to perform the step.
        "A String",
      ],
      "threshold": "A String", # This field contains a value that indicates the minimum number of keys that
          # need to be used to sign the step's in-toto link.
      "expectedMaterials": [ # The following fields contain in-toto artifact rules identifying the
          # artifacts that enter this supply chain step, and exit the supply chain
          # step, i.e. materials and products of the step.
        { # Defines an object to declare an in-toto artifact rule
          "artifactRule": [
            "A String",
          ],
        },
      ],
      "expectedProducts": [
        { # Defines an object to declare an in-toto artifact rule
          "artifactRule": [
            "A String",
          ],
        },
      ],
      "signingKeys": [ # This field contains the public keys that can be used to verify the
          # signatures on the step metadata.
        { # This defines the format used to record keys used in the software supply
            # chain. An in-toto link is attested using one or more keys defined in the
            # in-toto layout. An example of this is:
            # {
            #   "key_id": "776a00e29f3559e0141b3b096f696abc6cfb0c657ab40f441132b345b0...",
            #   "key_type": "rsa",
            #   "public_key_value": "-----BEGIN PUBLIC KEY-----\nMIIBojANBgkqhkiG9w0B...",
            #   "key_scheme": "rsassa-pss-sha256"
            # }
            # The format for in-toto's key definition can be found in section 4.2 of the
            # in-toto specification.
          "keyType": "A String", # This field identifies the specific signing method. Eg: "rsa", "ed25519",
              # and "ecdsa".
          "keyId": "A String", # key_id is an identifier for the signing key.
          "publicKeyValue": "A String", # This field contains the actual public key.
          "keyScheme": "A String", # This field contains the corresponding signature scheme.
              # Eg: "rsassa-pss-sha256".
        },
      ],
    },
    "build": { # Note holding the version of the provider's builder and the signature of the # A note describing build provenance for a verifiable build.
        # provenance message in the build details occurrence.
      "builderVersion": "A String", # Required. Immutable. Version of the builder which produced this build.
      "signature": { # Message encapsulating the signature of the verified build. # Signature of the build in occurrences pointing to this build note
          # containing build details.
        "publicKey": "A String", # Public key of the builder which can be used to verify that the related
            # findings are valid and unchanged. If `key_type` is empty, this defaults
            # to PEM encoded public keys.
            #
            # This field may be empty if `key_id` references an external key.
            #
            # For Cloud Build based signatures, this is a PEM encoded public
            # key. To verify the Cloud Build signature, place the contents of
            # this field into a file (public.pem). The signature field is base64-decoded
            # into its binary representation in signature.bin, and the provenance bytes
            # from `BuildDetails` are base64-decoded into a binary representation in
            # signed.bin. OpenSSL can then verify the signature:
            # `openssl sha256 -verify public.pem -signature signature.bin signed.bin`
        "keyType": "A String", # The type of the key, either stored in `public_key` or referenced in
            # `key_id`.
        "keyId": "A String", # An ID for the key used to sign. This could be either an ID for the key
            # stored in `public_key` (such as the ID or fingerprint for a PGP key, or the
            # CN for a cert), or a reference to an external key (such as a reference to a
            # key in Cloud Key Management Service).
        "signature": "A String", # Required. Signature of the related `BuildProvenance`. In JSON, this is
            # base-64 encoded.
      },
    },
    "baseImage": { # Basis describes the base image portion (Note) of the DockerImage # A note describing a base image.
        # relationship. Linked occurrences are derived from this or an
        # equivalent image via:
        #   FROM <Basis.resource_url>
        # Or an equivalent reference, e.g. a tag of the resource_url.
      "resourceUrl": "A String", # Required. Immutable. The resource_url for the resource representing the
          # basis of associated occurrence images.
      "fingerprint": { # A set of properties that uniquely identify a given Docker image. # Required. Immutable. The fingerprint of the base image.
        "v1Name": "A String", # Required. The layer ID of the final layer in the Docker image's v1
            # representation.
        "v2Blob": [ # Required. The ordered list of v2 blobs that represent a given image.
          "A String",
        ],
        "v2Name": "A String", # Output only. The name of the image's v2 blobs computed via:
            #   [bottom] := v2_blobbottom := sha256(v2_blob[N] + " " + v2_name[N+1])
            # Only the name of the final blob is kept.
      },
    },
    "expirationTime": "A String", # Time of expiration for this note. Empty if note does not expire.
    "deployable": { # An artifact that can be deployed in some runtime. # A note describing something that can be deployed.
      "resourceUri": [ # Required. Resource URI for the artifact being deployed.
        "A String",
      ],
    },
    "shortDescription": "A String", # A one sentence description of this note.
    "createTime": "A String", # Output only. The time this note was created. This field can be used as a
        # filter in list requests.
    "discovery": { # A note that indicates a type of analysis a provider would perform. This note # A note describing the initial analysis of a resource.
        # exists in a provider's project. A `Discovery` occurrence is created in a
        # consumer's project at the start of analysis.
      "analysisKind": "A String", # Required. Immutable. The kind of analysis that is handled by this
          # discovery.
    },
  }
setIamPolicy(resource, body=None, x__xgafv=None)
Sets the access control policy on the specified note or occurrence.
Requires `containeranalysis.notes.setIamPolicy` or
`containeranalysis.occurrences.setIamPolicy` permission if the resource is
a note or an occurrence, respectively.

The resource takes the format `projects/[PROJECT_ID]/notes/[NOTE_ID]` for
notes and `projects/[PROJECT_ID]/occurrences/[OCCURRENCE_ID]` for
occurrences.

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.
    "policy": { # 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.
        #
        # Optionally, a `binding` can 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.
        #
        # **JSON example:**
        #
        #     {
        #       "bindings": [
        #         {
        #           "role": "roles/resourcemanager.organizationAdmin",
        #           "members": [
        #             "user:mike@example.com",
        #             "group:admins@example.com",
        #             "domain:google.com",
        #             "serviceAccount:my-project-id@appspot.gserviceaccount.com"
        #           ]
        #         },
        #         {
        #           "role": "roles/resourcemanager.organizationViewer",
        #           "members": ["user:eve@example.com"],
        #           "condition": {
        #             "title": "expirable access",
        #             "description": "Does not grant access after Sep 2020",
        #             "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')",
        #           }
        #         }
        #       ],
        #       "etag": "BwWWja0YfJA=",
        #       "version": 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 < timestamp('2020-10-01T00:00:00.000Z')
        #     - etag: BwWWja0YfJA=
        #     - version: 3
        #
        # For a description of IAM and its features, see the
        # [IAM documentation](https://cloud.google.com/iam/docs/).
      "bindings": [ # 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`.
          "role": "A String", # Role that is assigned to `members`.
              # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
          "condition": { # Represents a textual expression in the Common Expression Language (CEL) # The condition that is associated with this binding.
              # NOTE: An unsatisfied condition will not allow user access via current
              # binding. Different bindings, including their conditions, are examined
              # independently.
              # 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: "Summary size limit"
              #     description: "Determines if a summary is less than 100 chars"
              #     expression: "document.summary.size() < 100"
              #
              # Example (Equality):
              #
              #     title: "Requestor is owner"
              #     description: "Determines if requestor is the document owner"
              #     expression: "document.owner == request.auth.claims.email"
              #
              # Example (Logic):
              #
              #     title: "Public documents"
              #     description: "Determine whether the document should be publicly visible"
              #     expression: "document.type != 'private' && document.type != 'internal'"
              #
              # Example (Data Manipulation):
              #
              #     title: "Notification string"
              #     description: "Create a notification string with a timestamp."
              #     expression: "'New message received at ' + string(document.create_time)"
              #
              # 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.
            "description": "A String", # Optional. Description of the expression. This is a longer text which
                # describes the expression, e.g. when hovered over it in a UI.
            "expression": "A String", # Textual representation of an expression in Common Expression Language
                # syntax.
            "location": "A String", # Optional. String indicating the location of the expression for error
                # reporting, e.g. a file name and a position in the file.
            "title": "A String", # 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.
          },
          "members": [ # 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`.
              #
            "A String",
          ],
        },
      ],
      "etag": "A String", # `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.
      "version": 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.
    },
  }

  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.
      #
      # Optionally, a `binding` can 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.
      #
      # **JSON example:**
      #
      #     {
      #       "bindings": [
      #         {
      #           "role": "roles/resourcemanager.organizationAdmin",
      #           "members": [
      #             "user:mike@example.com",
      #             "group:admins@example.com",
      #             "domain:google.com",
      #             "serviceAccount:my-project-id@appspot.gserviceaccount.com"
      #           ]
      #         },
      #         {
      #           "role": "roles/resourcemanager.organizationViewer",
      #           "members": ["user:eve@example.com"],
      #           "condition": {
      #             "title": "expirable access",
      #             "description": "Does not grant access after Sep 2020",
      #             "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')",
      #           }
      #         }
      #       ],
      #       "etag": "BwWWja0YfJA=",
      #       "version": 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 < timestamp('2020-10-01T00:00:00.000Z')
      #     - etag: BwWWja0YfJA=
      #     - version: 3
      #
      # For a description of IAM and its features, see the
      # [IAM documentation](https://cloud.google.com/iam/docs/).
    "bindings": [ # 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`.
        "role": "A String", # Role that is assigned to `members`.
            # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
        "condition": { # Represents a textual expression in the Common Expression Language (CEL) # The condition that is associated with this binding.
            # NOTE: An unsatisfied condition will not allow user access via current
            # binding. Different bindings, including their conditions, are examined
            # independently.
            # 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: "Summary size limit"
            #     description: "Determines if a summary is less than 100 chars"
            #     expression: "document.summary.size() < 100"
            #
            # Example (Equality):
            #
            #     title: "Requestor is owner"
            #     description: "Determines if requestor is the document owner"
            #     expression: "document.owner == request.auth.claims.email"
            #
            # Example (Logic):
            #
            #     title: "Public documents"
            #     description: "Determine whether the document should be publicly visible"
            #     expression: "document.type != 'private' && document.type != 'internal'"
            #
            # Example (Data Manipulation):
            #
            #     title: "Notification string"
            #     description: "Create a notification string with a timestamp."
            #     expression: "'New message received at ' + string(document.create_time)"
            #
            # 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.
          "description": "A String", # Optional. Description of the expression. This is a longer text which
              # describes the expression, e.g. when hovered over it in a UI.
          "expression": "A String", # Textual representation of an expression in Common Expression Language
              # syntax.
          "location": "A String", # Optional. String indicating the location of the expression for error
              # reporting, e.g. a file name and a position in the file.
          "title": "A String", # 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.
        },
        "members": [ # 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`.
            #
          "A String",
        ],
      },
    ],
    "etag": "A String", # `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.
    "version": 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.
  }
testIamPermissions(resource, body=None, x__xgafv=None)
Returns the permissions that a caller has on the specified note or
occurrence. Requires list permission on the project (for example,
`containeranalysis.notes.list`).

The resource takes the format `projects/[PROJECT_ID]/notes/[NOTE_ID]` for
notes and `projects/[PROJECT_ID]/occurrences/[OCCURRENCE_ID]` for
occurrences.

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.
    "permissions": [ # The set of permissions to check for the `resource`. Permissions with
        # wildcards (such as '*' or 'storage.*') are not allowed. For more
        # information see
        # [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).
      "A String",
    ],
  }

  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.
    "permissions": [ # A subset of `TestPermissionsRequest.permissions` that the caller is
        # allowed.
      "A String",
    ],
  }