import * as pulumi from "@pulumi/pulumi"; import * as inputs from "../types/input"; import * as outputs from "../types/output"; /** * A Container Analysis note is a high-level piece of metadata that * describes a type of analysis that can be done for a resource. * * To get more information about Note, see: * * * [API documentation](https://cloud.google.com/container-analysis/api/reference/rest/) * * How-to Guides * * [Creating Attestations (Occurrences)](https://cloud.google.com/binary-authorization/docs/making-attestations) * * [Official Documentation](https://cloud.google.com/container-analysis/) * * ## Example Usage * * ### Container Analysis Note Basic * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as gcp from "@pulumi/gcp"; * * const note = new gcp.containeranalysis.Note("note", { * name: "attestor-note", * attestationAuthority: { * hint: { * humanReadableName: "Attestor Note", * }, * }, * }); * ``` * ### Container Analysis Note Attestation Full * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as gcp from "@pulumi/gcp"; * * const note = new gcp.containeranalysis.Note("note", { * name: "attestor-note", * shortDescription: "test note", * longDescription: "a longer description of test note", * expirationTime: "2120-10-02T15:01:23.045123456Z", * relatedUrls: [ * { * url: "some.url", * label: "foo", * }, * { * url: "google.com", * }, * ], * attestationAuthority: { * hint: { * humanReadableName: "Attestor Note", * }, * }, * }); * ``` * * ## Import * * Note can be imported using any of these accepted formats: * * * `projects/{{project}}/notes/{{name}}` * * `{{project}}/{{name}}` * * `{{name}}` * * When using the `pulumi import` command, Note can be imported using one of the formats above. For example: * * ```sh * $ pulumi import gcp:containeranalysis/note:Note default projects/{{project}}/notes/{{name}} * $ pulumi import gcp:containeranalysis/note:Note default {{project}}/{{name}} * $ pulumi import gcp:containeranalysis/note:Note default {{name}} * ``` */ export declare class Note extends pulumi.CustomResource { /** * Get an existing Note resource's state with the given name, ID, and optional extra * properties used to qualify the lookup. * * @param name The _unique_ name of the resulting resource. * @param id The _unique_ provider ID of the resource to lookup. * @param state Any extra arguments used during the lookup. * @param opts Optional settings to control the behavior of the CustomResource. */ static get(name: string, id: pulumi.Input, state?: NoteState, opts?: pulumi.CustomResourceOptions): Note; /** * Returns true if the given object is an instance of Note. This is designed to work even * when multiple copies of the Pulumi SDK have been loaded into the same process. */ static isInstance(obj: any): obj is Note; /** * Note kind that represents a logical attestation "role" or "authority". * For example, an organization might have one AttestationAuthority 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. * Structure is documented below. */ readonly attestationAuthority: pulumi.Output; /** * The time this note was created. */ readonly createTime: pulumi.Output; /** * Time of expiration for this note. Leave empty if note does not expire. */ readonly expirationTime: pulumi.Output; /** * The type of analysis this note describes */ readonly kind: pulumi.Output; /** * A detailed description of the note */ readonly longDescription: pulumi.Output; /** * The name of the note. */ readonly name: pulumi.Output; /** * The ID of the project in which the resource belongs. * If it is not provided, the provider project is used. */ readonly project: pulumi.Output; /** * Names of other notes related to this note. */ readonly relatedNoteNames: pulumi.Output; /** * URLs associated with this note and related metadata. * Structure is documented below. */ readonly relatedUrls: pulumi.Output; /** * A one sentence description of the note. */ readonly shortDescription: pulumi.Output; /** * The time this note was last updated. */ readonly updateTime: pulumi.Output; /** * Create a Note resource with the given unique name, arguments, and options. * * @param name The _unique_ name of the resource. * @param args The arguments to use to populate this resource's properties. * @param opts A bag of options that control this resource's behavior. */ constructor(name: string, args: NoteArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering Note resources. */ export interface NoteState { /** * Note kind that represents a logical attestation "role" or "authority". * For example, an organization might have one AttestationAuthority 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. * Structure is documented below. */ attestationAuthority?: pulumi.Input; /** * The time this note was created. */ createTime?: pulumi.Input; /** * Time of expiration for this note. Leave empty if note does not expire. */ expirationTime?: pulumi.Input; /** * The type of analysis this note describes */ kind?: pulumi.Input; /** * A detailed description of the note */ longDescription?: pulumi.Input; /** * The name of the note. */ name?: pulumi.Input; /** * The ID of the project in which the resource belongs. * If it is not provided, the provider project is used. */ project?: pulumi.Input; /** * Names of other notes related to this note. */ relatedNoteNames?: pulumi.Input[]>; /** * URLs associated with this note and related metadata. * Structure is documented below. */ relatedUrls?: pulumi.Input[]>; /** * A one sentence description of the note. */ shortDescription?: pulumi.Input; /** * The time this note was last updated. */ updateTime?: pulumi.Input; } /** * The set of arguments for constructing a Note resource. */ export interface NoteArgs { /** * Note kind that represents a logical attestation "role" or "authority". * For example, an organization might have one AttestationAuthority 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. * Structure is documented below. */ attestationAuthority: pulumi.Input; /** * Time of expiration for this note. Leave empty if note does not expire. */ expirationTime?: pulumi.Input; /** * A detailed description of the note */ longDescription?: pulumi.Input; /** * The name of the note. */ name?: pulumi.Input; /** * The ID of the project in which the resource belongs. * If it is not provided, the provider project is used. */ project?: pulumi.Input; /** * Names of other notes related to this note. */ relatedNoteNames?: pulumi.Input[]>; /** * URLs associated with this note and related metadata. * Structure is documented below. */ relatedUrls?: pulumi.Input[]>; /** * A one sentence description of the note. */ shortDescription?: pulumi.Input; }