import * as pulumi from "@pulumi/pulumi"; import * as inputs from "../types/input"; import * as outputs from "../types/output"; /** * A Cloud Run Job resource that references a container image which is run to completion. * * To get more information about Job, see: * * * [API documentation](https://cloud.google.com/run/docs/reference/rest/v2/projects.locations.jobs) * * How-to Guides * * [Official Documentation](https://cloud.google.com/run/docs/) * * ## Example Usage * * ### Cloudrunv2 Job Basic * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as gcp from "@pulumi/gcp"; * * const _default = new gcp.cloudrunv2.Job("default", { * name: "cloudrun-job", * location: "us-central1", * deletionProtection: false, * template: { * template: { * containers: [{ * image: "us-docker.pkg.dev/cloudrun/container/job", * }], * }, * }, * }); * ``` * ### Cloudrunv2 Job Limits * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as gcp from "@pulumi/gcp"; * * const _default = new gcp.cloudrunv2.Job("default", { * name: "cloudrun-job", * location: "us-central1", * deletionProtection: false, * template: { * template: { * containers: [{ * image: "us-docker.pkg.dev/cloudrun/container/job", * resources: { * limits: { * cpu: "2", * memory: "1024Mi", * }, * }, * }], * }, * }, * }); * ``` * ### Cloudrunv2 Job Sql * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as gcp from "@pulumi/gcp"; * * const secret = new gcp.secretmanager.Secret("secret", { * secretId: "secret", * replication: { * auto: {}, * }, * }); * const instance = new gcp.sql.DatabaseInstance("instance", { * name: "cloudrun-sql", * region: "us-central1", * databaseVersion: "MYSQL_5_7", * settings: { * tier: "db-f1-micro", * }, * deletionProtection: true, * }); * const _default = new gcp.cloudrunv2.Job("default", { * name: "cloudrun-job", * location: "us-central1", * deletionProtection: false, * template: { * template: { * volumes: [{ * name: "cloudsql", * cloudSqlInstance: { * instances: [instance.connectionName], * }, * }], * containers: [{ * image: "us-docker.pkg.dev/cloudrun/container/job", * envs: [ * { * name: "FOO", * value: "bar", * }, * { * name: "latestdclsecret", * valueSource: { * secretKeyRef: { * secret: secret.secretId, * version: "1", * }, * }, * }, * ], * volumeMounts: [{ * name: "cloudsql", * mountPath: "/cloudsql", * }], * }], * }, * }, * }); * const project = gcp.organizations.getProject({}); * const secret_version_data = new gcp.secretmanager.SecretVersion("secret-version-data", { * secret: secret.name, * secretData: "secret-data", * }); * const secret_access = new gcp.secretmanager.SecretIamMember("secret-access", { * secretId: secret.id, * role: "roles/secretmanager.secretAccessor", * member: project.then(project => `serviceAccount:${project.number}-compute@developer.gserviceaccount.com`), * }, { * dependsOn: [secret], * }); * ``` * ### Cloudrunv2 Job Vpcaccess * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as gcp from "@pulumi/gcp"; * * const customTestNetwork = new gcp.compute.Network("custom_test", { * name: "run-network", * autoCreateSubnetworks: false, * }); * const customTest = new gcp.compute.Subnetwork("custom_test", { * name: "run-subnetwork", * ipCidrRange: "10.2.0.0/28", * region: "us-central1", * network: customTestNetwork.id, * }); * const connector = new gcp.vpcaccess.Connector("connector", { * name: "run-vpc", * subnet: { * name: customTest.name, * }, * machineType: "e2-standard-4", * minInstances: 2, * maxInstances: 3, * region: "us-central1", * }); * const _default = new gcp.cloudrunv2.Job("default", { * name: "cloudrun-job", * location: "us-central1", * deletionProtection: false, * template: { * template: { * containers: [{ * image: "us-docker.pkg.dev/cloudrun/container/job", * }], * vpcAccess: { * connector: connector.id, * egress: "ALL_TRAFFIC", * }, * }, * }, * }); * ``` * ### Cloudrunv2 Job Directvpc * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as gcp from "@pulumi/gcp"; * * const _default = new gcp.cloudrunv2.Job("default", { * name: "cloudrun-job", * location: "us-central1", * deletionProtection: false, * launchStage: "GA", * template: { * template: { * containers: [{ * image: "us-docker.pkg.dev/cloudrun/container/job", * }], * vpcAccess: { * networkInterfaces: [{ * network: "default", * subnetwork: "default", * tags: [ * "tag1", * "tag2", * "tag3", * ], * }], * }, * }, * }, * }); * ``` * ### Cloudrunv2 Job Secret * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as gcp from "@pulumi/gcp"; * * const secret = new gcp.secretmanager.Secret("secret", { * secretId: "secret", * replication: { * auto: {}, * }, * }); * const secret_version_data = new gcp.secretmanager.SecretVersion("secret-version-data", { * secret: secret.name, * secretData: "secret-data", * }); * const project = gcp.organizations.getProject({}); * const secret_access = new gcp.secretmanager.SecretIamMember("secret-access", { * secretId: secret.id, * role: "roles/secretmanager.secretAccessor", * member: project.then(project => `serviceAccount:${project.number}-compute@developer.gserviceaccount.com`), * }, { * dependsOn: [secret], * }); * const _default = new gcp.cloudrunv2.Job("default", { * name: "cloudrun-job", * location: "us-central1", * deletionProtection: false, * template: { * template: { * volumes: [{ * name: "a-volume", * secret: { * secret: secret.secretId, * defaultMode: 292, * items: [{ * version: "1", * path: "my-secret", * mode: 256, * }], * }, * }], * containers: [{ * image: "us-docker.pkg.dev/cloudrun/container/job", * volumeMounts: [{ * name: "a-volume", * mountPath: "/secrets", * }], * }], * }, * }, * }, { * dependsOn: [ * secret_version_data, * secret_access, * ], * }); * ``` * ### Cloudrunv2 Job Emptydir * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as gcp from "@pulumi/gcp"; * * const _default = new gcp.cloudrunv2.Job("default", { * name: "cloudrun-job", * location: "us-central1", * deletionProtection: false, * template: { * template: { * containers: [{ * image: "us-docker.pkg.dev/cloudrun/container/job", * volumeMounts: [{ * name: "empty-dir-volume", * mountPath: "/mnt", * }], * }], * volumes: [{ * name: "empty-dir-volume", * emptyDir: { * medium: "MEMORY", * sizeLimit: "128Mi", * }, * }], * }, * }, * }); * ``` * ### Cloudrunv2 Job Run Job * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as gcp from "@pulumi/gcp"; * * const _default = new gcp.cloudrunv2.Job("default", { * name: "cloudrun-job", * location: "us-central1", * deletionProtection: false, * startExecutionToken: "start-once-created", * template: { * template: { * containers: [{ * image: "us-docker.pkg.dev/cloudrun/container/job", * }], * }, * }, * }); * ``` * ### Cloudrunv2 Job Multicontainer * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as gcp from "@pulumi/gcp"; * * const _default = new gcp.cloudrunv2.Job("default", { * name: "cloudrun-job", * location: "us-central1", * deletionProtection: false, * template: { * template: { * containers: [ * { * name: "job-1", * image: "us-docker.pkg.dev/cloudrun/container/job", * }, * { * name: "job-2", * image: "us-docker.pkg.dev/cloudrun/container/job", * }, * ], * }, * }, * }); * ``` * ### Cloudrunv2 Job Gpu * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as gcp from "@pulumi/gcp"; * * const _default = new gcp.cloudrunv2.Job("default", { * name: "cloudrun-job", * location: "us-central1", * deletionProtection: false, * launchStage: "BETA", * template: { * template: { * containers: [{ * image: "us-docker.pkg.dev/cloudrun/container/job", * }], * nodeSelector: { * accelerator: "nvidia-l4", * }, * gpuZonalRedundancyDisabled: true, * }, * }, * }); * ``` * * ## Import * * Job can be imported using any of these accepted formats: * * * `projects/{{project}}/locations/{{location}}/jobs/{{name}}` * * * `{{project}}/{{location}}/{{name}}` * * * `{{location}}/{{name}}` * * When using the `pulumi import` command, Job can be imported using one of the formats above. For example: * * ```sh * $ pulumi import gcp:cloudrunv2/job:Job default projects/{{project}}/locations/{{location}}/jobs/{{name}} * ``` * * ```sh * $ pulumi import gcp:cloudrunv2/job:Job default {{project}}/{{location}}/{{name}} * ``` * * ```sh * $ pulumi import gcp:cloudrunv2/job:Job default {{location}}/{{name}} * ``` */ export declare class Job extends pulumi.CustomResource { /** * Get an existing Job 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?: JobState, opts?: pulumi.CustomResourceOptions): Job; /** * Returns true if the given object is an instance of Job. 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 Job; /** * Unstructured key value map that may be set by external tools to store and arbitrary metadata. They are not queryable and should be preserved when modifying objects. * Cloud Run API v2 does not support annotations with `run.googleapis.com`, `cloud.googleapis.com`, `serving.knative.dev`, or `autoscaling.knative.dev` namespaces, and they will be rejected on new resources. * All system annotations in v1 now have a corresponding field in v2 Job. * This field follows Kubernetes annotations' namespacing, limits, and rules. * **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration. * Please refer to the field `effectiveAnnotations` for all of the annotations present on the resource. */ readonly annotations: pulumi.Output<{ [key: string]: string; } | undefined>; /** * Settings for the Binary Authorization feature. * Structure is documented below. */ readonly binaryAuthorization: pulumi.Output; /** * Arbitrary identifier for the API client. */ readonly client: pulumi.Output; /** * Arbitrary version identifier for the API client. */ readonly clientVersion: pulumi.Output; /** * The Conditions of all other associated sub-resources. They contain additional diagnostics information in case the Job does not reach its desired state. See comments in reconciling for additional information on `reconciliation` process in Cloud Run. * Structure is documented below. */ readonly conditions: pulumi.Output; /** * (Output) * Creation timestamp of the execution. * A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z". */ readonly createTime: pulumi.Output; /** * Email address of the authenticated creator. */ readonly creator: pulumi.Output; /** * The deletion time. */ readonly deleteTime: pulumi.Output; readonly deletionProtection: pulumi.Output; readonly effectiveAnnotations: pulumi.Output<{ [key: string]: string; }>; /** * All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. */ readonly effectiveLabels: pulumi.Output<{ [key: string]: string; }>; /** * A system-generated fingerprint for this version of the resource. May be used to detect modification conflict during updates. */ readonly etag: pulumi.Output; /** * Number of executions created for this job. */ readonly executionCount: pulumi.Output; /** * For a deleted resource, the time after which it will be permanently deleted. */ readonly expireTime: pulumi.Output; /** * A number that monotonically increases every time the user modifies the desired state. */ readonly generation: pulumi.Output; /** * Unstructured key value map that can be used to organize and categorize objects. User-provided labels are shared with Google's billing system, so they can be used to filter, or break down billing charges by team, component, * environment, state, etc. For more information, visit https://cloud.google.com/resource-manager/docs/creating-managing-labels or https://cloud.google.com/run/docs/configuring/labels. * Cloud Run API v2 does not support labels with `run.googleapis.com`, `cloud.googleapis.com`, `serving.knative.dev`, or `autoscaling.knative.dev` namespaces, and they will be rejected. * All system labels in v1 now have a corresponding field in v2 Job. * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. * Please refer to the field `effectiveLabels` for all of the labels present on the resource. */ readonly labels: pulumi.Output<{ [key: string]: string; } | undefined>; /** * Email address of the last authenticated modifier. */ readonly lastModifier: pulumi.Output; /** * Name of the last created execution. * Structure is documented below. */ readonly latestCreatedExecutions: pulumi.Output; /** * The launch stage as defined by [Google Cloud Platform Launch Stages](https://cloud.google.com/products#product-launch-stages). Cloud Run supports ALPHA, BETA, and GA. * If no value is specified, GA is assumed. Set the launch stage to a preview stage on input to allow use of preview features in that stage. On read (or output), describes whether the resource uses preview features. * For example, if ALPHA is provided as input, but only BETA and GA-level features are used, this field will be BETA on output. * Possible values are: `UNIMPLEMENTED`, `PRELAUNCH`, `EARLY_ACCESS`, `ALPHA`, `BETA`, `GA`, `DEPRECATED`. */ readonly launchStage: pulumi.Output; /** * The location of the cloud run job */ readonly location: pulumi.Output; /** * Name of the Job. */ readonly name: pulumi.Output; /** * The generation of this Job. See comments in reconciling for additional information on reconciliation process in Cloud Run. */ readonly observedGeneration: 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; /** * The combination of labels configured directly on the resource * and default labels configured on the provider. */ readonly pulumiLabels: pulumi.Output<{ [key: string]: string; }>; /** * Returns true if the Job is currently being acted upon by the system to bring it into the desired state. * When a new Job is created, or an existing one is updated, Cloud Run will asynchronously perform all necessary steps to bring the Job to the desired state. This process is called reconciliation. While reconciliation is in process, observedGeneration and latest_succeeded_execution, will have transient values that might mismatch the intended state: Once reconciliation is over (and this field is false), there are two possible outcomes: reconciliation succeeded and the state matches the Job, or there was an error, and reconciliation failed. This state can be found in terminalCondition.state. * If reconciliation succeeded, the following fields will match: observedGeneration and generation, latestSucceededExecution and latestCreatedExecution. * If reconciliation failed, observedGeneration and latestSucceededExecution will have the state of the last succeeded execution or empty for newly created Job. Additional information on the failure can be found in terminalCondition and conditions */ readonly reconciling: pulumi.Output; /** * A unique string used as a suffix creating a new execution upon job create or update. The Job will become ready when the execution is successfully completed. * The sum of job name and token length must be fewer than 63 characters. */ readonly runExecutionToken: pulumi.Output; /** * A unique string used as a suffix creating a new execution upon job create or update. The Job will become ready when the execution is successfully started. * The sum of job name and token length must be fewer than 63 characters. */ readonly startExecutionToken: pulumi.Output; /** * The template used to create executions for this Job. * Structure is documented below. */ readonly template: pulumi.Output; /** * The Condition of this Job, containing its readiness status, and detailed error information in case it did not reach the desired state * Structure is documented below. */ readonly terminalConditions: pulumi.Output; /** * Server assigned unique identifier for the Execution. The value is a UUID4 string and guaranteed to remain unchanged until the resource is deleted. */ readonly uid: pulumi.Output; /** * The last-modified time. */ readonly updateTime: pulumi.Output; /** * Create a Job 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: JobArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering Job resources. */ export interface JobState { /** * Unstructured key value map that may be set by external tools to store and arbitrary metadata. They are not queryable and should be preserved when modifying objects. * Cloud Run API v2 does not support annotations with `run.googleapis.com`, `cloud.googleapis.com`, `serving.knative.dev`, or `autoscaling.knative.dev` namespaces, and they will be rejected on new resources. * All system annotations in v1 now have a corresponding field in v2 Job. * This field follows Kubernetes annotations' namespacing, limits, and rules. * **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration. * Please refer to the field `effectiveAnnotations` for all of the annotations present on the resource. */ annotations?: pulumi.Input<{ [key: string]: pulumi.Input; }>; /** * Settings for the Binary Authorization feature. * Structure is documented below. */ binaryAuthorization?: pulumi.Input; /** * Arbitrary identifier for the API client. */ client?: pulumi.Input; /** * Arbitrary version identifier for the API client. */ clientVersion?: pulumi.Input; /** * The Conditions of all other associated sub-resources. They contain additional diagnostics information in case the Job does not reach its desired state. See comments in reconciling for additional information on `reconciliation` process in Cloud Run. * Structure is documented below. */ conditions?: pulumi.Input[]>; /** * (Output) * Creation timestamp of the execution. * A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z". */ createTime?: pulumi.Input; /** * Email address of the authenticated creator. */ creator?: pulumi.Input; /** * The deletion time. */ deleteTime?: pulumi.Input; deletionProtection?: pulumi.Input; effectiveAnnotations?: pulumi.Input<{ [key: string]: pulumi.Input; }>; /** * All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services. */ effectiveLabels?: pulumi.Input<{ [key: string]: pulumi.Input; }>; /** * A system-generated fingerprint for this version of the resource. May be used to detect modification conflict during updates. */ etag?: pulumi.Input; /** * Number of executions created for this job. */ executionCount?: pulumi.Input; /** * For a deleted resource, the time after which it will be permanently deleted. */ expireTime?: pulumi.Input; /** * A number that monotonically increases every time the user modifies the desired state. */ generation?: pulumi.Input; /** * Unstructured key value map that can be used to organize and categorize objects. User-provided labels are shared with Google's billing system, so they can be used to filter, or break down billing charges by team, component, * environment, state, etc. For more information, visit https://cloud.google.com/resource-manager/docs/creating-managing-labels or https://cloud.google.com/run/docs/configuring/labels. * Cloud Run API v2 does not support labels with `run.googleapis.com`, `cloud.googleapis.com`, `serving.knative.dev`, or `autoscaling.knative.dev` namespaces, and they will be rejected. * All system labels in v1 now have a corresponding field in v2 Job. * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. * Please refer to the field `effectiveLabels` for all of the labels present on the resource. */ labels?: pulumi.Input<{ [key: string]: pulumi.Input; }>; /** * Email address of the last authenticated modifier. */ lastModifier?: pulumi.Input; /** * Name of the last created execution. * Structure is documented below. */ latestCreatedExecutions?: pulumi.Input[]>; /** * The launch stage as defined by [Google Cloud Platform Launch Stages](https://cloud.google.com/products#product-launch-stages). Cloud Run supports ALPHA, BETA, and GA. * If no value is specified, GA is assumed. Set the launch stage to a preview stage on input to allow use of preview features in that stage. On read (or output), describes whether the resource uses preview features. * For example, if ALPHA is provided as input, but only BETA and GA-level features are used, this field will be BETA on output. * Possible values are: `UNIMPLEMENTED`, `PRELAUNCH`, `EARLY_ACCESS`, `ALPHA`, `BETA`, `GA`, `DEPRECATED`. */ launchStage?: pulumi.Input; /** * The location of the cloud run job */ location?: pulumi.Input; /** * Name of the Job. */ name?: pulumi.Input; /** * The generation of this Job. See comments in reconciling for additional information on reconciliation process in Cloud Run. */ observedGeneration?: 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; /** * The combination of labels configured directly on the resource * and default labels configured on the provider. */ pulumiLabels?: pulumi.Input<{ [key: string]: pulumi.Input; }>; /** * Returns true if the Job is currently being acted upon by the system to bring it into the desired state. * When a new Job is created, or an existing one is updated, Cloud Run will asynchronously perform all necessary steps to bring the Job to the desired state. This process is called reconciliation. While reconciliation is in process, observedGeneration and latest_succeeded_execution, will have transient values that might mismatch the intended state: Once reconciliation is over (and this field is false), there are two possible outcomes: reconciliation succeeded and the state matches the Job, or there was an error, and reconciliation failed. This state can be found in terminalCondition.state. * If reconciliation succeeded, the following fields will match: observedGeneration and generation, latestSucceededExecution and latestCreatedExecution. * If reconciliation failed, observedGeneration and latestSucceededExecution will have the state of the last succeeded execution or empty for newly created Job. Additional information on the failure can be found in terminalCondition and conditions */ reconciling?: pulumi.Input; /** * A unique string used as a suffix creating a new execution upon job create or update. The Job will become ready when the execution is successfully completed. * The sum of job name and token length must be fewer than 63 characters. */ runExecutionToken?: pulumi.Input; /** * A unique string used as a suffix creating a new execution upon job create or update. The Job will become ready when the execution is successfully started. * The sum of job name and token length must be fewer than 63 characters. */ startExecutionToken?: pulumi.Input; /** * The template used to create executions for this Job. * Structure is documented below. */ template?: pulumi.Input; /** * The Condition of this Job, containing its readiness status, and detailed error information in case it did not reach the desired state * Structure is documented below. */ terminalConditions?: pulumi.Input[]>; /** * Server assigned unique identifier for the Execution. The value is a UUID4 string and guaranteed to remain unchanged until the resource is deleted. */ uid?: pulumi.Input; /** * The last-modified time. */ updateTime?: pulumi.Input; } /** * The set of arguments for constructing a Job resource. */ export interface JobArgs { /** * Unstructured key value map that may be set by external tools to store and arbitrary metadata. They are not queryable and should be preserved when modifying objects. * Cloud Run API v2 does not support annotations with `run.googleapis.com`, `cloud.googleapis.com`, `serving.knative.dev`, or `autoscaling.knative.dev` namespaces, and they will be rejected on new resources. * All system annotations in v1 now have a corresponding field in v2 Job. * This field follows Kubernetes annotations' namespacing, limits, and rules. * **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration. * Please refer to the field `effectiveAnnotations` for all of the annotations present on the resource. */ annotations?: pulumi.Input<{ [key: string]: pulumi.Input; }>; /** * Settings for the Binary Authorization feature. * Structure is documented below. */ binaryAuthorization?: pulumi.Input; /** * Arbitrary identifier for the API client. */ client?: pulumi.Input; /** * Arbitrary version identifier for the API client. */ clientVersion?: pulumi.Input; deletionProtection?: pulumi.Input; /** * Unstructured key value map that can be used to organize and categorize objects. User-provided labels are shared with Google's billing system, so they can be used to filter, or break down billing charges by team, component, * environment, state, etc. For more information, visit https://cloud.google.com/resource-manager/docs/creating-managing-labels or https://cloud.google.com/run/docs/configuring/labels. * Cloud Run API v2 does not support labels with `run.googleapis.com`, `cloud.googleapis.com`, `serving.knative.dev`, or `autoscaling.knative.dev` namespaces, and they will be rejected. * All system labels in v1 now have a corresponding field in v2 Job. * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. * Please refer to the field `effectiveLabels` for all of the labels present on the resource. */ labels?: pulumi.Input<{ [key: string]: pulumi.Input; }>; /** * The launch stage as defined by [Google Cloud Platform Launch Stages](https://cloud.google.com/products#product-launch-stages). Cloud Run supports ALPHA, BETA, and GA. * If no value is specified, GA is assumed. Set the launch stage to a preview stage on input to allow use of preview features in that stage. On read (or output), describes whether the resource uses preview features. * For example, if ALPHA is provided as input, but only BETA and GA-level features are used, this field will be BETA on output. * Possible values are: `UNIMPLEMENTED`, `PRELAUNCH`, `EARLY_ACCESS`, `ALPHA`, `BETA`, `GA`, `DEPRECATED`. */ launchStage?: pulumi.Input; /** * The location of the cloud run job */ location: pulumi.Input; /** * Name of the Job. */ 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; /** * A unique string used as a suffix creating a new execution upon job create or update. The Job will become ready when the execution is successfully completed. * The sum of job name and token length must be fewer than 63 characters. */ runExecutionToken?: pulumi.Input; /** * A unique string used as a suffix creating a new execution upon job create or update. The Job will become ready when the execution is successfully started. * The sum of job name and token length must be fewer than 63 characters. */ startExecutionToken?: pulumi.Input; /** * The template used to create executions for this Job. * Structure is documented below. */ template: pulumi.Input; }