import * as pulumi from "@pulumi/pulumi"; /** * Container Service provides cluster RBAC authorization, granting RBAC access permissions to IAM users or roles. This includes accessible resources, scope of permissions, and predefined role types, enabling better management of cluster security access control and meeting enterprise users' requirements for fine-grained resource access control. * * ## Example Usage * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as volcenginecc from "@volcengine/pulumi-volcenginecc"; * * const vKEPermissionDemo = new volcenginecc.vke.Permission("VKEPermissionDemo", { * roleDomain: "namespace", * clusterId: "cd48m3cb1b2ba7l6ebgp0xxxxx", * namespace: "kube-public", * roleName: "vke:visitor", * isCustomRole: false, * granteeId: 59433888, * granteeType: "User", * }); * ``` * * ## Import * * ```sh * $ pulumi import volcenginecc:vke/permission:Permission example "permission_id" * ``` */ export declare class Permission extends pulumi.CustomResource { /** * Get an existing Permission 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?: PermissionState, opts?: pulumi.CustomResourceOptions): Permission; /** * Returns true if the given object is an instance of Permission. 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 Permission; /** * Time when the RBAC policy resource was authorized. */ readonly authorizedAt: pulumi.Output; /** * Grantor ID. Can be an IAM user ID or an IAM role ID. */ readonly authorizerId: pulumi.Output; /** * Grantor name */ readonly authorizerName: pulumi.Output; /** * Type of grantor. Possible values: User: IAM user. Role: IAM role. Account: account. */ readonly authorizerType: pulumi.Output; /** * Cluster ID to be authorized for the IAM user or role. This parameter is required when roleDomain is namespace or cluster. */ readonly clusterId: pulumi.Output; /** * Time when the RBAC policy resource was created. */ readonly createdTime: pulumi.Output; /** * Grantee ID. Can be an IAM user ID or an IAM role ID. */ readonly granteeId: pulumi.Output; /** * Type of grantee. Possible values: User: IAM user. Role: IAM role. Account: account. */ readonly granteeType: pulumi.Output; /** * Whether the RBAC role granted to the grantee is a custom role. Possible values: true: custom role. false (default): system predefined role. */ readonly isCustomRole: pulumi.Output; /** * The object name of the RBAC policy resource in Kubernetes. */ readonly kubeRoleBindingName: pulumi.Output; /** * Authorization details message. */ readonly message: pulumi.Output; /** * Namespace name to be authorized for the IAM user or role. This parameter is required when roleDomain equals namespace. If roleDomain does not equal namespace, this parameter is not effective. */ readonly namespace: pulumi.Output; /** * RBAC policy resource ID. */ readonly permissionId: pulumi.Output; /** * Project selector */ readonly projectSelector: pulumi.Output; /** * Time when authorization is revoked. */ readonly revokedAt: pulumi.Output; /** * The permission type granted to an IAM user or role. Possible values: namespace: grants permissions at the namespace level. cluster: grants permissions at the cluster level. all_clusters: grants permissions at the cluster level for all clusters under the current account. */ readonly roleDomain: pulumi.Output; /** * Name of the RBAC role granted to the grantee. This parameter must be specified. When roleDomain is all_clusters, custom role names are not allowed. */ readonly roleName: pulumi.Output; /** * Status of the RBAC access policy resource. Possible values: Success: authorization succeeded. Failed: authorization failed. Pending: authorization in progress. PartialSuccess: partial authorization succeeded. */ readonly status: pulumi.Output; /** * Create a Permission 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?: PermissionArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering Permission resources. */ export interface PermissionState { /** * Time when the RBAC policy resource was authorized. */ authorizedAt?: pulumi.Input; /** * Grantor ID. Can be an IAM user ID or an IAM role ID. */ authorizerId?: pulumi.Input; /** * Grantor name */ authorizerName?: pulumi.Input; /** * Type of grantor. Possible values: User: IAM user. Role: IAM role. Account: account. */ authorizerType?: pulumi.Input; /** * Cluster ID to be authorized for the IAM user or role. This parameter is required when roleDomain is namespace or cluster. */ clusterId?: pulumi.Input; /** * Time when the RBAC policy resource was created. */ createdTime?: pulumi.Input; /** * Grantee ID. Can be an IAM user ID or an IAM role ID. */ granteeId?: pulumi.Input; /** * Type of grantee. Possible values: User: IAM user. Role: IAM role. Account: account. */ granteeType?: pulumi.Input; /** * Whether the RBAC role granted to the grantee is a custom role. Possible values: true: custom role. false (default): system predefined role. */ isCustomRole?: pulumi.Input; /** * The object name of the RBAC policy resource in Kubernetes. */ kubeRoleBindingName?: pulumi.Input; /** * Authorization details message. */ message?: pulumi.Input; /** * Namespace name to be authorized for the IAM user or role. This parameter is required when roleDomain equals namespace. If roleDomain does not equal namespace, this parameter is not effective. */ namespace?: pulumi.Input; /** * RBAC policy resource ID. */ permissionId?: pulumi.Input; /** * Project selector */ projectSelector?: pulumi.Input; /** * Time when authorization is revoked. */ revokedAt?: pulumi.Input; /** * The permission type granted to an IAM user or role. Possible values: namespace: grants permissions at the namespace level. cluster: grants permissions at the cluster level. all_clusters: grants permissions at the cluster level for all clusters under the current account. */ roleDomain?: pulumi.Input; /** * Name of the RBAC role granted to the grantee. This parameter must be specified. When roleDomain is all_clusters, custom role names are not allowed. */ roleName?: pulumi.Input; /** * Status of the RBAC access policy resource. Possible values: Success: authorization succeeded. Failed: authorization failed. Pending: authorization in progress. PartialSuccess: partial authorization succeeded. */ status?: pulumi.Input; } /** * The set of arguments for constructing a Permission resource. */ export interface PermissionArgs { /** * Grantor ID. Can be an IAM user ID or an IAM role ID. */ authorizerId?: pulumi.Input; /** * Type of grantor. Possible values: User: IAM user. Role: IAM role. Account: account. */ authorizerType?: pulumi.Input; /** * Cluster ID to be authorized for the IAM user or role. This parameter is required when roleDomain is namespace or cluster. */ clusterId?: pulumi.Input; /** * Grantee ID. Can be an IAM user ID or an IAM role ID. */ granteeId?: pulumi.Input; /** * Type of grantee. Possible values: User: IAM user. Role: IAM role. Account: account. */ granteeType?: pulumi.Input; /** * Whether the RBAC role granted to the grantee is a custom role. Possible values: true: custom role. false (default): system predefined role. */ isCustomRole?: pulumi.Input; /** * Namespace name to be authorized for the IAM user or role. This parameter is required when roleDomain equals namespace. If roleDomain does not equal namespace, this parameter is not effective. */ namespace?: pulumi.Input; /** * The permission type granted to an IAM user or role. Possible values: namespace: grants permissions at the namespace level. cluster: grants permissions at the cluster level. all_clusters: grants permissions at the cluster level for all clusters under the current account. */ roleDomain?: pulumi.Input; /** * Name of the RBAC role granted to the grantee. This parameter must be specified. When roleDomain is all_clusters, custom role names are not allowed. */ roleName?: pulumi.Input; }