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-site", * 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: "panw-IPSec-site", * 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-site", * 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-site", * 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-site", * 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-site", * 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, * }, * }); * ``` * * ## Import * * The following command can be used to import a resource not managed by Terraform: * * ```sh * $ pulumi import scm:index/site:Site example :::id * ``` */ 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, 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; /** * The address in which the site exists (continued) */ readonly addressLine2: pulumi.Output; /** * The city in which the site exists */ readonly city: pulumi.Output; /** * The country in which the site exists */ readonly country: pulumi.Output; /** * The folder in which the resource is defined */ readonly folder: pulumi.Output; /** * The latitude coordinate for the site */ readonly latitude: pulumi.Output; /** * The license type of the site */ readonly licenseType: pulumi.Output; /** * The longitude coordinate for the site */ readonly longitude: pulumi.Output; /** * Members */ readonly members: pulumi.Output; /** * The name of the site */ readonly name: pulumi.Output; /** * Qos */ readonly qos: pulumi.Output; /** * The state in which the site exists */ readonly state: pulumi.Output; /** * The Terraform ID. */ readonly tfid: pulumi.Output; /** * The site type */ readonly type: pulumi.Output; /** * The postal code in which the site exists */ readonly zipCode: pulumi.Output; /** * 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; /** * The address in which the site exists (continued) */ addressLine2?: pulumi.Input; /** * The city in which the site exists */ city?: pulumi.Input; /** * The country in which the site exists */ country?: pulumi.Input; /** * The folder in which the resource is defined */ folder?: pulumi.Input; /** * The latitude coordinate for the site */ latitude?: pulumi.Input; /** * The license type of the site */ licenseType?: pulumi.Input; /** * The longitude coordinate for the site */ longitude?: pulumi.Input; /** * Members */ members?: pulumi.Input[] | undefined>; /** * The name of the site */ name?: pulumi.Input; /** * Qos */ qos?: pulumi.Input; /** * The state in which the site exists */ state?: pulumi.Input; /** * The Terraform ID. */ tfid?: pulumi.Input; /** * The site type */ type?: pulumi.Input; /** * The postal code in which the site exists */ zipCode?: pulumi.Input; } /** * The set of arguments for constructing a Site resource. */ export interface SiteArgs { /** * The address in which the site exists */ addressLine1?: pulumi.Input; /** * The address in which the site exists (continued) */ addressLine2?: pulumi.Input; /** * The city in which the site exists */ city?: pulumi.Input; /** * The country in which the site exists */ country?: pulumi.Input; /** * The latitude coordinate for the site */ latitude?: pulumi.Input; /** * The license type of the site */ licenseType?: pulumi.Input; /** * The longitude coordinate for the site */ longitude?: pulumi.Input; /** * Members */ members?: pulumi.Input[] | undefined>; /** * The name of the site */ name?: pulumi.Input; /** * Qos */ qos?: pulumi.Input; /** * The state in which the site exists */ state?: pulumi.Input; /** * The site type */ type?: pulumi.Input; /** * The postal code in which the site exists */ zipCode?: pulumi.Input; } //# sourceMappingURL=site.d.ts.map