# Generated by ariadne-codegen
# Source: tools/graphql_codegen/artifacts/

from __future__ import annotations

from typing import List, Literal, Optional

from pydantic import Field

from wandb._pydantic import GQLResult, Typename

from .fragments import FileWithUrlFragment, PageInfoFragment


class ArtifactCollectionMembershipFileUrls(GQLResult):
    project: Optional[ArtifactCollectionMembershipFileUrlsProject]


class ArtifactCollectionMembershipFileUrlsProject(GQLResult):
    artifact_collection: Optional[
        ArtifactCollectionMembershipFileUrlsProjectArtifactCollection
    ] = Field(alias="artifactCollection")


class ArtifactCollectionMembershipFileUrlsProjectArtifactCollection(GQLResult):
    typename__: Typename[
        Literal["ArtifactCollection", "ArtifactPortfolio", "ArtifactSequence"]
    ]
    artifact_membership: Optional[
        ArtifactCollectionMembershipFileUrlsProjectArtifactCollectionArtifactMembership
    ] = Field(alias="artifactMembership")


class ArtifactCollectionMembershipFileUrlsProjectArtifactCollectionArtifactMembership(
    GQLResult
):
    files: Optional[
        ArtifactCollectionMembershipFileUrlsProjectArtifactCollectionArtifactMembershipFiles
    ]


class ArtifactCollectionMembershipFileUrlsProjectArtifactCollectionArtifactMembershipFiles(
    GQLResult
):
    page_info: PageInfoFragment = Field(alias="pageInfo")
    edges: List[
        ArtifactCollectionMembershipFileUrlsProjectArtifactCollectionArtifactMembershipFilesEdges
    ]


class ArtifactCollectionMembershipFileUrlsProjectArtifactCollectionArtifactMembershipFilesEdges(
    GQLResult
):
    node: Optional[FileWithUrlFragment]


ArtifactCollectionMembershipFileUrls.model_rebuild()
ArtifactCollectionMembershipFileUrlsProject.model_rebuild()
ArtifactCollectionMembershipFileUrlsProjectArtifactCollection.model_rebuild()
ArtifactCollectionMembershipFileUrlsProjectArtifactCollectionArtifactMembership.model_rebuild()
ArtifactCollectionMembershipFileUrlsProjectArtifactCollectionArtifactMembershipFiles.model_rebuild()
ArtifactCollectionMembershipFileUrlsProjectArtifactCollectionArtifactMembershipFilesEdges.model_rebuild()
