UNPKG

@pulumi/scm

Version:

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

299 lines (298 loc) 8.52 kB
import * as pulumi from "@pulumi/pulumi"; import * as inputs from "./types/input"; import * as outputs from "./types/output"; /** * Site resource * * ## Example Usage * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as scm from "@pulumi/scm"; * * //# 1. Define the IKE Crypto Profile (IKE Phase 1) * // Note: The resource name is plural: "scm_ike_crypto_profile" * const example = new scm.IkeCryptoProfile("example", { * name: "example-ike-crypto-14", * folder: "Remote Networks", * hashes: ["sha256"], * dhGroups: ["group14"], * encryptions: ["aes-256-cbc"], * }); * //# 2. Define the IPsec Crypto Profile (IKE Phase 2) * // Note: The resource name is plural and nested blocks now use an equals sign (=). * const exampleIpsecCryptoProfile = new scm.IpsecCryptoProfile("example", { * name: "PaloAlto-Networks-IPSec-14", * folder: "Remote Networks", * esp: { * encryptions: ["aes-256-gcm"], * authentications: ["sha256"], * }, * dhGroup: "group14", * lifetime: { * hours: 8, * }, * }); * //# 3. Define the IKE Gateway * // Note: The resource name is plural and nested blocks now use an equals sign (=). * const exampleIkeGateway = new scm.IkeGateway("example", { * name: "example-gateway-14", * folder: "Remote Networks", * peerAddress: { * ip: "1.1.1.1", * }, * authentication: { * preSharedKey: { * key: "secret", * }, * }, * protocol: { * ikev1: { * ikeCryptoProfile: example.name, * }, * }, * }); * //# 4. Define the IPsec Tunnel * // Note: Nested 'auto_key' block uses an equals sign (=). * const exampleIpsecTunnel = new scm.IpsecTunnel("example", { * name: "example-tunnel-14", * folder: "Remote Networks", * tunnelInterface: "tunnel", * antiReplay: true, * copyTos: false, * enableGreEncapsulation: false, * autoKey: { * ikeGateways: [{ * name: exampleIkeGateway.name, * }], * ipsecCryptoProfile: exampleIpsecCryptoProfile.name, * }, * }, { * dependsOn: [exampleIkeGateway], * }); * // 1. Define the Remote Network first * const branchOffice = new scm.RemoteNetwork("branch_office", { * folder: "Remote Networks", * name: "example-rn-14", * region: "us-west-1", * licenseType: "FWAAS-AGGREGATE", * ipsecTunnel: exampleIpsecTunnel.name, * spnName: "us-west-1-spn-1", * subnets: ["192.168.10.0/24"], * }); * // 2. Define the Site * const exampleSite = new scm.Site("example", { * name: "example-site-14", * type: "third-party-branch", * licenseType: "FWAAS-SITE-25Mbps", * city: "San Jose", * state: "CA", * country: "United States", * zipCode: "95135", * latitude: "37.293306", * longitude: "-121.754485", * members: [{ * name: branchOffice.name, * remoteNetwork: branchOffice.name, * mode: "active", * }], * qos: { * profile: "Default Profile", * cir: 20, * }, * }); * ``` */ export declare class Site extends pulumi.CustomResource { /** * Get an existing Site 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?: SiteState, opts?: pulumi.CustomResourceOptions): Site; /** * Returns true if the given object is an instance of Site. 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 Site; /** * The address in which the site exists */ readonly addressLine1: pulumi.Output<string | undefined>; /** * The address in which the site exists (continued) */ readonly addressLine2: pulumi.Output<string | undefined>; /** * The city in which the site exists */ readonly city: pulumi.Output<string | undefined>; /** * The country in which the site exists */ readonly country: pulumi.Output<string | undefined>; /** * The latitude coordinate for the site */ readonly latitude: pulumi.Output<string | undefined>; /** * The license type of the site */ readonly licenseType: pulumi.Output<string | undefined>; /** * The longitude coordinate for the site */ readonly longitude: pulumi.Output<string | undefined>; /** * Members */ readonly members: pulumi.Output<outputs.SiteMember[] | undefined>; /** * The name of the site */ readonly name: pulumi.Output<string>; /** * Qos */ readonly qos: pulumi.Output<outputs.SiteQos | undefined>; /** * The state in which the site exists */ readonly state: pulumi.Output<string | undefined>; readonly tfid: pulumi.Output<string>; /** * The site type */ readonly type: pulumi.Output<string | undefined>; /** * The postal code in which the site exists */ readonly zipCode: pulumi.Output<string | undefined>; /** * Create a Site 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?: SiteArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering Site resources. */ export interface SiteState { /** * The address in which the site exists */ addressLine1?: pulumi.Input<string>; /** * The address in which the site exists (continued) */ addressLine2?: pulumi.Input<string>; /** * The city in which the site exists */ city?: pulumi.Input<string>; /** * The country in which the site exists */ country?: pulumi.Input<string>; /** * The latitude coordinate for the site */ latitude?: pulumi.Input<string>; /** * The license type of the site */ licenseType?: pulumi.Input<string>; /** * The longitude coordinate for the site */ longitude?: pulumi.Input<string>; /** * Members */ members?: pulumi.Input<pulumi.Input<inputs.SiteMember>[]>; /** * The name of the site */ name?: pulumi.Input<string>; /** * Qos */ qos?: pulumi.Input<inputs.SiteQos>; /** * The state in which the site exists */ state?: pulumi.Input<string>; tfid?: pulumi.Input<string>; /** * The site type */ type?: pulumi.Input<string>; /** * The postal code in which the site exists */ zipCode?: pulumi.Input<string>; } /** * The set of arguments for constructing a Site resource. */ export interface SiteArgs { /** * The address in which the site exists */ addressLine1?: pulumi.Input<string>; /** * The address in which the site exists (continued) */ addressLine2?: pulumi.Input<string>; /** * The city in which the site exists */ city?: pulumi.Input<string>; /** * The country in which the site exists */ country?: pulumi.Input<string>; /** * The latitude coordinate for the site */ latitude?: pulumi.Input<string>; /** * The license type of the site */ licenseType?: pulumi.Input<string>; /** * The longitude coordinate for the site */ longitude?: pulumi.Input<string>; /** * Members */ members?: pulumi.Input<pulumi.Input<inputs.SiteMember>[]>; /** * The name of the site */ name?: pulumi.Input<string>; /** * Qos */ qos?: pulumi.Input<inputs.SiteQos>; /** * The state in which the site exists */ state?: pulumi.Input<string>; /** * The site type */ type?: pulumi.Input<string>; /** * The postal code in which the site exists */ zipCode?: pulumi.Input<string>; }