UNPKG

@pulumi/sdwan

Version:

A Pulumi package for managing resources on Cisco Catalyst SD-WAN.. Based on terraform-provider-sdwan: version v0.4.1

300 lines 12.2 kB
"use strict"; // *** WARNING: this file was generated by pulumi-language-nodejs. *** // *** Do not edit by hand unless you're certain you know what you are doing! *** Object.defineProperty(exports, "__esModule", { value: true }); exports.CiscoVpnFeatureTemplate = void 0; const pulumi = require("@pulumi/pulumi"); const utilities = require("./utilities"); /** * 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" * ``` */ 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, id, state, opts) { return new CiscoVpnFeatureTemplate(name, state, { ...opts, id: id }); } /** * 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) { if (obj === undefined || obj === null) { return false; } return obj['__pulumiType'] === CiscoVpnFeatureTemplate.__pulumiType; } constructor(name, argsOrState, opts) { let resourceInputs = {}; opts = opts || {}; if (opts.id) { const state = argsOrState; resourceInputs["description"] = state?.description; resourceInputs["deviceTypes"] = state?.deviceTypes; resourceInputs["dnsHosts"] = state?.dnsHosts; resourceInputs["dnsIpv4Servers"] = state?.dnsIpv4Servers; resourceInputs["dnsIpv6Servers"] = state?.dnsIpv6Servers; resourceInputs["enhanceEcmpKeying"] = state?.enhanceEcmpKeying; resourceInputs["enhanceEcmpKeyingVariable"] = state?.enhanceEcmpKeyingVariable; resourceInputs["ipv4StaticGreRoutes"] = state?.ipv4StaticGreRoutes; resourceInputs["ipv4StaticIpsecRoutes"] = state?.ipv4StaticIpsecRoutes; resourceInputs["ipv4StaticRoutes"] = state?.ipv4StaticRoutes; resourceInputs["ipv4StaticServiceRoutes"] = state?.ipv4StaticServiceRoutes; resourceInputs["ipv6StaticRoutes"] = state?.ipv6StaticRoutes; resourceInputs["name"] = state?.name; resourceInputs["nat64Pools"] = state?.nat64Pools; resourceInputs["natPools"] = state?.natPools; resourceInputs["ompAdminDistanceIpv4"] = state?.ompAdminDistanceIpv4; resourceInputs["ompAdminDistanceIpv4Variable"] = state?.ompAdminDistanceIpv4Variable; resourceInputs["ompAdminDistanceIpv6"] = state?.ompAdminDistanceIpv6; resourceInputs["ompAdminDistanceIpv6Variable"] = state?.ompAdminDistanceIpv6Variable; resourceInputs["ompAdvertiseIpv4Routes"] = state?.ompAdvertiseIpv4Routes; resourceInputs["ompAdvertiseIpv6Routes"] = state?.ompAdvertiseIpv6Routes; resourceInputs["organizationName"] = state?.organizationName; resourceInputs["portForwardRules"] = state?.portForwardRules; resourceInputs["routeGlobalExports"] = state?.routeGlobalExports; resourceInputs["routeGlobalImports"] = state?.routeGlobalImports; resourceInputs["routeVpnImports"] = state?.routeVpnImports; resourceInputs["services"] = state?.services; resourceInputs["staticNatRules"] = state?.staticNatRules; resourceInputs["staticNatSubnetRules"] = state?.staticNatSubnetRules; resourceInputs["templateType"] = state?.templateType; resourceInputs["tenantVpnId"] = state?.tenantVpnId; resourceInputs["version"] = state?.version; resourceInputs["vpnId"] = state?.vpnId; resourceInputs["vpnName"] = state?.vpnName; resourceInputs["vpnNameVariable"] = state?.vpnNameVariable; } else { const args = argsOrState; if (args?.description === undefined && !opts.urn) { throw new Error("Missing required property 'description'"); } if (args?.deviceTypes === undefined && !opts.urn) { throw new Error("Missing required property 'deviceTypes'"); } resourceInputs["description"] = args?.description; resourceInputs["deviceTypes"] = args?.deviceTypes; resourceInputs["dnsHosts"] = args?.dnsHosts; resourceInputs["dnsIpv4Servers"] = args?.dnsIpv4Servers; resourceInputs["dnsIpv6Servers"] = args?.dnsIpv6Servers; resourceInputs["enhanceEcmpKeying"] = args?.enhanceEcmpKeying; resourceInputs["enhanceEcmpKeyingVariable"] = args?.enhanceEcmpKeyingVariable; resourceInputs["ipv4StaticGreRoutes"] = args?.ipv4StaticGreRoutes; resourceInputs["ipv4StaticIpsecRoutes"] = args?.ipv4StaticIpsecRoutes; resourceInputs["ipv4StaticRoutes"] = args?.ipv4StaticRoutes; resourceInputs["ipv4StaticServiceRoutes"] = args?.ipv4StaticServiceRoutes; resourceInputs["ipv6StaticRoutes"] = args?.ipv6StaticRoutes; resourceInputs["name"] = args?.name; resourceInputs["nat64Pools"] = args?.nat64Pools; resourceInputs["natPools"] = args?.natPools; resourceInputs["ompAdminDistanceIpv4"] = args?.ompAdminDistanceIpv4; resourceInputs["ompAdminDistanceIpv4Variable"] = args?.ompAdminDistanceIpv4Variable; resourceInputs["ompAdminDistanceIpv6"] = args?.ompAdminDistanceIpv6; resourceInputs["ompAdminDistanceIpv6Variable"] = args?.ompAdminDistanceIpv6Variable; resourceInputs["ompAdvertiseIpv4Routes"] = args?.ompAdvertiseIpv4Routes; resourceInputs["ompAdvertiseIpv6Routes"] = args?.ompAdvertiseIpv6Routes; resourceInputs["organizationName"] = args?.organizationName; resourceInputs["portForwardRules"] = args?.portForwardRules; resourceInputs["routeGlobalExports"] = args?.routeGlobalExports; resourceInputs["routeGlobalImports"] = args?.routeGlobalImports; resourceInputs["routeVpnImports"] = args?.routeVpnImports; resourceInputs["services"] = args?.services; resourceInputs["staticNatRules"] = args?.staticNatRules; resourceInputs["staticNatSubnetRules"] = args?.staticNatSubnetRules; resourceInputs["tenantVpnId"] = args?.tenantVpnId; resourceInputs["vpnId"] = args?.vpnId; resourceInputs["vpnName"] = args?.vpnName; resourceInputs["vpnNameVariable"] = args?.vpnNameVariable; resourceInputs["templateType"] = undefined /*out*/; resourceInputs["version"] = undefined /*out*/; } opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); super(CiscoVpnFeatureTemplate.__pulumiType, name, resourceInputs, opts); } } exports.CiscoVpnFeatureTemplate = CiscoVpnFeatureTemplate; /** @internal */ CiscoVpnFeatureTemplate.__pulumiType = 'sdwan:index/ciscoVpnFeatureTemplate:CiscoVpnFeatureTemplate'; //# sourceMappingURL=ciscoVpnFeatureTemplate.js.map