
    ;1                     Z   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SKJr  SSSSS.rSrS rS rSSS.S jrS r\R>                  \R@                  " \RB                  RD                  5       " S S\RF                  5      5       5       r$\R@                  " \RB                  RJ                  5       " S S\$5      5       r&\R@                  " \RB                  RN                  5       " S S\&5      5       r(g )!z$Cloud Pub/Sub topics create command.    )absolute_import)division)unicode_literals)
exceptions)topics)base)resource_args)flags)util)labels_util)log)
propertiesz--topic-encryption-keyz--topic-encryption-key-keyringz--topic-encryption-key-locationz--topic-encryption-key-project)zkms-keyzkms-keyringzkms-locationzkms-projectad  
The specified Cloud KMS key should have purpose set to "ENCRYPT_DECRYPT".
The service account,
"service-${CONSUMER_PROJECT_NUMBER}@gcp-sa-pubsub.iam.gserviceaccount.com"
requires the IAM cryptoKeyEncrypterDecrypter role for the given Cloud KMS key.
CONSUMER_PROJECT_NUMBER is the project number of the project that is the parent of the
topic being createdc                  >    [         R                  " S[        [        S9$ )Ntopic)flag_overridespermission_info)kms_resource_argsGetKmsKeyPresentationSpec_KMS_FLAG_OVERRIDES_KMS_PERMISSION_INFO     #lib/surface/pubsub/topics/create.py_GetKmsKeyPresentationSpecr   2   s    		4	4(*
 r   c                  .    [         R                  " SSSS9$ )Nz
to create.T)
positionalplural)r	   CreateTopicResourceArgr   r   r   _GetTopicPresentationSpecr   :   s    		-	-tD
 r   Flegacy_outputenable_vertex_ai_smtc         	   #   <
  #    [         R                  " 5       n[        R                  " XR                  R
                  R                  5      nSnU R                  R                  R                  5       nU(       a  UR                  5       nOES H?  nU R                  UR                  SS5      5      (       d  M+  [        R                  " S5      e   [        U SS5      nU R                  S5      (       a  [         R"                  " U5      nU R$                  n	[        U SS5      n
[        U SS5      nSnSnU(       aL  U R                  R&                  R                  5       R                  5       n[        U S	S5      n[        U S
S5      n[        U SS5      nSnU(       a  US   n[        U SS5      n[        U SS5      n[        U SS5      n[        U SS5      n[        U SS5      n[        U SS5      nSnU(       a  US   n[        U SS5      nU(       a   UR)                  S5      R+                  S5      n[        U SS5      n[        U SS5      n[        U SS5      n[        U SS5      n[        U SS5      n[        U SS5      n[        U SS5      n[        U SS5      n[        U SS5      n [        U SS5      n![        U S S5      n"[        U S!S5      n#[        U S"S5      n$[        U S#S5      n%[        U S$S5      n&[        U S%S5      n'[        U S&S5      n([        U S'S5      n)[        U S(S5      n*[        U S)S5      n+[,        R.                  " XR                  R
                  R0                  5      n,/ n-U R                  R2                  R                  5        H  n. UR4                  " U.40 S*U_S+U_SU_S,U	_SU
_SU_SU_S	U_S
U_SU_SU_SU_SU_SU_SU_SU_SU_SU_SU_SU_SU_SU_SU_SU_SU _SU!_S U"_S!U#_S"U$_S#U%_S$U&_S%U'_S&U(_S'U)_S(U*_S)U+_S-U,_S.U_6n/U(       a  [         RL                  " U/5      n/[>        R@                  " U.R                  5       S/S19  U/v   M     U-(       a  [         RN                  " U-S25      eg! [6        R8                   a  n0[:        R<                  " U05      n1[>        R@                  " U.R                  5       S/[         RB                  " U1RD                  RF                  5      S09  U-RI                  U.RJ                  5         Sn0A0GM  Sn0A0ff = f7f)3zCreates one or more topics.N)ztopic-encryption-keyztopic-encryption-key-projectztopic-encryption-key-locationztopic-encryption-key-keyring-_z/--topic-encryption-key was not fully specified.message_retention_duration)message_storage_policy_enforce_in_transitschemafirst_revision_idlast_revision_idmessage_encodingr   kinesis_ingestion_stream_arnkinesis_ingestion_consumer_arnkinesis_ingestion_role_arn!kinesis_ingestion_service_accountcloud_storage_ingestion_bucket$cloud_storage_ingestion_input_format&cloud_storage_ingestion_text_delimiterzutf-8zunicode-escape2cloud_storage_ingestion_minimum_object_create_time"cloud_storage_ingestion_match_glob)azure_event_hubs_ingestion_resource_group$azure_event_hubs_ingestion_namespace$azure_event_hubs_ingestion_event_hub$azure_event_hubs_ingestion_client_id$azure_event_hubs_ingestion_tenant_id*azure_event_hubs_ingestion_subscription_id*azure_event_hubs_ingestion_service_accountaws_msk_ingestion_cluster_arnaws_msk_ingestion_topicaws_msk_ingestion_aws_role_arn!aws_msk_ingestion_service_account*confluent_cloud_ingestion_bootstrap_server$confluent_cloud_ingestion_cluster_idconfluent_cloud_ingestion_topic*confluent_cloud_ingestion_identity_pool_id)confluent_cloud_ingestion_service_accountingestion_log_severitymessage_transforms_filelabelskms_key&message_storage_policy_allowed_regionstagsr"   r   )kindfailed)rK   create)(r   TopicsClientr   ParseCreateArgsmessagesTopicLabelsValueCONCEPTSrH   ParseRelativeNameIsSpecifiedreplacecore_exceptionsErrorgetattrr   FormatDurationrI   r(   encodedecoder
   GetTagsMessage	TagsValuer   Createapi_ex	HttpErrorr   HttpExceptionr   CreatedResourceCreateFailureErrorMessagepayloadstatus_messageappendtopicsIdTopicDisplayDictRequestsFailedError)2argsr!   r"   clientrG   rH   kms_refkeywordretention_durationrI   r'   r(   r)   r*   message_encoding_listr+   r,   r-   r.   r/   r0   )cloud_storage_ingestion_input_format_listr1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rJ   rL   	topic_refresulterrorexcs2                                                     r   _Runrw   @   s     &&&t__-B-B-N-NO&'MM!!'')'""$G 
		'//#s3	4	4##=
 	
 t%A4H	233,,-?@ 11 ) /6
7/+ 44(&]]!!'')668F&94@t%7>!$(:DA,Q/!(
*D" $+
,d$   't-I4P&-
/'# $+
,d$  /6
2D/+ *.&.1!4 ) ,3
4d,( , 	/55g>EE	
 +
 8?
@$84 (/
0$($ /6
7/+ *1
2D*& *1
2D*& *1
2D*& *1
2D*& 07
8$0, 07
8$0, #*
+T# $D*CTJ#*
,d$  '.
/'# 07
8$0, *1
2D*& %,
-t%! 07
8$0, /6
7/+ #4)A4H#D*CTJ			dOO$9$9$C$C	D$&==&&,,.i2}}
(( ( &8	(
 2X( 5^( ( ,( .( ,( (D( *H( &@( -N( *H(  0T!(" 2X#($ >p%(& .P'(( 5^)(* 0T+(, 0T-(. 0T/(0 0T1(2 6`3(4 6`5(6 )F7(8 #:9(: *H;(< -N=(> 6`?(@ 0TA(B +JC(D 6`E(F 5^G(H "8I(J #:K(L M(N  4O(ff $$V,f	..0w?
Lq /t 

"
"68
44   $$U+c	

 
 
"//0J0JK
 mmI&&'s:   B1T7KTBQ<A'T<TA=TTTTc                    [         R                  " U [        5       [        5       /5        [        R
                  " U SS9  [        R                  " U SS9  [        R                  " U 5        [        R                  " U SS9  [        R                  " U SS9  [        R                  " U 5        [        R                  " U 5        g)zACustom args implementation.

Args:
  parser: The current parser.
F)	is_updateN)r	   AddResourceArgsr   r   r
   AddSchemaSettingsFlagsAddIngestionDatasourceFlagsr   AddCreateLabelsFlagsAddTopicMessageRetentionFlags!AddTopicMessageStoragePolicyFlagsAddMessageTransformsFlagsAddTagsFlagparsers    r   _Argsr   	  s     )+-F-HI v7##
 ""6*%%f>))&EB!!&)Fr   c                   6    \ rS rSrSrSS0r\S 5       rS rSr	g)	r`   i$  )Creates one or more Cloud Pub/Sub topics.EXAMPLESzR          To create a Cloud Pub/Sub topic, run:

              $ {command} mytopicc                     [        U 5        g Nr   r   s    r   ArgsCreate.Args.      	r   c                     [        U5      $ r   )rw   )selfrl   s     r   Run
Create.Run4  s    :r   r   N)
__name__
__module____qualname____firstlineno____doc__detailed_helpstaticmethodr   r   __static_attributes__r   r   r   r`   r`   $  s/     2  % &-
  
r   r`   c                   .    \ rS rSrSr\S 5       rS rSrg)
CreateBetai8  r   c                     [        U 5        g r   r   r   s    r   r   CreateBeta.Args<  r   r   c                 z    [         R                  R                  R                  R	                  5       n[        XSS9$ )NFr    r   VALUESpubsubr!   GetBoolrw   r   rl   r!   s      r   r   CreateBeta.RunB  s/    %%,,::BBDMNNr   r   N)	r   r   r   r   r   r   r   r   r   r   r   r   r   r   8  s    1 
Or   r   c                   <   ^  \ rS rSrSr\U 4S j5       rS rSrU =r	$ )CreateAlphaiG  r   c                 4   > [         [        [        ]  U 5        g r   )superr   r   )r   	__class__s    r   r   CreateAlpha.ArgsK  s    	+{(0r   c                 z    [         R                  R                  R                  R	                  5       n[        XSS9$ )NTr    r   r   s      r   r   CreateAlpha.RunO  s/    %%,,::BBDMMMr   r   )
r   r   r   r   r   r   r   r   r   __classcell__)r   s   @r   r   r   G  s$    11 1N Nr   r   N))r   
__future__r   r   r   apitools.base.pyr   ra   googlecloudsdk.api_lib.pubsubr   googlecloudsdk.api_lib.utilgooglecloudsdk.callioper   googlecloudsdk.command_lib.kmsr	   r   !googlecloudsdk.command_lib.pubsubr
   r   $googlecloudsdk.command_lib.util.argsr   googlecloudsdk.corerX   r   r   r   r   r   r   rw   r   UniverseCompatibleReleaseTracksReleaseTrackGACreateCommandr`   BETAr   ALPHAr   r   r   r   <module>r      s"   + &  ' 1 0 2 ( M 3 ; 2 < = # * (353	   $)u F5R6 D%%(()T  * $ D%%**+O O ,O D%%++,	N* 	N -	Nr   