import * as pulumi from "@pulumi/pulumi";
import * as outputs from "./types/output";
/**
 * Service Accounts offer a way to provide programmatic, centrally-controlled, and consistent access controls.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as twingate from "@twingate/pulumi-twingate";
 *
 * const foo = twingate.getTwingateServiceAccounts({
 *     name: "<your service account's name>",
 * });
 * ```
 */
export declare function getTwingateServiceAccounts(args?: GetTwingateServiceAccountsArgs, opts?: pulumi.InvokeOptions): Promise<GetTwingateServiceAccountsResult>;
/**
 * A collection of arguments for invoking getTwingateServiceAccounts.
 */
export interface GetTwingateServiceAccountsArgs {
    /**
     * Returns only service accounts that exactly match this name. If no options are passed it will return all service accounts. Only one option can be used at a time.
     */
    name?: string;
    /**
     * Match when the value exist in the name of the service account.
     */
    nameContains?: string;
    /**
     * Match when the exact value does not exist in the name of the service account.
     */
    nameExclude?: string;
    /**
     * The name of the service account must start with the value.
     */
    namePrefix?: string;
    /**
     * The regular expression match of the name of the service account.
     */
    nameRegexp?: string;
    /**
     * The name of the service account must end with the value.
     */
    nameSuffix?: string;
}
/**
 * A collection of values returned by getTwingateServiceAccounts.
 */
export interface GetTwingateServiceAccountsResult {
    /**
     * The ID of this resource.
     */
    readonly id: string;
    /**
     * Returns only service accounts that exactly match this name. If no options are passed it will return all service accounts. Only one option can be used at a time.
     */
    readonly name?: string;
    /**
     * Match when the value exist in the name of the service account.
     */
    readonly nameContains?: string;
    /**
     * Match when the exact value does not exist in the name of the service account.
     */
    readonly nameExclude?: string;
    /**
     * The name of the service account must start with the value.
     */
    readonly namePrefix?: string;
    /**
     * The regular expression match of the name of the service account.
     */
    readonly nameRegexp?: string;
    /**
     * The name of the service account must end with the value.
     */
    readonly nameSuffix?: string;
    /**
     * List of Service Accounts
     */
    readonly serviceAccounts: outputs.GetTwingateServiceAccountsServiceAccount[];
}
/**
 * Service Accounts offer a way to provide programmatic, centrally-controlled, and consistent access controls.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as twingate from "@twingate/pulumi-twingate";
 *
 * const foo = twingate.getTwingateServiceAccounts({
 *     name: "<your service account's name>",
 * });
 * ```
 */
export declare function getTwingateServiceAccountsOutput(args?: GetTwingateServiceAccountsOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output<GetTwingateServiceAccountsResult>;
/**
 * A collection of arguments for invoking getTwingateServiceAccounts.
 */
export interface GetTwingateServiceAccountsOutputArgs {
    /**
     * Returns only service accounts that exactly match this name. If no options are passed it will return all service accounts. Only one option can be used at a time.
     */
    name?: pulumi.Input<string>;
    /**
     * Match when the value exist in the name of the service account.
     */
    nameContains?: pulumi.Input<string>;
    /**
     * Match when the exact value does not exist in the name of the service account.
     */
    nameExclude?: pulumi.Input<string>;
    /**
     * The name of the service account must start with the value.
     */
    namePrefix?: pulumi.Input<string>;
    /**
     * The regular expression match of the name of the service account.
     */
    nameRegexp?: pulumi.Input<string>;
    /**
     * The name of the service account must end with the value.
     */
    nameSuffix?: pulumi.Input<string>;
}
