"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import builtins
import google.protobuf.descriptor
import google.protobuf.message
import google.protobuf.struct_pb2
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 Spec(google.protobuf.message.Message):
    """//////////////////////////////////
    Spec represents a spec data model
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RESOURCE_SPECIFICATION_FIELD_NUMBER: builtins.int
    COMPONENT_SPECIFICATION_FIELD_NUMBER: builtins.int
    OPENAPI_SPECIFICATIONS_FIELD_NUMBER: builtins.int
    @property
    def resource_specification(self) -> google.protobuf.struct_pb2.Struct:
        """Spec resource specification"""
    @property
    def component_specification(self) -> google.protobuf.struct_pb2.Struct:
        """Spec component specification"""
    @property
    def openapi_specifications(self) -> google.protobuf.struct_pb2.Struct:
        """Spec openapi specification"""
    def __init__(
        self,
        *,
        resource_specification: google.protobuf.struct_pb2.Struct | None = ...,
        component_specification: google.protobuf.struct_pb2.Struct | None = ...,
        openapi_specifications: google.protobuf.struct_pb2.Struct | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["component_specification", b"component_specification", "openapi_specifications", b"openapi_specifications", "resource_specification", b"resource_specification"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["component_specification", b"component_specification", "openapi_specifications", b"openapi_specifications", "resource_specification", b"resource_specification"]) -> None: ...

global___Spec = Spec
