/**
 * Copyright (c) HashiCorp, Inc.
 * SPDX-License-Identifier: MPL-2.0
 */
import { Construct } from 'constructs';
import * as cdktf from 'cdktf';
export interface ColabNotebookExecutionConfig extends cdktf.TerraformMetaArguments {
    /**
    * Required. The display name of the Notebook Execution.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/colab_notebook_execution#display_name ColabNotebookExecution#display_name}
    */
    readonly displayName: string;
    /**
    * Max running time of the execution job in seconds (default 86400s / 24 hrs).
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/colab_notebook_execution#execution_timeout ColabNotebookExecution#execution_timeout}
    */
    readonly executionTimeout?: string;
    /**
    * The user email to run the execution as.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/colab_notebook_execution#execution_user ColabNotebookExecution#execution_user}
    */
    readonly executionUser?: string;
    /**
    * The Cloud Storage location to upload the result to. Format:'gs://bucket-name'
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/colab_notebook_execution#gcs_output_uri ColabNotebookExecution#gcs_output_uri}
    */
    readonly gcsOutputUri: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/colab_notebook_execution#id ColabNotebookExecution#id}
    *
    * Please be aware that the id field is automatically added to all resources in Terraform providers using a Terraform provider SDK version below 2.
    * If you experience problems setting this value it might not be settable. Please take a look at the provider documentation to ensure it should be settable.
    */
    readonly id?: string;
    /**
    * The location for the resource: https://cloud.google.com/colab/docs/locations
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/colab_notebook_execution#location ColabNotebookExecution#location}
    */
    readonly location: string;
    /**
    * User specified ID for the Notebook Execution Job
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/colab_notebook_execution#notebook_execution_job_id ColabNotebookExecution#notebook_execution_job_id}
    */
    readonly notebookExecutionJobId?: string;
    /**
    * The NotebookRuntimeTemplate to source compute configuration from.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/colab_notebook_execution#notebook_runtime_template_resource_name ColabNotebookExecution#notebook_runtime_template_resource_name}
    */
    readonly notebookRuntimeTemplateResourceName?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/colab_notebook_execution#project ColabNotebookExecution#project}
    */
    readonly project?: string;
    /**
    * The service account to run the execution as.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/colab_notebook_execution#service_account ColabNotebookExecution#service_account}
    */
    readonly serviceAccount?: string;
    /**
    * dataform_repository_source block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/colab_notebook_execution#dataform_repository_source ColabNotebookExecution#dataform_repository_source}
    */
    readonly dataformRepositorySource?: ColabNotebookExecutionDataformRepositorySource;
    /**
    * direct_notebook_source block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/colab_notebook_execution#direct_notebook_source ColabNotebookExecution#direct_notebook_source}
    */
    readonly directNotebookSource?: ColabNotebookExecutionDirectNotebookSource;
    /**
    * gcs_notebook_source block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/colab_notebook_execution#gcs_notebook_source ColabNotebookExecution#gcs_notebook_source}
    */
    readonly gcsNotebookSource?: ColabNotebookExecutionGcsNotebookSource;
    /**
    * timeouts block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/colab_notebook_execution#timeouts ColabNotebookExecution#timeouts}
    */
    readonly timeouts?: ColabNotebookExecutionTimeouts;
}
export interface ColabNotebookExecutionDataformRepositorySource {
    /**
    * The commit SHA to read repository with. If unset, the file will be read at HEAD.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/colab_notebook_execution#commit_sha ColabNotebookExecution#commit_sha}
    */
    readonly commitSha?: string;
    /**
    * The resource name of the Dataform Repository.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/colab_notebook_execution#dataform_repository_resource_name ColabNotebookExecution#dataform_repository_resource_name}
    */
    readonly dataformRepositoryResourceName: string;
}
export declare function colabNotebookExecutionDataformRepositorySourceToTerraform(struct?: ColabNotebookExecutionDataformRepositorySourceOutputReference | ColabNotebookExecutionDataformRepositorySource): any;
export declare function colabNotebookExecutionDataformRepositorySourceToHclTerraform(struct?: ColabNotebookExecutionDataformRepositorySourceOutputReference | ColabNotebookExecutionDataformRepositorySource): any;
export declare class ColabNotebookExecutionDataformRepositorySourceOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): ColabNotebookExecutionDataformRepositorySource | undefined;
    set internalValue(value: ColabNotebookExecutionDataformRepositorySource | undefined);
    private _commitSha?;
    get commitSha(): string;
    set commitSha(value: string);
    resetCommitSha(): void;
    get commitShaInput(): string | undefined;
    private _dataformRepositoryResourceName?;
    get dataformRepositoryResourceName(): string;
    set dataformRepositoryResourceName(value: string);
    get dataformRepositoryResourceNameInput(): string | undefined;
}
export interface ColabNotebookExecutionDirectNotebookSource {
    /**
    * The base64-encoded contents of the input notebook file.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/colab_notebook_execution#content ColabNotebookExecution#content}
    */
    readonly content: string;
}
export declare function colabNotebookExecutionDirectNotebookSourceToTerraform(struct?: ColabNotebookExecutionDirectNotebookSourceOutputReference | ColabNotebookExecutionDirectNotebookSource): any;
export declare function colabNotebookExecutionDirectNotebookSourceToHclTerraform(struct?: ColabNotebookExecutionDirectNotebookSourceOutputReference | ColabNotebookExecutionDirectNotebookSource): any;
export declare class ColabNotebookExecutionDirectNotebookSourceOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): ColabNotebookExecutionDirectNotebookSource | undefined;
    set internalValue(value: ColabNotebookExecutionDirectNotebookSource | undefined);
    private _content?;
    get content(): string;
    set content(value: string);
    get contentInput(): string | undefined;
}
export interface ColabNotebookExecutionGcsNotebookSource {
    /**
    * The version of the Cloud Storage object to read. If unset, the current version of the object is read. See https://cloud.google.com/storage/docs/metadata#generation-number.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/colab_notebook_execution#generation ColabNotebookExecution#generation}
    */
    readonly generation?: string;
    /**
    * The Cloud Storage uri pointing to the ipynb file.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/colab_notebook_execution#uri ColabNotebookExecution#uri}
    */
    readonly uri: string;
}
export declare function colabNotebookExecutionGcsNotebookSourceToTerraform(struct?: ColabNotebookExecutionGcsNotebookSourceOutputReference | ColabNotebookExecutionGcsNotebookSource): any;
export declare function colabNotebookExecutionGcsNotebookSourceToHclTerraform(struct?: ColabNotebookExecutionGcsNotebookSourceOutputReference | ColabNotebookExecutionGcsNotebookSource): any;
export declare class ColabNotebookExecutionGcsNotebookSourceOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): ColabNotebookExecutionGcsNotebookSource | undefined;
    set internalValue(value: ColabNotebookExecutionGcsNotebookSource | undefined);
    private _generation?;
    get generation(): string;
    set generation(value: string);
    resetGeneration(): void;
    get generationInput(): string | undefined;
    private _uri?;
    get uri(): string;
    set uri(value: string);
    get uriInput(): string | undefined;
}
export interface ColabNotebookExecutionTimeouts {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/colab_notebook_execution#create ColabNotebookExecution#create}
    */
    readonly create?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/colab_notebook_execution#delete ColabNotebookExecution#delete}
    */
    readonly delete?: string;
}
export declare function colabNotebookExecutionTimeoutsToTerraform(struct?: ColabNotebookExecutionTimeouts | cdktf.IResolvable): any;
export declare function colabNotebookExecutionTimeoutsToHclTerraform(struct?: ColabNotebookExecutionTimeouts | cdktf.IResolvable): any;
export declare class ColabNotebookExecutionTimeoutsOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    private resolvableValue?;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): ColabNotebookExecutionTimeouts | cdktf.IResolvable | undefined;
    set internalValue(value: ColabNotebookExecutionTimeouts | cdktf.IResolvable | undefined);
    private _create?;
    get create(): string;
    set create(value: string);
    resetCreate(): void;
    get createInput(): string | undefined;
    private _delete?;
    get delete(): string;
    set delete(value: string);
    resetDelete(): void;
    get deleteInput(): string | undefined;
}
/**
* Represents a {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/colab_notebook_execution google_colab_notebook_execution}
*/
export declare class ColabNotebookExecution extends cdktf.TerraformResource {
    static readonly tfResourceType = "google_colab_notebook_execution";
    /**
    * Generates CDKTF code for importing a ColabNotebookExecution resource upon running "cdktf plan <stack-name>"
    * @param scope The scope in which to define this construct
    * @param importToId The construct id used in the generated config for the ColabNotebookExecution to import
    * @param importFromId The id of the existing ColabNotebookExecution that should be imported. Refer to the {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/colab_notebook_execution#import import section} in the documentation of this resource for the id to use
    * @param provider? Optional instance of the provider where the ColabNotebookExecution to import is found
    */
    static generateConfigForImport(scope: Construct, importToId: string, importFromId: string, provider?: cdktf.TerraformProvider): cdktf.ImportableResource;
    /**
    * Create a new {@link https://registry.terraform.io/providers/hashicorp/google/6.36.0/docs/resources/colab_notebook_execution google_colab_notebook_execution} Resource
    *
    * @param scope The scope in which to define this construct
    * @param id The scoped construct ID. Must be unique amongst siblings in the same scope
    * @param options ColabNotebookExecutionConfig
    */
    constructor(scope: Construct, id: string, config: ColabNotebookExecutionConfig);
    private _displayName?;
    get displayName(): string;
    set displayName(value: string);
    get displayNameInput(): string | undefined;
    private _executionTimeout?;
    get executionTimeout(): string;
    set executionTimeout(value: string);
    resetExecutionTimeout(): void;
    get executionTimeoutInput(): string | undefined;
    private _executionUser?;
    get executionUser(): string;
    set executionUser(value: string);
    resetExecutionUser(): void;
    get executionUserInput(): string | undefined;
    private _gcsOutputUri?;
    get gcsOutputUri(): string;
    set gcsOutputUri(value: string);
    get gcsOutputUriInput(): string | undefined;
    private _id?;
    get id(): string;
    set id(value: string);
    resetId(): void;
    get idInput(): string | undefined;
    private _location?;
    get location(): string;
    set location(value: string);
    get locationInput(): string | undefined;
    private _notebookExecutionJobId?;
    get notebookExecutionJobId(): string;
    set notebookExecutionJobId(value: string);
    resetNotebookExecutionJobId(): void;
    get notebookExecutionJobIdInput(): string | undefined;
    private _notebookRuntimeTemplateResourceName?;
    get notebookRuntimeTemplateResourceName(): string;
    set notebookRuntimeTemplateResourceName(value: string);
    resetNotebookRuntimeTemplateResourceName(): void;
    get notebookRuntimeTemplateResourceNameInput(): string | undefined;
    private _project?;
    get project(): string;
    set project(value: string);
    resetProject(): void;
    get projectInput(): string | undefined;
    private _serviceAccount?;
    get serviceAccount(): string;
    set serviceAccount(value: string);
    resetServiceAccount(): void;
    get serviceAccountInput(): string | undefined;
    private _dataformRepositorySource;
    get dataformRepositorySource(): ColabNotebookExecutionDataformRepositorySourceOutputReference;
    putDataformRepositorySource(value: ColabNotebookExecutionDataformRepositorySource): void;
    resetDataformRepositorySource(): void;
    get dataformRepositorySourceInput(): ColabNotebookExecutionDataformRepositorySource | undefined;
    private _directNotebookSource;
    get directNotebookSource(): ColabNotebookExecutionDirectNotebookSourceOutputReference;
    putDirectNotebookSource(value: ColabNotebookExecutionDirectNotebookSource): void;
    resetDirectNotebookSource(): void;
    get directNotebookSourceInput(): ColabNotebookExecutionDirectNotebookSource | undefined;
    private _gcsNotebookSource;
    get gcsNotebookSource(): ColabNotebookExecutionGcsNotebookSourceOutputReference;
    putGcsNotebookSource(value: ColabNotebookExecutionGcsNotebookSource): void;
    resetGcsNotebookSource(): void;
    get gcsNotebookSourceInput(): ColabNotebookExecutionGcsNotebookSource | undefined;
    private _timeouts;
    get timeouts(): ColabNotebookExecutionTimeoutsOutputReference;
    putTimeouts(value: ColabNotebookExecutionTimeouts): void;
    resetTimeouts(): void;
    get timeoutsInput(): cdktf.IResolvable | ColabNotebookExecutionTimeouts | undefined;
    protected synthesizeAttributes(): {
        [name: string]: any;
    };
    protected synthesizeHclAttributes(): {
        [name: string]: any;
    };
}
