UNPKG

@emailbob/twingate

Version:

A Pulumi package for creating and managing Twingate cloud resources.

195 lines (194 loc) 7.99 kB
import * as pulumi from "@pulumi/pulumi"; import * as inputs from "./types/input"; import * as outputs from "./types/output"; /** * Resources in Twingate represent servers on the private network that clients can connect to. Resources can be defined by IP, CIDR range, FQDN, or DNS zone. For more information, see the Twingate [documentation](https://docs.twingate.com/docs/resources-and-access-nodes). * * ## Import * * ```sh * $ pulumi import twingate:index/twingateResource:TwingateResource resource UmVzb3VyY2U6MzQwNDQ3 * ``` */ export declare class TwingateResource extends pulumi.CustomResource { /** * Get an existing TwingateResource 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?: TwingateResourceState, opts?: pulumi.CustomResourceOptions): TwingateResource; /** * Returns true if the given object is an instance of TwingateResource. 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 TwingateResource; /** * Restrict access to certain group */ readonly accessGroups: pulumi.Output<outputs.TwingateResourceAccessGroup[] | undefined>; /** * Restrict access to certain service account */ readonly accessServices: pulumi.Output<outputs.TwingateResourceAccessService[] | undefined>; /** * The Resource's IP/CIDR or FQDN/DNS zone */ readonly address: pulumi.Output<string>; /** * Set a DNS alias address for the Resource. Must be a DNS-valid name string. */ readonly alias: pulumi.Output<string | undefined>; /** * Set the resource as active or inactive. Default is `true`. */ readonly isActive: pulumi.Output<boolean>; /** * Determines whether assignments in the access block will override any existing assignments. Default is `true`. If set to * `false`, assignments made outside of Terraform will be ignored. */ readonly isAuthoritative: pulumi.Output<boolean>; /** * Controls whether an "Open in Browser" shortcut will be shown for this Resource in the Twingate Client. Default is `false`. */ readonly isBrowserShortcutEnabled: pulumi.Output<boolean>; /** * Controls whether this Resource will be visible in the main Resource list in the Twingate Client. Default is `true`. */ readonly isVisible: pulumi.Output<boolean>; /** * The name of the Resource */ readonly name: pulumi.Output<string>; /** * Restrict access to certain protocols and ports. By default or when this argument is not defined, there is no restriction, and all protocols and ports are allowed. */ readonly protocols: pulumi.Output<outputs.TwingateResourceProtocols>; /** * Remote Network ID where the Resource lives */ readonly remoteNetworkId: pulumi.Output<string>; /** * The ID of a `twingate.getTwingateSecurityPolicy` to use as the access policy for the group IDs in the access block. */ readonly securityPolicyId: pulumi.Output<string>; /** * Create a TwingateResource 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: TwingateResourceArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering TwingateResource resources. */ export interface TwingateResourceState { /** * Restrict access to certain group */ accessGroups?: pulumi.Input<pulumi.Input<inputs.TwingateResourceAccessGroup>[]>; /** * Restrict access to certain service account */ accessServices?: pulumi.Input<pulumi.Input<inputs.TwingateResourceAccessService>[]>; /** * The Resource's IP/CIDR or FQDN/DNS zone */ address?: pulumi.Input<string>; /** * Set a DNS alias address for the Resource. Must be a DNS-valid name string. */ alias?: pulumi.Input<string>; /** * Set the resource as active or inactive. Default is `true`. */ isActive?: pulumi.Input<boolean>; /** * Determines whether assignments in the access block will override any existing assignments. Default is `true`. If set to * `false`, assignments made outside of Terraform will be ignored. */ isAuthoritative?: pulumi.Input<boolean>; /** * Controls whether an "Open in Browser" shortcut will be shown for this Resource in the Twingate Client. Default is `false`. */ isBrowserShortcutEnabled?: pulumi.Input<boolean>; /** * Controls whether this Resource will be visible in the main Resource list in the Twingate Client. Default is `true`. */ isVisible?: pulumi.Input<boolean>; /** * The name of the Resource */ name?: pulumi.Input<string>; /** * Restrict access to certain protocols and ports. By default or when this argument is not defined, there is no restriction, and all protocols and ports are allowed. */ protocols?: pulumi.Input<inputs.TwingateResourceProtocols>; /** * Remote Network ID where the Resource lives */ remoteNetworkId?: pulumi.Input<string>; /** * The ID of a `twingate.getTwingateSecurityPolicy` to use as the access policy for the group IDs in the access block. */ securityPolicyId?: pulumi.Input<string>; } /** * The set of arguments for constructing a TwingateResource resource. */ export interface TwingateResourceArgs { /** * Restrict access to certain group */ accessGroups?: pulumi.Input<pulumi.Input<inputs.TwingateResourceAccessGroup>[]>; /** * Restrict access to certain service account */ accessServices?: pulumi.Input<pulumi.Input<inputs.TwingateResourceAccessService>[]>; /** * The Resource's IP/CIDR or FQDN/DNS zone */ address: pulumi.Input<string>; /** * Set a DNS alias address for the Resource. Must be a DNS-valid name string. */ alias?: pulumi.Input<string>; /** * Set the resource as active or inactive. Default is `true`. */ isActive?: pulumi.Input<boolean>; /** * Determines whether assignments in the access block will override any existing assignments. Default is `true`. If set to * `false`, assignments made outside of Terraform will be ignored. */ isAuthoritative?: pulumi.Input<boolean>; /** * Controls whether an "Open in Browser" shortcut will be shown for this Resource in the Twingate Client. Default is `false`. */ isBrowserShortcutEnabled?: pulumi.Input<boolean>; /** * Controls whether this Resource will be visible in the main Resource list in the Twingate Client. Default is `true`. */ isVisible?: pulumi.Input<boolean>; /** * The name of the Resource */ name?: pulumi.Input<string>; /** * Restrict access to certain protocols and ports. By default or when this argument is not defined, there is no restriction, and all protocols and ports are allowed. */ protocols?: pulumi.Input<inputs.TwingateResourceProtocols>; /** * Remote Network ID where the Resource lives */ remoteNetworkId: pulumi.Input<string>; /** * The ID of a `twingate.getTwingateSecurityPolicy` to use as the access policy for the group IDs in the access block. */ securityPolicyId?: pulumi.Input<string>; }