
    K                     f    S r SSKJr  SSKJr  SSKJr  SSKJr  SSKJ	r	  SSK
Jr   " S S	\5      rg
)zDesignCenter Spaces API.    )absolute_import)division)unicode_literals)utils)base)iam_utilc                   d    \ rS rSrSr\R                  R                  4S jrS r	S r
S rS rSrg	)
SpacesClient   z'Client for Spaces in design center API.c                     [         R                  " U5      U l        [         R                  " U5      U l        U R                  R
                  U l        g )N)api_lib_utilsGetClientInstanceclientGetMessagesModulemessagesprojects_locations_spaces_spaces_client)selfrelease_tracks     2lib/googlecloudsdk/api_lib/design_center/spaces.py__init__SpacesClient.__init__   s8    11-@DK!33MBDM++??D    c                 j    U R                   R                  US9nU R                  R                  U5      $ )zFetch the IAM Policy attached to the sepcified space.

Args:
  space_id: str, the space id.

Returns:
  The spaces's IAM Policy.
)resource)r   6DesigncenterProjectsLocationsSpacesGetIamPolicyRequestr   GetIamPolicy)r   space_idget_reqs      r   r   SpacesClient.GetIamPolicy"   s=     	LL 	M 	
 
 ++G44r   c                 x    [         R                  " X R                  R                  5      nU R	                  X5      $ )zSets an space's IamPolicy to the one provided.

If 'policy_file' has no etag specified, this will BLINDLY OVERWRITE the IAM
policy!

Args:
    space_id: str, the space id..
    policy_file: a policy file.

Returns:
    The IAM Policy.
)r   ParsePolicyFiler   Policy_SetIamPolicyHelper)r   r   policy_filepolicys       r   SetIamPolicySpacesClient.SetIamPolicy3   s/     %%k==3G3GHF##H55r   c                     U R                   R                  UU R                   R                  US9S9nU R                  R	                  U5      $ )N)r&   )r   setIamPolicyRequest)r   6DesigncenterProjectsLocationsSpacesSetIamPolicyRequestSetIamPolicyRequestr   r'   )r   r   r&   set_reqs       r   r$    SpacesClient._SetIamPolicyHelperC   sV    LL $ A A !B !  	M 	
  ++G44r   c                     U R                   R                  US9nU R                   R                  UUS9nU R                  R	                  U5      $ )zTests the IAM permissions for the specified space.

Args:
  space_id: str, the space id.
  permissions: list of str, the permissions to test.

Returns:
  The TestIamPermissionsResponse.
)permissions)r   testIamPermissionsRequest)r   TestIamPermissionsRequest<DesigncenterProjectsLocationsSpacesTestIamPermissionsRequestr   TestIamPermissions)r   r   r0   test_iam_perm_reqtest_reqs        r   r4   SpacesClient.TestIamPermissionsL   s`     ?? @ ! 	RR&7 	S 	
 
 11(;;r   )r   r   r   N)__name__
__module____qualname____firstlineno____doc__r   ReleaseTrackALPHAr   r   r'   r$   r4   __static_attributes__ r   r   r
   r
      s.    /#'#4#4#:#: @
5"6 5<r   r
   N)r<   
__future__r   r   r   $googlecloudsdk.api_lib.design_centerr   r   googlecloudsdk.callioper   googlecloudsdk.command_lib.iamr   objectr
   r@   r   r   <module>rF      s*     &  ' G ( 3C<6 C<r   