"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
Copyright 2016-2018, Pulumi Corporation.

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.
"""
import builtins
import google.protobuf.descriptor
import google.protobuf.message
import sys

if sys.version_info >= (3, 8):
    import typing as typing_extensions
else:
    import typing_extensions

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

@typing_extensions.final
class Alias(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    @typing_extensions.final
    class Spec(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        NAME_FIELD_NUMBER: builtins.int
        TYPE_FIELD_NUMBER: builtins.int
        STACK_FIELD_NUMBER: builtins.int
        PROJECT_FIELD_NUMBER: builtins.int
        PARENTURN_FIELD_NUMBER: builtins.int
        NOPARENT_FIELD_NUMBER: builtins.int
        name: builtins.str
        """The previous name of the resource.  If none is provided, we will use the current name."""
        type: builtins.str
        """The previous type of the resource. If none is provided, we will use the current resoource type."""
        stack: builtins.str
        """The previous stack of the resource. If not set, the current stack of the resource is used."""
        project: builtins.str
        """The previous project of the resource. If not set, the current project of the resource is used."""
        parentUrn: builtins.str
        """The urn of the previous parent."""
        noParent: builtins.bool
        """Used to indicate the resource previously had no parent. If false this property is ignored."""
        def __init__(
            self,
            *,
            name: builtins.str = ...,
            type: builtins.str = ...,
            stack: builtins.str = ...,
            project: builtins.str = ...,
            parentUrn: builtins.str = ...,
            noParent: builtins.bool = ...,
        ) -> None: ...
        def HasField(self, field_name: typing_extensions.Literal["noParent", b"noParent", "parent", b"parent", "parentUrn", b"parentUrn"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing_extensions.Literal["name", b"name", "noParent", b"noParent", "parent", b"parent", "parentUrn", b"parentUrn", "project", b"project", "stack", b"stack", "type", b"type"]) -> None: ...
        def WhichOneof(self, oneof_group: typing_extensions.Literal["parent", b"parent"]) -> typing_extensions.Literal["parentUrn", "noParent"] | None: ...

    URN_FIELD_NUMBER: builtins.int
    SPEC_FIELD_NUMBER: builtins.int
    urn: builtins.str
    """The previous urn to alias to."""
    @property
    def spec(self) -> global___Alias.Spec:
        """An alias specification."""
    def __init__(
        self,
        *,
        urn: builtins.str = ...,
        spec: global___Alias.Spec | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["alias", b"alias", "spec", b"spec", "urn", b"urn"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["alias", b"alias", "spec", b"spec", "urn", b"urn"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["alias", b"alias"]) -> typing_extensions.Literal["urn", "spec"] | None: ...

global___Alias = Alias
