Class ProjectsResource.SetIamPolicyRequest
Sets the IAM access control policy for the specified Project. CAUTION: This method will replace the existing
policy, and cannot be used to append additional IAM settings. NOTE: Removing service accounts from policies
or changing their roles can render services completely inoperable. It is important to understand how the
service account is being used before removing or updating its roles. For additional information about
resource
(e.g. my-project-id) structure and identification, see Resource
Names. The following constraints apply when using
setIamPolicy()
: + Project does not support allUsers
and allAuthenticatedUsers
as members
in a
Binding
of a Policy
. + The owner role can be granted to a user
, serviceAccount
, or a group that is
part of an organization. For example, group@myownpersonaldomain.com could be added as an owner to a project
in the myownpersonaldomain.com organization, but not the examplepetstore.com organization. + Service
accounts can be made owners of a project directly without any restrictions. However, to be added as an
owner, a user must be invited via Cloud Platform console and must accept the invitation. + A user cannot be
granted the owner role using setIamPolicy()
. The user must be granted the owner role using the Cloud
Platform Console and must explicitly accept the invitation. + You can only grant ownership of a project to a
member by using the Google Cloud console. Inviting a member will deliver an invitation email that they must
accept. An invitation email is not generated if you are granting a role other than owner, or if both the
member you are inviting and the project are part of your organization. + If the project is not part of an
organization, there must be at least one owner who has accepted the Terms of Service (ToS) agreement in the
policy. Calling setIamPolicy()
to remove the last ToS-accepted owner from the policy will fail. This
restriction also applies to legacy projects that no longer have owners who have accepted the ToS. Edits to
IAM policies will be rejected until the lack of a ToS-accepting owner is rectified. If the project is part
of an organization, you can remove all owners, potentially making the organization inaccessible.
Authorization requires the Google IAM permission resourcemanager.projects.setIamPolicy
on the project
Inheritance
Inherited Members
Namespace: Google.Apis.CloudResourceManager.v1
Assembly: Google.Apis.CloudResourceManager.v1.dll
Syntax
public class ProjectsResource.SetIamPolicyRequest : CloudResourceManagerBaseServiceRequest<Policy>, IClientServiceRequest<Policy>, IClientServiceRequest
Constructors
SetIamPolicyRequest(IClientService, SetIamPolicyRequest, string)
Constructs a new SetIamPolicy request.
Declaration
public SetIamPolicyRequest(IClientService service, SetIamPolicyRequest body, string resource)
Parameters
Type | Name | Description |
---|---|---|
IClientService | service | |
SetIamPolicyRequest | body | |
string | resource |
Properties
HttpMethod
Gets the HTTP method.
Declaration
public override string HttpMethod { get; }
Property Value
Type | Description |
---|---|
string |
Overrides
MethodName
Gets the method name.
Declaration
public override string MethodName { get; }
Property Value
Type | Description |
---|---|
string |
Overrides
Resource
REQUIRED: The resource for which the policy is being specified. See Resource names for the appropriate value for this field.
Declaration
[RequestParameter("resource", RequestParameterType.Path)]
public virtual string Resource { get; }
Property Value
Type | Description |
---|---|
string |
RestPath
Gets the REST path.
Declaration
public override string RestPath { get; }
Property Value
Type | Description |
---|---|
string |
Overrides
Methods
GetBody()
Returns the body of the request.
Declaration
protected override object GetBody()
Returns
Type | Description |
---|---|
object |
Overrides
InitParameters()
Initializes SetIamPolicy parameter list.
Declaration
protected override void InitParameters()