@pulumi/sdwan
Version:
A Pulumi package for managing resources on Cisco Catalyst SD-WAN.. Based on terraform-provider-sdwan: version v0.4.1
652 lines (651 loc) • 21.3 kB
TypeScript
import * as pulumi from "@pulumi/pulumi";
import * as inputs from "./types/input";
import * as outputs from "./types/output";
/**
* This resource can manage a Cisco VPN feature template.
* - Minimum SD-WAN Manager version: `15.0.0`
*
* ## Example Usage
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as sdwan from "@pulumi/sdwan";
*
* const example = new sdwan.CiscoVpnFeatureTemplate("example", {
* name: "Example",
* description: "My Example",
* deviceTypes: ["vedge-C8000V"],
* vpnId: 1,
* vpnName: "VPN1",
* tenantVpnId: 1,
* organizationName: "org1",
* ompAdminDistanceIpv4: 10,
* ompAdminDistanceIpv6: 10,
* enhanceEcmpKeying: true,
* dnsIpv4Servers: [{
* address: "9.9.9.9",
* role: "primary",
* }],
* dnsIpv6Servers: [{
* address: "2001::9",
* role: "primary",
* }],
* dnsHosts: [{
* hostname: "abc1",
* ip: ["7.7.7.7"],
* }],
* services: [{
* serviceTypes: "FW",
* address: ["8.8.8.8"],
* "interface": "e1",
* trackEnable: true,
* }],
* ipv4StaticServiceRoutes: [{
* prefix: "2.2.2.0/24",
* vpnId: 2,
* service: "sig",
* }],
* ipv4StaticRoutes: [{
* prefix: "3.3.3.0/24",
* null0: false,
* distance: 10,
* vpnId: 5,
* dhcp: false,
* nextHops: [{
* address: "11.1.1.1",
* distance: 20,
* }],
* trackNextHops: [{
* address: "12.1.1.1",
* distance: 20,
* tracker: "tracker1",
* }],
* }],
* ipv6StaticRoutes: [{
* prefix: "2001::/48",
* null0: false,
* vpnId: 5,
* nat: "NAT64",
* nextHops: [{
* address: "2001::11",
* distance: 20,
* }],
* }],
* ipv4StaticGreRoutes: [{
* prefix: "3.3.3.0/24",
* vpnId: 2,
* interfaces: ["e1"],
* }],
* ipv4StaticIpsecRoutes: [{
* prefix: "4.4.4.0/24",
* vpnId: 2,
* interfaces: ["e1"],
* }],
* ompAdvertiseIpv4Routes: [{
* protocol: "bgp",
* routePolicy: "rp1",
* protocolSubType: ["external"],
* prefixes: [{
* prefixEntry: "1.1.1.0/24",
* aggregateOnly: true,
* }],
* }],
* ompAdvertiseIpv6Routes: [{
* protocol: "bgp",
* routePolicy: "rp1",
* protocolSubType: ["external"],
* prefixes: [{
* prefixEntry: "2001:2::/48",
* aggregateOnly: true,
* }],
* }],
* nat64Pools: [{
* name: "POOL1",
* startAddress: "100.1.1.1",
* endAddress: "100.1.2.255",
* overload: true,
* leakFromGlobal: true,
* leakFromGlobalProtocol: "rip",
* leakToGlobal: true,
* }],
* natPools: [{
* name: 1,
* prefixLength: 24,
* rangeStart: "101.1.1.1",
* rangeEnd: "101.1.2.255",
* overload: true,
* direction: "inside",
* trackerId: 10,
* }],
* staticNatRules: [{
* poolName: 1,
* sourceIp: "10.1.1.1",
* translateIp: "105.1.1.1",
* staticNatDirection: "inside",
* trackerId: 10,
* }],
* staticNatSubnetRules: [{
* sourceIpSubnet: "10.2.1.0",
* translateIpSubnet: "105.2.1.0",
* prefixLength: 24,
* staticNatDirection: "inside",
* trackerId: 10,
* }],
* portForwardRules: [{
* poolName: 1,
* sourcePort: 5000,
* translatePort: 6000,
* sourceIp: "10.3.1.1",
* translateIp: "120.3.1.1",
* protocol: "tcp",
* }],
* routeGlobalImports: [{
* protocol: "ospf",
* protocolSubType: ["external"],
* routePolicy: "policy1",
* redistributes: [{
* protocol: "bgp",
* routePolicy: "policy1",
* }],
* }],
* routeVpnImports: [{
* sourceVpnId: 5,
* protocol: "ospf",
* protocolSubType: ["external"],
* routePolicy: "policy1",
* redistributes: [{
* protocol: "bgp",
* routePolicy: "policy1",
* }],
* }],
* routeGlobalExports: [{
* protocol: "ospf",
* protocolSubType: ["external"],
* routePolicy: "policy1",
* redistributes: [{
* protocol: "bgp",
* routePolicy: "policy1",
* }],
* }],
* });
* ```
*
* ## Import
*
* The `pulumi import` command can be used, for example:
*
* ```sh
* $ pulumi import sdwan:index/ciscoVpnFeatureTemplate:CiscoVpnFeatureTemplate example "f6b2c44c-693c-4763-b010-895aa3d236bd"
* ```
*/
export declare class CiscoVpnFeatureTemplate extends pulumi.CustomResource {
/**
* Get an existing CiscoVpnFeatureTemplate 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?: CiscoVpnFeatureTemplateState, opts?: pulumi.CustomResourceOptions): CiscoVpnFeatureTemplate;
/**
* Returns true if the given object is an instance of CiscoVpnFeatureTemplate. 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 CiscoVpnFeatureTemplate;
/**
* The description of the feature template
*/
readonly description: pulumi.Output<string>;
/**
* List of supported device types
* - Choices: `vedge-C8000V`, `vedge-C8300-1N1S-4T2X`, `vedge-C8300-1N1S-6T`, `vedge-C8300-2N2S-6T`, `vedge-C8300-2N2S-4T2X`, `vedge-C8500-12X4QC`, `vedge-C8500-12X`, `vedge-C8500-20X6C`, `vedge-C8500L-8S4X`, `vedge-C8200-1N-4T`, `vedge-C8200L-1N-4T`
*/
readonly deviceTypes: pulumi.Output<string[]>;
/**
* Static DNS mapping
*/
readonly dnsHosts: pulumi.Output<outputs.CiscoVpnFeatureTemplateDnsHost[] | undefined>;
/**
* DNS
*/
readonly dnsIpv4Servers: pulumi.Output<outputs.CiscoVpnFeatureTemplateDnsIpv4Server[] | undefined>;
/**
* DNS
*/
readonly dnsIpv6Servers: pulumi.Output<outputs.CiscoVpnFeatureTemplateDnsIpv6Server[] | undefined>;
/**
* Optional packet fields for ECMP keying
* - Default value: `false`
*/
readonly enhanceEcmpKeying: pulumi.Output<boolean | undefined>;
/**
* Variable name
*/
readonly enhanceEcmpKeyingVariable: pulumi.Output<string | undefined>;
/**
* Configure routes pointing to a GRE tunnel
*/
readonly ipv4StaticGreRoutes: pulumi.Output<outputs.CiscoVpnFeatureTemplateIpv4StaticGreRoute[] | undefined>;
/**
* Configure routes pointing to a IPSEC tunnel
*/
readonly ipv4StaticIpsecRoutes: pulumi.Output<outputs.CiscoVpnFeatureTemplateIpv4StaticIpsecRoute[] | undefined>;
/**
* Configure IPv4 Static Routes
*/
readonly ipv4StaticRoutes: pulumi.Output<outputs.CiscoVpnFeatureTemplateIpv4StaticRoute[] | undefined>;
/**
* Configure IPv4 Static Service Routes
*/
readonly ipv4StaticServiceRoutes: pulumi.Output<outputs.CiscoVpnFeatureTemplateIpv4StaticServiceRoute[] | undefined>;
/**
* Configure IPv6 Static Routes
*/
readonly ipv6StaticRoutes: pulumi.Output<outputs.CiscoVpnFeatureTemplateIpv6StaticRoute[] | undefined>;
/**
* The name of the feature template
*/
readonly name: pulumi.Output<string>;
/**
* Set NAT64 v4 pool range
*/
readonly nat64Pools: pulumi.Output<outputs.CiscoVpnFeatureTemplateNat64Pool[] | undefined>;
/**
* Configure NAT Pool entries
*/
readonly natPools: pulumi.Output<outputs.CiscoVpnFeatureTemplateNatPool[] | undefined>;
/**
* omp-admin-distance-ipv4
* - Range: `1`-`255`
*/
readonly ompAdminDistanceIpv4: pulumi.Output<number | undefined>;
/**
* Variable name
*/
readonly ompAdminDistanceIpv4Variable: pulumi.Output<string | undefined>;
/**
* omp-admin-distance-ipv6
* - Range: `1`-`255`
*/
readonly ompAdminDistanceIpv6: pulumi.Output<number | undefined>;
/**
* Variable name
*/
readonly ompAdminDistanceIpv6Variable: pulumi.Output<string | undefined>;
/**
* Advertise routes to OMP
*/
readonly ompAdvertiseIpv4Routes: pulumi.Output<outputs.CiscoVpnFeatureTemplateOmpAdvertiseIpv4Route[] | undefined>;
/**
* Advertise routes to OMP
*/
readonly ompAdvertiseIpv6Routes: pulumi.Output<outputs.CiscoVpnFeatureTemplateOmpAdvertiseIpv6Route[] | undefined>;
/**
* Org Name selected
*/
readonly organizationName: pulumi.Output<string | undefined>;
/**
* Configure Port Forward entries
*/
readonly portForwardRules: pulumi.Output<outputs.CiscoVpnFeatureTemplatePortForwardRule[] | undefined>;
/**
* Enable route leaking to Global VPN from this Service VPN
*/
readonly routeGlobalExports: pulumi.Output<outputs.CiscoVpnFeatureTemplateRouteGlobalExport[] | undefined>;
/**
* Enable route leaking from Global VPN to this Service VPN
*/
readonly routeGlobalImports: pulumi.Output<outputs.CiscoVpnFeatureTemplateRouteGlobalImport[] | undefined>;
/**
* Enable route leak from Service VPN to current VPN
*/
readonly routeVpnImports: pulumi.Output<outputs.CiscoVpnFeatureTemplateRouteVpnImport[] | undefined>;
/**
* Configure services
*/
readonly services: pulumi.Output<outputs.CiscoVpnFeatureTemplateService[] | undefined>;
/**
* Configure static NAT entries
*/
readonly staticNatRules: pulumi.Output<outputs.CiscoVpnFeatureTemplateStaticNatRule[] | undefined>;
/**
* Configure static NAT Subnet entries
*/
readonly staticNatSubnetRules: pulumi.Output<outputs.CiscoVpnFeatureTemplateStaticNatSubnetRule[] | undefined>;
/**
* The template type
*/
readonly templateType: pulumi.Output<string>;
/**
* Tenant VPN
* - Range: `0`-`65527`
* - Default value: `0`
*/
readonly tenantVpnId: pulumi.Output<number | undefined>;
/**
* The version of the feature template
*/
readonly version: pulumi.Output<number>;
/**
* List of VPN instances
* - Range: `0`-`65527`
* - Default value: `0`
*/
readonly vpnId: pulumi.Output<number | undefined>;
/**
* Name
*/
readonly vpnName: pulumi.Output<string | undefined>;
/**
* Variable name
*/
readonly vpnNameVariable: pulumi.Output<string | undefined>;
/**
* Create a CiscoVpnFeatureTemplate 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: CiscoVpnFeatureTemplateArgs, opts?: pulumi.CustomResourceOptions);
}
/**
* Input properties used for looking up and filtering CiscoVpnFeatureTemplate resources.
*/
export interface CiscoVpnFeatureTemplateState {
/**
* The description of the feature template
*/
description?: pulumi.Input<string>;
/**
* List of supported device types
* - Choices: `vedge-C8000V`, `vedge-C8300-1N1S-4T2X`, `vedge-C8300-1N1S-6T`, `vedge-C8300-2N2S-6T`, `vedge-C8300-2N2S-4T2X`, `vedge-C8500-12X4QC`, `vedge-C8500-12X`, `vedge-C8500-20X6C`, `vedge-C8500L-8S4X`, `vedge-C8200-1N-4T`, `vedge-C8200L-1N-4T`
*/
deviceTypes?: pulumi.Input<pulumi.Input<string>[]>;
/**
* Static DNS mapping
*/
dnsHosts?: pulumi.Input<pulumi.Input<inputs.CiscoVpnFeatureTemplateDnsHost>[]>;
/**
* DNS
*/
dnsIpv4Servers?: pulumi.Input<pulumi.Input<inputs.CiscoVpnFeatureTemplateDnsIpv4Server>[]>;
/**
* DNS
*/
dnsIpv6Servers?: pulumi.Input<pulumi.Input<inputs.CiscoVpnFeatureTemplateDnsIpv6Server>[]>;
/**
* Optional packet fields for ECMP keying
* - Default value: `false`
*/
enhanceEcmpKeying?: pulumi.Input<boolean>;
/**
* Variable name
*/
enhanceEcmpKeyingVariable?: pulumi.Input<string>;
/**
* Configure routes pointing to a GRE tunnel
*/
ipv4StaticGreRoutes?: pulumi.Input<pulumi.Input<inputs.CiscoVpnFeatureTemplateIpv4StaticGreRoute>[]>;
/**
* Configure routes pointing to a IPSEC tunnel
*/
ipv4StaticIpsecRoutes?: pulumi.Input<pulumi.Input<inputs.CiscoVpnFeatureTemplateIpv4StaticIpsecRoute>[]>;
/**
* Configure IPv4 Static Routes
*/
ipv4StaticRoutes?: pulumi.Input<pulumi.Input<inputs.CiscoVpnFeatureTemplateIpv4StaticRoute>[]>;
/**
* Configure IPv4 Static Service Routes
*/
ipv4StaticServiceRoutes?: pulumi.Input<pulumi.Input<inputs.CiscoVpnFeatureTemplateIpv4StaticServiceRoute>[]>;
/**
* Configure IPv6 Static Routes
*/
ipv6StaticRoutes?: pulumi.Input<pulumi.Input<inputs.CiscoVpnFeatureTemplateIpv6StaticRoute>[]>;
/**
* The name of the feature template
*/
name?: pulumi.Input<string>;
/**
* Set NAT64 v4 pool range
*/
nat64Pools?: pulumi.Input<pulumi.Input<inputs.CiscoVpnFeatureTemplateNat64Pool>[]>;
/**
* Configure NAT Pool entries
*/
natPools?: pulumi.Input<pulumi.Input<inputs.CiscoVpnFeatureTemplateNatPool>[]>;
/**
* omp-admin-distance-ipv4
* - Range: `1`-`255`
*/
ompAdminDistanceIpv4?: pulumi.Input<number>;
/**
* Variable name
*/
ompAdminDistanceIpv4Variable?: pulumi.Input<string>;
/**
* omp-admin-distance-ipv6
* - Range: `1`-`255`
*/
ompAdminDistanceIpv6?: pulumi.Input<number>;
/**
* Variable name
*/
ompAdminDistanceIpv6Variable?: pulumi.Input<string>;
/**
* Advertise routes to OMP
*/
ompAdvertiseIpv4Routes?: pulumi.Input<pulumi.Input<inputs.CiscoVpnFeatureTemplateOmpAdvertiseIpv4Route>[]>;
/**
* Advertise routes to OMP
*/
ompAdvertiseIpv6Routes?: pulumi.Input<pulumi.Input<inputs.CiscoVpnFeatureTemplateOmpAdvertiseIpv6Route>[]>;
/**
* Org Name selected
*/
organizationName?: pulumi.Input<string>;
/**
* Configure Port Forward entries
*/
portForwardRules?: pulumi.Input<pulumi.Input<inputs.CiscoVpnFeatureTemplatePortForwardRule>[]>;
/**
* Enable route leaking to Global VPN from this Service VPN
*/
routeGlobalExports?: pulumi.Input<pulumi.Input<inputs.CiscoVpnFeatureTemplateRouteGlobalExport>[]>;
/**
* Enable route leaking from Global VPN to this Service VPN
*/
routeGlobalImports?: pulumi.Input<pulumi.Input<inputs.CiscoVpnFeatureTemplateRouteGlobalImport>[]>;
/**
* Enable route leak from Service VPN to current VPN
*/
routeVpnImports?: pulumi.Input<pulumi.Input<inputs.CiscoVpnFeatureTemplateRouteVpnImport>[]>;
/**
* Configure services
*/
services?: pulumi.Input<pulumi.Input<inputs.CiscoVpnFeatureTemplateService>[]>;
/**
* Configure static NAT entries
*/
staticNatRules?: pulumi.Input<pulumi.Input<inputs.CiscoVpnFeatureTemplateStaticNatRule>[]>;
/**
* Configure static NAT Subnet entries
*/
staticNatSubnetRules?: pulumi.Input<pulumi.Input<inputs.CiscoVpnFeatureTemplateStaticNatSubnetRule>[]>;
/**
* The template type
*/
templateType?: pulumi.Input<string>;
/**
* Tenant VPN
* - Range: `0`-`65527`
* - Default value: `0`
*/
tenantVpnId?: pulumi.Input<number>;
/**
* The version of the feature template
*/
version?: pulumi.Input<number>;
/**
* List of VPN instances
* - Range: `0`-`65527`
* - Default value: `0`
*/
vpnId?: pulumi.Input<number>;
/**
* Name
*/
vpnName?: pulumi.Input<string>;
/**
* Variable name
*/
vpnNameVariable?: pulumi.Input<string>;
}
/**
* The set of arguments for constructing a CiscoVpnFeatureTemplate resource.
*/
export interface CiscoVpnFeatureTemplateArgs {
/**
* The description of the feature template
*/
description: pulumi.Input<string>;
/**
* List of supported device types
* - Choices: `vedge-C8000V`, `vedge-C8300-1N1S-4T2X`, `vedge-C8300-1N1S-6T`, `vedge-C8300-2N2S-6T`, `vedge-C8300-2N2S-4T2X`, `vedge-C8500-12X4QC`, `vedge-C8500-12X`, `vedge-C8500-20X6C`, `vedge-C8500L-8S4X`, `vedge-C8200-1N-4T`, `vedge-C8200L-1N-4T`
*/
deviceTypes: pulumi.Input<pulumi.Input<string>[]>;
/**
* Static DNS mapping
*/
dnsHosts?: pulumi.Input<pulumi.Input<inputs.CiscoVpnFeatureTemplateDnsHost>[]>;
/**
* DNS
*/
dnsIpv4Servers?: pulumi.Input<pulumi.Input<inputs.CiscoVpnFeatureTemplateDnsIpv4Server>[]>;
/**
* DNS
*/
dnsIpv6Servers?: pulumi.Input<pulumi.Input<inputs.CiscoVpnFeatureTemplateDnsIpv6Server>[]>;
/**
* Optional packet fields for ECMP keying
* - Default value: `false`
*/
enhanceEcmpKeying?: pulumi.Input<boolean>;
/**
* Variable name
*/
enhanceEcmpKeyingVariable?: pulumi.Input<string>;
/**
* Configure routes pointing to a GRE tunnel
*/
ipv4StaticGreRoutes?: pulumi.Input<pulumi.Input<inputs.CiscoVpnFeatureTemplateIpv4StaticGreRoute>[]>;
/**
* Configure routes pointing to a IPSEC tunnel
*/
ipv4StaticIpsecRoutes?: pulumi.Input<pulumi.Input<inputs.CiscoVpnFeatureTemplateIpv4StaticIpsecRoute>[]>;
/**
* Configure IPv4 Static Routes
*/
ipv4StaticRoutes?: pulumi.Input<pulumi.Input<inputs.CiscoVpnFeatureTemplateIpv4StaticRoute>[]>;
/**
* Configure IPv4 Static Service Routes
*/
ipv4StaticServiceRoutes?: pulumi.Input<pulumi.Input<inputs.CiscoVpnFeatureTemplateIpv4StaticServiceRoute>[]>;
/**
* Configure IPv6 Static Routes
*/
ipv6StaticRoutes?: pulumi.Input<pulumi.Input<inputs.CiscoVpnFeatureTemplateIpv6StaticRoute>[]>;
/**
* The name of the feature template
*/
name?: pulumi.Input<string>;
/**
* Set NAT64 v4 pool range
*/
nat64Pools?: pulumi.Input<pulumi.Input<inputs.CiscoVpnFeatureTemplateNat64Pool>[]>;
/**
* Configure NAT Pool entries
*/
natPools?: pulumi.Input<pulumi.Input<inputs.CiscoVpnFeatureTemplateNatPool>[]>;
/**
* omp-admin-distance-ipv4
* - Range: `1`-`255`
*/
ompAdminDistanceIpv4?: pulumi.Input<number>;
/**
* Variable name
*/
ompAdminDistanceIpv4Variable?: pulumi.Input<string>;
/**
* omp-admin-distance-ipv6
* - Range: `1`-`255`
*/
ompAdminDistanceIpv6?: pulumi.Input<number>;
/**
* Variable name
*/
ompAdminDistanceIpv6Variable?: pulumi.Input<string>;
/**
* Advertise routes to OMP
*/
ompAdvertiseIpv4Routes?: pulumi.Input<pulumi.Input<inputs.CiscoVpnFeatureTemplateOmpAdvertiseIpv4Route>[]>;
/**
* Advertise routes to OMP
*/
ompAdvertiseIpv6Routes?: pulumi.Input<pulumi.Input<inputs.CiscoVpnFeatureTemplateOmpAdvertiseIpv6Route>[]>;
/**
* Org Name selected
*/
organizationName?: pulumi.Input<string>;
/**
* Configure Port Forward entries
*/
portForwardRules?: pulumi.Input<pulumi.Input<inputs.CiscoVpnFeatureTemplatePortForwardRule>[]>;
/**
* Enable route leaking to Global VPN from this Service VPN
*/
routeGlobalExports?: pulumi.Input<pulumi.Input<inputs.CiscoVpnFeatureTemplateRouteGlobalExport>[]>;
/**
* Enable route leaking from Global VPN to this Service VPN
*/
routeGlobalImports?: pulumi.Input<pulumi.Input<inputs.CiscoVpnFeatureTemplateRouteGlobalImport>[]>;
/**
* Enable route leak from Service VPN to current VPN
*/
routeVpnImports?: pulumi.Input<pulumi.Input<inputs.CiscoVpnFeatureTemplateRouteVpnImport>[]>;
/**
* Configure services
*/
services?: pulumi.Input<pulumi.Input<inputs.CiscoVpnFeatureTemplateService>[]>;
/**
* Configure static NAT entries
*/
staticNatRules?: pulumi.Input<pulumi.Input<inputs.CiscoVpnFeatureTemplateStaticNatRule>[]>;
/**
* Configure static NAT Subnet entries
*/
staticNatSubnetRules?: pulumi.Input<pulumi.Input<inputs.CiscoVpnFeatureTemplateStaticNatSubnetRule>[]>;
/**
* Tenant VPN
* - Range: `0`-`65527`
* - Default value: `0`
*/
tenantVpnId?: pulumi.Input<number>;
/**
* List of VPN instances
* - Range: `0`-`65527`
* - Default value: `0`
*/
vpnId?: pulumi.Input<number>;
/**
* Name
*/
vpnName?: pulumi.Input<string>;
/**
* Variable name
*/
vpnNameVariable?: pulumi.Input<string>;
}