740 lines
24 KiB
Python
740 lines
24 KiB
Python
# -*- coding: utf-8 -*- #
|
|
# Copyright 2022 Google LLC. All Rights Reserved.
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
"""Shared resource args for the Dataplex surface."""
|
|
|
|
from __future__ import absolute_import
|
|
from __future__ import division
|
|
from __future__ import unicode_literals
|
|
|
|
from googlecloudsdk.calliope.concepts import concepts
|
|
from googlecloudsdk.calliope.concepts import deps
|
|
from googlecloudsdk.command_lib.util.apis import yaml_data
|
|
from googlecloudsdk.command_lib.util.concepts import concept_parsers
|
|
from googlecloudsdk.core import properties
|
|
|
|
|
|
GENERATE_ID = '@%!#DATAPLEX_GENERATE_UUID@%!#'
|
|
|
|
|
|
def GetProjectSpec():
|
|
"""Gets Project spec."""
|
|
return concepts.ResourceSpec(
|
|
'dataplex.projects',
|
|
resource_name='projects',
|
|
projectsId=concepts.DEFAULT_PROJECT_ATTRIBUTE_CONFIG,
|
|
)
|
|
|
|
|
|
def GetLakeResourceSpec():
|
|
"""Gets Lake resource spec."""
|
|
return concepts.ResourceSpec(
|
|
'dataplex.projects.locations.lakes',
|
|
resource_name='lakes',
|
|
projectsId=concepts.DEFAULT_PROJECT_ATTRIBUTE_CONFIG,
|
|
locationsId=LocationAttributeConfig(),
|
|
lakesId=LakeAttributeConfig(),
|
|
)
|
|
|
|
|
|
def GetZoneResourceSpec():
|
|
"""Gets Zone resource spec."""
|
|
return concepts.ResourceSpec(
|
|
'dataplex.projects.locations.lakes.zones',
|
|
resource_name='zones',
|
|
projectsId=concepts.DEFAULT_PROJECT_ATTRIBUTE_CONFIG,
|
|
locationsId=LocationAttributeConfig(),
|
|
lakesId=LakeAttributeConfig(),
|
|
zonesId=ZoneAttributeConfig(),
|
|
)
|
|
|
|
|
|
def GetAssetResourceSpec():
|
|
"""Gets Asset resource spec."""
|
|
return concepts.ResourceSpec(
|
|
'dataplex.projects.locations.lakes.zones.assets',
|
|
resource_name='assets',
|
|
projectsId=concepts.DEFAULT_PROJECT_ATTRIBUTE_CONFIG,
|
|
locationsId=LocationAttributeConfig(),
|
|
lakesId=LakeAttributeConfig(),
|
|
zonesId=ZoneAttributeConfig(),
|
|
assetsId=AssetAttributeConfig(),
|
|
)
|
|
|
|
|
|
def GetContentitemResourceSpec():
|
|
"""Gets Content resource spec."""
|
|
return concepts.ResourceSpec(
|
|
'dataplex.projects.locations.lakes.contentitems',
|
|
resource_name='content',
|
|
projectsId=concepts.DEFAULT_PROJECT_ATTRIBUTE_CONFIG,
|
|
locationsId=LocationAttributeConfig(),
|
|
lakesId=LakeAttributeConfig(),
|
|
contentitemsId=ContentAttributeConfig(),
|
|
)
|
|
|
|
|
|
def GetTaskResourceSpec():
|
|
"""Gets Task resource spec."""
|
|
return concepts.ResourceSpec(
|
|
'dataplex.projects.locations.lakes.tasks',
|
|
resource_name='tasks',
|
|
projectsId=concepts.DEFAULT_PROJECT_ATTRIBUTE_CONFIG,
|
|
locationsId=LocationAttributeConfig(),
|
|
lakesId=LakeAttributeConfig(),
|
|
tasksId=TaskAttributeConfig(),
|
|
)
|
|
|
|
|
|
def GetEnvironmentResourceSpec():
|
|
"""Gets Environment resource spec."""
|
|
return concepts.ResourceSpec(
|
|
'dataplex.projects.locations.lakes.environments',
|
|
resource_name='environments',
|
|
projectsId=concepts.DEFAULT_PROJECT_ATTRIBUTE_CONFIG,
|
|
locationsId=LocationAttributeConfig(),
|
|
lakesId=LakeAttributeConfig(),
|
|
environmentsId=EnvironmentAttributeConfig(),
|
|
)
|
|
|
|
|
|
def GetDatascanResourceSpec():
|
|
"""Gets Datascan resource spec."""
|
|
return concepts.ResourceSpec(
|
|
'dataplex.projects.locations.dataScans',
|
|
resource_name='datascan',
|
|
projectsId=concepts.DEFAULT_PROJECT_ATTRIBUTE_CONFIG,
|
|
locationsId=LocationAttributeConfig(),
|
|
dataScansId=DatascanAttributeConfig(),
|
|
)
|
|
|
|
|
|
def GetDataTaxonomyResourceSpec():
|
|
"""Gets DataTaxonomy resource spec."""
|
|
return concepts.ResourceSpec(
|
|
'dataplex.projects.locations.dataTaxonomies',
|
|
resource_name='data taxonomy',
|
|
projectsId=concepts.DEFAULT_PROJECT_ATTRIBUTE_CONFIG,
|
|
locationsId=LocationAttributeConfig(),
|
|
dataTaxonomiesId=DataTaxonomyAttributeConfig(),
|
|
)
|
|
|
|
|
|
def GetDataAttributeBindingResourceSpec():
|
|
"""Gets DataAttributeBinding resource spec."""
|
|
return concepts.ResourceSpec(
|
|
'dataplex.projects.locations.dataAttributeBindings',
|
|
resource_name='data attribute binding',
|
|
projectsId=concepts.DEFAULT_PROJECT_ATTRIBUTE_CONFIG,
|
|
locationsId=LocationAttributeConfig(),
|
|
dataAttributeBindingsId=DataAttributeBindingAttributeConfig(),
|
|
)
|
|
|
|
|
|
def GetDataAttributeResourceSpec():
|
|
"""Gets Data Attribute resource spec."""
|
|
return concepts.ResourceSpec(
|
|
'dataplex.projects.locations.dataTaxonomies.attributes',
|
|
resource_name='data attribute',
|
|
projectsId=concepts.DEFAULT_PROJECT_ATTRIBUTE_CONFIG,
|
|
locationsId=LocationAttributeConfig(),
|
|
dataTaxonomiesId=DataTaxonomyAttributeConfig(),
|
|
attributesId=DataAttributeConfig(),
|
|
)
|
|
|
|
|
|
def GetDataplexEntryGroupResourceSpec():
|
|
"""Gets Entry Group resource spec."""
|
|
return concepts.ResourceSpec(
|
|
'dataplex.projects.locations.entryGroups',
|
|
resource_name='entry group',
|
|
projectsId=concepts.DEFAULT_PROJECT_ATTRIBUTE_CONFIG,
|
|
locationsId=LocationAttributeConfig(),
|
|
entryGroupsId=EntryGroupAttributeConfig(),
|
|
)
|
|
|
|
|
|
def GetDataplexAspectTypeResourceSpec():
|
|
"""Gets Aspect Type resource spec."""
|
|
return concepts.ResourceSpec(
|
|
'dataplex.projects.locations.aspectTypes',
|
|
resource_name='aspect type',
|
|
projectsId=concepts.DEFAULT_PROJECT_ATTRIBUTE_CONFIG,
|
|
locationsId=LocationAttributeConfig(),
|
|
aspectTypesId=AspectTypeAttributeConfig(),
|
|
)
|
|
|
|
|
|
def GetDataplexEntryTypeResourceSpec():
|
|
"""Gets Entry Type resource spec."""
|
|
return concepts.ResourceSpec(
|
|
'dataplex.projects.locations.entryTypes',
|
|
resource_name='entry type',
|
|
projectsId=concepts.DEFAULT_PROJECT_ATTRIBUTE_CONFIG,
|
|
locationsId=LocationAttributeConfig(),
|
|
entryTypesId=EntryTypeAttributeConfig(),
|
|
)
|
|
|
|
|
|
def GetEntryTypeResourceSpec():
|
|
"""Gets EntryType resource spec."""
|
|
return concepts.ResourceSpec(
|
|
'dataplex.projects.locations.entryTypes',
|
|
resource_name='entry type',
|
|
projectsId=EntryTypeProjectAttributeConfig(),
|
|
locationsId=EntryTypeLocationAttributeConfig(),
|
|
entryTypesId=EntryTypeConfig(),
|
|
)
|
|
|
|
|
|
def GetDataplexEntryLinkResourceSpec():
|
|
"""Gets Entry Link resource spec."""
|
|
return concepts.ResourceSpec(
|
|
'dataplex.projects.locations.entryGroups.entryLinks',
|
|
resource_name='entry link',
|
|
projectsId=concepts.DEFAULT_PROJECT_ATTRIBUTE_CONFIG,
|
|
locationsId=LocationAttributeConfig(),
|
|
entryGroupsId=EntryGroupAttributeConfig(),
|
|
entryLinksId=EntryLinkAttributeConfig(),
|
|
)
|
|
|
|
|
|
def GetGovernanceRuleResourceSpec():
|
|
"""Gets GovernanceRule resource spec."""
|
|
return concepts.ResourceSpec(
|
|
'dataplex.projects.locations.governanceRules',
|
|
resource_name='governance rule',
|
|
projectsId=concepts.DEFAULT_PROJECT_ATTRIBUTE_CONFIG,
|
|
locationsId=LocationAttributeConfig(),
|
|
governanceRulesId=GovernanceRuleAttributeConfig(),
|
|
)
|
|
|
|
|
|
def GetGlossaryResourceSpec():
|
|
"""Gets Glossary resource spec."""
|
|
return concepts.ResourceSpec(
|
|
'dataplex.projects.locations.glossaries',
|
|
resource_name='glossary',
|
|
projectsId=concepts.DEFAULT_PROJECT_ATTRIBUTE_CONFIG,
|
|
locationsId=LocationAttributeConfig(),
|
|
glossariesId=GlossaryAttributeConfig(),
|
|
)
|
|
|
|
|
|
def GetGlossaryCategoryResourceSpec():
|
|
"""Gets Glossary Category resource spec."""
|
|
return concepts.ResourceSpec(
|
|
'dataplex.projects.locations.glossaries.categories',
|
|
resource_name='glossary category',
|
|
projectsId=concepts.DEFAULT_PROJECT_ATTRIBUTE_CONFIG,
|
|
locationsId=LocationAttributeConfig(),
|
|
glossariesId=GlossaryAttributeConfig(),
|
|
categoriesId=GlossaryCategoryAttributeConfig(),
|
|
)
|
|
|
|
|
|
def GetGlossaryTermResourceSpec():
|
|
"""Gets Glossary Term resource spec."""
|
|
return concepts.ResourceSpec(
|
|
'dataplex.projects.locations.glossaries.terms',
|
|
resource_name='glossary term',
|
|
projectsId=concepts.DEFAULT_PROJECT_ATTRIBUTE_CONFIG,
|
|
locationsId=LocationAttributeConfig(),
|
|
glossariesId=GlossaryAttributeConfig(),
|
|
termsId=GlossaryTermAttributeConfig(),
|
|
)
|
|
|
|
|
|
def GetMetadataJobResourceSpec():
|
|
"""Gets Metadata Job resource spec."""
|
|
return concepts.ResourceSpec(
|
|
'dataplex.projects.locations.metadataJobs',
|
|
resource_name='metadata job',
|
|
projectsId=concepts.DEFAULT_PROJECT_ATTRIBUTE_CONFIG,
|
|
locationsId=LocationAttributeConfig(),
|
|
metadataJobsId=MetadataJobAttributeConfig(),
|
|
)
|
|
|
|
|
|
def GetEncryptionConfigResourceSpec():
|
|
"""Gets EncryptionConfig resource spec."""
|
|
return concepts.ResourceSpec(
|
|
'dataplex.organizations.locations.encryptionConfigs',
|
|
resource_name='encryption config',
|
|
organizationsId=OrganizationAttributeConfig(),
|
|
locationsId=LocationAttributeConfig(),
|
|
encryptionConfigsId=EncryptionConfigAttributeConfig(),
|
|
)
|
|
|
|
|
|
def EntryTypeProjectAttributeConfig():
|
|
return concepts.ResourceParameterAttributeConfig(
|
|
name='entry-type-project',
|
|
help_text='The project of the EntryType resource.',
|
|
)
|
|
|
|
|
|
def EntryTypeLocationAttributeConfig():
|
|
return concepts.ResourceParameterAttributeConfig(
|
|
name='entry-type-location',
|
|
help_text='The location of the EntryType resource.',
|
|
)
|
|
|
|
|
|
def LocationAttributeConfig():
|
|
return concepts.ResourceParameterAttributeConfig(
|
|
name='location',
|
|
fallthroughs=[
|
|
deps.PropertyFallthrough(properties.FromString('dataplex/location'))
|
|
],
|
|
help_text='The location of the Dataplex resource.',
|
|
)
|
|
|
|
|
|
def LakeAttributeConfig():
|
|
return concepts.ResourceParameterAttributeConfig(
|
|
name='lake', help_text='The identifier of the Dataplex lake resource.'
|
|
)
|
|
|
|
|
|
def ZoneAttributeConfig():
|
|
return concepts.ResourceParameterAttributeConfig(
|
|
name='zone', help_text='The identifier of the Dataplex zone resource.'
|
|
)
|
|
|
|
|
|
def AssetAttributeConfig():
|
|
return concepts.ResourceParameterAttributeConfig(
|
|
name='asset', help_text='The identifier of the Dataplex asset resource.'
|
|
)
|
|
|
|
|
|
def ContentAttributeConfig():
|
|
return concepts.ResourceParameterAttributeConfig(
|
|
name='content', help_text='The name of the {resource} to use.'
|
|
)
|
|
|
|
|
|
def EnvironmentAttributeConfig():
|
|
return concepts.ResourceParameterAttributeConfig(
|
|
name='environment', help_text='The name of {resource} to use.'
|
|
)
|
|
|
|
|
|
def DataTaxonomyAttributeConfig():
|
|
return concepts.ResourceParameterAttributeConfig(
|
|
name='data_taxonomy', help_text='The name of {resource} to use.'
|
|
)
|
|
|
|
|
|
def DataAttributeConfig():
|
|
return concepts.ResourceParameterAttributeConfig(
|
|
name='data_attribute', help_text='The name of {resource} to use.'
|
|
)
|
|
|
|
|
|
def DataAttributeBindingAttributeConfig():
|
|
return concepts.ResourceParameterAttributeConfig(
|
|
name='data_attribute_binding', help_text='The name of {resource} to use.'
|
|
)
|
|
|
|
|
|
def EntryGroupAttributeConfig():
|
|
return concepts.ResourceParameterAttributeConfig(
|
|
name='entry-group', help_text='The name of {resource} to use.'
|
|
)
|
|
|
|
|
|
def AspectTypeAttributeConfig():
|
|
return concepts.ResourceParameterAttributeConfig(
|
|
name='aspect_type', help_text='The name of {resource} to use.'
|
|
)
|
|
|
|
|
|
def EntryTypeAttributeConfig():
|
|
return concepts.ResourceParameterAttributeConfig(
|
|
name='entry_type', help_text='The name of {resource} to use.'
|
|
)
|
|
|
|
|
|
def EntryLinkAttributeConfig():
|
|
return concepts.ResourceParameterAttributeConfig(
|
|
name='entry-link', help_text='The name of {resource} to use.'
|
|
)
|
|
|
|
|
|
def DatascanAttributeConfig():
|
|
return concepts.ResourceParameterAttributeConfig(
|
|
name='dataScans', help_text='The name of {resource} to use.'
|
|
)
|
|
|
|
|
|
def EntryTypeConfig():
|
|
return concepts.ResourceParameterAttributeConfig(
|
|
name='entry_type', help_text='The name of {resource} to use.'
|
|
)
|
|
|
|
|
|
def GovernanceRuleAttributeConfig():
|
|
return concepts.ResourceParameterAttributeConfig(
|
|
name='governance_rule', help_text='The name of {resource} to use.'
|
|
)
|
|
|
|
|
|
def GlossaryAttributeConfig():
|
|
return concepts.ResourceParameterAttributeConfig(
|
|
name='glossary', help_text='The name of {resource} to use.'
|
|
)
|
|
|
|
|
|
def GlossaryCategoryAttributeConfig():
|
|
return concepts.ResourceParameterAttributeConfig(
|
|
name='glossary_category', help_text='The name of {resource} to use.'
|
|
)
|
|
|
|
|
|
def GlossaryTermAttributeConfig():
|
|
return concepts.ResourceParameterAttributeConfig(
|
|
name='glossary_term', help_text='The name of {resource} to use.'
|
|
)
|
|
|
|
|
|
def MetadataJobAttributeConfig():
|
|
return concepts.ResourceParameterAttributeConfig(
|
|
name='metadata_job',
|
|
# Adding invalid job_id to keep job resource in the right format,
|
|
# this invalid value will be removed if no job_id is specified from
|
|
# the input and the underlaying client would generate a valid one.
|
|
fallthroughs=[
|
|
deps.ValueFallthrough(
|
|
GENERATE_ID,
|
|
hint='job ID is optional and will be generated if not specified',
|
|
)
|
|
],
|
|
help_text='The name of {resource} to use.',
|
|
)
|
|
|
|
|
|
def EncryptionConfigAttributeConfig():
|
|
return concepts.ResourceParameterAttributeConfig(
|
|
name='encryption_config', help_text='The name of {resource} to use.'
|
|
)
|
|
|
|
|
|
def OrganizationAttributeConfig():
|
|
return concepts.ResourceParameterAttributeConfig(
|
|
name='organization', help_text='The name of {resource} to use.'
|
|
)
|
|
|
|
|
|
def AddDatascanResourceArg(parser, verb, positional=True):
|
|
"""Adds a resource argument for a Dataplex Datascan."""
|
|
name = 'datascan' if positional else '--datascan'
|
|
return concept_parsers.ConceptParser.ForResource(
|
|
name,
|
|
GetDatascanResourceSpec(),
|
|
'Arguments and flags that define the Dataplex datascan you want {}'
|
|
.format(verb),
|
|
required=True,
|
|
).AddToParser(parser)
|
|
|
|
|
|
def AddProjectArg(parser, verb, positional=True):
|
|
"""Adds a resource argument for a project."""
|
|
name = 'project' if positional else '--project'
|
|
return concept_parsers.ConceptParser.ForResource(
|
|
name,
|
|
GetProjectSpec(),
|
|
'Arguments and flags that define the project you want {}'.format(verb),
|
|
required=True,
|
|
).AddToParser(parser)
|
|
|
|
|
|
def TaskAttributeConfig():
|
|
return concepts.ResourceParameterAttributeConfig(
|
|
name='task', help_text='The identifier of the Dataplex task resource.'
|
|
)
|
|
|
|
|
|
def AddLakeResourceArg(parser, verb, positional=True):
|
|
"""Adds a resource argument for a Dataplex Lake."""
|
|
name = 'lake' if positional else '--lake'
|
|
return concept_parsers.ConceptParser.ForResource(
|
|
name,
|
|
GetLakeResourceSpec(),
|
|
'Arguments and flags that define the Dataplex lake you want {}'.format(
|
|
verb
|
|
),
|
|
required=True,
|
|
).AddToParser(parser)
|
|
|
|
|
|
def AddZoneResourceArg(parser, verb, positional=True):
|
|
"""Adds a resource argument for a Dataplex Zone."""
|
|
name = 'zone' if positional else '--zone'
|
|
return concept_parsers.ConceptParser.ForResource(
|
|
name,
|
|
GetZoneResourceSpec(),
|
|
'Arguments and flags that define the Dataplex zone you want {}'.format(
|
|
verb
|
|
),
|
|
required=True,
|
|
).AddToParser(parser)
|
|
|
|
|
|
def AddAssetResourceArg(parser, verb, positional=True):
|
|
"""Adds a resource argument for a Dataplex Asset."""
|
|
name = 'asset' if positional else '--asset'
|
|
return concept_parsers.ConceptParser.ForResource(
|
|
name,
|
|
GetAssetResourceSpec(),
|
|
'Arguments and flags that define the Dataplex asset you want {}'.format(
|
|
verb
|
|
),
|
|
required=True,
|
|
).AddToParser(parser)
|
|
|
|
|
|
def AddContentitemResourceArg(parser, verb, positional=True):
|
|
"""Adds a resource argument for a Dataplex Content."""
|
|
name = 'content' if positional else '--content'
|
|
return concept_parsers.ConceptParser.ForResource(
|
|
name,
|
|
GetContentitemResourceSpec(),
|
|
'The Content {}'.format(verb),
|
|
required=True,
|
|
).AddToParser(parser)
|
|
|
|
|
|
def AddTaskResourceArg(parser, verb, positional=True):
|
|
"""Adds a resource argument for a Dataplex Task."""
|
|
name = 'task' if positional else '--task'
|
|
return concept_parsers.ConceptParser.ForResource(
|
|
name,
|
|
GetTaskResourceSpec(),
|
|
'Arguments and flags that define the Dataplex task you want {}'.format(
|
|
verb
|
|
),
|
|
required=True,
|
|
).AddToParser(parser)
|
|
|
|
|
|
def AddEnvironmentResourceArg(parser, verb, positional=True):
|
|
"""Adds a resource argument for a Dataplex Environment."""
|
|
name = 'environment' if positional else '--environment'
|
|
return concept_parsers.ConceptParser.ForResource(
|
|
name,
|
|
GetEnvironmentResourceSpec(),
|
|
'The Environment {}'.format(verb),
|
|
required=True,
|
|
).AddToParser(parser)
|
|
|
|
|
|
def AddDataTaxonomyResourceArg(parser, verb, positional=True):
|
|
"""Adds a resource argument for a Dataplex Data Taxonomy."""
|
|
name = 'data_taxonomy' if positional else '--data_taxonomy'
|
|
return concept_parsers.ConceptParser.ForResource(
|
|
name,
|
|
GetDataTaxonomyResourceSpec(),
|
|
'The DataTaxonomy {}'.format(verb),
|
|
required=True,
|
|
).AddToParser(parser)
|
|
|
|
|
|
def AddAttributeResourceArg(parser, verb, positional=True):
|
|
"""Adds a resource argument for a Dataplex Attribute."""
|
|
name = 'data_attribute' if positional else '--data_attribute'
|
|
return concept_parsers.ConceptParser.ForResource(
|
|
name,
|
|
GetDataAttributeResourceSpec(),
|
|
'The DataAttribute {}'.format(verb),
|
|
required=True,
|
|
).AddToParser(parser)
|
|
|
|
|
|
def AddDataAttributeBindingResourceArg(parser, verb, positional=True):
|
|
"""Adds a resource argument for a Dataplex DataAttributeBinding."""
|
|
name = 'data_attribute_binding' if positional else '--data_attribute_binding'
|
|
return concept_parsers.ConceptParser.ForResource(
|
|
name,
|
|
GetDataAttributeBindingResourceSpec(),
|
|
'The DataAttributeBinding {}'.format(verb),
|
|
required=True,
|
|
).AddToParser(parser)
|
|
|
|
|
|
def AddDataplexEntryGroupResourceArg(parser, verb, positional=True):
|
|
"""Adds a resource argument for a Dataplex EntryGroup."""
|
|
name = 'entry_group' if positional else '--entry-group'
|
|
return concept_parsers.ConceptParser.ForResource(
|
|
name,
|
|
GetDataplexEntryGroupResourceSpec(),
|
|
'Arguments and flags that define the Dataplex entry group you want {}'
|
|
.format(verb),
|
|
required=True,
|
|
).AddToParser(parser)
|
|
|
|
|
|
def AddDataplexAspectTypeResourceArg(parser, verb, positional=True):
|
|
"""Adds a resource argument for a Dataplex AspectType."""
|
|
name = 'aspect_type' if positional else '--aspect_type'
|
|
return concept_parsers.ConceptParser.ForResource(
|
|
name,
|
|
GetDataplexAspectTypeResourceSpec(),
|
|
'Arguments and flags that define the Dataplex aspect type you want {}'
|
|
.format(verb),
|
|
required=True,
|
|
).AddToParser(parser)
|
|
|
|
|
|
def AddDataplexEntryTypeResourceArg(parser, verb, positional=True):
|
|
"""Adds a resource argument for a Dataplex EntryType."""
|
|
name = 'entry_type' if positional else '--entry_type'
|
|
return concept_parsers.ConceptParser.ForResource(
|
|
name,
|
|
GetDataplexEntryTypeResourceSpec(),
|
|
'Arguments and flags that define the Dataplex entry type you want {}'
|
|
.format(verb),
|
|
required=True,
|
|
).AddToParser(parser)
|
|
|
|
|
|
def AddEntryTypeResourceArg(parser):
|
|
"""Adds a resource argument for a Dataplex EntryType."""
|
|
return concept_parsers.ConceptParser.ForResource(
|
|
'--entry-type',
|
|
GetEntryTypeResourceSpec(),
|
|
'Arguments and flags that define the Dataplex EntryType you want to'
|
|
' reference.',
|
|
required=True,
|
|
).AddToParser(parser)
|
|
|
|
|
|
def AddEntryResourceArg(parser):
|
|
"""Adds a resource argument for a Dataplex Entry."""
|
|
entry_data = yaml_data.ResourceYAMLData.FromPath('dataplex.entry')
|
|
return concept_parsers.ConceptParser.ForResource(
|
|
'entry',
|
|
concepts.ResourceSpec.FromYaml(entry_data.GetData(), is_positional=True),
|
|
'Arguments and flags that define the Dataplex Entry you want to'
|
|
' reference.',
|
|
required=True,
|
|
).AddToParser(parser)
|
|
|
|
|
|
def AddDataplexEntryLinkResourceArg(parser, verb, positional=True):
|
|
"""Adds a resource argument for a Dataplex EntryLink."""
|
|
name = 'entry_link' if positional else '--entry-link'
|
|
return concept_parsers.ConceptParser.ForResource(
|
|
name,
|
|
GetDataplexEntryLinkResourceSpec(),
|
|
'Arguments and flags that define the Dataplex entry link you want {}'
|
|
.format(verb),
|
|
required=True,
|
|
).AddToParser(parser)
|
|
|
|
|
|
def AddGovernanceRuleResourceArg(parser, verb, positional=True):
|
|
"""Adds a resource argument for a Dataplex GovernanceRule."""
|
|
name = 'governance_rule' if positional else '--governance_rule'
|
|
return concept_parsers.ConceptParser.ForResource(
|
|
name,
|
|
GetGovernanceRuleResourceSpec(),
|
|
'Arguments and flags that define the Dataplex governance rule you want {}'
|
|
.format(verb),
|
|
required=True,
|
|
).AddToParser(parser)
|
|
|
|
|
|
def AddGlossaryResourceArg(parser, verb, positional=True):
|
|
"""Adds a resource argument for a Dataplex Glossary."""
|
|
name = 'glossary' if positional else '--glossary'
|
|
return concept_parsers.ConceptParser.ForResource(
|
|
name,
|
|
GetGlossaryResourceSpec(),
|
|
'Arguments and flags that define the Dataplex Glossary you want {}'
|
|
.format(verb),
|
|
required=True,
|
|
).AddToParser(parser)
|
|
|
|
|
|
def AddGlossaryCategoryResourceArg(parser, verb, positional=True):
|
|
"""Adds a resource argument for a Dataplex Glossary Category."""
|
|
name = 'glossary_category' if positional else '--glossary_category'
|
|
return concept_parsers.ConceptParser.ForResource(
|
|
name,
|
|
GetGlossaryCategoryResourceSpec(),
|
|
'Arguments and flags that define the Dataplex Glossary Category you'
|
|
' want {}'.format(verb),
|
|
required=True,
|
|
).AddToParser(parser)
|
|
|
|
|
|
def AddGlossaryTermResourceArg(parser, verb, positional=True):
|
|
"""Adds a resource argument for a Dataplex Glossary Term."""
|
|
name = 'glossary_term' if positional else '--glossary_term'
|
|
return concept_parsers.ConceptParser.ForResource(
|
|
name,
|
|
GetGlossaryTermResourceSpec(),
|
|
'Arguments and flags that define the Dataplex Glossary Term you'
|
|
' want {}'.format(verb),
|
|
required=True,
|
|
).AddToParser(parser)
|
|
|
|
|
|
def AddEncryptionConfigResourceArg(parser, verb, positional=True):
|
|
"""Adds a resource argument for a Dataplex EncryptionConfig."""
|
|
name = 'encryption_config' if positional else '--encryption_config'
|
|
return concept_parsers.ConceptParser.ForResource(
|
|
name,
|
|
GetEncryptionConfigResourceSpec(),
|
|
'Arguments and flags that define the Dataplex EncryptionConfig you'
|
|
' want {}'.format(verb),
|
|
required=True,
|
|
).AddToParser(parser)
|
|
|
|
|
|
def AddParentEntryResourceArg(parser):
|
|
"""Adds a resource argument for a Dataplex Entry parent."""
|
|
entry_data = yaml_data.ResourceYAMLData.FromPath('dataplex.entry')
|
|
return concept_parsers.ConceptParser.ForResource(
|
|
'--parent-entry',
|
|
concepts.ResourceSpec.FromYaml(entry_data.GetData()),
|
|
'Arguments and flags that define the parent Entry you want to reference.',
|
|
# Parent Entry has to belong to the same EntryGroup as the Entry,
|
|
# therefore we disable the location and entry_group flags for the parent
|
|
# entry resource and set fallthrougs to use the same location and
|
|
# entry_group as for the Entry.
|
|
command_level_fallthroughs={
|
|
'location': ['--location'],
|
|
'entry_group': ['--entry_group'],
|
|
},
|
|
flag_name_overrides={
|
|
'location': '',
|
|
'entry_group': '',
|
|
},
|
|
).AddToParser(parser)
|
|
|
|
|
|
def AddMetadataJobResourceArg(parser, verb, positional=True):
|
|
"""Adds a resource argument for a Dataplex MetadataJob."""
|
|
name = 'metadata_job' if positional else '--metadata_job'
|
|
return concept_parsers.ConceptParser.ForResource(
|
|
name,
|
|
GetMetadataJobResourceSpec(),
|
|
'Arguments and flags that define the Dataplex metdata job you want {}'
|
|
.format(verb),
|
|
required=True,
|
|
).AddToParser(parser)
|