@pulumi/openstack
Version:
A Pulumi package for creating and managing OpenStack cloud resources.
358 lines (357 loc) • 14.5 kB
TypeScript
import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
* Manages a V2 Neutron IPSec site connection resource within OpenStack.
*
* ## Example Usage
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as openstack from "@pulumi/openstack";
*
* const conn1 = new openstack.vpnaas.SiteConnection("conn_1", {
* name: "connection_1",
* ikepolicyId: policy2.id,
* ipsecpolicyId: policy1.id,
* vpnserviceId: service1.id,
* psk: "secret",
* peerAddress: "192.168.10.1",
* localEpGroupId: group2.id,
* peerEpGroupId: group1.id,
* dpds: [{
* action: "restart",
* timeout: 42,
* interval: 21,
* }],
* });
* ```
*
* ## Import
*
* Site Connections can be imported using the `id`, e.g.
*
* ```sh
* $ pulumi import openstack:vpnaas/siteConnection:SiteConnection conn_1 832cb7f3-59fe-40cf-8f64-8350ffc03272
* ```
*/
export declare class SiteConnection extends pulumi.CustomResource {
/**
* Get an existing SiteConnection 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?: SiteConnectionState, opts?: pulumi.CustomResourceOptions): SiteConnection;
/**
* Returns true if the given object is an instance of SiteConnection. 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 SiteConnection;
/**
* The administrative state of the resource. Can either be up(true) or down(false).
* Changing this updates the administrative state of the existing connection.
*/
readonly adminStateUp: pulumi.Output<boolean | undefined>;
/**
* The human-readable description for the connection.
* Changing this updates the description of the existing connection.
*/
readonly description: pulumi.Output<string | undefined>;
/**
* A dictionary with dead peer detection (DPD) protocol controls.
*/
readonly dpds: pulumi.Output<outputs.vpnaas.SiteConnectionDpd[]>;
/**
* The ID of the IKE policy. Changing this creates a new connection.
*/
readonly ikepolicyId: pulumi.Output<string>;
/**
* A valid value is response-only or bi-directional. Default is bi-directional.
*/
readonly initiator: pulumi.Output<string>;
/**
* The ID of the IPsec policy. Changing this creates a new connection.
*/
readonly ipsecpolicyId: pulumi.Output<string>;
/**
* The ID for the endpoint group that contains private subnets for the local side of the connection.
* You must specify this parameter with the peerEpGroupId parameter unless
* in backward- compatible mode where peerCidrs is provided with a subnetId for the VPN service.
* Changing this updates the existing connection.
*/
readonly localEpGroupId: pulumi.Output<string | undefined>;
/**
* An ID to be used instead of the external IP address for a virtual router used in traffic between instances on different networks in east-west traffic.
* Most often, local ID would be domain name, email address, etc.
* If this is not configured then the external IP address will be used as the ID.
*/
readonly localId: pulumi.Output<string | undefined>;
/**
* The maximum transmission unit (MTU) value to address fragmentation.
* Minimum value is 68 for IPv4, and 1280 for IPv6.
*/
readonly mtu: pulumi.Output<number>;
/**
* The name of the connection. Changing this updates the name of
* the existing connection.
*/
readonly name: pulumi.Output<string>;
/**
* The peer gateway public IPv4 or IPv6 address or FQDN.
*/
readonly peerAddress: pulumi.Output<string>;
/**
* Unique list of valid peer private CIDRs in the form < netAddress > / < prefix > .
*/
readonly peerCidrs: pulumi.Output<string[] | undefined>;
/**
* The ID for the endpoint group that contains private CIDRs in the form < netAddress > / < prefix > for the peer side of the connection.
* You must specify this parameter with the localEpGroupId parameter unless in backward-compatible mode
* where peerCidrs is provided with a subnetId for the VPN service.
*/
readonly peerEpGroupId: pulumi.Output<string | undefined>;
/**
* The peer router identity for authentication. A valid value is an IPv4 address, IPv6 address, e-mail address, key ID, or FQDN.
* Typically, this value matches the peerAddress value.
* Changing this updates the existing policy.
*/
readonly peerId: pulumi.Output<string>;
/**
* The pre-shared key. A valid value is any string.
*/
readonly psk: pulumi.Output<string>;
/**
* The region in which to obtain the V2 Networking client.
* A Networking client is needed to create an IPSec site connection. If omitted, the
* `region` argument of the provider is used. Changing this creates a new
* site connection.
*/
readonly region: pulumi.Output<string>;
/**
* The owner of the connection. Required if admin wants to
* create a connection for another project. Changing this creates a new connection.
*/
readonly tenantId: pulumi.Output<string>;
/**
* Map of additional options.
*/
readonly valueSpecs: pulumi.Output<{
[key: string]: string;
} | undefined>;
/**
* The ID of the VPN service. Changing this creates a new connection.
*/
readonly vpnserviceId: pulumi.Output<string>;
/**
* Create a SiteConnection 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: SiteConnectionArgs, opts?: pulumi.CustomResourceOptions);
}
/**
* Input properties used for looking up and filtering SiteConnection resources.
*/
export interface SiteConnectionState {
/**
* The administrative state of the resource. Can either be up(true) or down(false).
* Changing this updates the administrative state of the existing connection.
*/
adminStateUp?: pulumi.Input<boolean>;
/**
* The human-readable description for the connection.
* Changing this updates the description of the existing connection.
*/
description?: pulumi.Input<string>;
/**
* A dictionary with dead peer detection (DPD) protocol controls.
*/
dpds?: pulumi.Input<pulumi.Input<inputs.vpnaas.SiteConnectionDpd>[]>;
/**
* The ID of the IKE policy. Changing this creates a new connection.
*/
ikepolicyId?: pulumi.Input<string>;
/**
* A valid value is response-only or bi-directional. Default is bi-directional.
*/
initiator?: pulumi.Input<string>;
/**
* The ID of the IPsec policy. Changing this creates a new connection.
*/
ipsecpolicyId?: pulumi.Input<string>;
/**
* The ID for the endpoint group that contains private subnets for the local side of the connection.
* You must specify this parameter with the peerEpGroupId parameter unless
* in backward- compatible mode where peerCidrs is provided with a subnetId for the VPN service.
* Changing this updates the existing connection.
*/
localEpGroupId?: pulumi.Input<string>;
/**
* An ID to be used instead of the external IP address for a virtual router used in traffic between instances on different networks in east-west traffic.
* Most often, local ID would be domain name, email address, etc.
* If this is not configured then the external IP address will be used as the ID.
*/
localId?: pulumi.Input<string>;
/**
* The maximum transmission unit (MTU) value to address fragmentation.
* Minimum value is 68 for IPv4, and 1280 for IPv6.
*/
mtu?: pulumi.Input<number>;
/**
* The name of the connection. Changing this updates the name of
* the existing connection.
*/
name?: pulumi.Input<string>;
/**
* The peer gateway public IPv4 or IPv6 address or FQDN.
*/
peerAddress?: pulumi.Input<string>;
/**
* Unique list of valid peer private CIDRs in the form < netAddress > / < prefix > .
*/
peerCidrs?: pulumi.Input<pulumi.Input<string>[]>;
/**
* The ID for the endpoint group that contains private CIDRs in the form < netAddress > / < prefix > for the peer side of the connection.
* You must specify this parameter with the localEpGroupId parameter unless in backward-compatible mode
* where peerCidrs is provided with a subnetId for the VPN service.
*/
peerEpGroupId?: pulumi.Input<string>;
/**
* The peer router identity for authentication. A valid value is an IPv4 address, IPv6 address, e-mail address, key ID, or FQDN.
* Typically, this value matches the peerAddress value.
* Changing this updates the existing policy.
*/
peerId?: pulumi.Input<string>;
/**
* The pre-shared key. A valid value is any string.
*/
psk?: pulumi.Input<string>;
/**
* The region in which to obtain the V2 Networking client.
* A Networking client is needed to create an IPSec site connection. If omitted, the
* `region` argument of the provider is used. Changing this creates a new
* site connection.
*/
region?: pulumi.Input<string>;
/**
* The owner of the connection. Required if admin wants to
* create a connection for another project. Changing this creates a new connection.
*/
tenantId?: pulumi.Input<string>;
/**
* Map of additional options.
*/
valueSpecs?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
/**
* The ID of the VPN service. Changing this creates a new connection.
*/
vpnserviceId?: pulumi.Input<string>;
}
/**
* The set of arguments for constructing a SiteConnection resource.
*/
export interface SiteConnectionArgs {
/**
* The administrative state of the resource. Can either be up(true) or down(false).
* Changing this updates the administrative state of the existing connection.
*/
adminStateUp?: pulumi.Input<boolean>;
/**
* The human-readable description for the connection.
* Changing this updates the description of the existing connection.
*/
description?: pulumi.Input<string>;
/**
* A dictionary with dead peer detection (DPD) protocol controls.
*/
dpds?: pulumi.Input<pulumi.Input<inputs.vpnaas.SiteConnectionDpd>[]>;
/**
* The ID of the IKE policy. Changing this creates a new connection.
*/
ikepolicyId: pulumi.Input<string>;
/**
* A valid value is response-only or bi-directional. Default is bi-directional.
*/
initiator?: pulumi.Input<string>;
/**
* The ID of the IPsec policy. Changing this creates a new connection.
*/
ipsecpolicyId: pulumi.Input<string>;
/**
* The ID for the endpoint group that contains private subnets for the local side of the connection.
* You must specify this parameter with the peerEpGroupId parameter unless
* in backward- compatible mode where peerCidrs is provided with a subnetId for the VPN service.
* Changing this updates the existing connection.
*/
localEpGroupId?: pulumi.Input<string>;
/**
* An ID to be used instead of the external IP address for a virtual router used in traffic between instances on different networks in east-west traffic.
* Most often, local ID would be domain name, email address, etc.
* If this is not configured then the external IP address will be used as the ID.
*/
localId?: pulumi.Input<string>;
/**
* The maximum transmission unit (MTU) value to address fragmentation.
* Minimum value is 68 for IPv4, and 1280 for IPv6.
*/
mtu?: pulumi.Input<number>;
/**
* The name of the connection. Changing this updates the name of
* the existing connection.
*/
name?: pulumi.Input<string>;
/**
* The peer gateway public IPv4 or IPv6 address or FQDN.
*/
peerAddress: pulumi.Input<string>;
/**
* Unique list of valid peer private CIDRs in the form < netAddress > / < prefix > .
*/
peerCidrs?: pulumi.Input<pulumi.Input<string>[]>;
/**
* The ID for the endpoint group that contains private CIDRs in the form < netAddress > / < prefix > for the peer side of the connection.
* You must specify this parameter with the localEpGroupId parameter unless in backward-compatible mode
* where peerCidrs is provided with a subnetId for the VPN service.
*/
peerEpGroupId?: pulumi.Input<string>;
/**
* The peer router identity for authentication. A valid value is an IPv4 address, IPv6 address, e-mail address, key ID, or FQDN.
* Typically, this value matches the peerAddress value.
* Changing this updates the existing policy.
*/
peerId: pulumi.Input<string>;
/**
* The pre-shared key. A valid value is any string.
*/
psk: pulumi.Input<string>;
/**
* The region in which to obtain the V2 Networking client.
* A Networking client is needed to create an IPSec site connection. If omitted, the
* `region` argument of the provider is used. Changing this creates a new
* site connection.
*/
region?: pulumi.Input<string>;
/**
* The owner of the connection. Required if admin wants to
* create a connection for another project. Changing this creates a new connection.
*/
tenantId?: pulumi.Input<string>;
/**
* Map of additional options.
*/
valueSpecs?: pulumi.Input<{
[key: string]: pulumi.Input<string>;
}>;
/**
* The ID of the VPN service. Changing this creates a new connection.
*/
vpnserviceId: pulumi.Input<string>;
}