UNPKG

@pulumi/scm

Version:

A Pulumi package for managing resources on Strata Cloud Manager.. Based on terraform-provider-scm: version v0.2.1

271 lines (270 loc) 8.71 kB
import * as pulumi from "@pulumi/pulumi"; import * as inputs from "./types/input"; import * as outputs from "./types/output"; /** * RemoteNetwork resource * * ## Example Usage * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as scm from "@pulumi/scm"; * * // --- DEPENDENCY 1: IKE Crypto Profile --- * // This profile defines the encryption and authentication algorithms for the IKE Gateway. * // The values are taken from the 'createTestIKECryptoProfile' helper function. * const example = new scm.IkeCryptoProfile("example", { * name: "example-ike-crypto-11", * folder: "Remote Networks", * hashes: ["sha256"], * dhGroups: ["group14"], * encryptions: ["aes-256-cbc"], * }); * // --- DEPENDENCY 2: IKE Gateway --- * // This defines the VPN peer. It depends on the IKE Crypto Profile created above. * // The values are taken from the 'createTestIKEGateway' helper function. * const exampleIkeGateway = new scm.IkeGateway("example", { * name: "example-ike-gateway-11", * folder: "Remote Networks", * authentication: { * preSharedKey: { * key: "secret", * }, * }, * peerAddress: { * ip: "1.1.1.1", * }, * protocol: { * ikev1: { * ikeCryptoProfile: example.name, * }, * }, * }, { * dependsOn: [example], * }); * // --- DEPENDENCY 3: IPsec Tunnel --- * // This defines the tunnel interface itself and uses the IKE Gateway. * // The values are taken from the 'createTestIPsecTunnel' helper function. * const exampleIpsecTunnel = new scm.IpsecTunnel("example", { * name: "example-ipsec-tunnel-11", * folder: "Remote Networks", * antiReplay: true, * copyTos: false, * enableGreEncapsulation: false, * autoKey: { * ikeGateways: [{ * name: exampleIkeGateway.name, * }], * ipsecCryptoProfile: "PaloAlto-Networks-IPSec-Crypto", * }, * }, { * dependsOn: [exampleIkeGateway], * }); * // --- MAIN RESOURCE: Remote Network --- * // This is the final resource, which uses the IPsec Tunnel created above. * // The values are taken directly from the 'Test_deployment_services_RemoteNetworksAPIService_Create' test. * const exampleRemoteNetwork = new scm.RemoteNetwork("example", { * name: "example-remote-network-11", * folder: "Remote Networks", * licenseType: "FWAAS-AGGREGATE", * region: "us-west-2", * spnName: "us-west-dakota", * subnets: ["192.168.1.0/24"], * ipsecTunnel: exampleIpsecTunnel.name, * protocol: { * bgp: { * enable: true, * peerAs: "65000", * localIpAddress: "169.254.1.1", * peerIpAddress: "169.254.1.2", * doNotExportRoutes: false, * originateDefaultRoute: false, * summarizeMobileUserRoutes: false, * }, * }, * }, { * dependsOn: [exampleIpsecTunnel], * }); * ``` */ export declare class RemoteNetwork extends pulumi.CustomResource { /** * Get an existing RemoteNetwork 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?: RemoteNetworkState, opts?: pulumi.CustomResourceOptions): RemoteNetwork; /** * Returns true if the given object is an instance of RemoteNetwork. 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 RemoteNetwork; /** * Ecmp load balancing */ readonly ecmpLoadBalancing: pulumi.Output<string>; /** * ecmp*tunnels is required when ecmp*load*balancing is enable */ readonly ecmpTunnels: pulumi.Output<outputs.RemoteNetworkEcmpTunnel[] | undefined>; /** * Map of sensitive values returned from the API. */ readonly encryptedValues: pulumi.Output<{ [key: string]: string; }>; /** * The folder that contains the remote network */ readonly folder: pulumi.Output<string>; /** * ipsec*tunnel is required when ecmp*load_balancing is disable */ readonly ipsecTunnel: pulumi.Output<string | undefined>; /** * New customer will only be on aggregate bandwidth licensing */ readonly licenseType: pulumi.Output<string>; /** * The name of the remote network */ readonly name: pulumi.Output<string>; /** * setup the protocol when ecmp*load*balancing is disable */ readonly protocol: pulumi.Output<outputs.RemoteNetworkProtocol | undefined>; /** * Region */ readonly region: pulumi.Output<string>; /** * specify secondary ipsecTunnel if needed */ readonly secondaryIpsecTunnel: pulumi.Output<string | undefined>; /** * spn-name is needed when licenseType is FWAAS-AGGREGATE */ readonly spnName: pulumi.Output<string | undefined>; /** * Subnets */ readonly subnets: pulumi.Output<string[] | undefined>; readonly tfid: pulumi.Output<string>; /** * Create a RemoteNetwork 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: RemoteNetworkArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering RemoteNetwork resources. */ export interface RemoteNetworkState { /** * Ecmp load balancing */ ecmpLoadBalancing?: pulumi.Input<string>; /** * ecmp*tunnels is required when ecmp*load*balancing is enable */ ecmpTunnels?: pulumi.Input<pulumi.Input<inputs.RemoteNetworkEcmpTunnel>[]>; /** * Map of sensitive values returned from the API. */ encryptedValues?: pulumi.Input<{ [key: string]: pulumi.Input<string>; }>; /** * The folder that contains the remote network */ folder?: pulumi.Input<string>; /** * ipsec*tunnel is required when ecmp*load_balancing is disable */ ipsecTunnel?: pulumi.Input<string>; /** * New customer will only be on aggregate bandwidth licensing */ licenseType?: pulumi.Input<string>; /** * The name of the remote network */ name?: pulumi.Input<string>; /** * setup the protocol when ecmp*load*balancing is disable */ protocol?: pulumi.Input<inputs.RemoteNetworkProtocol>; /** * Region */ region?: pulumi.Input<string>; /** * specify secondary ipsecTunnel if needed */ secondaryIpsecTunnel?: pulumi.Input<string>; /** * spn-name is needed when licenseType is FWAAS-AGGREGATE */ spnName?: pulumi.Input<string>; /** * Subnets */ subnets?: pulumi.Input<pulumi.Input<string>[]>; tfid?: pulumi.Input<string>; } /** * The set of arguments for constructing a RemoteNetwork resource. */ export interface RemoteNetworkArgs { /** * Ecmp load balancing */ ecmpLoadBalancing?: pulumi.Input<string>; /** * ecmp*tunnels is required when ecmp*load*balancing is enable */ ecmpTunnels?: pulumi.Input<pulumi.Input<inputs.RemoteNetworkEcmpTunnel>[]>; /** * The folder that contains the remote network */ folder: pulumi.Input<string>; /** * ipsec*tunnel is required when ecmp*load_balancing is disable */ ipsecTunnel?: pulumi.Input<string>; /** * New customer will only be on aggregate bandwidth licensing */ licenseType: pulumi.Input<string>; /** * The name of the remote network */ name?: pulumi.Input<string>; /** * setup the protocol when ecmp*load*balancing is disable */ protocol?: pulumi.Input<inputs.RemoteNetworkProtocol>; /** * Region */ region: pulumi.Input<string>; /** * specify secondary ipsecTunnel if needed */ secondaryIpsecTunnel?: pulumi.Input<string>; /** * spn-name is needed when licenseType is FWAAS-AGGREGATE */ spnName?: pulumi.Input<string>; /** * Subnets */ subnets?: pulumi.Input<pulumi.Input<string>[]>; }