UNPKG

@pulumi/openstack

Version:

A Pulumi package for creating and managing OpenStack cloud resources.

833 lines (832 loc) 28.8 kB
import * as pulumi from "@pulumi/pulumi"; import * as inputs from "../types/input"; export interface BgpvpnPortAssociateV2Route { /** * The ID of the BGP VPN to be advertised. Required * if `type` is `bgpvpn`. Conflicts with `prefix`. */ bgpvpnId?: pulumi.Input<string>; /** * The BGP LOCAL\_PREF value of the routes that will * be advertised. */ localPref?: pulumi.Input<number>; /** * The CIDR prefix (v4 or v6) to be advertised. Required * if `type` is `prefix`. Conflicts with `bgpvpnId`. */ prefix?: pulumi.Input<string>; /** * Can be `prefix` or `bgpvpn`. For the `prefix` type, the * CIDR prefix (v4 or v6) must be specified in the `prefix` key. For the * `bgpvpn` type, the BGP VPN ID must be specified in the `bgpvpnId` key. */ type: pulumi.Input<string>; } export declare namespace bgpvpn { interface PortAssociateV2Route { /** * The ID of the BGP VPN to be advertised. Required * if `type` is `bgpvpn`. Conflicts with `prefix`. */ bgpvpnId?: pulumi.Input<string>; /** * The BGP LOCAL\_PREF value of the routes that will * be advertised. */ localPref?: pulumi.Input<number>; /** * The CIDR prefix (v4 or v6) to be advertised. Required * if `type` is `prefix`. Conflicts with `bgpvpnId`. */ prefix?: pulumi.Input<string>; /** * Can be `prefix` or `bgpvpn`. For the `prefix` type, the * CIDR prefix (v4 or v6) must be specified in the `prefix` key. For the * `bgpvpn` type, the BGP VPN ID must be specified in the `bgpvpnId` key. */ type: pulumi.Input<string>; } } export declare namespace blockstorage { interface VolumeAttachment { device?: pulumi.Input<string>; id?: pulumi.Input<string>; instanceId?: pulumi.Input<string>; } interface VolumeSchedulerHint { /** * Arbitrary key/value pairs of additional * properties to pass to the scheduler. */ additionalProperties?: pulumi.Input<{ [key: string]: pulumi.Input<string>; }>; /** * The volume should be scheduled on a * different host from the set of volumes specified in the list provided. */ differentHosts?: pulumi.Input<pulumi.Input<string>[]>; /** * An instance UUID. The volume should be * scheduled on the same host as the instance. */ localToInstance?: pulumi.Input<string>; /** * A conditional query that a back-end must pass in * order to host a volume. The query must use the `JsonFilter` syntax * which is described * [here](https://docs.openstack.org/cinder/latest/configuration/block-storage/scheduler-filters.html#jsonfilter). * At this time, only simple queries are supported. Compound queries using * `and`, `or`, or `not` are not supported. An example of a simple query is: * * ``` * [“=”, “$backend_id”, “rbd:vol@ceph#cloud”] * ``` */ query?: pulumi.Input<string>; /** * A list of volume UUIDs. The volume should be * scheduled on the same host as another volume specified in the list provided. */ sameHosts?: pulumi.Input<pulumi.Input<string>[]>; } } export declare namespace compute { interface GetInstanceV2Network { /** * The IPv4 address assigned to this network port. */ fixedIpV4?: string; /** * The IPv6 address assigned to this network port. */ fixedIpV6?: string; /** * The MAC address assigned to this network interface. */ mac?: string; /** * The name of the network */ name?: string; /** * The port UUID for this network */ port?: string; /** * The UUID of the network */ uuid?: string; } interface GetInstanceV2NetworkArgs { /** * The IPv4 address assigned to this network port. */ fixedIpV4?: pulumi.Input<string>; /** * The IPv6 address assigned to this network port. */ fixedIpV6?: pulumi.Input<string>; /** * The MAC address assigned to this network interface. */ mac?: pulumi.Input<string>; /** * The name of the network */ name?: pulumi.Input<string>; /** * The port UUID for this network */ port?: pulumi.Input<string>; /** * The UUID of the network */ uuid?: pulumi.Input<string>; } interface InstanceBlockDevice { /** * The boot index of the volume. It defaults to 0. * Changing this creates a new server. */ bootIndex?: pulumi.Input<number>; /** * Delete the volume / block device upon * termination of the instance. Defaults to false. Changing this creates a * new server. */ deleteOnTermination?: pulumi.Input<boolean>; /** * The type that gets created. Possible values * are "volume" and "local". Changing this creates a new server. */ destinationType?: pulumi.Input<string>; /** * The low-level device type that will be used. Most * common thing is to leave this empty. Changing this creates a new server. */ deviceType?: pulumi.Input<string>; /** * The low-level disk bus that will be used. Most common * thing is to leave this empty. Changing this creates a new server. */ diskBus?: pulumi.Input<string>; /** * Specifies the guest server disk file system format, * such as `ext2`, `ext3`, `ext4`, `xfs` or `swap`. Swap block device mappings * have the following restrictions: sourceType must be blank and destinationType * must be local and only one swap disk per server and the size of the swap disk * must be less than or equal to the swap size of the flavor. Changing this * creates a new server. */ guestFormat?: pulumi.Input<string>; /** * Enable the attachment of multiattach-capable * volumes. */ multiattach?: pulumi.Input<boolean>; /** * The source type of the device. Must be one of * "blank", "image", "volume", or "snapshot". Changing this creates a new * server. */ sourceType: pulumi.Input<string>; /** * The UUID of * the image, volume, or snapshot. Changing this creates a new server. */ uuid?: pulumi.Input<string>; /** * The size of the volume to create (in gigabytes). Required * in the following combinations: source=image and destination=volume, * source=blank and destination=local, and source=blank and destination=volume. * Changing this creates a new server. */ volumeSize?: pulumi.Input<number>; /** * The volume type that will be used, for example SSD * or HDD storage. The available options depend on how your specific OpenStack * cloud is configured and what classes of storage are provided. Changing this * creates a new server. */ volumeType?: pulumi.Input<string>; } interface InstanceNetwork { /** * Specifies if this network should be used for * provisioning access. Accepts true or false. Defaults to false. */ accessNetwork?: pulumi.Input<boolean>; /** * Specifies a fixed IPv4 address to be used on this * network. Changing this creates a new server. */ fixedIpV4?: pulumi.Input<string>; fixedIpV6?: pulumi.Input<string>; mac?: pulumi.Input<string>; /** * The human-readable * name of the network. Changing this creates a new server. */ name?: pulumi.Input<string>; /** * The port UUID of a * network to attach to the server. Changing this creates a new server. */ port?: pulumi.Input<string>; /** * The network UUID to * attach to the server. Changing this creates a new server. */ uuid?: pulumi.Input<string>; } interface InstancePersonality { /** * The contents of the file. Limited to 255 bytes. */ content: pulumi.Input<string>; /** * The absolute path of the destination file. */ file: pulumi.Input<string>; } interface InstanceSchedulerHint { /** * Arbitrary key/value pairs of additional * properties to pass to the scheduler. */ additionalProperties?: pulumi.Input<{ [key: string]: pulumi.Input<string>; }>; /** * An IP Address in CIDR form. The instance * will be placed on a compute node that is in the same subnet. */ buildNearHostIp?: pulumi.Input<string>; /** * The names of cells where not to build the instance. */ differentCells?: pulumi.Input<pulumi.Input<string>[]>; /** * A list of instance UUIDs. The instance will * be scheduled on a different host than all other instances. */ differentHosts?: pulumi.Input<pulumi.Input<string>[]>; /** * A UUID of a Server Group. The instance will be placed * into that group. See reference * for details on managing servergroup resources */ group?: pulumi.Input<string>; /** * A conditional query that a compute node must pass in * order to host an instance. The query must use the `JsonFilter` syntax * which is described * [here](https://docs.openstack.org/nova/latest/admin/configuration/schedulers.html#jsonfilter). * At this time, only simple queries are supported. Compound queries using * `and`, `or`, or `not` are not supported. An example of a simple query is: * * ``` * [">=", "$free_ram_mb", "1024"] * ``` */ queries?: pulumi.Input<pulumi.Input<string>[]>; /** * A list of instance UUIDs. The instance will be * scheduled on the same host of those specified. */ sameHosts?: pulumi.Input<pulumi.Input<string>[]>; /** * The name of a cell to host the instance. */ targetCell?: pulumi.Input<string>; } interface InstanceVendorOptions { /** * Whether to try to detach all attached * ports to the vm before destroying it to make sure the port state is correct * after the vm destruction. This is helpful when the port is not deleted. */ detachPortsBeforeDestroy?: pulumi.Input<boolean>; /** * Boolean to control whether * to ignore manual confirmation of the instance resizing. This can be helpful * to work with some OpenStack clouds which automatically confirm resizing of * instances after some timeout. */ ignoreResizeConfirmation?: pulumi.Input<boolean>; } interface ServerGroupRules { maxServerPerHost?: pulumi.Input<number>; } interface VolumeAttachVendorOptions { /** * Boolean to control whether * to ignore volume status confirmation of the attached volume. This can be helpful * to work with some OpenStack clouds which don't have the Block Storage V3 API available. */ ignoreVolumeConfirmation?: pulumi.Input<boolean>; } } export declare namespace database { interface ConfigurationConfiguration { /** * Configuration parameter name. Changing this creates a new resource. */ name: pulumi.Input<string>; /** * Whether or not to store configuration parameter value as string. Changing this creates a new resource. See the below note for more information. */ stringType?: pulumi.Input<boolean>; /** * Configuration parameter value. Changing this creates a new resource. */ value: pulumi.Input<string>; } interface ConfigurationDatastore { /** * Database engine type to be used with this configuration. Changing this creates a new resource. */ type: pulumi.Input<string>; /** * Version of database engine type to be used with this configuration. Changing this creates a new resource. */ version: pulumi.Input<string>; } interface InstanceDatabase { /** * Database character set. Changing this creates a * new instance. */ charset?: pulumi.Input<string>; /** * Database collation. Changing this creates a new instance. */ collate?: pulumi.Input<string>; /** * Database to be created on new instance. Changing this creates a * new instance. */ name: pulumi.Input<string>; } interface InstanceDatastore { /** * Database engine type to be used in new instance. Changing this * creates a new instance. */ type: pulumi.Input<string>; /** * Version of database engine type to be used in new instance. * Changing this creates a new instance. */ version: pulumi.Input<string>; } interface InstanceNetwork { /** * Specifies a fixed IPv4 address to be used on this * network. Changing this creates a new instance. */ fixedIpV4?: pulumi.Input<string>; /** * Specifies a fixed IPv6 address to be used on this * network. Changing this creates a new instance. */ fixedIpV6?: pulumi.Input<string>; /** * The port UUID of a * network to attach to the instance. Changing this creates a new instance. */ port?: pulumi.Input<string>; /** * The network UUID to * attach to the instance. Changing this creates a new instance. */ uuid?: pulumi.Input<string>; } interface InstanceUser { /** * A list of databases that user will have access to. If not specified, * user has access to all databases on th einstance. Changing this creates a new instance. */ databases?: pulumi.Input<pulumi.Input<string>[]>; /** * An ip address or % sign indicating what ip addresses can connect with * this user credentials. Changing this creates a new instance. */ host?: pulumi.Input<string>; /** * Username to be created on new instance. Changing this creates a * new instance. */ name: pulumi.Input<string>; /** * User's password. Changing this creates a * new instance. */ password?: pulumi.Input<string>; } } export declare namespace identity { interface ApplicationCredentialAccessRule { /** * The ID of the existing access rule. The access rule ID of * another application credential can be provided. */ id?: pulumi.Input<string>; /** * The request method that the application credential is * permitted to use for a given API endpoint. Allowed values: `POST`, `GET`, * `HEAD`, `PATCH`, `PUT` and `DELETE`. */ method: pulumi.Input<string>; /** * The API path that the application credential is permitted * to access. May use named wildcards such as **{tag}** or the unnamed wildcard * **\*** to match against any string in the path up to a **&#47;**, or the recursive * wildcard **\*\*** to include **&#47;** in the matched path. */ path: pulumi.Input<string>; /** * The service type identifier for the service that the * application credential is granted to access. Must be a service type that is * listed in the service catalog and not a code name for a service. E.g. * **identity**, **compute**, **volumev3**, **image**, **network**, * **object-store**, **sharev2**, **dns**, **key-manager**, **monitoring**, etc. */ service: pulumi.Input<string>; } interface UserMultiFactorAuthRule { /** * A list of authentication plugins that the user must * authenticate with. */ rules: pulumi.Input<pulumi.Input<string>[]>; } } export declare namespace keymanager { interface ContainerV1Acl { read?: pulumi.Input<inputs.keymanager.ContainerV1AclRead>; } interface ContainerV1AclRead { /** * The date the container was created. */ createdAt?: pulumi.Input<string>; /** * Whether the container is accessible project wide. * Defaults to `true`. */ projectAccess?: pulumi.Input<boolean>; /** * The date the container was last updated. */ updatedAt?: pulumi.Input<string>; /** * The list of user IDs, which are allowed to access the * container, when `projectAccess` is set to `false`. */ users?: pulumi.Input<pulumi.Input<string>[]>; } interface ContainerV1Consumer { /** * Human-readable name for the Container. Does not have * to be unique. */ name?: pulumi.Input<string>; /** * The consumer URL. */ url?: pulumi.Input<string>; } interface ContainerV1SecretRef { /** * The name of the secret reference. The reference names must correspond the container type, more details are available [here](https://docs.openstack.org/barbican/stein/api/reference/containers.html). */ name?: pulumi.Input<string>; /** * The secret reference / where to find the secret, URL. */ secretRef: pulumi.Input<string>; } interface OrderV1Meta { /** * Algorithm to use for key generation. */ algorithm: pulumi.Input<string>; /** * Bit lenght of key to be generated. */ bitLength: pulumi.Input<number>; /** * This is a UTC timestamp in ISO 8601 format YYYY-MM-DDTHH:MM:SSZ. If set, the secret will not be available after this time. */ expiration?: pulumi.Input<string>; /** * The mode to use for key generation. */ mode?: pulumi.Input<string>; /** * The name of the secret set by the user. */ name?: pulumi.Input<string>; /** * The media type for the content of the secrets payload. Must be one of `text/plain`, `text/plain;charset=utf-8`, `text/plain; charset=utf-8`, `application/octet-stream`, `application/pkcs8`. */ payloadContentType?: pulumi.Input<string>; } interface SecretV1Acl { read?: pulumi.Input<inputs.keymanager.SecretV1AclRead>; } interface SecretV1AclRead { /** * The date the secret was created. */ createdAt?: pulumi.Input<string>; /** * Whether the secret is accessible project wide. * Defaults to `true`. */ projectAccess?: pulumi.Input<boolean>; /** * The date the secret was last updated. */ updatedAt?: pulumi.Input<string>; /** * The list of user IDs, which are allowed to access the * secret, when `projectAccess` is set to `false`. */ users?: pulumi.Input<pulumi.Input<string>[]>; } } export declare namespace loadbalancer { interface MembersMember { /** * The IP address of the members to receive traffic from * the load balancer. */ address: pulumi.Input<string>; /** * The administrative state of the member. * A valid value is true (UP) or false (DOWN). Defaults to true. */ adminStateUp?: pulumi.Input<boolean>; /** * A bool that indicates whether the member is * backup. **Requires octavia minor version 2.1 or later**. */ backup?: pulumi.Input<boolean>; /** * The unique ID for the members. */ id?: pulumi.Input<string>; /** * An alternate IP address used for health * monitoring a backend member. */ monitorAddress?: pulumi.Input<string>; /** * An alternate protocol port used for health * monitoring a backend member. */ monitorPort?: pulumi.Input<number>; /** * Human-readable name for the member. */ name?: pulumi.Input<string>; /** * The port on which to listen for client traffic. */ protocolPort: pulumi.Input<number>; /** * The subnet in which to access the member. */ subnetId?: pulumi.Input<string>; /** * A positive integer value that indicates the relative * portion of traffic that this members should receive from the pool. For * example, a member with a weight of 10 receives five times as much traffic * as a member with a weight of 2. Defaults to 1. */ weight?: pulumi.Input<number>; } interface PoolPersistence { /** * The name of the cookie if persistence mode is set * appropriately. Required if `type = APP_COOKIE`. */ cookieName?: pulumi.Input<string>; /** * The type of persistence mode. The current specification * supports SOURCE_IP, HTTP_COOKIE, and APP_COOKIE. */ type: pulumi.Input<string>; } } export declare namespace networking { interface BgpSpeakerV2AdvertisedRoute { destination?: pulumi.Input<string>; nextHop?: pulumi.Input<string>; } interface NetworkSegment { /** * The type of physical network. */ networkType?: pulumi.Input<string>; /** * The physical network where this network is implemented. */ physicalNetwork?: pulumi.Input<string>; /** * An isolated segment on the physical network. */ segmentationId?: pulumi.Input<number>; } interface PortAllowedAddressPair { /** * The additional IP address. */ ipAddress: pulumi.Input<string>; /** * The additional MAC address. */ macAddress?: pulumi.Input<string>; } interface PortBinding { /** * The ID of the host to allocate port on. */ hostId?: pulumi.Input<string>; /** * Custom data to be passed as `binding:profile`. Data * must be passed as JSON. */ profile?: pulumi.Input<string>; /** * A map of JSON strings containing additional * details for this specific binding. */ vifDetails?: pulumi.Input<{ [key: string]: pulumi.Input<string>; }>; /** * The VNIC type of the port binding. */ vifType?: pulumi.Input<string>; /** * VNIC type for the port. Can either be `direct`, * `direct-physical`, `macvtap`, `normal`, `baremetal` or `virtio-forwarder`. * Default value is `normal`. It can be updated on unbound ports only. */ vnicType?: pulumi.Input<string>; } interface PortExtraDhcpOption { /** * IP protocol version. Defaults to 4. */ ipVersion?: pulumi.Input<number>; /** * Name of the DHCP option. */ name: pulumi.Input<string>; /** * Value of the DHCP option. */ value: pulumi.Input<string>; } interface PortFixedIp { /** * IP address desired in the subnet for this port. If * you don't specify `ipAddress`, an available IP address from the specified * subnet will be allocated to this port. This field will not be populated if it * is left blank or omitted. To retrieve the assigned IP address, use the * `allFixedIps` attribute. */ ipAddress?: pulumi.Input<string>; /** * Subnet in which to allocate IP address for * this port. */ subnetId?: pulumi.Input<string>; } interface RouterExternalFixedIp { /** * The IP address to set on the router. */ ipAddress?: pulumi.Input<string>; /** * Subnet in which the fixed IP belongs to. */ subnetId?: pulumi.Input<string>; } interface RouterRoutesV2Route { /** * CIDR block to match on the packet’s * destination IP. */ destinationCidr: pulumi.Input<string>; /** * IP address of the next hop gateway. */ nextHop: pulumi.Input<string>; } interface RouterVendorOptions { /** * Boolean to control whether * the Router gateway is assigned during creation or updated after creation. */ setRouterGatewayAfterCreate?: pulumi.Input<boolean>; } interface SubnetAllocationPool { /** * The ending address. */ end: pulumi.Input<string>; /** * The starting address. */ start: pulumi.Input<string>; } interface TrunkSubPort { /** * The ID of the port to be made a subport of the trunk. */ portId: pulumi.Input<string>; /** * The numeric id of the subport segment. */ segmentationId: pulumi.Input<number>; /** * The segmentation technology to use, e.g., "vlan". */ segmentationType: pulumi.Input<string>; } } export declare namespace objectstorage { interface ContainerVersioningLegacy { /** * Container in which versions will be stored. */ location: pulumi.Input<string>; /** * Versioning type which can be `versions` or `history` * according to [OpenStack * documentation](https://docs.openstack.org/swift/latest/api/object_versioning.html). */ type: pulumi.Input<string>; } } export declare namespace orchestration { interface StackV1StackOutput { /** * The description of the stack resource. */ description?: pulumi.Input<string>; outputKey: pulumi.Input<string>; outputValue: pulumi.Input<string>; } } export declare namespace sharedfilesystem { interface ShareExportLocation { path?: pulumi.Input<string>; preferred?: pulumi.Input<string>; } } export declare namespace vpnaas { interface IkePolicyLifetime { units?: pulumi.Input<string>; /** * The value for the lifetime of the security association. Must be a positive integer. * Default is 3600. */ value?: pulumi.Input<number>; } interface IpSecPolicyLifetime { units?: pulumi.Input<string>; /** * The value for the lifetime of the security association. Must be a positive integer. * Default is 3600. */ value?: pulumi.Input<number>; } interface SiteConnectionDpd { /** * The dead peer detection (DPD) action. * A valid value is clear, hold, restart, disabled, or restart-by-peer. * Default value is hold. */ action?: pulumi.Input<string>; /** * The dead peer detection (DPD) interval, in seconds. * A valid value is a positive integer. * Default is 30. */ interval?: pulumi.Input<number>; /** * The dead peer detection (DPD) timeout in seconds. * A valid value is a positive integer that is greater than the DPD interval value. * Default is 120. */ timeout?: pulumi.Input<number>; } }