# A resource publication represents information about the publication of a resource.
# An instance of ResourcePublication, unlike ResourcePublicationV2, can be neither published or scheduled to be published.
#
# See ResourcePublicationV2 for more context.
type ResourcePublication {
    # Whether the resource publication is published. Also returns true if the resource publication is scheduled to be published.
    # If false, then the resource publication is neither published nor scheduled to be published.
    isPublished: Boolean!

    # The publication the resource publication is published to.
    publication: Publication!

    # The date that the resource publication was or is going to be published to the publication.
    publishDate: DateTime!

    # The resource published to the publication.
    publishable: Publishable!
}

# A resource publication represents information about the publication of a resource.
# Unlike ResourcePublication, an instance of ResourcePublicationV2 can't be unpublished. It must either be published or scheduled to be published.
#
# See ResourcePublication for more context.
type ResourcePublicationV2 {
    # Whether the resource publication is published. If true, then the resource publication is published to the publication.
    # If false, then the resource publication is staged to be published to the publication.
    isPublished: Boolean!

    # The publication the resource publication is published to.
    publication: Publication!

    # The date that the resource publication was or is going to be published to the publication.
    publishDate: DateTime

    # The resource published to the publication.
    publishable: Publishable!
}

# An auto-generated type for paginating through multiple ResourcePublications.
type ResourcePublicationConnection {
    # A list of edges.
    edges: [ResourcePublicationEdge!]!

    # A list of the nodes contained in ResourcePublicationEdge.
    nodes: [ResourcePublication!]!

    # Information to aid in pagination.
    pageInfo: PageInfo!
}

# An auto-generated type which holds one ResourcePublication and a cursor during pagination.
type ResourcePublicationEdge {
    # A cursor for use in pagination.
    cursor: String!

    # The item at the end of ResourcePublicationEdge.
    node: ResourcePublication!
}

# An auto-generated type for paginating through multiple ResourcePublicationV2s.
type ResourcePublicationV2Connection {
    # A list of edges.
    edges: [ResourcePublicationV2Edge!]!

    # A list of the nodes contained in ResourcePublicationV2Edge.
    nodes: [ResourcePublicationV2!]!

    # Information to aid in pagination.
    pageInfo: PageInfo!
}

# An auto-generated type which holds one ResourcePublicationV2 and a cursor during pagination.
type ResourcePublicationV2Edge {
    # A cursor for use in pagination.
    cursor: String!

    # The item at the end of ResourcePublicationV2Edge.
    node: ResourcePublicationV2!
}

# An auto-generated type for paginating through multiple Publications.
type PublicationConnection {
    # A list of edges.
    edges: [PublicationEdge!]!

    # A list of the nodes contained in PublicationEdge.
    nodes: [Publication!]!

    # Information to aid in pagination.
    pageInfo: PageInfo!
}

# An auto-generated type which holds one Publication and a cursor during pagination.
type PublicationEdge {
    # A cursor for use in pagination.
    cursor: String!

    # The item at the end of PublicationEdge.
    node: Publication!
}
