177 lines
5.0 KiB
Python
177 lines
5.0 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.
|
|
"""Flag helpers for the source-manager commands."""
|
|
|
|
from __future__ import absolute_import
|
|
from __future__ import division
|
|
from __future__ import unicode_literals
|
|
|
|
from googlecloudsdk.calliope import arg_parsers
|
|
|
|
|
|
def AddAllowMissing(
|
|
parser,
|
|
help_text="If set to true, and the resource is not found, the request will succeed but no action will be taken on the server.",
|
|
):
|
|
parser.add_argument(
|
|
"--allow-missing",
|
|
dest="allow_missing",
|
|
required=False,
|
|
default=False,
|
|
help=help_text,
|
|
action="store_true",
|
|
)
|
|
|
|
|
|
def AddValidateOnly(
|
|
parser,
|
|
help_text=(
|
|
"If set to true, the request is validated and the user is provided with"
|
|
" an expected result, but no actual change is made."
|
|
),
|
|
):
|
|
parser.add_argument(
|
|
"--validate-only",
|
|
dest="validate_only",
|
|
action="store_true",
|
|
required=False,
|
|
help=help_text,
|
|
)
|
|
|
|
|
|
def AddInstance(
|
|
parser,
|
|
help_text="A Secure Source Manager instance ID.",
|
|
):
|
|
parser.add_argument(
|
|
"--instance", dest="instance", required=True, help=help_text
|
|
)
|
|
|
|
|
|
def AddDescription(
|
|
parser,
|
|
help_text="Description of the repository. Cannot exceed 500 characters.",
|
|
):
|
|
parser.add_argument(
|
|
"--description", dest="description", required=False, help=help_text
|
|
)
|
|
|
|
|
|
def AddInitialConfigGroup(
|
|
parser, help_text="Repository initialization configuration."
|
|
):
|
|
"""Add flags for initial config."""
|
|
group = parser.add_group(required=False, help=help_text)
|
|
group.add_argument(
|
|
"--default-branch",
|
|
dest="default_branch",
|
|
required=False,
|
|
help="Default branch name of the repository.",
|
|
)
|
|
group.add_argument(
|
|
"--gitignores",
|
|
dest="gitignores",
|
|
metavar="GITIGNORES",
|
|
type=arg_parsers.ArgList(),
|
|
required=False,
|
|
default=[],
|
|
help=(
|
|
"List of gitignore template names user can choose from. Full list can"
|
|
" be found here:"
|
|
" https://cloud.google.com/secure-source-manager/docs/reference/rest/v1/projects.locations.repositories#InitialConfig"
|
|
),
|
|
)
|
|
group.add_argument(
|
|
"--license",
|
|
dest="license",
|
|
required=False,
|
|
help=(
|
|
"License template name user can choose from. Full list can be found"
|
|
" here:"
|
|
" https://cloud.google.com/secure-source-manager/docs/reference/rest/v1/projects.locations.repositories#InitialConfig"
|
|
),
|
|
)
|
|
group.add_argument(
|
|
"--readme",
|
|
dest="readme",
|
|
required=False,
|
|
help="README template name. Valid template name(s) are: default.",
|
|
)
|
|
|
|
|
|
def AddKmsKey(parser, help_text="KMS key used to encrypt instance optionally."):
|
|
parser.add_argument(
|
|
"--kms-key", dest="kms_key", required=False, help=help_text
|
|
)
|
|
|
|
|
|
def AddMaxWait(
|
|
parser,
|
|
default_max_wait,
|
|
help_text="Time to synchronously wait for the operation to complete, after which the operation continues asynchronously. Ignored if `--no-async` isn't specified. See $ gcloud topic datetimes for information on time formats.",
|
|
):
|
|
parser.add_argument(
|
|
"--max-wait",
|
|
dest="max_wait",
|
|
required=False,
|
|
default=default_max_wait,
|
|
help=help_text,
|
|
type=arg_parsers.Duration(),
|
|
)
|
|
|
|
|
|
def AddPrivateConfigGroup(parser, help_text="Private instance configuration."):
|
|
"""Add flags for private config."""
|
|
group = parser.add_group(required=False, help=help_text)
|
|
group.add_argument(
|
|
"--is-private",
|
|
dest="is_private",
|
|
# Disables autogeneration of the inverted --no-is-private flag.
|
|
action="store_const",
|
|
const=True,
|
|
required=True,
|
|
help="Bool indicator for private instance.",
|
|
)
|
|
group.add_argument(
|
|
"--ca-pool",
|
|
dest="ca_pool",
|
|
required=False,
|
|
help="CA Pool path for private instance.",
|
|
)
|
|
group.add_argument(
|
|
"--psc-allowed-projects",
|
|
dest="psc_allowed_projects",
|
|
required=False,
|
|
metavar="PROJECTS",
|
|
type=arg_parsers.ArgList(),
|
|
help=(
|
|
"List of additional projects allowed to connect to the instance via"
|
|
" private service connect."
|
|
),
|
|
)
|
|
|
|
|
|
def AddEnableWorkforceIdentityFederation(
|
|
parser,
|
|
help_text="Bool indicator for workforce identity federation instance.",
|
|
):
|
|
parser.add_argument(
|
|
"--enable-workforce-identity-federation",
|
|
dest="enable_workforce_identity_federation",
|
|
action="store_true",
|
|
required=False,
|
|
help=help_text,
|
|
)
|