import * as pulumi from "@pulumi/pulumi"; import * as inputs from "./types/input"; import * as outputs from "./types/output"; /** * Provides a resource to create database instance based on the input parameters. For 1.8.0 release, only postgress database type is qualified and officially supported. * * ## Example Usage * * ### NDB database resource with new database server VM * * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as nutanix from "@pierskarsenbarg/nutanix"; * * const dbp = new nutanix.NdbDatabase("dbp", { * databasetype: "postgres_database", * name: "test-inst", * description: "add description", * softwareprofileid: "{{ software_profile_id }}", * softwareprofileversionid: "{{ software_profile_version_id }}", * computeprofileid: "{{ compute_profile_id }}", * networkprofileid: "{{ network_profile_id }}", * dbparameterprofileid: "{{ db_parameter_profile_id }}", * postgresqlInfo: { * listenerPort: "{{ listner_port }}", * databaseSize: "{{ 200 }}", * dbPassword: "password", * databaseNames: "testdb1", * }, * nxclusterid: clusters.EraCluster.id, * sshpublickey: "{{ ssh-public-key }}", * nodes: [{ * vmname: "test-era-vm1", * networkprofileid: "", * }], * timemachineinfo: { * name: "test-pg-inst", * description: "description of time machine", * slaid: "{{ sla_id }}", * schedule: { * snapshottimeofday: { * hours: 16, * minutes: 0, * seconds: 0, * }, * continuousschedule: { * enabled: true, * logbackupinterval: 30, * snapshotsperday: 1, * }, * weeklyschedule: { * enabled: true, * dayofweek: "WEDNESDAY", * }, * monthlyschedule: { * enabled: true, * dayofmonth: 27, * }, * quartelyschedule: { * enabled: true, * startmonth: "JANUARY", * dayofmonth: 27, * }, * yearlyschedule: { * enabled: false, * dayofmonth: 31, * month: "DECEMBER", * }, * }, * }, * }); * ``` * * * ### NDB database resource to provision HA instance with new database server VM * * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as nutanix from "@pierskarsenbarg/nutanix"; * * const dbp = new nutanix.NdbDatabase("dbp", { * databasetype: "postgres_database", * name: "test-pg-inst-HA-tf", * description: "adding description", * softwareprofileid: "{{ software_profile_id }}", * softwareprofileversionid: "{{ software_profile_version_id }}", * computeprofileid: "{{ compute_profile_id }}", * networkprofileid: "{{ network_profile_id }}", * dbparameterprofileid: "{{ db_parameter_profile_id }}", * createdbserver: true, * clustered: true, * nodecount: 4, * postgresqlInfo: { * listenerPort: "5432", * databaseSize: "200", * dbPassword: "{{ database password}}", * databaseNames: "testdb1", * haInstance: { * proxyReadPort: "5001", * proxyWritePort: "5000", * clusterName: "{{ cluster_name }}", * patroniClusterName: " {{ patroni_cluster_name }}", * }, * }, * nxclusterid: "1c42ca25-32f4-42d9-a2bd-6a21f925b725", * sshpublickey: "{{ ssh_public_key }}", * nodes: [ * { * properties: [{ * name: "node_type", * value: "haproxy", * }], * vmname: "{{ vm name }}", * nxClusterId: "{{ nx_cluster_id }}", * }, * { * properties: [ * { * name: "role", * value: "Primary", * }, * { * name: "failover_mode", * value: "Automatic", * }, * { * name: "node_type", * value: "database", * }, * ], * vmname: "{{ name of vm }}", * networkprofileid: "{{ network_profile_id }}", * computeprofileid: "{{ compute_profile_id }}", * nxClusterId: "{{ nx_cluster_id }}", * }, * { * properties: [ * { * name: "role", * value: "Secondary", * }, * { * name: "failover_mode", * value: "Automatic", * }, * { * name: "node_type", * value: "database", * }, * ], * vmname: "{{ name of vm }}", * networkprofileid: "{{ network_profile_id }}", * computeprofileid: "{{ compute_profile_id }}", * nxClusterId: "{{ nx_cluster_id }}", * }, * { * properties: [ * { * name: "role", * value: "Secondary", * }, * { * name: "failover_mode", * value: "Automatic", * }, * { * name: "node_type", * value: "database", * }, * ], * vmname: "{{ name of vm }}", * networkprofileid: "{{ network_profile_id }}", * computeprofileid: "{{ compute_profile_id }}", * nxClusterId: "{{ nx_cluster_id }}", * }, * ], * timemachineinfo: { * name: "test-pg-inst-HA", * description: "", * slaDetails: [{ * primarySlas: [{ * slaId: "{{ required SLA}}0", * nxClusterIds: ["{{ nx_cluster_id}}"], * }], * }], * schedule: { * snapshottimeofday: { * hours: 16, * minutes: 0, * seconds: 0, * }, * continuousschedule: { * enabled: true, * logbackupinterval: 30, * snapshotsperday: 1, * }, * weeklyschedule: { * enabled: true, * dayofweek: "WEDNESDAY", * }, * monthlyschedule: { * enabled: true, * dayofmonth: 27, * }, * quartelyschedule: { * enabled: true, * startmonth: "JANUARY", * dayofmonth: 27, * }, * yearlyschedule: { * enabled: false, * dayofmonth: 31, * month: "DECEMBER", * }, * }, * }, * vmPassword: "{{ vm_password}}", * autotunestagingdrive: true, * }); * ``` * * * ### NDB database resource with registered database server VM * * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as nutanix from "@pierskarsenbarg/nutanix"; * * const dbp = new nutanix.NdbDatabase("dbp", { * databasetype: "postgres_database", * name: "test-inst", * description: "add description", * dbparameterprofileid: "{{ db_parameter_profile_id }}", * dbserverId: "{{ dbserver_id }}", * createdbserver: false, * postgresqlInfo: { * listenerPort: "{{ listner_port }}", * databaseSize: "{{ 200 }}", * dbPassword: "password", * databaseNames: "testdb1", * }, * actionarguments: [{ * name: "host_ip", * value: "{{ hostIP }}", * }], * nodes: [{ * dbserverid: "{{ dbserver_id }}", * }], * timemachineinfo: { * name: "test-pg-inst", * description: "description of time machine", * slaid: "{{ sla_id }}", * schedule: { * snapshottimeofday: { * hours: 16, * minutes: 0, * seconds: 0, * }, * continuousschedule: { * enabled: true, * logbackupinterval: 30, * snapshotsperday: 1, * }, * weeklyschedule: { * enabled: true, * dayofweek: "WEDNESDAY", * }, * monthlyschedule: { * enabled: true, * dayofmonth: 27, * }, * quartelyschedule: { * enabled: true, * startmonth: "JANUARY", * dayofmonth: 27, * }, * yearlyschedule: { * enabled: false, * dayofmonth: 31, * month: "DECEMBER", * }, * }, * }, * }); * ``` * * * ## lifecycle * * * `Update` : - Currently only update of instance's name and description is supported using this resource * * See detailed information in [NDB Database Instance](https://www.nutanix.dev/api_references/ndb/#/9d9eee4304496-provision-a-database). */ export declare class NdbDatabase extends pulumi.CustomResource { /** * Get an existing NdbDatabase 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?: NdbDatabaseState, opts?: pulumi.CustomResourceOptions): NdbDatabase; /** * Returns true if the given object is an instance of NdbDatabase. 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 NdbDatabase; /** * - (Optional) action arguments for database. For postgress, you can use postgresql_info */ readonly actionarguments: pulumi.Output; /** * - (Optional) Enable auto tuning of staging drive. Default: true */ readonly autotunestagingdrive: pulumi.Output; readonly clone: pulumi.Output; readonly clusterInfos: pulumi.Output; /** * - (Optional) If clustered database. Default: false */ readonly clustered: pulumi.Output; /** * - (Optional) ID of compute profile */ readonly computeprofileid: pulumi.Output; /** * - (Optional) Set this to create new DB server VM. Default: true */ readonly createdbserver: pulumi.Output; readonly databaseClusterType: pulumi.Output; readonly databaseInstanceId: pulumi.Output; readonly databaseName: pulumi.Output; readonly databaseNodes: pulumi.Output; /** * - (Required) Type of database. Valid values: postgres_database */ readonly databasetype: pulumi.Output; readonly dateCreated: pulumi.Output; readonly dateModified: pulumi.Output; /** * - (Optional) DB parameters profile ID */ readonly dbparameterprofileid: pulumi.Output; readonly dbserverLogicalCluster: pulumi.Output<{ [key: string]: string; }>; readonly dbserverLogicalClusterId: pulumi.Output; /** * - (Optional) DB server VM ID for creating instance on registered DB server VM */ readonly dbserverid: pulumi.Output; /** * - (Optional) Delete the database from the VM. Default value is true */ readonly delete: pulumi.Output; /** * - (Optional) Delete the logical cluster. Default is true */ readonly deleteLogicalCluster: pulumi.Output; /** * - (Optional) Delete the database's Time Machine (snapshots/logs) from the NDB. Default value is true */ readonly deleteTimeMachine: pulumi.Output; /** * - (Optional) The description */ readonly description: pulumi.Output; /** * - (Optional) Force delete of instance. Default is false */ readonly forced: pulumi.Output; readonly infos: pulumi.Output; readonly lcmConfigs: pulumi.Output; readonly linkedDatabases: pulumi.Output; readonly maintenanceTasks: pulumi.Output; readonly metric: pulumi.Output<{ [key: string]: string; }>; /** * - (Required) Name of the instance. */ readonly name: pulumi.Output; /** * - (Optional) ID of network profile */ readonly networkprofileid: pulumi.Output; /** * - (Optional) Timezone of new DB server VM */ readonly newdbservertimezone: pulumi.Output; /** * - (Optional) No. of nodes/db server vms. Default: 1 */ readonly nodecount: pulumi.Output; /** * - (Optional) nodes info */ readonly nodes: pulumi.Output; /** * - (Optional) Cluster ID for DB server VM */ readonly nxclusterid: pulumi.Output; readonly parentDatabaseId: pulumi.Output; /** * - (Optional) action arguments for postgress type database. */ readonly postgresqlInfo: pulumi.Output; /** * List of all the properties */ readonly properties: pulumi.Output; /** * - (Optional) Unregister the database from NDB. Default value is true */ readonly remove: pulumi.Output; /** * - (Optional) Soft remove. Default will be false */ readonly softRemove: pulumi.Output; /** * - (Optional) ID of software profile */ readonly softwareprofileid: pulumi.Output; /** * - (Optional) ID of version in software profile */ readonly softwareprofileversionid: pulumi.Output; /** * - (Optional) public key for ssh access to DB server VM */ readonly sshpublickey: pulumi.Output; readonly status: pulumi.Output; readonly tags: pulumi.Output; readonly timeMachineId: pulumi.Output; readonly timeMachines: pulumi.Output; readonly timeZone: pulumi.Output; /** * - (Optional) time machine config */ readonly timemachineinfo: pulumi.Output; readonly type: pulumi.Output; /** * - (Optional) password for DB server VM and era drive user */ readonly vmPassword: pulumi.Output; /** * Create a NdbDatabase 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?: NdbDatabaseArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering NdbDatabase resources. */ export interface NdbDatabaseState { /** * - (Optional) action arguments for database. For postgress, you can use postgresql_info */ actionarguments?: pulumi.Input[] | undefined>; /** * - (Optional) Enable auto tuning of staging drive. Default: true */ autotunestagingdrive?: pulumi.Input; clone?: pulumi.Input; clusterInfos?: pulumi.Input[] | undefined>; /** * - (Optional) If clustered database. Default: false */ clustered?: pulumi.Input; /** * - (Optional) ID of compute profile */ computeprofileid?: pulumi.Input; /** * - (Optional) Set this to create new DB server VM. Default: true */ createdbserver?: pulumi.Input; databaseClusterType?: pulumi.Input; databaseInstanceId?: pulumi.Input; databaseName?: pulumi.Input; databaseNodes?: pulumi.Input[] | undefined>; /** * - (Required) Type of database. Valid values: postgres_database */ databasetype?: pulumi.Input; dateCreated?: pulumi.Input; dateModified?: pulumi.Input; /** * - (Optional) DB parameters profile ID */ dbparameterprofileid?: pulumi.Input; dbserverLogicalCluster?: pulumi.Input<{ [key: string]: pulumi.Input; } | undefined>; dbserverLogicalClusterId?: pulumi.Input; /** * - (Optional) DB server VM ID for creating instance on registered DB server VM */ dbserverid?: pulumi.Input; /** * - (Optional) Delete the database from the VM. Default value is true */ delete?: pulumi.Input; /** * - (Optional) Delete the logical cluster. Default is true */ deleteLogicalCluster?: pulumi.Input; /** * - (Optional) Delete the database's Time Machine (snapshots/logs) from the NDB. Default value is true */ deleteTimeMachine?: pulumi.Input; /** * - (Optional) The description */ description?: pulumi.Input; /** * - (Optional) Force delete of instance. Default is false */ forced?: pulumi.Input; infos?: pulumi.Input[] | undefined>; lcmConfigs?: pulumi.Input[] | undefined>; linkedDatabases?: pulumi.Input[] | undefined>; maintenanceTasks?: pulumi.Input; metric?: pulumi.Input<{ [key: string]: pulumi.Input; } | undefined>; /** * - (Required) Name of the instance. */ name?: pulumi.Input; /** * - (Optional) ID of network profile */ networkprofileid?: pulumi.Input; /** * - (Optional) Timezone of new DB server VM */ newdbservertimezone?: pulumi.Input; /** * - (Optional) No. of nodes/db server vms. Default: 1 */ nodecount?: pulumi.Input; /** * - (Optional) nodes info */ nodes?: pulumi.Input[] | undefined>; /** * - (Optional) Cluster ID for DB server VM */ nxclusterid?: pulumi.Input; parentDatabaseId?: pulumi.Input; /** * - (Optional) action arguments for postgress type database. */ postgresqlInfo?: pulumi.Input; /** * List of all the properties */ properties?: pulumi.Input[] | undefined>; /** * - (Optional) Unregister the database from NDB. Default value is true */ remove?: pulumi.Input; /** * - (Optional) Soft remove. Default will be false */ softRemove?: pulumi.Input; /** * - (Optional) ID of software profile */ softwareprofileid?: pulumi.Input; /** * - (Optional) ID of version in software profile */ softwareprofileversionid?: pulumi.Input; /** * - (Optional) public key for ssh access to DB server VM */ sshpublickey?: pulumi.Input; status?: pulumi.Input; tags?: pulumi.Input[] | undefined>; timeMachineId?: pulumi.Input; timeMachines?: pulumi.Input[] | undefined>; timeZone?: pulumi.Input; /** * - (Optional) time machine config */ timemachineinfo?: pulumi.Input; type?: pulumi.Input; /** * - (Optional) password for DB server VM and era drive user */ vmPassword?: pulumi.Input; } /** * The set of arguments for constructing a NdbDatabase resource. */ export interface NdbDatabaseArgs { /** * - (Optional) action arguments for database. For postgress, you can use postgresql_info */ actionarguments?: pulumi.Input[] | undefined>; /** * - (Optional) Enable auto tuning of staging drive. Default: true */ autotunestagingdrive?: pulumi.Input; clusterInfos?: pulumi.Input[] | undefined>; /** * - (Optional) If clustered database. Default: false */ clustered?: pulumi.Input; /** * - (Optional) ID of compute profile */ computeprofileid?: pulumi.Input; /** * - (Optional) Set this to create new DB server VM. Default: true */ createdbserver?: pulumi.Input; databaseInstanceId?: pulumi.Input; /** * - (Required) Type of database. Valid values: postgres_database */ databasetype?: pulumi.Input; /** * - (Optional) DB parameters profile ID */ dbparameterprofileid?: pulumi.Input; /** * - (Optional) DB server VM ID for creating instance on registered DB server VM */ dbserverid?: pulumi.Input; /** * - (Optional) Delete the database from the VM. Default value is true */ delete?: pulumi.Input; /** * - (Optional) Delete the logical cluster. Default is true */ deleteLogicalCluster?: pulumi.Input; /** * - (Optional) Delete the database's Time Machine (snapshots/logs) from the NDB. Default value is true */ deleteTimeMachine?: pulumi.Input; /** * - (Optional) The description */ description?: pulumi.Input; /** * - (Optional) Force delete of instance. Default is false */ forced?: pulumi.Input; maintenanceTasks?: pulumi.Input; /** * - (Required) Name of the instance. */ name?: pulumi.Input; /** * - (Optional) ID of network profile */ networkprofileid?: pulumi.Input; /** * - (Optional) Timezone of new DB server VM */ newdbservertimezone?: pulumi.Input; /** * - (Optional) No. of nodes/db server vms. Default: 1 */ nodecount?: pulumi.Input; /** * - (Optional) nodes info */ nodes?: pulumi.Input[] | undefined>; /** * - (Optional) Cluster ID for DB server VM */ nxclusterid?: pulumi.Input; /** * - (Optional) action arguments for postgress type database. */ postgresqlInfo?: pulumi.Input; /** * - (Optional) Unregister the database from NDB. Default value is true */ remove?: pulumi.Input; /** * - (Optional) Soft remove. Default will be false */ softRemove?: pulumi.Input; /** * - (Optional) ID of software profile */ softwareprofileid?: pulumi.Input; /** * - (Optional) ID of version in software profile */ softwareprofileversionid?: pulumi.Input; /** * - (Optional) public key for ssh access to DB server VM */ sshpublickey?: pulumi.Input; tags?: pulumi.Input[] | undefined>; /** * - (Optional) time machine config */ timemachineinfo?: pulumi.Input; /** * - (Optional) password for DB server VM and era drive user */ vmPassword?: pulumi.Input; } //# sourceMappingURL=ndbDatabase.d.ts.map