@huaweicloudos/pulumi
Version:
A Pulumi package for creating and managing Huaweicloud cloud resources.
365 lines (364 loc) • 13.5 kB
TypeScript
import * as pulumi from "@pulumi/pulumi";
/**
* Manages an IMS image copy resource within HuaweiCloud.
*
* ## Example Usage
* ### Copy image within region
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as pulumi from "@huaweicloudos/pulumi";
*
* const config = new pulumi.Config();
* const sourceImageId = config.requireObject("sourceImageId");
* const name = config.requireObject("name");
* const kmsKeyId = config.requireObject("kmsKeyId");
* const test = new huaweicloud.ims.ImageCopy("test", {
* sourceImageId: sourceImageId,
* kmsKeyId: kmsKeyId,
* });
* ```
* ### Copy image cross region
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as pulumi from "@huaweicloudos/pulumi";
*
* const config = new pulumi.Config();
* const sourceImageId = config.requireObject("sourceImageId");
* const name = config.requireObject("name");
* const targetRegion = config.requireObject("targetRegion");
* const agencyName = config.requireObject("agencyName");
* const test = new huaweicloud.ims.ImageCopy("test", {
* sourceImageId: sourceImageId,
* targetRegion: targetRegion,
* agencyName: agencyName,
* });
* ```
*/
export declare class ImageCopy extends pulumi.CustomResource {
/**
* Get an existing ImageCopy 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<pulumi.ID>, state?: ImageCopyState, opts?: pulumi.CustomResourceOptions): ImageCopy;
/**
* Returns true if the given object is an instance of ImageCopy. 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 ImageCopy;
/**
* The time when the image status changes to active, in RFC3339 format.
*/
readonly activeAt: pulumi.Output<string>;
/**
* Specifies the agency name. It is required in the cross-region scene.
* Changing this parameter will create a new resource.
*/
readonly agencyName: pulumi.Output<string>;
/**
* checksum is deprecated
*/
readonly checksum: pulumi.Output<string>;
/**
* The creation time of the image, in RFC3339 format.
*/
readonly createdAt: pulumi.Output<string>;
/**
* Indicates the image source.
* The format is **image,region,source_image_id**, e.g. **image,cn-north-4,xxxxxx**.
*/
readonly dataOrigin: pulumi.Output<string>;
/**
* Specifies the description of the copy image.
*/
readonly description: pulumi.Output<string | undefined>;
/**
* Indicates the image file format.
* The value can be **zvhd2**, **vhd**, **zvhd**, **raw**, **qcow2**, or **iso**.
*/
readonly diskFormat: pulumi.Output<string>;
/**
* Specifies the enterprise project ID of the image.
* Only copying scene within a region is supported, for enterprise users, if omitted, default enterprise project will
* be used.
*/
readonly enterpriseProjectId: pulumi.Output<string>;
/**
* Indicates the size(bytes) of the image file.
*/
readonly imageSize: pulumi.Output<string>;
/**
* Indicates the ID of the ECS that needs to be converted into an image.
*/
readonly instanceId: pulumi.Output<string>;
/**
* Specifies the master key used for encrypting an image.
* Only copying scene within a region is supported. Changing this parameter will create a new resource.
*/
readonly kmsKeyId: pulumi.Output<string>;
/**
* Specifies the maximum memory of the copy image in the unit of MB.
*/
readonly maxRam: pulumi.Output<number>;
/**
* The minimum disk space required to run an image, in GB unit.
*/
readonly minDisk: pulumi.Output<number>;
/**
* Specifies the minimum memory of the copy image in the unit of MB. The default value is
* `0`, indicating that the memory is not restricted.
*/
readonly minRam: pulumi.Output<number>;
/**
* Specifies the name of the copy image. The name can contain `1` to `128` characters,
* only Chinese and English letters, digits, underscore (_), hyphens (-), dots (.) and space are allowed, but it cannot
* start or end with a space.
*/
readonly name: pulumi.Output<string>;
/**
* Indicates the OS version.
*/
readonly osVersion: pulumi.Output<string>;
/**
* Specifies the region to which the source image belongs.
* If omitted, the provider-level region will be used. Changing this parameter will create a new resource.
*/
readonly region: pulumi.Output<string>;
/**
* Specifies the ID of the copied image.
* Changing this parameter will create a new resource.
*/
readonly sourceImageId: pulumi.Output<string>;
/**
* Indicates the status of the image. The value can be **active**, **queued**, **saving**, **deleted**,
* or **killed*, only image with a status of **active** can be used.
*/
readonly status: pulumi.Output<string>;
/**
* Specifies the key/value pairs to associate with the copy image.
*/
readonly tags: pulumi.Output<{
[key: string]: string;
} | undefined>;
/**
* Specifies the target region name.
* If specified, it means cross-region replication.
*/
readonly targetRegion: pulumi.Output<string>;
/**
* The last update time of the image, in RFC3339 format.
*/
readonly updatedAt: pulumi.Output<string>;
/**
* Specifies the ID of the vault. It is used in the cross-region scene, it is
* mandatory if you are replicating a full-ECS image, and the region to which the vault belongs must be consistent with
* the value of `targetRegion`.
* Changing this parameter will create a new resource.
*/
readonly vaultId: pulumi.Output<string>;
/**
* Indicates whether the image is visible to other tenants.
*/
readonly visibility: pulumi.Output<string>;
/**
* Create a ImageCopy 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: ImageCopyArgs, opts?: pulumi.CustomResourceOptions);
}
/**
* Input properties used for looking up and filtering ImageCopy resources.
*/
export interface ImageCopyState {
/**
* The time when the image status changes to active, in RFC3339 format.
*/
activeAt?: pulumi.Input<string>;
/**
* Specifies the agency name. It is required in the cross-region scene.
* Changing this parameter will create a new resource.
*/
agencyName?: pulumi.Input<string>;
/**
* checksum is deprecated
*/
checksum?: pulumi.Input<string>;
/**
* The creation time of the image, in RFC3339 format.
*/
createdAt?: pulumi.Input<string>;
/**
* Indicates the image source.
* The format is **image,region,source_image_id**, e.g. **image,cn-north-4,xxxxxx**.
*/
dataOrigin?: pulumi.Input<string>;
/**
* Specifies the description of the copy image.
*/
description?: pulumi.Input<string>;
/**
* Indicates the image file format.
* The value can be **zvhd2**, **vhd**, **zvhd**, **raw**, **qcow2**, or **iso**.
*/
diskFormat?: pulumi.Input<string>;
/**
* Specifies the enterprise project ID of the image.
* Only copying scene within a region is supported, for enterprise users, if omitted, default enterprise project will
* be used.
*/
enterpriseProjectId?: pulumi.Input<string>;
/**
* Indicates the size(bytes) of the image file.
*/
imageSize?: pulumi.Input<string>;
/**
* Indicates the ID of the ECS that needs to be converted into an image.
*/
instanceId?: pulumi.Input<string>;
/**
* Specifies the master key used for encrypting an image.
* Only copying scene within a region is supported. Changing this parameter will create a new resource.
*/
kmsKeyId?: pulumi.Input<string>;
/**
* Specifies the maximum memory of the copy image in the unit of MB.
*/
maxRam?: pulumi.Input<number>;
/**
* The minimum disk space required to run an image, in GB unit.
*/
minDisk?: pulumi.Input<number>;
/**
* Specifies the minimum memory of the copy image in the unit of MB. The default value is
* `0`, indicating that the memory is not restricted.
*/
minRam?: pulumi.Input<number>;
/**
* Specifies the name of the copy image. The name can contain `1` to `128` characters,
* only Chinese and English letters, digits, underscore (_), hyphens (-), dots (.) and space are allowed, but it cannot
* start or end with a space.
*/
name?: pulumi.Input<string>;
/**
* Indicates the OS version.
*/
osVersion?: pulumi.Input<string>;
/**
* Specifies the region to which the source image belongs.
* If omitted, the provider-level region will be used. Changing this parameter will create a new resource.
*/
region?: pulumi.Input<string>;
/**
* Specifies the ID of the copied image.
* Changing this parameter will create a new resource.
*/
sourceImageId?: pulumi.Input<string>;
/**
* Indicates the status of the image. The value can be **active**, **queued**, **saving**, **deleted**,
* or **killed*, only image with a status of **active** can be used.
*/
status?: pulumi.Input<string>;
/**
* Specifies the key/value pairs to associate with the copy image.
*/
tags?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
/**
* Specifies the target region name.
* If specified, it means cross-region replication.
*/
targetRegion?: pulumi.Input<string>;
/**
* The last update time of the image, in RFC3339 format.
*/
updatedAt?: pulumi.Input<string>;
/**
* Specifies the ID of the vault. It is used in the cross-region scene, it is
* mandatory if you are replicating a full-ECS image, and the region to which the vault belongs must be consistent with
* the value of `targetRegion`.
* Changing this parameter will create a new resource.
*/
vaultId?: pulumi.Input<string>;
/**
* Indicates whether the image is visible to other tenants.
*/
visibility?: pulumi.Input<string>;
}
/**
* The set of arguments for constructing a ImageCopy resource.
*/
export interface ImageCopyArgs {
/**
* Specifies the agency name. It is required in the cross-region scene.
* Changing this parameter will create a new resource.
*/
agencyName?: pulumi.Input<string>;
/**
* Specifies the description of the copy image.
*/
description?: pulumi.Input<string>;
/**
* Specifies the enterprise project ID of the image.
* Only copying scene within a region is supported, for enterprise users, if omitted, default enterprise project will
* be used.
*/
enterpriseProjectId?: pulumi.Input<string>;
/**
* Specifies the master key used for encrypting an image.
* Only copying scene within a region is supported. Changing this parameter will create a new resource.
*/
kmsKeyId?: pulumi.Input<string>;
/**
* Specifies the maximum memory of the copy image in the unit of MB.
*/
maxRam?: pulumi.Input<number>;
/**
* Specifies the minimum memory of the copy image in the unit of MB. The default value is
* `0`, indicating that the memory is not restricted.
*/
minRam?: pulumi.Input<number>;
/**
* Specifies the name of the copy image. The name can contain `1` to `128` characters,
* only Chinese and English letters, digits, underscore (_), hyphens (-), dots (.) and space are allowed, but it cannot
* start or end with a space.
*/
name?: pulumi.Input<string>;
/**
* Specifies the region to which the source image belongs.
* If omitted, the provider-level region will be used. Changing this parameter will create a new resource.
*/
region?: pulumi.Input<string>;
/**
* Specifies the ID of the copied image.
* Changing this parameter will create a new resource.
*/
sourceImageId: pulumi.Input<string>;
/**
* Specifies the key/value pairs to associate with the copy image.
*/
tags?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
/**
* Specifies the target region name.
* If specified, it means cross-region replication.
*/
targetRegion?: pulumi.Input<string>;
/**
* Specifies the ID of the vault. It is used in the cross-region scene, it is
* mandatory if you are replicating a full-ECS image, and the region to which the vault belongs must be consistent with
* the value of `targetRegion`.
* Changing this parameter will create a new resource.
*/
vaultId?: pulumi.Input<string>;
}