
    +#                     &   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  \R&                  " \R(                  R*                  5      \R,                   " S S\R.                  5      5       5       r\R&                  " \R(                  R2                  5      \R,                   " S S\5      5       5       r\R&                  " \R(                  R6                  5      \R,                   " S S\5      5       5       rg)z%Command for creating backend buckets.    )base_classes)base)cdn_flags_utils)
exceptions)flags)resource_manager_tags_utils)scope)signed_url_flags)backend_buckets_utilsc                   T    \ rS rSrSrSrSr\S 5       rS r	S r
S rS	 rS
 rS rSrg)Create   zCreate a backend bucket.

*{command}* is used to create backend buckets. Backend buckets
define Google Cloud Storage buckets that can serve content. URL
maps define which requests are sent to which backend buckets.
NFc                 F   UR                   R                  [        R                  5        [        R                  " XSU R
                  5        [        R                  R                  U5        UR                   R                  [        R                  5        [        R                  " USS9  [        R                  " US5        [        R                  " U5        [        R                  " U5        [        R                   " XR
                  5        [        R"                  " U5        g)z"Set up arguments for this command.createF)requiredzbackend bucketN)display_info	AddFormatbackend_buckets_flagsDEFAULT_LIST_FORMATAddUpdatableArgs(_support_regional_statera_load_balancersREQUIRED_GCS_BUCKET_ARGAddArgumentAddCacheUpdaterBackendBucketsCompleterr
   AddSignedUrlCacheMaxAge	cdn_flagsAddCdnPolicyArgsAddCacheKeyExtendedCachingArgsAddCompressionModeAddLoadBalancingSchemeAddResourceManagerTags)clsparsers     -lib/surface/compute/backend_buckets/create.pyArgsCreate.Args*   s     !!"7"K"KL**XsKK 11==fE
''557,,VeDv'7888@,,V400<< 008    c                 n   [         R                  " U R                  5       5      nUR                  nU R                  R                  XR                  [        R                  R                  S9nUR                  =(       d    SnUR                  R                  UR                  UR                  5       UR                  US9n[         R"                  " X1U5        UR$                  b  UR$                  Ul        UR(                  b1  UR(                  R*                  (       a  UR                  SLa  SUl        UR.                  b4  UR                  R                  R1                  UR.                  5      Ul        UR4                  b4  UR                  R                  R7                  UR4                  5      Ul        U$ )z'Creates and returns the backend bucket.)default_scopeF)descriptionname
bucketName	enableCdnT)r   ComputeApiHolderReleaseTrackclientBACKEND_BUCKET_ARGResolveAsResource	resourcescompute_scope	ScopeEnumGLOBAL
enable_cdnmessagesBackendBucketr+   Namegcs_bucket_namer   ApplyCdnPolicyArgscustom_response_headercustomResponseHeaders	cdnPolicy	cacheModer.   compression_modeCompressionModeValueValuesEnumcompressionModeload_balancing_scheme"LoadBalancingSchemeValueValuesEnumloadBalancingScheme)selfargsholderr1   backend_buckets_refr8   backend_buckets          r%   CreateBackendBucketCreate.CreateBackendBucket?   sr   **4+<+<+>?F]]F11CCm.E.E.L.L D N )EJ__22$$ %%'''	 3 N ,,V>J"".-1-H-Hn*  ,$$..OO5(!%n(
//
'
'
F
F## $ !!-
//
'
'
J
J(( ( r(   c                 *   [         R                  " U R                  5       5      nUR                  nU R	                  U5      nU R
                  (       a  [        R                  R                  UUR                  [        R                  " U5      [        R                  R                  S9nUR                  5       S:X  a  U R!                  XE5      nO&UR                  5       S:X  a  U R#                  XU5      nU R%                  XXS5        UR'                  W5      $ UR(                  b+  U R+                  UR,                  UR(                  5      Ul        U R0                  R                  XR                  5      nUR'                  U R!                  XG5      5      $ )z;Issues the request necessary for creating a backend bucket.)scope_listerr*   compute.backendBucketscompute.regionBackendBuckets)r   r/   r0   r1   rM   r   r   "GLOBAL_REGIONAL_BACKEND_BUCKET_ARGr3   r4   compute_flagsGetDefaultScopeListerr5   r6   r7   
Collection_CreateGlobalRequests_CreateRegionalRequests_ApplyResourceManagerTagsMakeRequestsresource_manager_tags_CreateBackendBucketParamsr9   paramsr2   )rH   rI   rJ   r1   rL   refrequestsrK   s           r%   Run
Create.Runk   sX   **4+<+<+>?F]]F--d3N44!DDVV



$::6B%//66	 W c 
	5	5--nB>>==//cJ
$$T3G  **!!-"==
//455n 11CC "">G r(   c                     UR                   c  g UR                  5       S:X  a,  U R                  UR                  UR                   5      Ul        g UR                  5       S:X  a  [
        R                  " SS5      eg )NrQ   rR   z--resource-manager-tagszEResource Manager tags are not supported for regional backend buckets.)r[   rV   r\   r9   r]   compute_exceptionsArgumentError)rH   rI   rL   r^   r1   s        r%   rY    Create._ApplyResourceManagerTags   su    !!)
~~33"==
//455n 
	;	;,,
#  
<r(   c           	          [         R                  " U5      nUR                  n[        UR	                  5       5       VVs/ s H  u  pVUR
                  R                  XVS9PM      nnnU" UR                  US9S9$ s  snnf )N)keyvalue)additionalProperties)resourceManagerTags)r   GetResourceManagerTagsBackendBucketParamssorteditemsResourceManagerTagsValueAdditionalProperty)rH   r9   r[   resource_manager_tags_mapr]   rg   rh   additional_propertiess           r%   r\   !Create._CreateBackendBucketParams   s    #::!	
 
 ))F !!:!@!@!BCCJC 	''::s:PC   ";;!6 < 
 	s   %A:c                     [         R                  " U R                  5       5      nUR                  nUR                  R                  XR                  S9nUR                  R                  SU4/$ )N)backendBucketprojectInsert)	r   r/   r0   r1   r9   "ComputeBackendBucketsInsertRequestrv   apitools_clientbackendBuckets)rH   rL   rK   rJ   r1   requests         r%   rW   Create._CreateGlobalRequests   se    **4+<+<+>?F]]Foo@@$.I.I A G ##22HgFGGr(   c                     [         R                  " U R                  5       5      nUR                  nUR                  R                  UUR                  UR                  S9nUR                  R                  SU4/$ )N)ru   rv   regionrw   )
r   r/   r0   r1   r9   (ComputeRegionBackendBucketsInsertRequestrv   r~   ry   regionBackendBuckets)rH   rI   rL   rK   rJ   r1   r{   s          r%   rX   Create._CreateRegionalRequests   so    **4+<+<+>?F]]FooFF$#++{{ G G
 ##88(GLMMr(    )__name__
__module____qualname____firstlineno____doc__r2   r   classmethodr&   rM   r`   rY   r\   rW   rX   __static_attributes__r   r(   r%   r   r      sI     -2*9 9(*X D"HNr(   r   c                       \ rS rSrSrSrSrg)
CreateBeta   aT  Create a backend bucket.

*{command}* is used to create backend buckets. Backend buckets
define Google Cloud Storage buckets that can serve content. URL
maps define which requests are sent to which backend buckets.

To create a global backend bucket, run either of the following:

    $ {command} my-backend-bucket
      --gcs-bucket-name gcs-bucket-1
      --global

    $ {command} my-backend-bucket
      --gcs-bucket-name gcs-bucket-1

To create a regional backend bucket, run the following:

    $ {command} my-backend-bucket
      --gcs-bucket-name gcs-bucket-1
      --region=us-central1

Tr   Nr   r   r   r   r   r   r   r   r(   r%   r   r      s    . .2*r(   r   c                       \ rS rSrSrSrSrg)CreateAlpha   aS  Create a backend bucket.

*{command}* is used to create backend buckets. Backend buckets
define Google Cloud Storage buckets that can serve content. URL
maps define which requests are sent to which backend buckets.

To create a global backend bucket, run either of the following:

    $ {command} my-backend-bucket
      --gcs-bucket-name gcs-bucket-1
      --global

    $ {command} my-backend-bucket
      --gcs-bucket-name gcs-bucket-1

To create a regional backend bucket, run the following:

    $ {command} my-backend-bucket
      --gcs-bucket-name gcs-bucket-1
      --region=us-central1
Tr   Nr   r   r(   r%   r   r      s    * .2*r(   r   N)r   googlecloudsdk.api_lib.computer   googlecloudsdk.callioper   "googlecloudsdk.command_lib.computer   r   r   rc   r   rT   r   r	   r5   r
   2googlecloudsdk.command_lib.compute.backend_bucketsr   r   ReleaseTracksr0   GADefaultUniverseOnlyCreateCommandr   BETAr   ALPHAr   r   r(   r%   <module>r      s    , 7 ( K O E J E ? T ] D%%(()]NT ]N  *]N@ D%%**+2 2  ,26 D%%++,2* 2  -2r(   