
                             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\R&                  5      rg)z%Cloud Pub/Sub schemas commit command.    )absolute_import)division)unicode_literals)
exceptions)schemas)base)flags)resource_args)util)logc                   6    \ rS rSrSrSS0r\S 5       rS rSr	g)	Commit    z!Commit a Pub/Sub schema revision.EXAMPLESa%            To commit a PROTOCOL_BUFFER schema revision called "key-schema" that requires exactly one-string field named "key", run:
                    
$ {command} key-schema --definition="syntax = 'proto3'; message Message { optional string key = 1; }" --type=protocol-buffer
                    To commit an equivalent AVRO schema revision, run:
                    
$ {command} key-schema --definition="{ 'type': 'record', 'namespace': 'my.ns', 'name': 'KeyMsg', 'fields': [ { 'name': 'key', 'type': 'string' } ] }" --type=avro
                  c                 ^    [         R                  " U S5        [        R                  " U 5        g )Nz
to revise.)r
   AddSchemaResourceArgr	   AddCommitSchemaFlags)parsers    $lib/surface/pubsub/schemas/commit.pyArgsCommit.Args/   s"     &&v|<	v&    c                 $   [         R                  " 5       n[        R                  " UR                  5      nUR
                  (       a  UR
                  nOUR                  n UR                  UUUR                  S9n[        R                  " UR$                  SS9  U$ ! [        R                   a^  n[        R                  " U5      n[        R                  " US[        R                  " UR                   R"                  5      S9   SnAgSnAff = f)a  This is what gets called when the user runs this command.

Args:
  args: an argparse namespace. All the arguments that were provided to this
    command invocation.

Returns:
  A serialized object (dict) describing the results of the operation.
  This description fits the Resource described in the ResourceRegistry under
  'pubsub.projects.schemas'.

Raises:
  util.RequestFailedError: if any of the requests to the API failed.
)
schema_refschema_definitionschema_typezschema revision)kindfailedN)r   )r   SchemasClientr   ParseSchemaNameschemadefinition_file
definitionr   typeapi_ex	HttpErrorr   HttpExceptionr   CreatedResourceCreateFailureErrorMessagepayloadstatus_messagename)selfargsclientr   r#   resulterrorexcs           r   Run
Commit.Run5   s     ""$F%%dkk2J''j??j}}&ii  f *;<M  $$U+c	
 //0J0JK
 s   !B D1AD

D N)
__name__
__module____qualname____firstlineno____doc__detailed_helpstaticmethodr   r3   __static_attributes__r5   r   r   r   r       s/    )  
- ' '
&r   r   N)r:   
__future__r   r   r   apitools.base.pyr   r%   googlecloudsdk.api_lib.pubsubr   googlecloudsdk.api_lib.utilgooglecloudsdk.callioper   !googlecloudsdk.command_lib.pubsubr	   r
   r   googlecloudsdk.corer   Commandr   r5   r   r   <module>rF      s;    , &  ' 1 1 2 ( 3 ; 2 #;T\\ ;r   