
    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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 rS r\	R,                  " \	R.                  R0                  5      \	R2                   " S S\	R4                  5      5       5       r\	R2                  \	R,                  " \	R.                  R8                  5       " S S\5      5       5       rg)zGImplementation of buckets describe command for getting info on buckets.    )absolute_import)division)unicode_literals)api_factory)	cloud_api)base)errors)errors_util)flags)storage_url)wildcard_iterator)full_resource_formatter)gsutil_json_printer)resource_utilc                     U R                  SSS9  [        R                  " U 5        [        R                  " U 5        [        R
                  R                  5         g)z$Adds common arguments to the parser.urlz$Specifies URL of bucket to describe.)helpN)add_argumentr   add_additional_headers_flagadd_raw_display_flagr   GsutilJsonPrinterRegisterparsers    'lib/surface/storage/buckets/describe.py_add_common_argsr   "   sD    e"HI##F+V$''002    c                 f    [         R                  " U 5      (       a  [        R                  " S5      eg )NzDescribe does not accept wildcards because it returns a single resource. Please use the `ls` or `buckets list` command for retrieving multiple resources.)r   contains_wildcardr	   InvalidUrlError)r   s    r   (_validate_url_does_not_contain_wildcardsr!   *   s0    ((--

 
 	*  .r   c                   8    \ rS rSrSrSSS.r\S 5       rS rSr	g	)
Describe3    Describes Cloud Storage buckets.z.
      Describe a Cloud Storage bucket.
      z

      Describe a Google Cloud Storage bucket named "my-bucket":

        $ {command} gs://my-bucket

      Describe bucket with JSON formatting, only returning the "name" key:

        $ {command} gs://my-bucket --format="json(name)"
      )DESCRIPTIONEXAMPLESc                     [        U 5        g N)r   r   s    r   ArgsDescribe.ArgsH   s
    Vr   c                    [        UR                  5        [        R                  " UR                  5      n[        R
                  " UR                  U5        [        R                  " UR                  5      R                  UR                  [        R                  R                  S9n[        R                   " U["        R$                  UR&                  S9$ )N)fields_scopedisplay_raw_keys)r!   r   r   storage_url_from_stringr
   raise_error_if_not_bucketcommand_pathr   get_apischeme
get_bucketbucket_namer   FieldsScopeFULLr   get_display_dict_for_resourcer   BucketDisplayTitlesAndDefaultsrawselfargsr   bucket_resources       r   RunDescribe.RunL   s    ,TXX6

-
-dhh
7C))$*;*;SA!))#**5@@**// A O
 66>> r    N)
__name__
__module____qualname____firstlineno____doc__detailed_helpstaticmethodr*   r@   __static_attributes__rB   r   r   r#   r#   3   s1     )
	
	-   r   r#   c                   .    \ rS rSrSr\S 5       rS rSrg)DescribeAlpha\   r%   c                 F    [        U 5        [        R                  " U 5        g r)   )r   r   add_soft_deleted_flagr   s    r   r*   DescribeAlpha.Argsa   s    V	'r   c           
         [        UR                  5        [        R                  " UR                  SS9n[        R
                  " UR                  U5        [        R                  " UR                  5      R                  UR                  UR                  (       a  [        UR                  5      OS [        R                  R                   [#        USS5      S9n[$        R&                  " U[(        R*                  UR,                  S9$ )NT)is_bucket_gen_parsing_allowedsoft_deletedF)
generationr-   rS   r.   )r!   r   r   r0   r
   r1   r2   r   r3   r4   r5   r6   rT   intr   r7   r8   getattrr   r9   r   r:   r;   r<   s       r   r@   DescribeAlpha.Runf   s    ,TXX6

-
-C ))$*;*;SA!))#**5@@*-..3s~~&d**//T>59	 A O 66>> r   rB   N)	rC   rD   rE   rF   rG   rI   r*   r@   rJ   rB   r   r   rL   rL   \   s     )( (r   rL   N)rG   
__future__r   r   r   googlecloudsdk.api_lib.storager   r   googlecloudsdk.callioper   "googlecloudsdk.command_lib.storager	   r
   r   r   r   ,googlecloudsdk.command_lib.storage.resourcesr   r   r   r   r!   ReleaseTracksReleaseTrackGAUniverseCompatibleDescribeCommandr#   ALPHArL   rB   r   r   <module>rc      s    N &  ' 6 4 ( 5 : 4 : @ P L F3 D%%(()$t## $  *$N D%%++,H  - r   