UNPKG

@pulumi/gcp

Version:

A Pulumi package for creating and managing Google Cloud Platform resources.

496 lines (495 loc) • 21.1 kB
import * as pulumi from "@pulumi/pulumi"; import * as inputs from "../types/input"; import * as outputs from "../types/output"; /** * A CloudVmCluster resource. * * To get more information about CloudVmCluster, see: * * * [API documentation](https://cloud.google.com/oracle/database/docs/reference/rest/v1/projects.locations.cloudVmClusters) * * How-to Guides * * [Create VM clusters](https://cloud.google.com/oracle/database/docs/create-clusters) * * ## Example Usage * * ### Oracledatabase Cloud Vmcluster Basic * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as gcp from "@pulumi/gcp"; * * const cloudExadataInfrastructures = new gcp.oracledatabase.CloudExadataInfrastructure("cloudExadataInfrastructures", { * cloudExadataInfrastructureId: "my-exadata", * displayName: "my-exadata displayname", * location: "us-east4", * project: "my-project", * properties: { * shape: "Exadata.X9M", * computeCount: 2, * storageCount: 3, * }, * deletionProtection: true, * }); * const _default = gcp.compute.getNetwork({ * name: "new", * project: "my-project", * }); * const myVmcluster = new gcp.oracledatabase.CloudVmCluster("my_vmcluster", { * cloudVmClusterId: "my-instance", * displayName: "my-instance displayname", * location: "us-east4", * project: "my-project", * exadataInfrastructure: cloudExadataInfrastructures.id, * network: _default.then(_default => _default.id), * cidr: "10.5.0.0/24", * backupSubnetCidr: "10.6.0.0/24", * properties: { * licenseType: "LICENSE_INCLUDED", * sshPublicKeys: ["ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCz1X2744t+6vRLmE5u6nHi6/QWh8bQDgHmd+OIxRQIGA/IWUtCs2FnaCNZcqvZkaeyjk5v0lTA/n+9jvO42Ipib53athrfVG8gRt8fzPL66C6ZqHq+6zZophhrCdfJh/0G4x9xJh5gdMprlaCR1P8yAaVvhBQSKGc4SiIkyMNBcHJ5YTtMQMTfxaB4G1sHZ6SDAY9a6Cq/zNjDwfPapWLsiP4mRhE5SSjJX6l6EYbkm0JeLQg+AbJiNEPvrvDp1wtTxzlPJtIivthmLMThFxK7+DkrYFuLvN5AHUdo9KTDLvHtDCvV70r8v0gafsrKkM/OE9Jtzoo0e1N/5K/ZdyFRbAkFT4QSF3nwpbmBWLf2Evg//YyEuxnz4CwPqFST2mucnrCCGCVWp1vnHZ0y30nM35njLOmWdRDFy5l27pKUTwLp02y3UYiiZyP7d3/u5pKiN4vC27VuvzprSdJxWoAvluOiDeRh+/oeQDowxoT/Oop8DzB9uJmjktXw8jyMW2+Rpg+ENQqeNgF1OGlEzypaWiRskEFlkpLb4v/s3ZDYkL1oW0Nv/J8LTjTOTEaYt2Udjoe9x2xWiGnQixhdChWuG+MaoWffzUgx1tsVj/DBXijR5DjkPkrA1GA98zd3q8GKEaAdcDenJjHhNYSd4+rE9pIsnYn7fo5X/tFfcQH1XQ== nobody@google.com"], * cpuCoreCount: 4, * giVersion: "19.0.0.0", * hostnamePrefix: "hostname1", * }, * deletionProtection: true, * }); * ``` * ### Oracledatabase Cloud Vmcluster Odbnetwork * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as gcp from "@pulumi/gcp"; * * const cloudExadataInfrastructures = new gcp.oracledatabase.CloudExadataInfrastructure("cloudExadataInfrastructures", { * cloudExadataInfrastructureId: "my-exadata", * displayName: "my-exadata displayname", * location: "europe-west2", * project: "my-project", * properties: { * shape: "Exadata.X9M", * computeCount: 2, * storageCount: 3, * }, * deletionProtection: true, * }); * const myVmcluster = new gcp.oracledatabase.CloudVmCluster("my_vmcluster", { * cloudVmClusterId: "my-instance", * displayName: "my-instance displayname", * location: "europe-west2", * project: "my-project", * exadataInfrastructure: cloudExadataInfrastructures.id, * odbNetwork: "projects/my-project/locations/europe-west2/odbNetworks/my-odbnetwork", * odbSubnet: "projects/my-project/locations/europe-west2/odbNetworks/my-odbnetwork/odbSubnets/my-odbsubnet", * backupOdbSubnet: "projects/my-project/locations/europe-west2/odbNetworks/my-odbnetwork/odbSubnets/my-backup-odbsubnet", * properties: { * licenseType: "LICENSE_INCLUDED", * sshPublicKeys: ["ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCz1X2744t+6vRLmE5u6nHi6/QWh8bQDgHmd+OIxRQIGA/IWUtCs2FnaCNZcqvZkaeyjk5v0lTA/n+9jvO42Ipib53athrfVG8gRt8fzPL66C6ZqHq+6zZophhrCdfJh/0G4x9xJh5gdMprlaCR1P8yAaVvhBQSKGc4SiIkyMNBcHJ5YTtMQMTfxaB4G1sHZ6SDAY9a6Cq/zNjDwfPapWLsiP4mRhE5SSjJX6l6EYbkm0JeLQg+AbJiNEPvrvDp1wtTxzlPJtIivthmLMThFxK7+DkrYFuLvN5AHUdo9KTDLvHtDCvV70r8v0gafsrKkM/OE9Jtzoo0e1N/5K/ZdyFRbAkFT4QSF3nwpbmBWLf2Evg//YyEuxnz4CwPqFST2mucnrCCGCVWp1vnHZ0y30nM35njLOmWdRDFy5l27pKUTwLp02y3UYiiZyP7d3/u5pKiN4vC27VuvzprSdJxWoAvluOiDeRh+/oeQDowxoT/Oop8DzB9uJmjktXw8jyMW2+Rpg+ENQqeNgF1OGlEzypaWiRskEFlkpLb4v/s3ZDYkL1oW0Nv/J8LTjTOTEaYt2Udjoe9x2xWiGnQixhdChWuG+MaoWffzUgx1tsVj/DBXijR5DjkPkrA1GA98zd3q8GKEaAdcDenJjHhNYSd4+rE9pIsnYn7fo5X/tFfcQH1XQ== nobody@google.com"], * cpuCoreCount: 4, * giVersion: "19.0.0.0", * hostnamePrefix: "hostname1", * }, * deletionProtection: true, * }); * ``` * ### Oracledatabase Cloud Vmcluster Full * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as gcp from "@pulumi/gcp"; * * const cloudExadataInfrastructures = new gcp.oracledatabase.CloudExadataInfrastructure("cloudExadataInfrastructures", { * cloudExadataInfrastructureId: "my-exadata", * displayName: "my-exadata displayname", * location: "us-east4", * project: "my-project", * properties: { * shape: "Exadata.X9M", * computeCount: 2, * storageCount: 3, * }, * deletionProtection: true, * }); * const _default = gcp.compute.getNetwork({ * name: "new", * project: "my-project", * }); * const mydbserver = gcp.oracledatabase.getDbServersOutput({ * location: "us-east4", * project: "my-project", * cloudExadataInfrastructure: cloudExadataInfrastructures.cloudExadataInfrastructureId, * }); * const myVmcluster = new gcp.oracledatabase.CloudVmCluster("my_vmcluster", { * cloudVmClusterId: "my-instance", * displayName: "my-instance displayname", * location: "us-east4", * project: "my-project", * exadataInfrastructure: cloudExadataInfrastructures.id, * network: _default.then(_default => _default.id), * cidr: "10.5.0.0/24", * backupSubnetCidr: "10.6.0.0/24", * labels: { * "label-one": "value-one", * }, * properties: { * licenseType: "LICENSE_INCLUDED", * sshPublicKeys: ["ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCz1X2744t+6vRLmE5u6nHi6/QWh8bQDgHmd+OIxRQIGA/IWUtCs2FnaCNZcqvZkaeyjk5v0lTA/n+9jvO42Ipib53athrfVG8gRt8fzPL66C6ZqHq+6zZophhrCdfJh/0G4x9xJh5gdMprlaCR1P8yAaVvhBQSKGc4SiIkyMNBcHJ5YTtMQMTfxaB4G1sHZ6SDAY9a6Cq/zNjDwfPapWLsiP4mRhE5SSjJX6l6EYbkm0JeLQg+AbJiNEPvrvDp1wtTxzlPJtIivthmLMThFxK7+DkrYFuLvN5AHUdo9KTDLvHtDCvV70r8v0gafsrKkM/OE9Jtzoo0e1N/5K/ZdyFRbAkFT4QSF3nwpbmBWLf2Evg//YyEuxnz4CwPqFST2mucnrCCGCVWp1vnHZ0y30nM35njLOmWdRDFy5l27pKUTwLp02y3UYiiZyP7d3/u5pKiN4vC27VuvzprSdJxWoAvluOiDeRh+/oeQDowxoT/Oop8DzB9uJmjktXw8jyMW2+Rpg+ENQqeNgF1OGlEzypaWiRskEFlkpLb4v/s3ZDYkL1oW0Nv/J8LTjTOTEaYt2Udjoe9x2xWiGnQixhdChWuG+MaoWffzUgx1tsVj/DBXijR5DjkPkrA1GA98zd3q8GKEaAdcDenJjHhNYSd4+rE9pIsnYn7fo5X/tFfcQH1XQ== nobody@google.com"], * cpuCoreCount: 4, * giVersion: "19.0.0.0", * timeZone: { * id: "UTC", * }, * nodeCount: 2, * ocpuCount: 4, * dataStorageSizeTb: 2, * dbNodeStorageSizeGb: 120, * dbServerOcids: [ * mydbserver.apply(mydbserver => mydbserver.dbServers?.[0]?.properties?.[0]?.ocid), * mydbserver.apply(mydbserver => mydbserver.dbServers?.[1]?.properties?.[0]?.ocid), * ], * diskRedundancy: "HIGH", * sparseDiskgroupEnabled: false, * localBackupEnabled: false, * clusterName: "pq-ppat4", * hostnamePrefix: "hostname1", * diagnosticsDataCollectionOptions: { * diagnosticsEventsEnabled: true, * healthMonitoringEnabled: true, * incidentLogsEnabled: true, * }, * memorySizeGb: 60, * }, * deletionProtection: true, * }); * ``` * * ## Import * * CloudVmCluster can be imported using any of these accepted formats: * * * `projects/{{project}}/locations/{{location}}/cloudVmClusters/{{cloud_vm_cluster_id}}` * * * `{{project}}/{{location}}/{{cloud_vm_cluster_id}}` * * * `{{location}}/{{cloud_vm_cluster_id}}` * * When using the `pulumi import` command, CloudVmCluster can be imported using one of the formats above. For example: * * ```sh * $ pulumi import gcp:oracledatabase/cloudVmCluster:CloudVmCluster default projects/{{project}}/locations/{{location}}/cloudVmClusters/{{cloud_vm_cluster_id}} * ``` * * ```sh * $ pulumi import gcp:oracledatabase/cloudVmCluster:CloudVmCluster default {{project}}/{{location}}/{{cloud_vm_cluster_id}} * ``` * * ```sh * $ pulumi import gcp:oracledatabase/cloudVmCluster:CloudVmCluster default {{location}}/{{cloud_vm_cluster_id}} * ``` */ export declare class CloudVmCluster extends pulumi.CustomResource { /** * Get an existing CloudVmCluster 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?: CloudVmClusterState, opts?: pulumi.CustomResourceOptions): CloudVmCluster; /** * Returns true if the given object is an instance of CloudVmCluster. 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 CloudVmCluster; /** * The name of the backup OdbSubnet associated with the VM Cluster. * Format: * projects/{project}/locations/{location}/odbNetworks/{odb_network}/odbSubnets/{odb_subnet} */ readonly backupOdbSubnet: pulumi.Output<string>; /** * CIDR range of the backup subnet. */ readonly backupSubnetCidr: pulumi.Output<string | undefined>; /** * Network settings. CIDR to use for cluster IP allocation. */ readonly cidr: pulumi.Output<string | undefined>; /** * The ID of the VM Cluster to create. This value is restricted * to (^a-z?$) and must be a maximum of 63 * characters in length. The value must start with a letter and end with * a letter or a number. */ readonly cloudVmClusterId: pulumi.Output<string>; /** * The date and time that the VM cluster was created. */ readonly createTime: pulumi.Output<string>; readonly deletionProtection: pulumi.Output<boolean | undefined>; /** * User friendly name for this resource. */ readonly displayName: pulumi.Output<string | undefined>; /** * 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; }>; /** * The name of the Exadata Infrastructure resource on which VM cluster * resource is created, in the following format: * projects/{project}/locations/{region}/cloudExadataInfrastuctures/{cloud_extradata_infrastructure} */ readonly exadataInfrastructure: pulumi.Output<string>; /** * GCP location where Oracle Exadata is hosted. It is same as GCP Oracle zone * of Exadata infrastructure. */ readonly gcpOracleZone: pulumi.Output<string>; /** * Labels or tags associated with the VM Cluster. * **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>; /** * Resource ID segment making up resource `name`. See documentation for resource type `oracledatabase.googleapis.com/DbNode`. */ readonly location: pulumi.Output<string>; /** * Identifier. The name of the VM Cluster resource with the format: * projects/{project}/locations/{region}/cloudVmClusters/{cloud_vm_cluster} */ readonly name: pulumi.Output<string>; /** * The name of the VPC network. * Format: projects/{project}/global/networks/{network} */ readonly network: pulumi.Output<string | undefined>; /** * The name of the OdbNetwork associated with the VM Cluster. * Format: * projects/{project}/locations/{location}/odbNetworks/{odb_network} * It is optional but if specified, this should match the parent ODBNetwork of * the odbSubnet and backup_odb_subnet. */ readonly odbNetwork: pulumi.Output<string>; /** * The name of the OdbSubnet associated with the VM Cluster for * IP allocation. Format: * projects/{project}/locations/{location}/odbNetworks/{odb_network}/odbSubnets/{odb_subnet} */ readonly odbSubnet: pulumi.Output<string>; /** * The ID of the project in which the resource belongs. * If it is not provided, the provider project is used. */ readonly project: pulumi.Output<string>; /** * Various properties and settings associated with Exadata VM cluster. * Structure is documented below. */ readonly properties: pulumi.Output<outputs.oracledatabase.CloudVmClusterProperties | undefined>; /** * The combination of labels configured directly on the resource * and default labels configured on the provider. */ readonly pulumiLabels: pulumi.Output<{ [key: string]: string; }>; /** * Create a CloudVmCluster 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: CloudVmClusterArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering CloudVmCluster resources. */ export interface CloudVmClusterState { /** * The name of the backup OdbSubnet associated with the VM Cluster. * Format: * projects/{project}/locations/{location}/odbNetworks/{odb_network}/odbSubnets/{odb_subnet} */ backupOdbSubnet?: pulumi.Input<string>; /** * CIDR range of the backup subnet. */ backupSubnetCidr?: pulumi.Input<string>; /** * Network settings. CIDR to use for cluster IP allocation. */ cidr?: pulumi.Input<string>; /** * The ID of the VM Cluster to create. This value is restricted * to (^a-z?$) and must be a maximum of 63 * characters in length. The value must start with a letter and end with * a letter or a number. */ cloudVmClusterId?: pulumi.Input<string>; /** * The date and time that the VM cluster was created. */ createTime?: pulumi.Input<string>; deletionProtection?: pulumi.Input<boolean>; /** * User friendly name for this resource. */ displayName?: pulumi.Input<string>; /** * 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<string>; }>; /** * The name of the Exadata Infrastructure resource on which VM cluster * resource is created, in the following format: * projects/{project}/locations/{region}/cloudExadataInfrastuctures/{cloud_extradata_infrastructure} */ exadataInfrastructure?: pulumi.Input<string>; /** * GCP location where Oracle Exadata is hosted. It is same as GCP Oracle zone * of Exadata infrastructure. */ gcpOracleZone?: pulumi.Input<string>; /** * Labels or tags associated with the VM Cluster. * **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<string>; }>; /** * Resource ID segment making up resource `name`. See documentation for resource type `oracledatabase.googleapis.com/DbNode`. */ location?: pulumi.Input<string>; /** * Identifier. The name of the VM Cluster resource with the format: * projects/{project}/locations/{region}/cloudVmClusters/{cloud_vm_cluster} */ name?: pulumi.Input<string>; /** * The name of the VPC network. * Format: projects/{project}/global/networks/{network} */ network?: pulumi.Input<string>; /** * The name of the OdbNetwork associated with the VM Cluster. * Format: * projects/{project}/locations/{location}/odbNetworks/{odb_network} * It is optional but if specified, this should match the parent ODBNetwork of * the odbSubnet and backup_odb_subnet. */ odbNetwork?: pulumi.Input<string>; /** * The name of the OdbSubnet associated with the VM Cluster for * IP allocation. Format: * projects/{project}/locations/{location}/odbNetworks/{odb_network}/odbSubnets/{odb_subnet} */ odbSubnet?: pulumi.Input<string>; /** * The ID of the project in which the resource belongs. * If it is not provided, the provider project is used. */ project?: pulumi.Input<string>; /** * Various properties and settings associated with Exadata VM cluster. * Structure is documented below. */ properties?: pulumi.Input<inputs.oracledatabase.CloudVmClusterProperties>; /** * The combination of labels configured directly on the resource * and default labels configured on the provider. */ pulumiLabels?: pulumi.Input<{ [key: string]: pulumi.Input<string>; }>; } /** * The set of arguments for constructing a CloudVmCluster resource. */ export interface CloudVmClusterArgs { /** * The name of the backup OdbSubnet associated with the VM Cluster. * Format: * projects/{project}/locations/{location}/odbNetworks/{odb_network}/odbSubnets/{odb_subnet} */ backupOdbSubnet?: pulumi.Input<string>; /** * CIDR range of the backup subnet. */ backupSubnetCidr?: pulumi.Input<string>; /** * Network settings. CIDR to use for cluster IP allocation. */ cidr?: pulumi.Input<string>; /** * The ID of the VM Cluster to create. This value is restricted * to (^a-z?$) and must be a maximum of 63 * characters in length. The value must start with a letter and end with * a letter or a number. */ cloudVmClusterId: pulumi.Input<string>; deletionProtection?: pulumi.Input<boolean>; /** * User friendly name for this resource. */ displayName?: pulumi.Input<string>; /** * The name of the Exadata Infrastructure resource on which VM cluster * resource is created, in the following format: * projects/{project}/locations/{region}/cloudExadataInfrastuctures/{cloud_extradata_infrastructure} */ exadataInfrastructure: pulumi.Input<string>; /** * Labels or tags associated with the VM Cluster. * **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<string>; }>; /** * Resource ID segment making up resource `name`. See documentation for resource type `oracledatabase.googleapis.com/DbNode`. */ location: pulumi.Input<string>; /** * The name of the VPC network. * Format: projects/{project}/global/networks/{network} */ network?: pulumi.Input<string>; /** * The name of the OdbNetwork associated with the VM Cluster. * Format: * projects/{project}/locations/{location}/odbNetworks/{odb_network} * It is optional but if specified, this should match the parent ODBNetwork of * the odbSubnet and backup_odb_subnet. */ odbNetwork?: pulumi.Input<string>; /** * The name of the OdbSubnet associated with the VM Cluster for * IP allocation. Format: * projects/{project}/locations/{location}/odbNetworks/{odb_network}/odbSubnets/{odb_subnet} */ odbSubnet?: pulumi.Input<string>; /** * The ID of the project in which the resource belongs. * If it is not provided, the provider project is used. */ project?: pulumi.Input<string>; /** * Various properties and settings associated with Exadata VM cluster. * Structure is documented below. */ properties?: pulumi.Input<inputs.oracledatabase.CloudVmClusterProperties>; }