
    ]                     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r
S rS	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS r S r!S r"S  r#S! r$S" r%S# r&S$ r'S% r(S& r)S' r*S( r+S) r,S* r-S+ r.S, r/S- r0S. r1S/ r2S0 r3S1 r4S2 r5S3 r6S4 r7S5 r8SPS6 jr9SPS7 jr:S8 r;SPS9 jr<SPS: jr=SPS; jr>SPS< jr?SPS= jr@SPS> jrASPS? jrBSPS@ jrCSPSA jrDSPSB jrESPSC jrFSPSD jrGSE rHSF rISPSG jrJSPSH jrKSPSI jrLSPSJ jrMSPSK jrNSPSL jrOSM rPSPSN jrQgO)Qz.Shared resource args for the Dataplex surface.    )concepts)deps)	yaml_data)concept_parsers)
propertiesz@%!#DATAPLEX_GENERATE_UUID@%!#c                  J    [         R                  " SS[         R                  S9$ )zGets Project spec.zdataplex.projectsprojects)resource_name
projectsId)r   ResourceSpec DEFAULT_PROJECT_ATTRIBUTE_CONFIG     8lib/googlecloudsdk/command_lib/dataplex/resource_args.pyGetProjectSpecr      s$    			::
 r   c                  n    [         R                  " SS[         R                  [        5       [	        5       S9$ )zGets Lake resource spec.z!dataplex.projects.locations.lakeslakes)r
   r   locationsIdlakesId)r   r   r   LocationAttributeConfigLakeAttributeConfigr   r   r   GetLakeResourceSpecr   %   s0    			)::)+!#
 r   c            	          [         R                  " SS[         R                  [        5       [	        5       [        5       S9$ )zGets Zone resource spec.z'dataplex.projects.locations.lakes.zoneszones)r
   r   r   r   zonesId)r   r   r   r   r   ZoneAttributeConfigr   r   r   GetZoneResourceSpecr   0   6    			/::)+!#!#
 r   c            
          [         R                  " SS[         R                  [        5       [	        5       [        5       [        5       S9$ )zGets Asset resource spec.z.dataplex.projects.locations.lakes.zones.assetsassets)r
   r   r   r   r   assetsId)r   r   r   r   r   r   AssetAttributeConfigr   r   r   GetAssetResourceSpecr#   <   s<    			6::)+!#!##%
 r   c            	          [         R                  " SS[         R                  [        5       [	        5       [        5       S9$ )zGets Content resource spec.z.dataplex.projects.locations.lakes.contentitemscontent)r
   r   r   r   contentitemsId)r   r   r   r   r   ContentAttributeConfigr   r   r   GetContentitemResourceSpecr(   I   s6    			6::)+!#+-
 r   c            	          [         R                  " SS[         R                  [        5       [	        5       [        5       S9$ )zGets Task resource spec.z'dataplex.projects.locations.lakes.taskstasks)r
   r   r   r   tasksId)r   r   r   r   r   TaskAttributeConfigr   r   r   GetTaskResourceSpecr-   U   r   r   c            	          [         R                  " SS[         R                  [        5       [	        5       [        5       S9$ )zGets Environment resource spec.z.dataplex.projects.locations.lakes.environmentsenvironments)r
   r   r   r   environmentsId)r   r   r   r   r   EnvironmentAttributeConfigr   r   r   GetEnvironmentResourceSpecr2   a   s6    			6"::)+!#/1
 r   c                  n    [         R                  " SS[         R                  [        5       [	        5       S9$ )zGets Datascan resource spec.z%dataplex.projects.locations.dataScansdatascan)r
   r   r   dataScansId)r   r   r   r   DatascanAttributeConfigr   r   r   GetDatascanResourceSpecr7   m   s0    			-::)+)+
 r   c                  n    [         R                  " SS[         R                  [        5       [	        5       S9$ )z Gets DataTaxonomy resource spec.z*dataplex.projects.locations.dataTaxonomieszdata taxonomy)r
   r   r   dataTaxonomiesId)r   r   r   r   DataTaxonomyAttributeConfigr   r   r   GetDataTaxonomyResourceSpecr;   x   s0    			2#::)+24
 r   c                  n    [         R                  " SS[         R                  [        5       [	        5       S9$ )z(Gets DataAttributeBinding resource spec.z1dataplex.projects.locations.dataAttributeBindingszdata attribute binding)r
   r   r   dataAttributeBindingsId)r   r   r   r   #DataAttributeBindingAttributeConfigr   r   r   #GetDataAttributeBindingResourceSpecr?      s0    			9,::)+AC
 r   c            	          [         R                  " SS[         R                  [        5       [	        5       [        5       S9$ )z"Gets Data Attribute resource spec.z5dataplex.projects.locations.dataTaxonomies.attributeszdata attribute)r
   r   r   r9   attributesId)r   r   r   r   r:   DataAttributeConfigr   r   r   GetDataAttributeResourceSpecrC      s6    			=$::)+24&(
 r   c                  n    [         R                  " SS[         R                  [        5       [	        5       S9$ )zGets Entry Group resource spec.z'dataplex.projects.locations.entryGroupszentry group)r
   r   r   entryGroupsId)r   r   r   r   EntryGroupAttributeConfigr   r   r   !GetDataplexEntryGroupResourceSpecrG      0    			/!::)+-/
 r   c                  n    [         R                  " SS[         R                  [        5       [	        5       S9$ )zGets Aspect Type resource spec.z'dataplex.projects.locations.aspectTypeszaspect type)r
   r   r   aspectTypesId)r   r   r   r   AspectTypeAttributeConfigr   r   r   !GetDataplexAspectTypeResourceSpecrL      rH   r   c                  n    [         R                  " SS[         R                  [        5       [	        5       S9$ )zGets Entry Type resource spec.&dataplex.projects.locations.entryTypes
entry typer
   r   r   entryTypesId)r   r   r   r   EntryTypeAttributeConfigr   r   r    GetDataplexEntryTypeResourceSpecrS      s0    			. ::)++-
 r   c                  b    [         R                  " SS[        5       [        5       [	        5       S9$ )zGets EntryType resource spec.rN   rO   rP   )r   r   EntryTypeProjectAttributeConfig EntryTypeLocationAttributeConfigEntryTypeConfigr   r   r   GetEntryTypeResourceSpecrX      s-    			. 0224"$
 r   c            	          [         R                  " SS[         R                  [        5       [	        5       [        5       S9$ )zGets Entry Link resource spec.z2dataplex.projects.locations.entryGroups.entryLinksz
entry link)r
   r   r   rE   entryLinksId)r   r   r   r   rF   EntryLinkAttributeConfigr   r   r    GetDataplexEntryLinkResourceSpecr\      s6    			: ::)+-/+-
 r   c                  n    [         R                  " SS[         R                  [        5       [	        5       S9$ )z"Gets GovernanceRule resource spec.z+dataplex.projects.locations.governanceRuleszgovernance rule)r
   r   r   governanceRulesId)r   r   r   r   GovernanceRuleAttributeConfigr   r   r   GetGovernanceRuleResourceSpecr`      s0    			3%::)+57
 r   c                  n    [         R                  " SS[         R                  [        5       [	        5       S9$ )zGets Glossary resource spec.z&dataplex.projects.locations.glossariesglossary)r
   r   r   glossariesId)r   r   r   r   GlossaryAttributeConfigr   r   r   GetGlossaryResourceSpecre      s0    			.::)+*,
 r   c            	          [         R                  " SS[         R                  [        5       [	        5       [        5       S9$ )z%Gets Glossary Category resource spec.z1dataplex.projects.locations.glossaries.categorieszglossary category)r
   r   r   rc   categoriesId)r   r   r   r   rd   GlossaryCategoryAttributeConfigr   r   r   GetGlossaryCategoryResourceSpecri      s6    			9'::)+*,24
 r   c            	          [         R                  " SS[         R                  [        5       [	        5       [        5       S9$ )z!Gets Glossary Term resource spec.z,dataplex.projects.locations.glossaries.termszglossary term)r
   r   r   rc   termsId)r   r   r   r   rd   GlossaryTermAttributeConfigr   r   r   GetGlossaryTermResourceSpecrm      s6    			4#::)+*,)+
 r   c                  n    [         R                  " SS[         R                  [        5       [	        5       S9$ )z Gets Metadata Job resource spec.z(dataplex.projects.locations.metadataJobszmetadata job)r
   r   r   metadataJobsId)r   r   r   r   MetadataJobAttributeConfigr   r   r   GetMetadataJobResourceSpecrq      s0    			0"::)+/1
 r   c                  b    [         R                  " SS[        5       [        5       [	        5       S9$ )z$Gets EncryptionConfig resource spec.z2dataplex.organizations.locations.encryptionConfigszencryption config)r
   organizationsIdr   encryptionConfigsId)r   r   OrganizationAttributeConfigr   EncryptionConfigAttributeConfigr   r   r   GetEncryptionConfigResourceSpecrw     s-    			:'13)+9;
 r   c                  ,    [         R                  " SSS9$ )Nzentry-type-projectz&The project of the EntryType resource.name	help_textr    ResourceParameterAttributeConfigr   r   r   rU   rU     s    		2	28
 r   c                  ,    [         R                  " SSS9$ )Nzentry-type-locationz'The location of the EntryType resource.ry   r|   r   r   r   rV   rV     s    		2	2 9
 r   c                      [         R                  " S[        R                  " [        R
                  " S5      5      /SS9$ )Nlocationzdataplex/locationz&The location of the Dataplex resource.rz   fallthroughsr{   )r   r}   r   PropertyFallthroughr   
FromStringr   r   r   r   r   $  s<    		2	2

"
":#8#89L#M
N 9
 r   c                  ,    [         R                  " SSS9$ )Nlakez-The identifier of the Dataplex lake resource.ry   r|   r   r   r   r   r   .      		2	2L
 r   c                  ,    [         R                  " SSS9$ )Nzonez-The identifier of the Dataplex zone resource.ry   r|   r   r   r   r   r   4  r   r   c                  ,    [         R                  " SSS9$ )Nassetz.The identifier of the Dataplex asset resource.ry   r|   r   r   r   r"   r"   :  s    		2	2N
 r   c                  ,    [         R                  " SSS9$ )Nr%   z"The name of the {resource} to use.ry   r|   r   r   r   r'   r'   @  s    		2	2 D
 r   c                  ,    [         R                  " SSS9$ )NenvironmentThe name of {resource} to use.ry   r|   r   r   r   r1   r1   F      		2	2$D
 r   c                  ,    [         R                  " SSS9$ )Ndata_taxonomyr   ry   r|   r   r   r   r:   r:   L      		2	2&F
 r   c                  ,    [         R                  " SSS9$ )Ndata_attributer   ry   r|   r   r   r   rB   rB   R  s    		2	2'G
 r   c                  ,    [         R                  " SSS9$ )Ndata_attribute_bindingr   ry   r|   r   r   r   r>   r>   X  s    		2	2#/O
 r   c                  ,    [         R                  " SSS9$ )Nzentry-groupr   ry   r|   r   r   r   rF   rF   ^  r   r   c                  ,    [         R                  " SSS9$ )Naspect_typer   ry   r|   r   r   r   rK   rK   d  r   r   c                  ,    [         R                  " SSS9$ N
entry_typer   ry   r|   r   r   r   rR   rR   j      		2	2#C
 r   c                  ,    [         R                  " SSS9$ )Nz
entry-linkr   ry   r|   r   r   r   r[   r[   p  r   r   c                  ,    [         R                  " SSS9$ )N	dataScansr   ry   r|   r   r   r   r6   r6   v  s    		2	2"B
 r   c                  ,    [         R                  " SSS9$ r   r|   r   r   r   rW   rW   |  r   r   c                  ,    [         R                  " SSS9$ )Ngovernance_ruler   ry   r|   r   r   r   r_   r_     s    		2	2(H
 r   c                  ,    [         R                  " SSS9$ )Nrb   r   ry   r|   r   r   r   rd   rd     s    		2	2!A
 r   c                  ,    [         R                  " SSS9$ )Nglossary_categoryr   ry   r|   r   r   r   rh   rh         		2	2*J
 r   c                  ,    [         R                  " SSS9$ )Nglossary_termr   ry   r|   r   r   r   rl   rl     r   r   c                  ^    [         R                  " S[        R                  " [        SS9/SS9$ )Nmetadata_jobz9job ID is optional and will be generated if not specified)hintr   r   )r   r}   r   ValueFallthroughGENERATE_IDr   r   r   rp   rp     s8    		2	2
 

N 1
 r   c                  ,    [         R                  " SSS9$ )Nencryption_configr   ry   r|   r   r   r   rv   rv     r   r   c                  ,    [         R                  " SSS9$ )Norganizationr   ry   r|   r   r   r   ru   ru     s    		2	2%E
 r   c                     U(       a  SOSn[         R                  R                  U[        5       SR	                  U5      SS9R                  U 5      $ )z1Adds a resource argument for a Dataplex Datascan.r4   z
--datascanzAArguments and flags that define the Dataplex datascan you want {}Trequired)r   ConceptParserForResourcer7   formatAddToParserparserverb
positionalrz   s       r   AddDatascanResourceArgr     M    !|$		&	&	2	2
Ivd| 
3 
 Kr   c                     U(       a  SOSn[         R                  R                  U[        5       SR	                  U5      SS9R                  U 5      $ )z'Adds a resource argument for a project.projectz	--projectz7Arguments and flags that define the project you want {}Tr   )r   r   r   r   r   r   r   s       r   AddProjectArgr     sO     k$		&	&	2	2
?FFtL	 
3 

 Kr   c                  ,    [         R                  " SSS9$ )Ntaskz-The identifier of the Dataplex task resource.ry   r|   r   r   r   r,   r,     r   r   c                     U(       a  SOSn[         R                  R                  U[        5       SR	                  U5      SS9R                  U 5      $ )z-Adds a resource argument for a Dataplex Lake.r   z--lakez=Arguments and flags that define the Dataplex lake you want {}Tr   )r   r   r   r   r   r   r   s       r   AddLakeResourceArgr     T    8$		&	&	2	2
ELL
  
3 
 Kr   c                     U(       a  SOSn[         R                  R                  U[        5       SR	                  U5      SS9R                  U 5      $ )z-Adds a resource argument for a Dataplex Zone.r   z--zonez=Arguments and flags that define the Dataplex zone you want {}Tr   )r   r   r   r   r   r   r   s       r   AddZoneResourceArgr     r   r   c                     U(       a  SOSn[         R                  R                  U[        5       SR	                  U5      SS9R                  U 5      $ )z.Adds a resource argument for a Dataplex Asset.r   z--assetz>Arguments and flags that define the Dataplex asset you want {}Tr   )r   r   r   r#   r   r   r   s       r   AddAssetResourceArgr     sT    I$		&	&	2	2
FMM
  
3 
 Kr   c                     U(       a  SOSn[         R                  R                  U[        5       SR	                  U5      SS9R                  U 5      $ )z0Adds a resource argument for a Dataplex Content.r%   z	--contentzThe Content {}Tr   )r   r   r   r(   r   r   r   s       r   AddContentitemResourceArgr     sO     k$		&	&	2	2
 "d#	 
3 

 Kr   c                     U(       a  SOSn[         R                  R                  U[        5       SR	                  U5      SS9R                  U 5      $ )z-Adds a resource argument for a Dataplex Task.r   z--taskz=Arguments and flags that define the Dataplex task you want {}Tr   )r   r   r   r-   r   r   r   s       r   AddTaskResourceArgr     r   r   c                     U(       a  SOSn[         R                  R                  U[        5       SR	                  U5      SS9R                  U 5      $ )z4Adds a resource argument for a Dataplex Environment.r   z--environmentzThe Environment {}Tr   )r   r   r   r2   r   r   r   s       r   AddEnvironmentResourceArgr     sO    $/$		&	&	2	2
 "!!$'	 
3 

 Kr   c                     U(       a  SOSn[         R                  R                  U[        5       SR	                  U5      SS9R                  U 5      $ )z6Adds a resource argument for a Dataplex Data Taxonomy.r   z--data_taxonomyzThe DataTaxonomy {}Tr   )r   r   r   r;   r   r   r   s       r   AddDataTaxonomyResourceArgr     sP    &,=$		&	&	2	2
!#""4(	 
3 

 Kr   c                     U(       a  SOSn[         R                  R                  U[        5       SR	                  U5      SS9R                  U 5      $ )z2Adds a resource argument for a Dataplex Attribute.r   z--data_attributezThe DataAttribute {}Tr   )r   r   r   rC   r   r   r   s       r   AddAttributeResourceArgr   (  sQ    '	-?$		&	&	2	2
"$##D)	 
3 

 Kr   c                     U(       a  SOSn[         R                  R                  U[        5       SR	                  U5      SS9R                  U 5      $ )z=Adds a resource argument for a Dataplex DataAttributeBinding.r   z--data_attribute_bindingzThe DataAttributeBinding {}Tr   )r   r   r   r?   r   r   r   s       r   "AddDataAttributeBindingResourceArgr   3  sQ    %/	!5O$		&	&	2	2
)+#**40	 
3 

 Kr   c                     U(       a  SOSn[         R                  R                  U[        5       SR	                  U5      SS9R                  U 5      $ )z3Adds a resource argument for a Dataplex EntryGroup.entry_groupz--entry-groupzDArguments and flags that define the Dataplex entry group you want {}Tr   )r   r   r   rG   r   r   r   s       r    AddDataplexEntryGroupResourceArgr   >  M    $/$		&	&	2	2
')Lvd| 
3 
 Kr   c                     U(       a  SOSn[         R                  R                  U[        5       SR	                  U5      SS9R                  U 5      $ )z3Adds a resource argument for a Dataplex AspectType.r   z--aspect_typezDArguments and flags that define the Dataplex aspect type you want {}Tr   )r   r   r   rL   r   r   r   s       r    AddDataplexAspectTypeResourceArgr   J  r   r   c                     U(       a  SOSn[         R                  R                  U[        5       SR	                  U5      SS9R                  U 5      $ )2Adds a resource argument for a Dataplex EntryType.r   z--entry_typezCArguments and flags that define the Dataplex entry type you want {}Tr   )r   r   r   rS   r   r   r   s       r   AddDataplexEntryTypeResourceArgr   V  M    #$		&	&	2	2
&(Kvd| 
3 
 Kr   c                 p    [         R                  R                  S[        5       SSS9R	                  U 5      $ )r   z--entry-typezMArguments and flags that define the Dataplex EntryType you want to reference.Tr   )r   r   r   rX   r   )r   s    r   AddEntryTypeResourceArgr   b  s=    		&	&	2	2  
3 
 Kr   c                     [         R                  R                  S5      n[        R                  R                  S[        R                  R                  UR                  5       SS9SSS9R                  U 5      $ )z.Adds a resource argument for a Dataplex Entry.dataplex.entryentryT)is_positionalzIArguments and flags that define the Dataplex Entry you want to reference.r   r   ResourceYAMLDataFromPathr   r   r   r   r   FromYamlGetDatar   r   
entry_datas     r   AddEntryResourceArgr   m  sp    ))223CD*		&	&	2	2$$Z%7%7%9$N 
3 
 Kr   c                     U(       a  SOSn[         R                  R                  U[        5       SR	                  U5      SS9R                  U 5      $ )z2Adds a resource argument for a Dataplex EntryLink.
entry_linkz--entry-linkzCArguments and flags that define the Dataplex entry link you want {}Tr   )r   r   r   r\   r   r   r   s       r   AddDataplexEntryLinkResourceArgr   y  r   r   c                     U(       a  SOSn[         R                  R                  U[        5       SR	                  U5      SS9R                  U 5      $ )z7Adds a resource argument for a Dataplex GovernanceRule.r   z--governance_rulezHArguments and flags that define the Dataplex governance rule you want {}Tr   )r   r   r   r`   r   r   r   s       r   AddGovernanceRuleResourceArgr     sO    (	.A$		&	&	2	2
#%Pvd| 
3 
 Kr   c                     U(       a  SOSn[         R                  R                  U[        5       SR	                  U5      SS9R                  U 5      $ )z1Adds a resource argument for a Dataplex Glossary.rb   z
--glossaryzAArguments and flags that define the Dataplex Glossary you want {}Tr   )r   r   r   re   r   r   r   s       r   AddGlossaryResourceArgr     r   r   c                     U(       a  SOSn[         R                  R                  U[        5       SR	                  U5      SS9R                  U 5      $ )z:Adds a resource argument for a Dataplex Glossary Category.r   z--glossary_categoryzJArguments and flags that define the Dataplex Glossary Category you want {}Tr   )r   r   r   ri   r   r   r   s       r   AddGlossaryCategoryResourceArgr     Q     *	0E$		&	&	2	2
%' 
3 
 Kr   c                     U(       a  SOSn[         R                  R                  U[        5       SR	                  U5      SS9R                  U 5      $ )z6Adds a resource argument for a Dataplex Glossary Term.r   z--glossary_termzFArguments and flags that define the Dataplex Glossary Term you want {}Tr   )r   r   r   rm   r   r   r   s       r   AddGlossaryTermResourceArgr     sP    &,=$		&	&	2	2
!# 
3 
 Kr   c                     U(       a  SOSn[         R                  R                  U[        5       SR	                  U5      SS9R                  U 5      $ )z9Adds a resource argument for a Dataplex EncryptionConfig.r   z--encryption_configzIArguments and flags that define the Dataplex EncryptionConfig you want {}Tr   )r   r   r   rw   r   r   r   s       r   AddEncryptionConfigResourceArgr     r   r   c           	         [         R                  R                  S5      n[        R                  R                  S[        R                  R                  UR                  5       5      SS/S/S.SSS.S9R                  U 5      $ )	z5Adds a resource argument for a Dataplex Entry parent.r   z--parent-entryzGArguments and flags that define the parent Entry you want to reference.z
--locationz--entry_group)r   r    )command_level_fallthroughsflag_name_overridesr   r   s     r   AddParentEntryResourceArgr    s    ))223CD*		&	&	2	2$$Z%7%7%9:O $n)*"
  
3 
  K!r   c                     U(       a  SOSn[         R                  R                  U[        5       SR	                  U5      SS9R                  U 5      $ )z4Adds a resource argument for a Dataplex MetadataJob.r   z--metadata_jobzDArguments and flags that define the Dataplex metdata job you want {}Tr   )r   r   r   rq   r   r   r   s       r   AddMetadataJobResourceArgr    sN    %+;$		&	&	2	2
 "Lvd| 
3 
 Kr   N)T)R__doc__ googlecloudsdk.calliope.conceptsr   r   $googlecloudsdk.command_lib.util.apisr   (googlecloudsdk.command_lib.util.conceptsr   googlecloudsdk.corer   r   r   r   r   r#   r(   r-   r2   r7   r;   r?   rC   rG   rL   rS   rX   r\   r`   re   ri   rm   rq   rw   rU   rV   r   r   r   r"   r'   r1   r:   rB   r>   rF   rK   rR   r[   r6   rW   r_   rd   rh   rl   rp   rv   ru   r   r   r,   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r   r   r   <module>r     s   5 6 1 : D * /	
							 	



										,	r   