import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
import * as enums from "../types/enums";
/**
 * Parameters to create and update an Azure Cosmos DB Table Role Definition.
 *
 * Uses Azure REST API version 2024-12-01-preview.
 */
export declare class TableResourceTableRoleDefinition extends pulumi.CustomResource {
    /**
     * Get an existing TableResourceTableRoleDefinition 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 opts Optional settings to control the behavior of the CustomResource.
     */
    static get(name: string, id: pulumi.Input<pulumi.ID>, opts?: pulumi.CustomResourceOptions): TableResourceTableRoleDefinition;
    /**
     * Returns true if the given object is an instance of TableResourceTableRoleDefinition.  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 TableResourceTableRoleDefinition;
    /**
     * A set of fully qualified Scopes at or below which Table Role Assignments may be created using this Role Definition. This will allow application of this Role Definition on the entire database account or any underlying Database / Collection. Must have at least one element. Scopes higher than Database account are not enforceable as assignable Scopes. Note that resources referenced in assignable Scopes need not exist.
     */
    readonly assignableScopes: pulumi.Output<string[] | undefined>;
    /**
     * The Azure API version of the resource.
     */
    readonly azureApiVersion: pulumi.Output<string>;
    /**
     * The name of the resource
     */
    readonly name: pulumi.Output<string>;
    /**
     * The set of operations allowed through this Role Definition.
     */
    readonly permissions: pulumi.Output<outputs.cosmosdb.PermissionResponse[] | undefined>;
    /**
     * A user-friendly name for the Role Definition. Must be unique for the database account.
     */
    readonly roleName: pulumi.Output<string | undefined>;
    /**
     * Azure Resource Manager metadata containing createdBy and modifiedBy information.
     */
    readonly systemData: pulumi.Output<outputs.cosmosdb.SystemDataResponse>;
    /**
     * The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
     */
    readonly type: pulumi.Output<string>;
    /**
     * Create a TableResourceTableRoleDefinition 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: TableResourceTableRoleDefinitionArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * The set of arguments for constructing a TableResourceTableRoleDefinition resource.
 */
export interface TableResourceTableRoleDefinitionArgs {
    /**
     * Cosmos DB database account name.
     */
    accountName: pulumi.Input<string>;
    /**
     * A set of fully qualified Scopes at or below which Table Role Assignments may be created using this Role Definition. This will allow application of this Role Definition on the entire database account or any underlying Database / Collection. Must have at least one element. Scopes higher than Database account are not enforceable as assignable Scopes. Note that resources referenced in assignable Scopes need not exist.
     */
    assignableScopes?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * The path id for the Role Definition.
     */
    id?: pulumi.Input<string>;
    /**
     * The set of operations allowed through this Role Definition.
     */
    permissions?: pulumi.Input<pulumi.Input<inputs.cosmosdb.PermissionArgs>[]>;
    /**
     * The name of the resource group. The name is case insensitive.
     */
    resourceGroupName: pulumi.Input<string>;
    /**
     * The GUID for the Role Definition.
     */
    roleDefinitionId?: pulumi.Input<string>;
    /**
     * A user-friendly name for the Role Definition. Must be unique for the database account.
     */
    roleName?: pulumi.Input<string>;
    /**
     * Indicates whether the Role Definition was built-in or user created.
     */
    type?: pulumi.Input<enums.cosmosdb.RoleDefinitionType>;
}
