
                            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dZ ej                   ej"                  j$                        ej&                   G d dej(                                      Zy)z!Command to create a Kafka source.    )absolute_import)division)unicode_literals)kafka_sources)base)flags)labels_util)logz{description}a           To create a new Kafka source `my-kafka-source` in location `us-central1` with the required fields: bootstrap server URI 'https://example-cluster.com:9092', Kafka topics `topic1` and `topic2`, network attachment 'my-network-attachment', and message bus `my-message-bus`, run:

          $ {command} my-kafka-source --location=us-central1 --bootstrap-servers='https://example-cluster.com:9092' --topics='topic1,topic2' --network_attachment=my-network-attachment --message-bus=my-message-bus

        To create a new Kafka source `my-kafka-source` in location `us-central1` with an initial offset of `newest`, run:

          $ {command} my-kafka-source --location=us-central1 --bootstrap-servers='https://example-cluster.com:9092' --topics='topic1,topic2' --network_attachment=my-network-attachment --message-bus=my-message-bus --initial-offset=newest

        To create a new Kafka source `my-kafka-source` in location `us-central1` with consumer group ID `my-kafka-source-group`, run:

          $ {command} my-kafka-source --location=us-central1 --bootstrap-servers='https://example-cluster.com:9092' --topics='topic1,topic2' --network_attachment=my-network-attachment --message-bus=my-message-bus --consumer-group-id=my-kafka-source-group

        To create a new Kafka source `my-kafka-source` in location `us-central1` SASL/Plain authentication with the Kafka broker, run:

          $ {command} my-kafka-source --location=us-central1 --bootstrap-servers='https://example-cluster.com:9092' --topics='topic1,topic2' --network_attachment=my-network-attachment --message-bus=my-message-bus --sasl-mechanism=PLAIN --sasl-username=kafka-username --sasl-password=projects/12345/secrets/my-sasl-secret/versions/1

        To create a new Kafka source `my-kafka-source` in location `us-central1` SASL/SCRAM-SHA-256 authentication with the Kafka broker, run:

          $ {command} my-kafka-source --location=us-central1 --bootstrap-servers='https://example-cluster.com:9092' --topics='topic1,topic2' --network_attachment=my-network-attachment --message-bus=my-message-bus --sasl-mechanism=SCRAM-SHA-256 --sasl-username=kafka-username --sasl-password=projects/12345/secrets/my-sasl-secret/versions/1

        To create a new Kafka source `my-kafka-source` in location `us-central1` SASL/SCRAM-SHA-512 authentication with the Kafka broker, run:

          $ {command} my-kafka-source --location=us-central1 --bootstrap-servers='https://example-cluster.com:9092' --topics='topic1,topic2' --network_attachment=my-network-attachment --message-bus=my-message-bus --sasl-mechanism=SCRAM-SHA-512 --sasl-username=kafka-username --sasl-password=projects/12345/secrets/my-sasl-secret/versions/1

        To create a new Kafka source `my-kafka-source` in location `us-central1` Mutual TLS (mTLS) authentication with the Kafka broker, run:

          $ {command} my-kafka-source --location=us-central1 --bootstrap-servers='https://example-cluster.com:9092' --topics='topic1,topic2' --network_attachment=my-network-attachment --message-bus=my-message-bus --tls-client-certificate=projects/12345/secrets/my-tls-cert/versions/1 --tls-client-key=projects/12345/secrets/my-tls-key/versions/1

        To create a new Kafka source `my-kafka-source` in location `us-central1` with an INFO level logging configuration, run:

          $ {command} my-kafka-source --location=us-central1 --bootstrap-servers='https://example-cluster.com:9092' --topics='topic1,topic2' --network_attachment=my-network-attachment --message-bus=my-message-bus --logging_config=INFO
        )DESCRIPTIONEXAMPLESc                   *    e Zd ZdZeZed        Zd Zy)Createz Create an Eventarc Kafka source.c                    t        j                  |       t        j                  |d       t        j                  |d       t        j                  |d       t        j
                  |d       t        j                  |d       t        j                  |d       t        j                  |d       t        j                  |       t        j                  j                  |       y )NT)requiredFz'The logging config of the kafka source.)r    AddCreateKafkaSourceResourceArgs!AddKafkaSourceBootstrapServersArgAddKafkaSourceTopicArg AddKafkaSourceConsumerGroupIDArgAddKafkaSourceInitialOffsetArg"AddKafkaSourceNetworkAttachmentArgAddKafkaSourceAuthGroupAddLoggingConfigArgr	   AddCreateLabelsFlagsr   
ASYNC_FLAGAddToParser)clsparsers     ,lib/surface/eventarc/kafka_sources/create.pyArgszCreate.ArgsH   s    	**62	++FTB	  $7	**6EB	((%@	,,VdC	!!&48	f&OP$$V,OO'    c                    t        j                         }|j                  j                  j	                         }t        j                  dj                  |j                  |j                  |j                               |j                  ||j                  ||j                  |j                  |j                  |j                   |j"                  |j$                  |j&                  |j(                  |j*                  |j,                  |j.                  |j0                  t3        j4                  ||j7                                           }|j8                  r|S |j;                  |d|      S )zRun the create command.z6Creating kafka source {} for project {} in location {})kafka_source_refbootstrap_serversconsumer_group_idtopicssasl_mechanismsasl_usernamesasl_passwordtls_client_certificatetls_client_keynetwork_attachmentmessage_businitial_offsetlogging_configlabelsCreating)r   KafkaSourceClientV1CONCEPTSkafka_sourceParser
   debugformatkafkaSourcesId
projectsIdlocationsIdr   BuildKafkaSourcer#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r	   ParseCreateArgsLabelsValueClassasync_WaitFor)selfargsclientr"   	operations        r   Runz
Create.RunU   s-   ..0F}}11779II@GG++''((	
 -"44"44;;..,,,,#'#>#>..#66((......tV5L5L5NO 	  	
I( {{>>)Z1ABBr    N)	__name__
__module____qualname____doc___DETAILED_HELPdetailed_helpclassmethodr   rC    r    r   r   r   A   s$     ) -
( 
("Cr    r   N)rG   
__future__r   r   r   googlecloudsdk.api_lib.eventarcr   googlecloudsdk.callioper   #googlecloudsdk.command_lib.eventarcr   $googlecloudsdk.command_lib.util.argsr	   googlecloudsdk.corer
   rH   ReleaseTracksReleaseTrackBETADefaultUniverseOnlyCreateCommandr   rK   r    r   <module>rW      s    ( &  ' 9 ( 5 < # # #L D%%**+4CT 4C  ,4Cr    