import * as pulumi from "@pulumi/pulumi"; /** * Resource for uploading files to Terraform/OpenTofu Provider Versions in the IaCM Provider Registry. * * ## Example Usage * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as harness from "@pulumi/harness"; * * // First, create a provider * const aws = new harness.platform.InfraProvider("aws", { * type: "aws", * description: "AWS provider for IaCM", * }); * // Create a version * const awsV5 = new harness.platform.InfraProviderVersion("aws_v5", { * providerId: aws.id, * version: "5.0.0", * gpgKeyId: "your-gpg-key-id", * protocols: [ * "5.0", * "6.0", * ], * }); * // Upload files for different platforms * const awsLinuxAmd64 = new harness.platform.InfraProviderVersionFile("aws_linux_amd64", { * providerId: aws.id, * version: awsV5.version, * filePath: "./terraform-provider-aws_5.0.0_linux_amd64.zip", * }); * const awsDarwinAmd64 = new harness.platform.InfraProviderVersionFile("aws_darwin_amd64", { * providerId: aws.id, * version: awsV5.version, * filePath: "./terraform-provider-aws_5.0.0_darwin_amd64.zip", * }); * const awsWindowsAmd64 = new harness.platform.InfraProviderVersionFile("aws_windows_amd64", { * providerId: aws.id, * version: awsV5.version, * filePath: "./terraform-provider-aws_5.0.0_windows_amd64.zip", * }); * // Upload SHA256SUMS and signature files * const awsShasums = new harness.platform.InfraProviderVersionFile("aws_shasums", { * providerId: aws.id, * version: awsV5.version, * filePath: "./terraform-provider-aws_5.0.0_SHA256SUMS", * }); * const awsShasumsSig = new harness.platform.InfraProviderVersionFile("aws_shasums_sig", { * providerId: aws.id, * version: awsV5.version, * filePath: "./terraform-provider-aws_5.0.0_SHA256SUMS.sig", * }); * // Optional: Override the uploaded filename if different from local filename * const customName = new harness.platform.InfraProviderVersionFile("custom_name", { * providerId: aws.id, * version: awsV5.version, * filePath: "./local-file.zip", * filename: "terraform-provider-aws_5.0.0_custom.zip", * }); * ``` * * ## Notes * * - Files cannot be updated once uploaded. To change a file, you must delete and recreate the resource. * - When `filePath` is provided, the resource reads the local file and uploads its content to the provider registry. * - The `filename` is automatically derived from `filePath` if not explicitly provided. * - Common files to upload include: * - Platform-specific provider binaries (e.g., `terraform-provider-aws_5.0.0_linux_amd64.zip`) * - SHA256SUMS file for verification * - SHA256SUMS.sig signature file for GPG verification * - Files are uploaded as raw binary content with `Content-Type: application/octet-stream`. * * ## Import * * The `pulumi import` command can be used, for example: * * ```sh * $ pulumi import harness:platform/infraProviderVersionFile:InfraProviderVersionFile example // * ``` */ export declare class InfraProviderVersionFile extends pulumi.CustomResource { /** * Get an existing InfraProviderVersionFile 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?: InfraProviderVersionFileState, opts?: pulumi.CustomResourceOptions): InfraProviderVersionFile; /** * Returns true if the given object is an instance of InfraProviderVersionFile. 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 InfraProviderVersionFile; /** * Local path to the file to upload. Required for uploading file content. */ readonly filePath: pulumi.Output; /** * Name of the file to upload (e.g., terraform-provider-aws*5.0.0*linux*amd64.zip). If not provided, will be derived from file*path. Use this to override the uploaded filename if it should differ from the local filename. */ readonly filename: pulumi.Output; /** * The ID of the provider. */ readonly providerId: pulumi.Output; /** * Indicates if the provider version is synced after file upload. */ readonly synced: pulumi.Output; /** * Provider version number. */ readonly version: pulumi.Output; /** * Create a InfraProviderVersionFile 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: InfraProviderVersionFileArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering InfraProviderVersionFile resources. */ export interface InfraProviderVersionFileState { /** * Local path to the file to upload. Required for uploading file content. */ filePath?: pulumi.Input; /** * Name of the file to upload (e.g., terraform-provider-aws*5.0.0*linux*amd64.zip). If not provided, will be derived from file*path. Use this to override the uploaded filename if it should differ from the local filename. */ filename?: pulumi.Input; /** * The ID of the provider. */ providerId?: pulumi.Input; /** * Indicates if the provider version is synced after file upload. */ synced?: pulumi.Input; /** * Provider version number. */ version?: pulumi.Input; } /** * The set of arguments for constructing a InfraProviderVersionFile resource. */ export interface InfraProviderVersionFileArgs { /** * Local path to the file to upload. Required for uploading file content. */ filePath: pulumi.Input; /** * Name of the file to upload (e.g., terraform-provider-aws*5.0.0*linux*amd64.zip). If not provided, will be derived from file*path. Use this to override the uploaded filename if it should differ from the local filename. */ filename?: pulumi.Input; /** * The ID of the provider. */ providerId: pulumi.Input; /** * Provider version number. */ version: pulumi.Input; } //# sourceMappingURL=infraProviderVersionFile.d.ts.map