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. 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. + Invitations to grant the owner role cannot be
sent using setIamPolicy()
; they must be sent only using the Cloud Platform Console. + Membership changes
that leave the project without any owners that have accepted the Terms of Service (ToS) will be rejected. +
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. Authorization requires the Google IAM permission resourcemanager.projects.setIamPolicy
on the
project
Inheritance
Inherited Members
Namespace: Google.Apis.CloudResourceManager.v1beta1
Assembly: Google.Apis.CloudResourceManager.v1beta1.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()