
    "                         S r SSKJr  SSKJr  SSKJr  SSK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Qr\R$                  " SS9rSrSr        SS jrS r          SS jrS rS rg)z&Spanner instance partition API helper.    )absolute_import)division)unicode_literalsN)
list_pager)timestamp_pb2)response_util)apis)
properties)	resources)zroles/spanner.adminzroles/spanner.databaseAdminzroles/spanner.databaseReaderzroles/spanner.databaseUserzroles/spanner.viewer   )secondsspannerv1c           	         [         R                  " [        [        5      n[         R                  " [        [        5      n[
        R                  R                  US[        R                  R                  R                  R                  0SS9nUR                  UR                  5       US9nU(       a  UUl        OlU(       a  UUl        O]U(       d"  U(       d  U(       d  U	(       d  U
c
  Uc  U(       a4  UR#                  UR%                  UUUU	S9UR'                  U
UUS9S9Ul        UR+                  U R                  5       UR-                  UUS9S	9nUR.                  R1                  U5      $ )
z Create a new instance partition.
projectsIdz spanner.projects.instanceConfigs)params
collection)configdisplayNameminNodesmaxNodesminProcessingUnitsmaxProcessingUnits!highPriorityCpuUtilizationPercenttotalCpuUtilizationPercentstorageUtilizationPercentautoscalingLimitsautoscalingTargets)instancePartitionIdinstancePartition)parentcreateInstancePartitionRequest)r	   GetClientInstance	_API_NAME_API_VERSIONGetMessagesModuler   REGISTRYParser
   VALUEScoreproject	GetOrFailInstancePartitionRelativeName	nodeCountprocessingUnitsAutoscalingConfigAutoscalingLimitsAutoscalingTargetsautoscalingConfig7SpannerProjectsInstancesInstancePartitionsCreateRequestCreateInstancePartitionRequest%projects_instances_instancePartitionsCreate)instance_refinstance_partitionr   descriptionnodesprocessing_unitsautoscaling_min_nodesautoscaling_max_nodes autoscaling_min_processing_units autoscaling_max_processing_units$autoscaling_high_priority_cpu_targetautoscaling_total_cpu_targetautoscaling_storage_targetclientmsgs
config_refinstance_partition_objreqs                     9lib/googlecloudsdk/api_lib/spanner/instance_partitions.pyr;   r;   /   sr     !!)\:&				<	8$!!''J--22::DDE3 ( *
  11$$&K 2  ',$-=*		)	)	-	9	%	1	#/3/E/E00**??	 1 
  22.R'C&@ 3 
 0F 0, 	DD&&(%)%H%H02 &I & 	E 	# 
	5	5	<	<S	AA    c                     [         R                  " [        [        5      n[         R                  " [        [        5      nUR                  U R                  5       S9nUR                  R                  U5      $ )z"Get an instance partition by name.name)	r	   r&   r'   r(   r)   4SpannerProjectsInstancesInstancePartitionsGetRequestr1   r:   Getinstance_partition_refrH   rI   rL   s       rM   rS   rS   n   sa    !!)\:&				<	8$AA!..0 	B 	# 
	5	5	9	9#	>>rN   c           	      l   / nUb  UR                  S5        Ub  UR                  S5        Ub  UR                  S5        U(       a  U(       d  U(       a&  U(       a  Uc  U	b  U
(       a  UR                  S5        OU(       a  UR                  S5        U(       a  UR                  S5        U(       a  UR                  S5        U(       a  UR                  S5        Ub  UR                  S	5        U	b  UR                  S
5        U
(       a  UR                  S5        [        R                  " [        [        5      n[        R
                  " [        [        5      nUR                  US9nU(       a  X>l        OkU(       a  X.l        O]U(       d"  U(       d  U(       d  U(       d  Uc
  U	c  U
(       a4  UR                  UR                  UUUUS9UR                  UU	U
S9S9Ul        UR                  U R                  5       UR                  SR!                  U5      US9S9nUR"                  R%                  U5      $ )zUpdate an instance partition.r   r2   r3   r7   z,autoscalingConfig.autoscalingLimits.minNodesz,autoscalingConfig.autoscalingLimits.maxNodesz6autoscalingConfig.autoscalingLimits.minProcessingUnitsz6autoscalingConfig.autoscalingLimits.maxProcessingUnitszFautoscalingConfig.autoscalingTargets.highPriorityCpuUtilizationPercentz?autoscalingConfig.autoscalingTargets.totalCpuUtilizationPercentz>autoscalingConfig.autoscalingTargets.storageUtilizationPercent)r   r   r   r   ,)	fieldMaskr#   )rQ   updateInstancePartitionRequest)appendr	   r&   r'   r(   r)   r0   r3   r2   r4   r5   r6   r7   6SpannerProjectsInstancesInstancePartitionsPatchRequestr1   UpdateInstancePartitionRequestjoinr:   Patch)rU   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   fieldsrH   rI   rK   rL   s                   rM   r^   r^   x   s    &
MM- 

MM+!
MM#$ !6
*/O+7#/
$
MM%&mmBCmmBC'mmLM'mmLM+7mm
R $/mm
K "mm
J !!)\:&				<	8$11k1J-=*',$		)	)	-	9	%	1	#/3/E/E00**??	 1 
  22.R'C&@ 3 
 0F 0, 	CC!..0%)%H%HHHV$8N &I & 	D 	# 
	5	5	;	;C	@@rN   c                    [         R                  " [        [        5      n[         R                  " [        [        5      n[
        R                  " 5       nUR                  [        R                  R                  [        R                  R                  S9[        -   5        UR                  U R                  5       UR                  5       S9n[         R"                  " UR$                  USS[&        R(                  S9$ )z(List instance partitions in the project.)tz)r$   instancePartitionDeadlineinstancePartitionspageSize)fieldbatch_size_attributeget_field_func)r	   r&   r'   r(   r)   r   	TimestampFromDatetimedatetimenowtimezoneutc&UNREACHABLE_INSTANCE_PARTITION_TIMEOUT5SpannerProjectsInstancesInstancePartitionsListRequestr1   ToJsonStringr   YieldFromListr:   r   +GetFieldAndLogUnreachableInstancePartitions)r<   rH   rI   tp_protorL   s        rM   Listrt      s    !!)\:&				<	8$$$&(
x00445./ 	BB&&( ( 5 5 7 	C 	# 
	!	!22	 %"NN
 rN   c                     [         R                  " [        [        5      n[         R                  " [        [        5      nUR                  U R                  5       S9nUR                  R                  U5      $ )zDelete an instance partition.rP   )	r	   r&   r'   r(   r)   7SpannerProjectsInstancesInstancePartitionsDeleteRequestr1   r:   DeleterT   s       rM   rw   rw      sa    !!)\:&				<	8$DD!..0 	E 	# 
	5	5	<	<S	AArN   )NNNNNNNN)
NNNNNNNNNN)__doc__
__future__r   r   r   rj   apitools.base.pyr   cloudsdk.google.protobufr   googlecloudsdk.api_lib.spannerr   googlecloudsdk.api_lib.utilr	   googlecloudsdk.corer
   r   KNOWN_ROLES	timedeltarn   r'   r(   r;   rS   r^   rt   rw    rN   rM   <module>r      s    - &  '  ' 2 8 , * ) *2););B)G &	 %)%))-!%#<B~? 
%)%))-!%#ZAz,BrN   