import * as pulumi from "@pulumi/pulumi"; import * as inputs from "../../types/input"; import * as outputs from "../../types/output"; /** * Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors. */ export declare class PolicyIamBinding extends pulumi.CustomResource { /** * Get an existing PolicyIamBinding 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, opts?: pulumi.CustomResourceOptions): PolicyIamBinding; /** * Returns true if the given object is an instance of PolicyIamBinding. 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 PolicyIamBinding; /** * An IAM Condition for a given binding. See https://cloud.google.com/iam/docs/conditions-overview for additional details. */ readonly condition: pulumi.Output; /** * The etag of the resource's IAM policy. */ readonly etag: pulumi.Output; /** * Identities that will be granted the privilege in role. Each entry can have one of the following values: * * * user:{emailid}: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com. * * serviceAccount:{emailid}: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com. * * group:{emailid}: An email address that represents a Google group. For example, admins@example.com. * * domain:{domain}: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com. */ readonly members: pulumi.Output; /** * The name of the resource to manage IAM policies for. */ readonly name: pulumi.Output; /** * The project in which the resource belongs. If it is not provided, a default will be supplied. */ readonly project: pulumi.Output; /** * The role that should be applied. Only one `IamBinding` can be used per role. */ readonly role: pulumi.Output; /** * Create a PolicyIamBinding 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: PolicyIamBindingArgs, opts?: pulumi.CustomResourceOptions); } /** * The set of arguments for constructing a PolicyIamBinding resource. */ export interface PolicyIamBindingArgs { /** * An IAM Condition for a given binding. */ condition?: pulumi.Input; /** * Identities that will be granted the privilege in role. Each entry can have one of the following values: * * * user:{emailid}: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com. * * serviceAccount:{emailid}: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com. * * group:{emailid}: An email address that represents a Google group. For example, admins@example.com. * * domain:{domain}: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com. */ members: pulumi.Input[]>; /** * The name of the resource to manage IAM policies for. */ name: pulumi.Input; /** * The role that should be applied. Only one `IamBinding` can be used per role. */ role: pulumi.Input; }