
    	                     V    d Z ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ d Z	d Z
d	 Zy
)zBigtable instance API helper.    )absolute_import)division)unicode_literals)util)iam_utilc                 R   t        j                         }t        j                         }t        j                  |       }|j	                  |j                  j
                  j                        } |j                  j                  |j                  | |j                         d            S )zUpgrade development instance to production.

  Args:
    instance: str instance id to upgrade.

  Returns:
    Operation: the partial update's LRO response.
  )typer	   )instancename
updateMask)r   GetAdminClientGetAdminMessagesGetInstanceRefInstanceTypeValueValuesEnum
PRODUCTIONprojects_instancesPartialUpdateInstance:BigtableadminProjectsInstancesPartialUpdateInstanceRequestRelativeName)r
   clientmsgsinstance_refs       0lib/googlecloudsdk/api_lib/bigtable/instances.pyUpgrader      s      &				 $$$X.,]] A A L L]M(		"	"	8	8
EE((* F 
     c                 &   t        j                         }t        j                         }|j                  | j	                         |j                  |j                  t        j                                    }|j                  j                  |      S )z$Get IAM policy for a given instance.)requestedPolicyVersion)options)resourcegetIamPolicyRequest)r   r   r   1BigtableadminProjectsInstancesGetIamPolicyRequestr   GetIamPolicyRequestGetPolicyOptionsr   !MAX_LIBRARY_IAM_SUPPORTED_VERSIONr   GetIamPolicy)r   r   r   reqs       r   r&   r&   /   s     &				 $>>((*22''x)J)J ( L 3 M 	? 	N#
 
	"	"	/	/	44r   c                    t        j                         }t        j                         }t        j                  |_        |j                  | j                         |j                  |            }|j                  j                  |      S )z?Sets the given policy on the instance, overwriting what exists.)policy)r    setIamPolicyRequest)r   r   r   r   r%   version1BigtableadminProjectsInstancesSetIamPolicyRequestr   SetIamPolicyRequestr   SetIamPolicy)r   r)   r   r   r'   s        r   r.   r.   ;   sw     &				 $==&.>>((*22&2A 	? 	C# 
	"	"	/	/	44r   N)__doc__
__future__r   r   r   googlecloudsdk.api_lib.bigtabler   googlecloudsdk.command_lib.iamr   r   r&   r.    r   r   <module>r4      s(    $ &  ' 0 3,	55r   