Class ProjectsResource.SetIamPolicyRequest
Sets the IAM access control policy for the specified project, in the format projects/{ProjectIdOrNumber}
e.g. projects/123. 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. 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 using
the 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. + Invitations to grant the owner role cannot be sent using
setIamPolicy()
; they must be sent only using the Cloud Platform Console. + 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.
Inheritance
Inherited Members
Namespace: Google.Apis.CloudResourceManager.v3
Assembly: Google.Apis.CloudResourceManager.v3.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()