
    0
                         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K
Jr  SS	KJr  SS
KJr  SSKJr   " S S\R"                  5      rg)z>Command for listing testable permissions for a given resource.    )absolute_import)division)unicode_literals)
list_pager)
exceptions)util)base)flags)iam_util)	resourcesc                   .    \ rS rSrSr\S 5       rS rSrg)ListTestablePermissions    a  List IAM testable permissions for a resource.

Testable permissions mean the permissions that user can add or remove in
a role at a given resource.
The resource can be referenced either via the full resource name or via a URI.

## EXAMPLES

List testable permissions for a resource identified via full resource name:

  $ {command} //cloudresourcemanager.googleapis.com/organizations/1234567

List testable permissions for a resource identified via URI:

  $ {command} https://www.googleapis.com/compute/v1/projects/example-project
c                     [         R                  " S5      R                  U 5        [        R                  R                  U 5        g )Nz get the testable permissions for)r
   GetResourceNameFlagAddToParserr	   FILTER_FLAG)parsers    ,lib/surface/iam/list_testable_permissions.pyArgsListTestablePermissions.Args2   s1    	*,,7K,?  (    c                    S nUR                   R                  S5      (       a  UR                   nO]UR                   R                  S5      (       a=  [        R                  " [        R
                  R                  UR                   5      5      nU(       d  [        R                  " S5      e[        R                  " 5       u  p4[        R                  " UR                  UR                  US9SSSS9$ )	Nz//httpz<The given resource is not a valid full resource name or URL.)fullResourceNamepermissionsQueryTestablePermissionspageSize)fieldmethodbatch_size_attribute)resource
startswithr   GetFullResourceNamer   REGISTRYParser   InvalidResourceExceptionr   GetClientAndMessagesr   YieldFromListr   QueryTestablePermissionsRequest)selfargsr"   clientmessagess        r   RunListTestablePermissions.Run8   s    H}}%%h		!	!&	)	)--



"
"4==
13h//
HJ J 002F##00(0K)') )r    N)	__name__
__module____qualname____firstlineno____doc__staticmethodr   r/   __static_attributes__r1   r   r   r   r       s     " ) )
)r   r   N)r6   
__future__r   r   r   apitools.base.pyr   googlecloudsdk.api_lib.iamr   r   googlecloudsdk.callioper	   googlecloudsdk.command_lib.iamr
   r   googlecloudsdk.corer   Commandr   r1   r   r   <module>r@      s9     E &  ' ' 1 + ( 0 3 )))dll ))r   