UNPKG

@ediri/vultr

Version:

A Pulumi package for creating and managing Vultr cloud resources.

1,035 lines (1,034 loc) 24.9 kB
import * as outputs from "../types/output"; export interface DatabaseReadReplica { /** * The configured time zone for the Managed Database in TZ database format (e.g. `UTC`, `America/New_York`, `Europe/London`). */ clusterTimeZone: string; /** * The database engine of the new managed database. */ databaseEngine: string; /** * The database engine version of the new managed database. */ databaseEngineVersion: string; /** * The date the managed database was added to your Vultr account. */ dateCreated: string; /** * The managed database's default logical database. */ dbname: string; /** * The configuration value for the data eviction policy on the managed database (Valkey engine types only - `noeviction`, `allkeys-lru`, `volatile-lru`, `allkeys-random`, `volatile-random`, `volatile-ttl`, `volatile-lfu`, `allkeys-lfu`). */ evictionPolicy: string; /** * An associated list of FerretDB connection credentials (FerretDB + PostgreSQL engine types only). */ ferretdbCredentials: { [key: string]: string; }; /** * The hostname assigned to the managed database. */ host: string; /** * The ID of the managed database. */ id: string; /** * A label for the managed database. */ label: string; /** * The date of the latest backup available on the managed database. */ latestBackup: string; /** * The preferred maintenance day of week for the managed database. */ maintenanceDow: string; /** * The preferred maintenance time for the managed database in 24-hour HH:00 format (e.g. `01:00`, `13:00`, `23:00`). */ maintenanceTime: string; /** * The configuration value for the long query time (in seconds) on the managed database (MySQL engine types only). */ mysqlLongQueryTime: number; /** * The configuration value for whether primary keys are required on the managed database (MySQL engine types only). */ mysqlRequirePrimaryKey: boolean; /** * The configuration value for slow query logging on the managed database (MySQL engine types only). */ mysqlSlowQueryLog: boolean; /** * A list of SQL modes to configure for the managed database (MySQL engine types only - `ALLOW_INVALID_DATES`, `ANSI`, `ANSI_QUOTES`, `ERROR_FOR_DIVISION_BY_ZERO`, `HIGH_NOT_PRECEDENCE`, `IGNORE_SPACE`, `NO_AUTO_VALUE_ON_ZERO`, `NO_DIR_IN_CREATE`, `NO_ENGINE_SUBSTITUTION`, `NO_UNSIGNED_SUBTRACTION`, `NO_ZERO_DATE`, `NO_ZERO_IN_DATE`, `ONLY_FULL_GROUP_BY`, `PIPES_AS_CONCAT`, `REAL_AS_FLOAT`, `STRICT_ALL_TABLES`, `STRICT_TRANS_TABLES`, `TIME_TRUNCATE_FRACTIONAL`, `TRADITIONAL`). */ mysqlSqlModes: string[]; /** * The password for the managed database's primary admin user. */ password: string; /** * The ID of the plan that you want the managed database to subscribe to. [See List Managed Database Plans](https://www.vultr.com/api/#tag/managed-databases/operation/list-database-plans) */ plan: string; /** * The description of the disk(s) on the managed database. */ planDisk: number; /** * The amount of memory available on the managed database in MB. */ planRam: number; /** * The number of standby nodes available on the managed database (excluded for Kafka engine types). */ planReplicas: number; /** * The number of virtual CPUs available on the managed database. */ planVcpus: number; /** * The connection port for the managed database. */ port: string; /** * The public hostname assigned to the managed database (VPC-attached only). */ publicHost: string; /** * The ID of the region that the managed database is to be created in. [See List Regions](https://www.vultr.com/api/#operation/list-regions) */ region: string; /** * The current status of the managed database (poweroff, rebuilding, rebalancing, configuring, running). */ status: string; /** * The tag to assign to the managed database. */ tag: string; /** * A list of allowed IP addresses for the managed database. */ trustedIps: string[]; /** * The primary admin user for the managed database. */ user: string; /** * The ID of the VPC Network to attach to the Managed Database. */ vpcId: string; } export interface DatabaseUserAccessControl { /** * The list of command category rules for this managed database user. */ aclCategories: string[]; /** * The list of publish/subscribe channel patterns for this managed database user. */ aclChannels: string[]; /** * The list of individual command rules for this managed database user. */ aclCommands: string[]; /** * The list of access rules for this managed database user. */ aclKeys: string[]; } export interface GetApplicationFilter { /** * Attribute name to filter with. */ name: string; /** * One or more values filter with. */ values: string[]; } export interface GetBackupFilter { /** * Attribute name to filter with. */ name: string; /** * One or more values filter with. */ values: string[]; } export interface GetBareMetalPlanFilter { /** * Attribute name to filter with. */ name: string; /** * One or more values filter with. */ values: string[]; } export interface GetBareMetalServerFilter { /** * Attribute name to filter with. */ name: string; /** * One or more values filter with. */ values: string[]; } export interface GetBlockStorageFilter { /** * Attribute name to filter with. */ name: string; /** * One or more values filter with. */ values: string[]; } export interface GetContainerRegistryFilter { /** * Attribute name to filter with. */ name: string; /** * One or more values filter with. */ values: string[]; } export interface GetContainerRegistryRepository { /** * A count of the artifacts in the repository. */ artifactCount: number; /** * A date-time of when the root user was created. */ dateCreated: string; /** * The date-time that the repository was last updated. */ dateModified: string; /** * A description of the repo, if set. */ description: string; /** * The image name in the repository. */ image: string; /** * The name of the repository. */ name: string; /** * A count of the number of pulls against the repository. */ pullCount: number; } export interface GetDatabaseFilter { /** * Attribute name to filter with. */ name: string; /** * One or more values filter with. */ values: string[]; } export interface GetDatabaseReadReplica { /** * The configured time zone for the Managed Database in TZ database format. */ clusterTimeZone: string; /** * The database engine of the managed database. */ databaseEngine: string; /** * The database engine version of the managed database. */ databaseEngineVersion: string; /** * The date the managed database was added to your Vultr account. */ dateCreated: string; /** * The managed database's default logical database. */ dbname: string; /** * The configuration value for the data eviction policy on the managed database (Valkey engine types only). */ evictionPolicy: string; /** * An associated list of FerretDB connection credentials (FerretDB + PostgreSQL engine types only). */ ferretdbCredentials: { [key: string]: string; }; /** * The hostname assigned to the managed database. */ host: string; id: string; /** * The managed database's label. */ label: string; /** * The date of the latest backup available on the managed database. */ latestBackup: string; /** * The preferred maintenance day of week for the managed database. */ maintenanceDow: string; /** * The preferred maintenance time for the managed database. */ maintenanceTime: string; /** * The configuration value for the long query time (in seconds) on the managed database (MySQL engine types only). */ mysqlLongQueryTime: number; /** * The configuration value for whether primary keys are required on the managed database (MySQL engine types only). */ mysqlRequirePrimaryKey: boolean; /** * The configuration value for slow query logging on the managed database (MySQL engine types only). */ mysqlSlowQueryLog: boolean; /** * A list of SQL modes currently configured for the managed database (MySQL engine types only). */ mysqlSqlModes: string[]; /** * The password for the managed database's primary admin user. */ password: string; /** * The managed database's plan ID. */ plan: string; /** * The description of the disk(s) on the managed database. */ planDisk: number; /** * The amount of memory available on the managed database in MB. */ planRam: number; /** * The number of standby nodes available on the managed database. */ planReplicas: number; /** * The number of virtual CPUs available on the managed database. */ planVcpus: number; /** * The connection port for the managed database. */ port: string; /** * The public hostname assigned to the managed database (VPC-attached only). */ publicHost: string; /** * The region ID of the managed database. */ region: string; /** * The current status of the managed database (poweroff, rebuilding, rebalancing, configuring, running). */ status: string; /** * The managed database's tag. */ tag: string; /** * A list of allowed IP addresses for the managed database. */ trustedIps: string[]; /** * The primary admin user for the managed database. */ user: string; /** * The ID of the VPC Network attached to the Managed Database. */ vpcId: string; } export interface GetFirewallGroupFilter { /** * Attribute name to filter with. */ name: string; /** * One or more values filter with. */ values: string[]; } export interface GetInferenceFilter { /** * Attribute name to filter with. */ name: string; /** * One or more values filter with. */ values: string[]; } export interface GetInstanceFilter { /** * Attribute name to filter with. */ name: string; /** * One or more values filter with. */ values: string[]; } export interface GetInstanceIpv4Filter { /** * Attribute name to filter with. */ name: string; /** * One or more values to filter with. */ values: string[]; } export interface GetInstancesFilter { /** * Attribute name to filter with. */ name: string; /** * One or more values filter with. */ values: string[]; } export interface GetInstancesInstance { /** * The server's allowed bandwidth usage in GB. */ allowedBandwidth: number; /** * The server's application ID. */ appId: number; backups: string; /** * The current configuration for backups */ backupsSchedule: { [key: string]: string; }; /** * The date the server was added to your Vultr account. */ dateCreated: string; /** * The description of the disk(s) on the server. */ disk: number; /** * Array of which features are enabled. */ features: string[]; /** * The ID of the firewall group applied to this server. */ firewallGroupId: string; /** * The server's IPv4 gateway. */ gatewayV4: string; /** * The hostname assigned to the server. */ hostname: string; id: string; /** * The Marketplace ID for this application. */ imageId: string; /** * The server's internal IP address. */ internalIp: string; /** * The server's current KVM URL. This URL will change periodically. It is not advised to cache this value. */ kvm: string; /** * The server's label. */ label: string; location: string; /** * The server's main IP address. */ mainIp: string; /** * The server's IPv4 netmask. */ netmaskV4: string; /** * The operating system of the instance. */ os: string; /** * The server's operating system ID. */ osId: number; /** * The server's plan ID. */ plan: string; /** * Whether the server is powered on or not. */ powerStatus: string; privateNetworkIds: string[]; /** * The amount of memory available on the instance in MB. */ ram: number; /** * The region ID of the server. */ region: string; /** * A more detailed server status (none, locked, installingbooting, isomounting, ok). */ serverStatus: string; /** * The status of the server's subscription. */ status: string; /** * A list of tags applied to the instance. */ tags: string[]; /** * The scheme used for the default user (linux servers only). */ userScheme: string; /** * The main IPv6 network address. */ v6MainIp: string; /** * The IPv6 subnet. */ v6Network: string; /** * The IPv6 network size in bits. */ v6NetworkSize: number; /** * The number of virtual CPUs available on the server. */ vcpuCount: number; vpcIds: string[]; } export interface GetIsoPrivateFilter { /** * Attribute name to filter with. */ name: string; /** * One or more values filter with. */ values: string[]; } export interface GetIsoPublicFilter { /** * Attribute name to filter with. */ name: string; /** * One or more values filter with. */ values: string[]; } export interface GetKubernetesFilter { /** * Attribute name to filter with. */ name: string; /** * One or more values filter with. */ values: string[]; } export interface GetKubernetesNodePool { /** * Boolean indicating if the auto scaler for the default node pool is active. */ autoScaler?: boolean; /** * Date node was created. */ dateCreated: string; /** * Date of node pool updates. */ dateUpdated: string; /** * ID of node. */ id: string; /** * Label of node. */ label: string; /** * Kubernetes node labels applied to the node pool. */ labels?: { [key: string]: string; }; /** * The maximum number of nodes used by the auto scaler. */ maxNodes?: number; /** * The minimum number of nodes used by the auto scaler. */ minNodes?: number; /** * Number of nodes within node pool. */ nodeQuantity: number; /** * Array that contains information about nodes within this node pool. */ nodes: outputs.GetKubernetesNodePoolNode[]; /** * Node plan that nodes are using within this node pool. */ plan: string; /** * Status of node. */ status: string; /** * Tag for node pool. */ tag: string; /** * Kubernetes node taints applied to the node pool. */ taints?: outputs.GetKubernetesNodePoolTaint[]; } export interface GetKubernetesNodePoolNode { /** * Date node was created. */ dateCreated: string; /** * ID of node. */ id: string; /** * Label of node. */ label: string; /** * Status of node. */ status: string; } export interface GetKubernetesNodePoolTaint { effect: string; key: string; value: string; } export interface GetLoadBalancerFilter { /** * Attribute name to filter with. */ name: string; /** * One or more values filter with. */ values: string[]; } export interface GetObjectStorageClusterFilter { /** * Attribute name to filter with. */ name: string; /** * One or more values filter with. */ values: string[]; } export interface GetObjectStorageFilter { /** * Attribute name to filter with. */ name: string; /** * One or more values filter with. */ values: string[]; } export interface GetObjectStorageTierFilter { /** * Attribute name to filter with. */ name: string; /** * One or more values filter with. */ values: string[]; } export interface GetObjectStorageTierLocation { hostname: string; /** * The identifying tier ID. */ id: number; /** * Attribute name to filter with. */ name: string; region: string; } export interface GetOsFilter { /** * Attribute name to filter with. */ name: string; /** * One or more values filter with. */ values: string[]; } export interface GetPlanFilter { /** * Attribute name to filter with. */ name: string; /** * One or more values filter with. */ values: string[]; } export interface GetRegionFilter { /** * Attribute name to filter with. */ name: string; /** * One or more values filter with. */ values: string[]; } export interface GetReservedIpFilter { /** * Attribute name to filter with. */ name: string; /** * One or more values filter with. */ values: string[]; } export interface GetReverseIpv4Filter { /** * Attribute name to filter with. */ name: string; /** * One or more values to filter with. */ values: string[]; } export interface GetReverseIpv6Filter { /** * Attribute name to filter with. */ name: string; /** * One or more values to filter with. */ values: string[]; } export interface GetSnapshotFilter { /** * Attribute name to filter with. */ name: string; /** * One or more values filter with. */ values: string[]; } export interface GetSshKeyFilter { /** * Attribute name to filter with. */ name: string; /** * One or more values filter with. */ values: string[]; } export interface GetStartupScriptFilter { /** * Attribute name to filter with. */ name: string; /** * One or more values filter with. */ values: string[]; } export interface GetUserFilter { /** * Attribute name to filter with. */ name: string; /** * One or more values filter with. */ values: string[]; } export interface GetVirtualFileSystemStorageAttachment { instanceId: string; mount: number; state: string; } export interface GetVirtualFileSystemStorageFilter { /** * Attribute name to filter with. */ name: string; /** * One or more values filter with. */ values: string[]; } export interface GetVpc2Filter { /** * Attribute name to filter with. */ name: string; /** * One or more values filter with. */ values: string[]; } export interface GetVpcFilter { /** * Attribute name to filter with. */ name: string; /** * One or more values filter with. */ values: string[]; } export interface InstanceBackupsSchedule { /** * Day of month to run. Use values between 1 and 28. */ dom: number; /** * Day of week to run. `1 = Sunday`, `2 = Monday`, `3 = Tuesday`, `4 = Wednesday`, `5 = Thursday`, `6 = Friday`, `7 = Saturday` */ dow: number; /** * Hour of day to run in UTC. */ hour: number; /** * Type of backup schedule Possible values are `daily`, `weekly`, `monthly`, `dailyAltEven`, or `dailyAltOdd`. */ type: string; } export interface KubernetesNodePools { /** * Enable the auto scaler for the default node pool. */ autoScaler?: boolean; /** * Date node was created. */ dateCreated: string; /** * Date of node pool updates. */ dateUpdated: string; /** * ID of node. */ id: string; /** * The label to be used as a prefix for nodes in this node pool. */ label: string; /** * A map of key/value pairs for Kubernetes node labels. */ labels?: { [key: string]: string; }; /** * The maximum number of nodes to use with the auto scaler. */ maxNodes?: number; /** * The minimum number of nodes to use with the auto scaler. */ minNodes?: number; /** * The number of nodes in this node pool. */ nodeQuantity: number; /** * Array that contains information about nodes within this node pool. */ nodes: outputs.KubernetesNodePoolsNode[]; /** * The plan to be used in this node pool. [See Plans List](https://www.vultr.com/api/#operation/list-plans) Note the minimum plan requirements must have at least 1 core and 2 gbs of memory. */ plan: string; /** * Status of node. */ status: string; /** * Tag for node pool. */ tag: string; /** * Taints to apply to the nodes in the node pool. Should contain `key`, `value` and `effect`. The `effect` should be one of `NoSchedule`, `PreferNoSchedule` or `NoExecute`. */ taints?: outputs.KubernetesNodePoolsTaint[]; } export interface KubernetesNodePoolsNode { /** * Date node was created. */ dateCreated: string; /** * ID of node. */ id: string; /** * The label to be used as a prefix for nodes in this node pool. */ label: string; /** * Status of node. */ status: string; } export interface KubernetesNodePoolsTaint { effect: string; key: string; value: string; } export interface LoadBalancerFirewallRule { /** * The load balancer ID. */ id: string; /** * The type of ip this rule is - may be either v4 or v6. */ ipType: string; /** * The assigned port (integer) on the attached instances that the load balancer should check against. Default value is `80`. */ port: number; /** * IP address with subnet that is allowed through the firewall. You may also pass in `cloudflare` which will allow only CloudFlares IP range. */ source: string; } export interface LoadBalancerForwardingRule { /** * Port on instance side. */ backendPort: number; /** * Protocol on instance side. Possible values: "http", "https", "tcp". */ backendProtocol: string; /** * Port on load balancer side. */ frontendPort: number; /** * Protocol on load balancer side. Possible values: "http", "https", "tcp". */ frontendProtocol: string; ruleId: string; } export interface LoadBalancerHealthCheck { /** * Time in seconds to perform health check. Default value is 15. */ checkInterval?: number; /** * Number of failed attempts encountered before failover. Default value is 5. */ healthyThreshold?: number; /** * The path on the attached instances that the load balancer should check against. Default value is `/` */ path?: string; /** * The assigned port (integer) on the attached instances that the load balancer should check against. Default value is `80`. */ port: number; /** * The protocol used to traffic requests to the load balancer. Possible values are `http`, or `tcp`. Default value is `http`. */ protocol: string; /** * Time in seconds to wait for a health check response. Default value is 5. */ responseTimeout?: number; /** * Number of failed attempts encountered before failover. Default value is 5. */ unhealthyThreshold?: number; } export interface LoadBalancerSsl { /** * The SSL Certificate. */ certificate: string; /** * The SSL certificate chain. */ chain?: string; /** * The SSL certificates private key. */ privateKey: string; } export interface VirtualFileSystemStorageAttachment { instanceId: string; mount: number; state: string; }