
    F                        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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dl
mZ ddlmZ ddlmZ ddlmZ d Zd Z e	j,                  e	j.                  j0                        e	j2                   G d de	j4                                      Ze	j2                   e	j,                  e	j.                  j8                         G d de                    Zy)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                     | j                  dd       t        j                  |        t        j                  |        t        j
                  j                          y)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                 X    t        j                  |       rt        j                  d      y )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!   *   s-    ((-

 
 	*  .r   c                   0    e Zd ZdZdddZed        Zd Zy)Describe 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                     t        |        y N)r   r   s    r   ArgszDescribe.ArgsH   s
    Vr   c                    t        |j                         t        j                  |j                        }t	        j
                  |j                  |       t        j                  |j                        j                  |j                  t        j                  j                        }t        j                   |t"        j$                  |j&                        S )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   RunzDescribe.RunL   s    ,TXX6

-
-dhh
7C))$*;*;SA!))#**5@@**// A O
 66>> r   N)__name__
__module____qualname____doc__detailed_helpstaticmethodr)   r>    r   r   r#   r#   3   s1     )
	
	-   r   r#   c                   &    e Zd ZdZed        Zd Zy)DescribeAlphar$   c                 D    t        |        t        j                  |        y r(   )r   r   add_soft_deleted_flagr   s    r   r)   zDescribeAlpha.Argsa   s    V	'r   c           
         t        |j                         t        j                  |j                  d      }t	        j
                  |j                  |       t        j                  |j                        j                  |j                  |j                  rt        |j                        nd t        j                  j                   t#        |dd            }t%        j&                  |t(        j*                  |j,                        S )NT)is_bucket_gen_parsing_allowedsoft_deletedF)
generationr+   rL   r,   )r!   r   r   r.   r
   r/   r0   r   r1   r2   r3   r4   rM   intr   r5   r6   getattrr   r7   r   r8   r9   r:   s       r   r>   zDescribeAlpha.Runf   s    ,TXX6

-
-C ))$*;*;SA!))#**5@@*-..3s~~&d**//T>59	 A O 66>> r   N)r?   r@   rA   rB   rD   r)   r>   rE   r   r   rG   rG   \   s     )( (r   rG   N)rB   
__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#   ALPHArG   rE   r   r   <module>r[      s    N &  ' 6 4 ( 5 : 4 : @ P L F3 D%%(()$t## $  *$N D%%++,H  - r   