import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
export interface GetTwingateConnectorsConnector {
    id?: string;
    name?: string;
    remoteNetworkId?: string;
    statusUpdatesEnabled?: boolean;
}
export interface GetTwingateConnectorsConnectorArgs {
    id?: pulumi.Input<string>;
    name?: pulumi.Input<string>;
    remoteNetworkId?: pulumi.Input<string>;
    statusUpdatesEnabled?: pulumi.Input<boolean>;
}
export interface GetTwingateGroupsGroup {
    id?: string;
    isActive?: boolean;
    name?: string;
    securityPolicyId?: string;
    type?: string;
}
export interface GetTwingateGroupsGroupArgs {
    id?: pulumi.Input<string>;
    isActive?: pulumi.Input<boolean>;
    name?: pulumi.Input<string>;
    securityPolicyId?: pulumi.Input<string>;
    type?: pulumi.Input<string>;
}
export interface GetTwingateRemoteNetworksRemoteNetwork {
    id?: string;
    location?: string;
    name?: string;
}
export interface GetTwingateRemoteNetworksRemoteNetworkArgs {
    id?: pulumi.Input<string>;
    location?: pulumi.Input<string>;
    name?: pulumi.Input<string>;
}
export interface GetTwingateResourceProtocol {
    allowIcmp?: boolean;
    tcps?: inputs.GetTwingateResourceProtocolTcp[];
    udps?: inputs.GetTwingateResourceProtocolUdp[];
}
export interface GetTwingateResourceProtocolArgs {
    allowIcmp?: pulumi.Input<boolean>;
    tcps?: pulumi.Input<pulumi.Input<inputs.GetTwingateResourceProtocolTcpArgs>[]>;
    udps?: pulumi.Input<pulumi.Input<inputs.GetTwingateResourceProtocolUdpArgs>[]>;
}
export interface GetTwingateResourceProtocolTcp {
    policy?: string;
    ports?: string[];
}
export interface GetTwingateResourceProtocolTcpArgs {
    policy?: pulumi.Input<string>;
    ports?: pulumi.Input<pulumi.Input<string>[]>;
}
export interface GetTwingateResourceProtocolUdp {
    policy?: string;
    ports?: string[];
}
export interface GetTwingateResourceProtocolUdpArgs {
    policy?: pulumi.Input<string>;
    ports?: pulumi.Input<pulumi.Input<string>[]>;
}
export interface GetTwingateResourcesResource {
    address?: string;
    id?: string;
    name?: string;
    protocols?: inputs.GetTwingateResourcesResourceProtocol[];
    remoteNetworkId?: string;
}
export interface GetTwingateResourcesResourceArgs {
    address?: pulumi.Input<string>;
    id?: pulumi.Input<string>;
    name?: pulumi.Input<string>;
    protocols?: pulumi.Input<pulumi.Input<inputs.GetTwingateResourcesResourceProtocolArgs>[]>;
    remoteNetworkId?: pulumi.Input<string>;
}
export interface GetTwingateResourcesResourceProtocol {
    allowIcmp?: boolean;
    tcps?: inputs.GetTwingateResourcesResourceProtocolTcp[];
    udps?: inputs.GetTwingateResourcesResourceProtocolUdp[];
}
export interface GetTwingateResourcesResourceProtocolArgs {
    allowIcmp?: pulumi.Input<boolean>;
    tcps?: pulumi.Input<pulumi.Input<inputs.GetTwingateResourcesResourceProtocolTcpArgs>[]>;
    udps?: pulumi.Input<pulumi.Input<inputs.GetTwingateResourcesResourceProtocolUdpArgs>[]>;
}
export interface GetTwingateResourcesResourceProtocolTcp {
    policy?: string;
    ports?: string[];
}
export interface GetTwingateResourcesResourceProtocolTcpArgs {
    policy?: pulumi.Input<string>;
    ports?: pulumi.Input<pulumi.Input<string>[]>;
}
export interface GetTwingateResourcesResourceProtocolUdp {
    policy?: string;
    ports?: string[];
}
export interface GetTwingateResourcesResourceProtocolUdpArgs {
    policy?: pulumi.Input<string>;
    ports?: pulumi.Input<pulumi.Input<string>[]>;
}
export interface GetTwingateSecurityPoliciesSecurityPolicy {
    id?: string;
    name?: string;
}
export interface GetTwingateSecurityPoliciesSecurityPolicyArgs {
    id?: pulumi.Input<string>;
    name?: pulumi.Input<string>;
}
export interface GetTwingateServiceAccountsServiceAccount {
    id?: string;
    keyIds?: string[];
    name?: string;
    resourceIds?: string[];
}
export interface GetTwingateServiceAccountsServiceAccountArgs {
    id?: pulumi.Input<string>;
    keyIds?: pulumi.Input<pulumi.Input<string>[]>;
    name?: pulumi.Input<string>;
    resourceIds?: pulumi.Input<pulumi.Input<string>[]>;
}
export interface GetTwingateUsersUser {
    email?: string;
    firstName?: string;
    id?: string;
    /**
     * @deprecated This read-only Boolean value will be deprecated in a future release. You may use the `role` value instead.
     */
    isAdmin?: boolean;
    lastName?: string;
    role?: string;
    type?: string;
}
export interface GetTwingateUsersUserArgs {
    email?: pulumi.Input<string>;
    firstName?: pulumi.Input<string>;
    id?: pulumi.Input<string>;
    /**
     * @deprecated This read-only Boolean value will be deprecated in a future release. You may use the `role` value instead.
     */
    isAdmin?: pulumi.Input<boolean>;
    lastName?: pulumi.Input<string>;
    role?: pulumi.Input<string>;
    type?: pulumi.Input<string>;
}
export interface TwingateResourceAccess {
    groupIds?: pulumi.Input<pulumi.Input<string>[]>;
    serviceAccountIds?: pulumi.Input<pulumi.Input<string>[]>;
}
export interface TwingateResourceProtocols {
    allowIcmp?: pulumi.Input<boolean>;
    tcp: pulumi.Input<inputs.TwingateResourceProtocolsTcp>;
    udp: pulumi.Input<inputs.TwingateResourceProtocolsUdp>;
}
export interface TwingateResourceProtocolsTcp {
    policy: pulumi.Input<string>;
    ports?: pulumi.Input<pulumi.Input<string>[]>;
}
export interface TwingateResourceProtocolsUdp {
    policy: pulumi.Input<string>;
    ports?: pulumi.Input<pulumi.Input<string>[]>;
}
