// Code generated by github.com/Khan/genqlient, DO NOT EDIT.

package graphql

import (
	"context"
	"encoding/json"
	"fmt"
	"time"

	"github.com/Khan/genqlient/graphql"
)

// CancelJobJobTypeCommandCancelJobTypeCommandCancelPayload includes the requested fields of the GraphQL type JobTypeCommandCancelPayload.
// The GraphQL type's documentation follows.
//
// Autogenerated return type of JobTypeCommandCancel.
type CancelJobJobTypeCommandCancelJobTypeCommandCancelPayload struct {
	// A unique identifier for the client performing the mutation.
	ClientMutationId *string                                                                `json:"clientMutationId"`
	JobTypeCommand   CancelJobJobTypeCommandCancelJobTypeCommandCancelPayloadJobTypeCommand `json:"jobTypeCommand"`
}

// GetClientMutationId returns CancelJobJobTypeCommandCancelJobTypeCommandCancelPayload.ClientMutationId, and is useful for accessing the field via an interface.
func (v *CancelJobJobTypeCommandCancelJobTypeCommandCancelPayload) GetClientMutationId() *string {
	return v.ClientMutationId
}

// GetJobTypeCommand returns CancelJobJobTypeCommandCancelJobTypeCommandCancelPayload.JobTypeCommand, and is useful for accessing the field via an interface.
func (v *CancelJobJobTypeCommandCancelJobTypeCommandCancelPayload) GetJobTypeCommand() CancelJobJobTypeCommandCancelJobTypeCommandCancelPayloadJobTypeCommand {
	return v.JobTypeCommand
}

// CancelJobJobTypeCommandCancelJobTypeCommandCancelPayloadJobTypeCommand includes the requested fields of the GraphQL type JobTypeCommand.
// The GraphQL type's documentation follows.
//
// A type of job that runs a command on an agent
type CancelJobJobTypeCommandCancelJobTypeCommandCancelPayloadJobTypeCommand struct {
	Id string `json:"id"`
	// The UUID for this job
	Uuid string `json:"uuid"`
	// The state of the job
	State JobStates `json:"state"`
	// The URL for the job
	Url string `json:"url"`
}

// GetId returns CancelJobJobTypeCommandCancelJobTypeCommandCancelPayloadJobTypeCommand.Id, and is useful for accessing the field via an interface.
func (v *CancelJobJobTypeCommandCancelJobTypeCommandCancelPayloadJobTypeCommand) GetId() string {
	return v.Id
}

// GetUuid returns CancelJobJobTypeCommandCancelJobTypeCommandCancelPayloadJobTypeCommand.Uuid, and is useful for accessing the field via an interface.
func (v *CancelJobJobTypeCommandCancelJobTypeCommandCancelPayloadJobTypeCommand) GetUuid() string {
	return v.Uuid
}

// GetState returns CancelJobJobTypeCommandCancelJobTypeCommandCancelPayloadJobTypeCommand.State, and is useful for accessing the field via an interface.
func (v *CancelJobJobTypeCommandCancelJobTypeCommandCancelPayloadJobTypeCommand) GetState() JobStates {
	return v.State
}

// GetUrl returns CancelJobJobTypeCommandCancelJobTypeCommandCancelPayloadJobTypeCommand.Url, and is useful for accessing the field via an interface.
func (v *CancelJobJobTypeCommandCancelJobTypeCommandCancelPayloadJobTypeCommand) GetUrl() string {
	return v.Url
}

// CancelJobResponse is returned by CancelJob on success.
type CancelJobResponse struct {
	// Cancel a job.
	JobTypeCommandCancel *CancelJobJobTypeCommandCancelJobTypeCommandCancelPayload `json:"jobTypeCommandCancel"`
}

// GetJobTypeCommandCancel returns CancelJobResponse.JobTypeCommandCancel, and is useful for accessing the field via an interface.
func (v *CancelJobResponse) GetJobTypeCommandCancel() *CancelJobJobTypeCommandCancelJobTypeCommandCancelPayload {
	return v.JobTypeCommandCancel
}

// FindClustersOrganization includes the requested fields of the GraphQL type Organization.
// The GraphQL type's documentation follows.
//
// An organization
type FindClustersOrganization struct {
	// Returns clusters for an Organization
	Clusters *FindClustersOrganizationClustersClusterConnection `json:"clusters"`
}

// GetClusters returns FindClustersOrganization.Clusters, and is useful for accessing the field via an interface.
func (v *FindClustersOrganization) GetClusters() *FindClustersOrganizationClustersClusterConnection {
	return v.Clusters
}

// FindClustersOrganizationClustersClusterConnection includes the requested fields of the GraphQL type ClusterConnection.
type FindClustersOrganizationClustersClusterConnection struct {
	Edges    []*FindClustersOrganizationClustersClusterConnectionEdgesClusterEdge `json:"edges"`
	PageInfo *FindClustersOrganizationClustersClusterConnectionPageInfo           `json:"pageInfo"`
}

// GetEdges returns FindClustersOrganizationClustersClusterConnection.Edges, and is useful for accessing the field via an interface.
func (v *FindClustersOrganizationClustersClusterConnection) GetEdges() []*FindClustersOrganizationClustersClusterConnectionEdgesClusterEdge {
	return v.Edges
}

// GetPageInfo returns FindClustersOrganizationClustersClusterConnection.PageInfo, and is useful for accessing the field via an interface.
func (v *FindClustersOrganizationClustersClusterConnection) GetPageInfo() *FindClustersOrganizationClustersClusterConnectionPageInfo {
	return v.PageInfo
}

// FindClustersOrganizationClustersClusterConnectionEdgesClusterEdge includes the requested fields of the GraphQL type ClusterEdge.
type FindClustersOrganizationClustersClusterConnectionEdgesClusterEdge struct {
	Node *FindClustersOrganizationClustersClusterConnectionEdgesClusterEdgeNodeCluster `json:"node"`
}

// GetNode returns FindClustersOrganizationClustersClusterConnectionEdgesClusterEdge.Node, and is useful for accessing the field via an interface.
func (v *FindClustersOrganizationClustersClusterConnectionEdgesClusterEdge) GetNode() *FindClustersOrganizationClustersClusterConnectionEdgesClusterEdgeNodeCluster {
	return v.Node
}

// FindClustersOrganizationClustersClusterConnectionEdgesClusterEdgeNodeCluster includes the requested fields of the GraphQL type Cluster.
type FindClustersOrganizationClustersClusterConnectionEdgesClusterEdgeNodeCluster struct {
	Id string `json:"id"`
	// Name of the cluster
	Name string `json:"name"`
}

// GetId returns FindClustersOrganizationClustersClusterConnectionEdgesClusterEdgeNodeCluster.Id, and is useful for accessing the field via an interface.
func (v *FindClustersOrganizationClustersClusterConnectionEdgesClusterEdgeNodeCluster) GetId() string {
	return v.Id
}

// GetName returns FindClustersOrganizationClustersClusterConnectionEdgesClusterEdgeNodeCluster.Name, and is useful for accessing the field via an interface.
func (v *FindClustersOrganizationClustersClusterConnectionEdgesClusterEdgeNodeCluster) GetName() string {
	return v.Name
}

// FindClustersOrganizationClustersClusterConnectionPageInfo includes the requested fields of the GraphQL type PageInfo.
// The GraphQL type's documentation follows.
//
// Information about pagination in a connection.
type FindClustersOrganizationClustersClusterConnectionPageInfo struct {
	// When paginating forwards, are there more items?
	HasNextPage bool `json:"hasNextPage"`
	// When paginating forwards, the cursor to continue.
	EndCursor *string `json:"endCursor"`
}

// GetHasNextPage returns FindClustersOrganizationClustersClusterConnectionPageInfo.HasNextPage, and is useful for accessing the field via an interface.
func (v *FindClustersOrganizationClustersClusterConnectionPageInfo) GetHasNextPage() bool {
	return v.HasNextPage
}

// GetEndCursor returns FindClustersOrganizationClustersClusterConnectionPageInfo.EndCursor, and is useful for accessing the field via an interface.
func (v *FindClustersOrganizationClustersClusterConnectionPageInfo) GetEndCursor() *string {
	return v.EndCursor
}

// FindClustersResponse is returned by FindClusters on success.
type FindClustersResponse struct {
	// Find an organization
	Organization *FindClustersOrganization `json:"organization"`
}

// GetOrganization returns FindClustersResponse.Organization, and is useful for accessing the field via an interface.
func (v *FindClustersResponse) GetOrganization() *FindClustersOrganization { return v.Organization }

// FindQueuesForClusterNode includes the requested fields of the GraphQL interface Node.
//
// FindQueuesForClusterNode is implemented by the following types:
// FindQueuesForClusterNodeAPIAccessToken
// FindQueuesForClusterNodeAPIAccessTokenCode
// FindQueuesForClusterNodeAPIApplication
// FindQueuesForClusterNodeAgent
// FindQueuesForClusterNodeAgentToken
// FindQueuesForClusterNodeAnnotation
// FindQueuesForClusterNodeArtifact
// FindQueuesForClusterNodeAuditEvent
// FindQueuesForClusterNodeAuthorizationBitbucket
// FindQueuesForClusterNodeAuthorizationGitHub
// FindQueuesForClusterNodeAuthorizationGitHubApp
// FindQueuesForClusterNodeAuthorizationGitHubEnterprise
// FindQueuesForClusterNodeAuthorizationGoogle
// FindQueuesForClusterNodeAuthorizationSAML
// FindQueuesForClusterNodeBuild
// FindQueuesForClusterNodeChangelog
// FindQueuesForClusterNodeCluster
// FindQueuesForClusterNodeClusterQueue
// FindQueuesForClusterNodeClusterQueueToken
// FindQueuesForClusterNodeClusterToken
// FindQueuesForClusterNodeEmail
// FindQueuesForClusterNodeJobEventAssigned
// FindQueuesForClusterNodeJobEventBuildStepUploadCreated
// FindQueuesForClusterNodeJobEventCanceled
// FindQueuesForClusterNodeJobEventFinished
// FindQueuesForClusterNodeJobEventGeneric
// FindQueuesForClusterNodeJobEventRetried
// FindQueuesForClusterNodeJobEventTimedOut
// FindQueuesForClusterNodeJobTypeBlock
// FindQueuesForClusterNodeJobTypeCommand
// FindQueuesForClusterNodeJobTypeTrigger
// FindQueuesForClusterNodeJobTypeWait
// FindQueuesForClusterNodeNotificationServiceSlack
// FindQueuesForClusterNodeOrganization
// FindQueuesForClusterNodeOrganizationBanner
// FindQueuesForClusterNodeOrganizationInvitation
// FindQueuesForClusterNodeOrganizationMember
// FindQueuesForClusterNodePipeline
// FindQueuesForClusterNodePipelineMetric
// FindQueuesForClusterNodePipelineSchedule
// FindQueuesForClusterNodePipelineTemplate
// FindQueuesForClusterNodeSSOProviderGitHubApp
// FindQueuesForClusterNodeSSOProviderGoogleGSuite
// FindQueuesForClusterNodeSSOProviderSAML
// FindQueuesForClusterNodeSecret
// FindQueuesForClusterNodeSuite
// FindQueuesForClusterNodeTeam
// FindQueuesForClusterNodeTeamMember
// FindQueuesForClusterNodeTeamPipeline
// FindQueuesForClusterNodeTeamSuite
// FindQueuesForClusterNodeUser
// FindQueuesForClusterNodeViewer
// The GraphQL type's documentation follows.
//
// An object with an ID.
type FindQueuesForClusterNode interface {
	implementsGraphQLInterfaceFindQueuesForClusterNode()
	// GetTypename returns the receiver's concrete GraphQL type-name (see interface doc for possible values).
	GetTypename() *string
}

func (v *FindQueuesForClusterNodeAPIAccessToken) implementsGraphQLInterfaceFindQueuesForClusterNode() {
}
func (v *FindQueuesForClusterNodeAPIAccessTokenCode) implementsGraphQLInterfaceFindQueuesForClusterNode() {
}
func (v *FindQueuesForClusterNodeAPIApplication) implementsGraphQLInterfaceFindQueuesForClusterNode() {
}
func (v *FindQueuesForClusterNodeAgent) implementsGraphQLInterfaceFindQueuesForClusterNode()      {}
func (v *FindQueuesForClusterNodeAgentToken) implementsGraphQLInterfaceFindQueuesForClusterNode() {}
func (v *FindQueuesForClusterNodeAnnotation) implementsGraphQLInterfaceFindQueuesForClusterNode() {}
func (v *FindQueuesForClusterNodeArtifact) implementsGraphQLInterfaceFindQueuesForClusterNode()   {}
func (v *FindQueuesForClusterNodeAuditEvent) implementsGraphQLInterfaceFindQueuesForClusterNode() {}
func (v *FindQueuesForClusterNodeAuthorizationBitbucket) implementsGraphQLInterfaceFindQueuesForClusterNode() {
}
func (v *FindQueuesForClusterNodeAuthorizationGitHub) implementsGraphQLInterfaceFindQueuesForClusterNode() {
}
func (v *FindQueuesForClusterNodeAuthorizationGitHubApp) implementsGraphQLInterfaceFindQueuesForClusterNode() {
}
func (v *FindQueuesForClusterNodeAuthorizationGitHubEnterprise) implementsGraphQLInterfaceFindQueuesForClusterNode() {
}
func (v *FindQueuesForClusterNodeAuthorizationGoogle) implementsGraphQLInterfaceFindQueuesForClusterNode() {
}
func (v *FindQueuesForClusterNodeAuthorizationSAML) implementsGraphQLInterfaceFindQueuesForClusterNode() {
}
func (v *FindQueuesForClusterNodeBuild) implementsGraphQLInterfaceFindQueuesForClusterNode()        {}
func (v *FindQueuesForClusterNodeChangelog) implementsGraphQLInterfaceFindQueuesForClusterNode()    {}
func (v *FindQueuesForClusterNodeCluster) implementsGraphQLInterfaceFindQueuesForClusterNode()      {}
func (v *FindQueuesForClusterNodeClusterQueue) implementsGraphQLInterfaceFindQueuesForClusterNode() {}
func (v *FindQueuesForClusterNodeClusterQueueToken) implementsGraphQLInterfaceFindQueuesForClusterNode() {
}
func (v *FindQueuesForClusterNodeClusterToken) implementsGraphQLInterfaceFindQueuesForClusterNode() {}
func (v *FindQueuesForClusterNodeEmail) implementsGraphQLInterfaceFindQueuesForClusterNode()        {}
func (v *FindQueuesForClusterNodeJobEventAssigned) implementsGraphQLInterfaceFindQueuesForClusterNode() {
}
func (v *FindQueuesForClusterNodeJobEventBuildStepUploadCreated) implementsGraphQLInterfaceFindQueuesForClusterNode() {
}
func (v *FindQueuesForClusterNodeJobEventCanceled) implementsGraphQLInterfaceFindQueuesForClusterNode() {
}
func (v *FindQueuesForClusterNodeJobEventFinished) implementsGraphQLInterfaceFindQueuesForClusterNode() {
}
func (v *FindQueuesForClusterNodeJobEventGeneric) implementsGraphQLInterfaceFindQueuesForClusterNode() {
}
func (v *FindQueuesForClusterNodeJobEventRetried) implementsGraphQLInterfaceFindQueuesForClusterNode() {
}
func (v *FindQueuesForClusterNodeJobEventTimedOut) implementsGraphQLInterfaceFindQueuesForClusterNode() {
}
func (v *FindQueuesForClusterNodeJobTypeBlock) implementsGraphQLInterfaceFindQueuesForClusterNode() {}
func (v *FindQueuesForClusterNodeJobTypeCommand) implementsGraphQLInterfaceFindQueuesForClusterNode() {
}
func (v *FindQueuesForClusterNodeJobTypeTrigger) implementsGraphQLInterfaceFindQueuesForClusterNode() {
}
func (v *FindQueuesForClusterNodeJobTypeWait) implementsGraphQLInterfaceFindQueuesForClusterNode() {}
func (v *FindQueuesForClusterNodeNotificationServiceSlack) implementsGraphQLInterfaceFindQueuesForClusterNode() {
}
func (v *FindQueuesForClusterNodeOrganization) implementsGraphQLInterfaceFindQueuesForClusterNode() {}
func (v *FindQueuesForClusterNodeOrganizationBanner) implementsGraphQLInterfaceFindQueuesForClusterNode() {
}
func (v *FindQueuesForClusterNodeOrganizationInvitation) implementsGraphQLInterfaceFindQueuesForClusterNode() {
}
func (v *FindQueuesForClusterNodeOrganizationMember) implementsGraphQLInterfaceFindQueuesForClusterNode() {
}
func (v *FindQueuesForClusterNodePipeline) implementsGraphQLInterfaceFindQueuesForClusterNode() {}
func (v *FindQueuesForClusterNodePipelineMetric) implementsGraphQLInterfaceFindQueuesForClusterNode() {
}
func (v *FindQueuesForClusterNodePipelineSchedule) implementsGraphQLInterfaceFindQueuesForClusterNode() {
}
func (v *FindQueuesForClusterNodePipelineTemplate) implementsGraphQLInterfaceFindQueuesForClusterNode() {
}
func (v *FindQueuesForClusterNodeSSOProviderGitHubApp) implementsGraphQLInterfaceFindQueuesForClusterNode() {
}
func (v *FindQueuesForClusterNodeSSOProviderGoogleGSuite) implementsGraphQLInterfaceFindQueuesForClusterNode() {
}
func (v *FindQueuesForClusterNodeSSOProviderSAML) implementsGraphQLInterfaceFindQueuesForClusterNode() {
}
func (v *FindQueuesForClusterNodeSecret) implementsGraphQLInterfaceFindQueuesForClusterNode()       {}
func (v *FindQueuesForClusterNodeSuite) implementsGraphQLInterfaceFindQueuesForClusterNode()        {}
func (v *FindQueuesForClusterNodeTeam) implementsGraphQLInterfaceFindQueuesForClusterNode()         {}
func (v *FindQueuesForClusterNodeTeamMember) implementsGraphQLInterfaceFindQueuesForClusterNode()   {}
func (v *FindQueuesForClusterNodeTeamPipeline) implementsGraphQLInterfaceFindQueuesForClusterNode() {}
func (v *FindQueuesForClusterNodeTeamSuite) implementsGraphQLInterfaceFindQueuesForClusterNode()    {}
func (v *FindQueuesForClusterNodeUser) implementsGraphQLInterfaceFindQueuesForClusterNode()         {}
func (v *FindQueuesForClusterNodeViewer) implementsGraphQLInterfaceFindQueuesForClusterNode()       {}

func __unmarshalFindQueuesForClusterNode(b []byte, v *FindQueuesForClusterNode) error {
	if string(b) == "null" {
		return nil
	}

	var tn struct {
		TypeName string `json:"__typename"`
	}
	err := json.Unmarshal(b, &tn)
	if err != nil {
		return err
	}

	switch tn.TypeName {
	case "APIAccessToken":
		*v = new(FindQueuesForClusterNodeAPIAccessToken)
		return json.Unmarshal(b, *v)
	case "APIAccessTokenCode":
		*v = new(FindQueuesForClusterNodeAPIAccessTokenCode)
		return json.Unmarshal(b, *v)
	case "APIApplication":
		*v = new(FindQueuesForClusterNodeAPIApplication)
		return json.Unmarshal(b, *v)
	case "Agent":
		*v = new(FindQueuesForClusterNodeAgent)
		return json.Unmarshal(b, *v)
	case "AgentToken":
		*v = new(FindQueuesForClusterNodeAgentToken)
		return json.Unmarshal(b, *v)
	case "Annotation":
		*v = new(FindQueuesForClusterNodeAnnotation)
		return json.Unmarshal(b, *v)
	case "Artifact":
		*v = new(FindQueuesForClusterNodeArtifact)
		return json.Unmarshal(b, *v)
	case "AuditEvent":
		*v = new(FindQueuesForClusterNodeAuditEvent)
		return json.Unmarshal(b, *v)
	case "AuthorizationBitbucket":
		*v = new(FindQueuesForClusterNodeAuthorizationBitbucket)
		return json.Unmarshal(b, *v)
	case "AuthorizationGitHub":
		*v = new(FindQueuesForClusterNodeAuthorizationGitHub)
		return json.Unmarshal(b, *v)
	case "AuthorizationGitHubApp":
		*v = new(FindQueuesForClusterNodeAuthorizationGitHubApp)
		return json.Unmarshal(b, *v)
	case "AuthorizationGitHubEnterprise":
		*v = new(FindQueuesForClusterNodeAuthorizationGitHubEnterprise)
		return json.Unmarshal(b, *v)
	case "AuthorizationGoogle":
		*v = new(FindQueuesForClusterNodeAuthorizationGoogle)
		return json.Unmarshal(b, *v)
	case "AuthorizationSAML":
		*v = new(FindQueuesForClusterNodeAuthorizationSAML)
		return json.Unmarshal(b, *v)
	case "Build":
		*v = new(FindQueuesForClusterNodeBuild)
		return json.Unmarshal(b, *v)
	case "Changelog":
		*v = new(FindQueuesForClusterNodeChangelog)
		return json.Unmarshal(b, *v)
	case "Cluster":
		*v = new(FindQueuesForClusterNodeCluster)
		return json.Unmarshal(b, *v)
	case "ClusterQueue":
		*v = new(FindQueuesForClusterNodeClusterQueue)
		return json.Unmarshal(b, *v)
	case "ClusterQueueToken":
		*v = new(FindQueuesForClusterNodeClusterQueueToken)
		return json.Unmarshal(b, *v)
	case "ClusterToken":
		*v = new(FindQueuesForClusterNodeClusterToken)
		return json.Unmarshal(b, *v)
	case "Email":
		*v = new(FindQueuesForClusterNodeEmail)
		return json.Unmarshal(b, *v)
	case "JobEventAssigned":
		*v = new(FindQueuesForClusterNodeJobEventAssigned)
		return json.Unmarshal(b, *v)
	case "JobEventBuildStepUploadCreated":
		*v = new(FindQueuesForClusterNodeJobEventBuildStepUploadCreated)
		return json.Unmarshal(b, *v)
	case "JobEventCanceled":
		*v = new(FindQueuesForClusterNodeJobEventCanceled)
		return json.Unmarshal(b, *v)
	case "JobEventFinished":
		*v = new(FindQueuesForClusterNodeJobEventFinished)
		return json.Unmarshal(b, *v)
	case "JobEventGeneric":
		*v = new(FindQueuesForClusterNodeJobEventGeneric)
		return json.Unmarshal(b, *v)
	case "JobEventRetried":
		*v = new(FindQueuesForClusterNodeJobEventRetried)
		return json.Unmarshal(b, *v)
	case "JobEventTimedOut":
		*v = new(FindQueuesForClusterNodeJobEventTimedOut)
		return json.Unmarshal(b, *v)
	case "JobTypeBlock":
		*v = new(FindQueuesForClusterNodeJobTypeBlock)
		return json.Unmarshal(b, *v)
	case "JobTypeCommand":
		*v = new(FindQueuesForClusterNodeJobTypeCommand)
		return json.Unmarshal(b, *v)
	case "JobTypeTrigger":
		*v = new(FindQueuesForClusterNodeJobTypeTrigger)
		return json.Unmarshal(b, *v)
	case "JobTypeWait":
		*v = new(FindQueuesForClusterNodeJobTypeWait)
		return json.Unmarshal(b, *v)
	case "NotificationServiceSlack":
		*v = new(FindQueuesForClusterNodeNotificationServiceSlack)
		return json.Unmarshal(b, *v)
	case "Organization":
		*v = new(FindQueuesForClusterNodeOrganization)
		return json.Unmarshal(b, *v)
	case "OrganizationBanner":
		*v = new(FindQueuesForClusterNodeOrganizationBanner)
		return json.Unmarshal(b, *v)
	case "OrganizationInvitation":
		*v = new(FindQueuesForClusterNodeOrganizationInvitation)
		return json.Unmarshal(b, *v)
	case "OrganizationMember":
		*v = new(FindQueuesForClusterNodeOrganizationMember)
		return json.Unmarshal(b, *v)
	case "Pipeline":
		*v = new(FindQueuesForClusterNodePipeline)
		return json.Unmarshal(b, *v)
	case "PipelineMetric":
		*v = new(FindQueuesForClusterNodePipelineMetric)
		return json.Unmarshal(b, *v)
	case "PipelineSchedule":
		*v = new(FindQueuesForClusterNodePipelineSchedule)
		return json.Unmarshal(b, *v)
	case "PipelineTemplate":
		*v = new(FindQueuesForClusterNodePipelineTemplate)
		return json.Unmarshal(b, *v)
	case "SSOProviderGitHubApp":
		*v = new(FindQueuesForClusterNodeSSOProviderGitHubApp)
		return json.Unmarshal(b, *v)
	case "SSOProviderGoogleGSuite":
		*v = new(FindQueuesForClusterNodeSSOProviderGoogleGSuite)
		return json.Unmarshal(b, *v)
	case "SSOProviderSAML":
		*v = new(FindQueuesForClusterNodeSSOProviderSAML)
		return json.Unmarshal(b, *v)
	case "Secret":
		*v = new(FindQueuesForClusterNodeSecret)
		return json.Unmarshal(b, *v)
	case "Suite":
		*v = new(FindQueuesForClusterNodeSuite)
		return json.Unmarshal(b, *v)
	case "Team":
		*v = new(FindQueuesForClusterNodeTeam)
		return json.Unmarshal(b, *v)
	case "TeamMember":
		*v = new(FindQueuesForClusterNodeTeamMember)
		return json.Unmarshal(b, *v)
	case "TeamPipeline":
		*v = new(FindQueuesForClusterNodeTeamPipeline)
		return json.Unmarshal(b, *v)
	case "TeamSuite":
		*v = new(FindQueuesForClusterNodeTeamSuite)
		return json.Unmarshal(b, *v)
	case "User":
		*v = new(FindQueuesForClusterNodeUser)
		return json.Unmarshal(b, *v)
	case "Viewer":
		*v = new(FindQueuesForClusterNodeViewer)
		return json.Unmarshal(b, *v)
	case "":
		return fmt.Errorf(
			"response was missing Node.__typename")
	default:
		return fmt.Errorf(
			`unexpected concrete type for FindQueuesForClusterNode: "%v"`, tn.TypeName)
	}
}

func __marshalFindQueuesForClusterNode(v *FindQueuesForClusterNode) ([]byte, error) {

	var typename string
	switch v := (*v).(type) {
	case *FindQueuesForClusterNodeAPIAccessToken:
		typename = "APIAccessToken"

		result := struct {
			TypeName string `json:"__typename"`
			*FindQueuesForClusterNodeAPIAccessToken
		}{typename, v}
		return json.Marshal(result)
	case *FindQueuesForClusterNodeAPIAccessTokenCode:
		typename = "APIAccessTokenCode"

		result := struct {
			TypeName string `json:"__typename"`
			*FindQueuesForClusterNodeAPIAccessTokenCode
		}{typename, v}
		return json.Marshal(result)
	case *FindQueuesForClusterNodeAPIApplication:
		typename = "APIApplication"

		result := struct {
			TypeName string `json:"__typename"`
			*FindQueuesForClusterNodeAPIApplication
		}{typename, v}
		return json.Marshal(result)
	case *FindQueuesForClusterNodeAgent:
		typename = "Agent"

		result := struct {
			TypeName string `json:"__typename"`
			*FindQueuesForClusterNodeAgent
		}{typename, v}
		return json.Marshal(result)
	case *FindQueuesForClusterNodeAgentToken:
		typename = "AgentToken"

		result := struct {
			TypeName string `json:"__typename"`
			*FindQueuesForClusterNodeAgentToken
		}{typename, v}
		return json.Marshal(result)
	case *FindQueuesForClusterNodeAnnotation:
		typename = "Annotation"

		result := struct {
			TypeName string `json:"__typename"`
			*FindQueuesForClusterNodeAnnotation
		}{typename, v}
		return json.Marshal(result)
	case *FindQueuesForClusterNodeArtifact:
		typename = "Artifact"

		result := struct {
			TypeName string `json:"__typename"`
			*FindQueuesForClusterNodeArtifact
		}{typename, v}
		return json.Marshal(result)
	case *FindQueuesForClusterNodeAuditEvent:
		typename = "AuditEvent"

		result := struct {
			TypeName string `json:"__typename"`
			*FindQueuesForClusterNodeAuditEvent
		}{typename, v}
		return json.Marshal(result)
	case *FindQueuesForClusterNodeAuthorizationBitbucket:
		typename = "AuthorizationBitbucket"

		result := struct {
			TypeName string `json:"__typename"`
			*FindQueuesForClusterNodeAuthorizationBitbucket
		}{typename, v}
		return json.Marshal(result)
	case *FindQueuesForClusterNodeAuthorizationGitHub:
		typename = "AuthorizationGitHub"

		result := struct {
			TypeName string `json:"__typename"`
			*FindQueuesForClusterNodeAuthorizationGitHub
		}{typename, v}
		return json.Marshal(result)
	case *FindQueuesForClusterNodeAuthorizationGitHubApp:
		typename = "AuthorizationGitHubApp"

		result := struct {
			TypeName string `json:"__typename"`
			*FindQueuesForClusterNodeAuthorizationGitHubApp
		}{typename, v}
		return json.Marshal(result)
	case *FindQueuesForClusterNodeAuthorizationGitHubEnterprise:
		typename = "AuthorizationGitHubEnterprise"

		result := struct {
			TypeName string `json:"__typename"`
			*FindQueuesForClusterNodeAuthorizationGitHubEnterprise
		}{typename, v}
		return json.Marshal(result)
	case *FindQueuesForClusterNodeAuthorizationGoogle:
		typename = "AuthorizationGoogle"

		result := struct {
			TypeName string `json:"__typename"`
			*FindQueuesForClusterNodeAuthorizationGoogle
		}{typename, v}
		return json.Marshal(result)
	case *FindQueuesForClusterNodeAuthorizationSAML:
		typename = "AuthorizationSAML"

		result := struct {
			TypeName string `json:"__typename"`
			*FindQueuesForClusterNodeAuthorizationSAML
		}{typename, v}
		return json.Marshal(result)
	case *FindQueuesForClusterNodeBuild:
		typename = "Build"

		result := struct {
			TypeName string `json:"__typename"`
			*FindQueuesForClusterNodeBuild
		}{typename, v}
		return json.Marshal(result)
	case *FindQueuesForClusterNodeChangelog:
		typename = "Changelog"

		result := struct {
			TypeName string `json:"__typename"`
			*FindQueuesForClusterNodeChangelog
		}{typename, v}
		return json.Marshal(result)
	case *FindQueuesForClusterNodeCluster:
		typename = "Cluster"

		result := struct {
			TypeName string `json:"__typename"`
			*FindQueuesForClusterNodeCluster
		}{typename, v}
		return json.Marshal(result)
	case *FindQueuesForClusterNodeClusterQueue:
		typename = "ClusterQueue"

		result := struct {
			TypeName string `json:"__typename"`
			*FindQueuesForClusterNodeClusterQueue
		}{typename, v}
		return json.Marshal(result)
	case *FindQueuesForClusterNodeClusterQueueToken:
		typename = "ClusterQueueToken"

		result := struct {
			TypeName string `json:"__typename"`
			*FindQueuesForClusterNodeClusterQueueToken
		}{typename, v}
		return json.Marshal(result)
	case *FindQueuesForClusterNodeClusterToken:
		typename = "ClusterToken"

		result := struct {
			TypeName string `json:"__typename"`
			*FindQueuesForClusterNodeClusterToken
		}{typename, v}
		return json.Marshal(result)
	case *FindQueuesForClusterNodeEmail:
		typename = "Email"

		result := struct {
			TypeName string `json:"__typename"`
			*FindQueuesForClusterNodeEmail
		}{typename, v}
		return json.Marshal(result)
	case *FindQueuesForClusterNodeJobEventAssigned:
		typename = "JobEventAssigned"

		result := struct {
			TypeName string `json:"__typename"`
			*FindQueuesForClusterNodeJobEventAssigned
		}{typename, v}
		return json.Marshal(result)
	case *FindQueuesForClusterNodeJobEventBuildStepUploadCreated:
		typename = "JobEventBuildStepUploadCreated"

		result := struct {
			TypeName string `json:"__typename"`
			*FindQueuesForClusterNodeJobEventBuildStepUploadCreated
		}{typename, v}
		return json.Marshal(result)
	case *FindQueuesForClusterNodeJobEventCanceled:
		typename = "JobEventCanceled"

		result := struct {
			TypeName string `json:"__typename"`
			*FindQueuesForClusterNodeJobEventCanceled
		}{typename, v}
		return json.Marshal(result)
	case *FindQueuesForClusterNodeJobEventFinished:
		typename = "JobEventFinished"

		result := struct {
			TypeName string `json:"__typename"`
			*FindQueuesForClusterNodeJobEventFinished
		}{typename, v}
		return json.Marshal(result)
	case *FindQueuesForClusterNodeJobEventGeneric:
		typename = "JobEventGeneric"

		result := struct {
			TypeName string `json:"__typename"`
			*FindQueuesForClusterNodeJobEventGeneric
		}{typename, v}
		return json.Marshal(result)
	case *FindQueuesForClusterNodeJobEventRetried:
		typename = "JobEventRetried"

		result := struct {
			TypeName string `json:"__typename"`
			*FindQueuesForClusterNodeJobEventRetried
		}{typename, v}
		return json.Marshal(result)
	case *FindQueuesForClusterNodeJobEventTimedOut:
		typename = "JobEventTimedOut"

		result := struct {
			TypeName string `json:"__typename"`
			*FindQueuesForClusterNodeJobEventTimedOut
		}{typename, v}
		return json.Marshal(result)
	case *FindQueuesForClusterNodeJobTypeBlock:
		typename = "JobTypeBlock"

		result := struct {
			TypeName string `json:"__typename"`
			*FindQueuesForClusterNodeJobTypeBlock
		}{typename, v}
		return json.Marshal(result)
	case *FindQueuesForClusterNodeJobTypeCommand:
		typename = "JobTypeCommand"

		result := struct {
			TypeName string `json:"__typename"`
			*FindQueuesForClusterNodeJobTypeCommand
		}{typename, v}
		return json.Marshal(result)
	case *FindQueuesForClusterNodeJobTypeTrigger:
		typename = "JobTypeTrigger"

		result := struct {
			TypeName string `json:"__typename"`
			*FindQueuesForClusterNodeJobTypeTrigger
		}{typename, v}
		return json.Marshal(result)
	case *FindQueuesForClusterNodeJobTypeWait:
		typename = "JobTypeWait"

		result := struct {
			TypeName string `json:"__typename"`
			*FindQueuesForClusterNodeJobTypeWait
		}{typename, v}
		return json.Marshal(result)
	case *FindQueuesForClusterNodeNotificationServiceSlack:
		typename = "NotificationServiceSlack"

		result := struct {
			TypeName string `json:"__typename"`
			*FindQueuesForClusterNodeNotificationServiceSlack
		}{typename, v}
		return json.Marshal(result)
	case *FindQueuesForClusterNodeOrganization:
		typename = "Organization"

		result := struct {
			TypeName string `json:"__typename"`
			*FindQueuesForClusterNodeOrganization
		}{typename, v}
		return json.Marshal(result)
	case *FindQueuesForClusterNodeOrganizationBanner:
		typename = "OrganizationBanner"

		result := struct {
			TypeName string `json:"__typename"`
			*FindQueuesForClusterNodeOrganizationBanner
		}{typename, v}
		return json.Marshal(result)
	case *FindQueuesForClusterNodeOrganizationInvitation:
		typename = "OrganizationInvitation"

		result := struct {
			TypeName string `json:"__typename"`
			*FindQueuesForClusterNodeOrganizationInvitation
		}{typename, v}
		return json.Marshal(result)
	case *FindQueuesForClusterNodeOrganizationMember:
		typename = "OrganizationMember"

		result := struct {
			TypeName string `json:"__typename"`
			*FindQueuesForClusterNodeOrganizationMember
		}{typename, v}
		return json.Marshal(result)
	case *FindQueuesForClusterNodePipeline:
		typename = "Pipeline"

		result := struct {
			TypeName string `json:"__typename"`
			*FindQueuesForClusterNodePipeline
		}{typename, v}
		return json.Marshal(result)
	case *FindQueuesForClusterNodePipelineMetric:
		typename = "PipelineMetric"

		result := struct {
			TypeName string `json:"__typename"`
			*FindQueuesForClusterNodePipelineMetric
		}{typename, v}
		return json.Marshal(result)
	case *FindQueuesForClusterNodePipelineSchedule:
		typename = "PipelineSchedule"

		result := struct {
			TypeName string `json:"__typename"`
			*FindQueuesForClusterNodePipelineSchedule
		}{typename, v}
		return json.Marshal(result)
	case *FindQueuesForClusterNodePipelineTemplate:
		typename = "PipelineTemplate"

		result := struct {
			TypeName string `json:"__typename"`
			*FindQueuesForClusterNodePipelineTemplate
		}{typename, v}
		return json.Marshal(result)
	case *FindQueuesForClusterNodeSSOProviderGitHubApp:
		typename = "SSOProviderGitHubApp"

		result := struct {
			TypeName string `json:"__typename"`
			*FindQueuesForClusterNodeSSOProviderGitHubApp
		}{typename, v}
		return json.Marshal(result)
	case *FindQueuesForClusterNodeSSOProviderGoogleGSuite:
		typename = "SSOProviderGoogleGSuite"

		result := struct {
			TypeName string `json:"__typename"`
			*FindQueuesForClusterNodeSSOProviderGoogleGSuite
		}{typename, v}
		return json.Marshal(result)
	case *FindQueuesForClusterNodeSSOProviderSAML:
		typename = "SSOProviderSAML"

		result := struct {
			TypeName string `json:"__typename"`
			*FindQueuesForClusterNodeSSOProviderSAML
		}{typename, v}
		return json.Marshal(result)
	case *FindQueuesForClusterNodeSecret:
		typename = "Secret"

		result := struct {
			TypeName string `json:"__typename"`
			*FindQueuesForClusterNodeSecret
		}{typename, v}
		return json.Marshal(result)
	case *FindQueuesForClusterNodeSuite:
		typename = "Suite"

		result := struct {
			TypeName string `json:"__typename"`
			*FindQueuesForClusterNodeSuite
		}{typename, v}
		return json.Marshal(result)
	case *FindQueuesForClusterNodeTeam:
		typename = "Team"

		result := struct {
			TypeName string `json:"__typename"`
			*FindQueuesForClusterNodeTeam
		}{typename, v}
		return json.Marshal(result)
	case *FindQueuesForClusterNodeTeamMember:
		typename = "TeamMember"

		result := struct {
			TypeName string `json:"__typename"`
			*FindQueuesForClusterNodeTeamMember
		}{typename, v}
		return json.Marshal(result)
	case *FindQueuesForClusterNodeTeamPipeline:
		typename = "TeamPipeline"

		result := struct {
			TypeName string `json:"__typename"`
			*FindQueuesForClusterNodeTeamPipeline
		}{typename, v}
		return json.Marshal(result)
	case *FindQueuesForClusterNodeTeamSuite:
		typename = "TeamSuite"

		result := struct {
			TypeName string `json:"__typename"`
			*FindQueuesForClusterNodeTeamSuite
		}{typename, v}
		return json.Marshal(result)
	case *FindQueuesForClusterNodeUser:
		typename = "User"

		result := struct {
			TypeName string `json:"__typename"`
			*FindQueuesForClusterNodeUser
		}{typename, v}
		return json.Marshal(result)
	case *FindQueuesForClusterNodeViewer:
		typename = "Viewer"

		result := struct {
			TypeName string `json:"__typename"`
			*FindQueuesForClusterNodeViewer
		}{typename, v}
		return json.Marshal(result)
	case nil:
		return []byte("null"), nil
	default:
		return nil, fmt.Errorf(
			`unexpected concrete type for FindQueuesForClusterNode: "%T"`, v)
	}
}

// FindQueuesForClusterNodeAPIAccessToken includes the requested fields of the GraphQL type APIAccessToken.
// The GraphQL type's documentation follows.
//
// API access tokens for authentication with the Buildkite API
type FindQueuesForClusterNodeAPIAccessToken struct {
	Typename *string `json:"__typename"`
}

// GetTypename returns FindQueuesForClusterNodeAPIAccessToken.Typename, and is useful for accessing the field via an interface.
func (v *FindQueuesForClusterNodeAPIAccessToken) GetTypename() *string { return v.Typename }

// FindQueuesForClusterNodeAPIAccessTokenCode includes the requested fields of the GraphQL type APIAccessTokenCode.
// The GraphQL type's documentation follows.
//
// A code that is used by an API Application to request an API Access Token
type FindQueuesForClusterNodeAPIAccessTokenCode struct {
	Typename *string `json:"__typename"`
}

// GetTypename returns FindQueuesForClusterNodeAPIAccessTokenCode.Typename, and is useful for accessing the field via an interface.
func (v *FindQueuesForClusterNodeAPIAccessTokenCode) GetTypename() *string { return v.Typename }

// FindQueuesForClusterNodeAPIApplication includes the requested fields of the GraphQL type APIApplication.
// The GraphQL type's documentation follows.
//
// An API Application
type FindQueuesForClusterNodeAPIApplication struct {
	Typename *string `json:"__typename"`
}

// GetTypename returns FindQueuesForClusterNodeAPIApplication.Typename, and is useful for accessing the field via an interface.
func (v *FindQueuesForClusterNodeAPIApplication) GetTypename() *string { return v.Typename }

// FindQueuesForClusterNodeAgent includes the requested fields of the GraphQL type Agent.
// The GraphQL type's documentation follows.
//
// An agent
type FindQueuesForClusterNodeAgent struct {
	Typename *string `json:"__typename"`
}

// GetTypename returns FindQueuesForClusterNodeAgent.Typename, and is useful for accessing the field via an interface.
func (v *FindQueuesForClusterNodeAgent) GetTypename() *string { return v.Typename }

// FindQueuesForClusterNodeAgentToken includes the requested fields of the GraphQL type AgentToken.
// The GraphQL type's documentation follows.
//
// A token used to connect an agent to Buildkite
type FindQueuesForClusterNodeAgentToken struct {
	Typename *string `json:"__typename"`
}

// GetTypename returns FindQueuesForClusterNodeAgentToken.Typename, and is useful for accessing the field via an interface.
func (v *FindQueuesForClusterNodeAgentToken) GetTypename() *string { return v.Typename }

// FindQueuesForClusterNodeAnnotation includes the requested fields of the GraphQL type Annotation.
// The GraphQL type's documentation follows.
//
// An annotation allows you to add arbitrary content to the top of a build page in the Buildkite UI
type FindQueuesForClusterNodeAnnotation struct {
	Typename *string `json:"__typename"`
}

// GetTypename returns FindQueuesForClusterNodeAnnotation.Typename, and is useful for accessing the field via an interface.
func (v *FindQueuesForClusterNodeAnnotation) GetTypename() *string { return v.Typename }

// FindQueuesForClusterNodeArtifact includes the requested fields of the GraphQL type Artifact.
// The GraphQL type's documentation follows.
//
// A file uploaded from the agent whilst running a job
type FindQueuesForClusterNodeArtifact struct {
	Typename *string `json:"__typename"`
}

// GetTypename returns FindQueuesForClusterNodeArtifact.Typename, and is useful for accessing the field via an interface.
func (v *FindQueuesForClusterNodeArtifact) GetTypename() *string { return v.Typename }

// FindQueuesForClusterNodeAuditEvent includes the requested fields of the GraphQL type AuditEvent.
// The GraphQL type's documentation follows.
//
// Audit record of an event which occurred in the system
type FindQueuesForClusterNodeAuditEvent struct {
	Typename *string `json:"__typename"`
}

// GetTypename returns FindQueuesForClusterNodeAuditEvent.Typename, and is useful for accessing the field via an interface.
func (v *FindQueuesForClusterNodeAuditEvent) GetTypename() *string { return v.Typename }

// FindQueuesForClusterNodeAuthorizationBitbucket includes the requested fields of the GraphQL type AuthorizationBitbucket.
// The GraphQL type's documentation follows.
//
// A Bitbucket account authorized with a Buildkite account
type FindQueuesForClusterNodeAuthorizationBitbucket struct {
	Typename *string `json:"__typename"`
}

// GetTypename returns FindQueuesForClusterNodeAuthorizationBitbucket.Typename, and is useful for accessing the field via an interface.
func (v *FindQueuesForClusterNodeAuthorizationBitbucket) GetTypename() *string { return v.Typename }

// FindQueuesForClusterNodeAuthorizationGitHub includes the requested fields of the GraphQL type AuthorizationGitHub.
// The GraphQL type's documentation follows.
//
// A GitHub account authorized with a Buildkite account
type FindQueuesForClusterNodeAuthorizationGitHub struct {
	Typename *string `json:"__typename"`
}

// GetTypename returns FindQueuesForClusterNodeAuthorizationGitHub.Typename, and is useful for accessing the field via an interface.
func (v *FindQueuesForClusterNodeAuthorizationGitHub) GetTypename() *string { return v.Typename }

// FindQueuesForClusterNodeAuthorizationGitHubApp includes the requested fields of the GraphQL type AuthorizationGitHubApp.
// The GraphQL type's documentation follows.
//
// A GitHub app authorized with a Buildkite account
type FindQueuesForClusterNodeAuthorizationGitHubApp struct {
	Typename *string `json:"__typename"`
}

// GetTypename returns FindQueuesForClusterNodeAuthorizationGitHubApp.Typename, and is useful for accessing the field via an interface.
func (v *FindQueuesForClusterNodeAuthorizationGitHubApp) GetTypename() *string { return v.Typename }

// FindQueuesForClusterNodeAuthorizationGitHubEnterprise includes the requested fields of the GraphQL type AuthorizationGitHubEnterprise.
// The GraphQL type's documentation follows.
//
// A GitHub Enterprise account authorized with a Buildkite account
type FindQueuesForClusterNodeAuthorizationGitHubEnterprise struct {
	Typename *string `json:"__typename"`
}

// GetTypename returns FindQueuesForClusterNodeAuthorizationGitHubEnterprise.Typename, and is useful for accessing the field via an interface.
func (v *FindQueuesForClusterNodeAuthorizationGitHubEnterprise) GetTypename() *string {
	return v.Typename
}

// FindQueuesForClusterNodeAuthorizationGoogle includes the requested fields of the GraphQL type AuthorizationGoogle.
// The GraphQL type's documentation follows.
//
// A Google account authorized with a Buildkite account
type FindQueuesForClusterNodeAuthorizationGoogle struct {
	Typename *string `json:"__typename"`
}

// GetTypename returns FindQueuesForClusterNodeAuthorizationGoogle.Typename, and is useful for accessing the field via an interface.
func (v *FindQueuesForClusterNodeAuthorizationGoogle) GetTypename() *string { return v.Typename }

// FindQueuesForClusterNodeAuthorizationSAML includes the requested fields of the GraphQL type AuthorizationSAML.
// The GraphQL type's documentation follows.
//
// A SAML account authorized with a Buildkite account
type FindQueuesForClusterNodeAuthorizationSAML struct {
	Typename *string `json:"__typename"`
}

// GetTypename returns FindQueuesForClusterNodeAuthorizationSAML.Typename, and is useful for accessing the field via an interface.
func (v *FindQueuesForClusterNodeAuthorizationSAML) GetTypename() *string { return v.Typename }

// FindQueuesForClusterNodeBuild includes the requested fields of the GraphQL type Build.
// The GraphQL type's documentation follows.
//
// A build from a pipeline
type FindQueuesForClusterNodeBuild struct {
	Typename *string `json:"__typename"`
}

// GetTypename returns FindQueuesForClusterNodeBuild.Typename, and is useful for accessing the field via an interface.
func (v *FindQueuesForClusterNodeBuild) GetTypename() *string { return v.Typename }

// FindQueuesForClusterNodeChangelog includes the requested fields of the GraphQL type Changelog.
// The GraphQL type's documentation follows.
//
// A changelog
type FindQueuesForClusterNodeChangelog struct {
	Typename *string `json:"__typename"`
}

// GetTypename returns FindQueuesForClusterNodeChangelog.Typename, and is useful for accessing the field via an interface.
func (v *FindQueuesForClusterNodeChangelog) GetTypename() *string { return v.Typename }

// FindQueuesForClusterNodeCluster includes the requested fields of the GraphQL type Cluster.
type FindQueuesForClusterNodeCluster struct {
	Typename *string `json:"__typename"`
	Id       string  `json:"id"`
	// Name of the cluster
	Name   string                                                       `json:"name"`
	Queues *FindQueuesForClusterNodeClusterQueuesClusterQueueConnection `json:"queues"`
}

// GetTypename returns FindQueuesForClusterNodeCluster.Typename, and is useful for accessing the field via an interface.
func (v *FindQueuesForClusterNodeCluster) GetTypename() *string { return v.Typename }

// GetId returns FindQueuesForClusterNodeCluster.Id, and is useful for accessing the field via an interface.
func (v *FindQueuesForClusterNodeCluster) GetId() string { return v.Id }

// GetName returns FindQueuesForClusterNodeCluster.Name, and is useful for accessing the field via an interface.
func (v *FindQueuesForClusterNodeCluster) GetName() string { return v.Name }

// GetQueues returns FindQueuesForClusterNodeCluster.Queues, and is useful for accessing the field via an interface.
func (v *FindQueuesForClusterNodeCluster) GetQueues() *FindQueuesForClusterNodeClusterQueuesClusterQueueConnection {
	return v.Queues
}

// FindQueuesForClusterNodeClusterQueue includes the requested fields of the GraphQL type ClusterQueue.
type FindQueuesForClusterNodeClusterQueue struct {
	Typename *string `json:"__typename"`
}

// GetTypename returns FindQueuesForClusterNodeClusterQueue.Typename, and is useful for accessing the field via an interface.
func (v *FindQueuesForClusterNodeClusterQueue) GetTypename() *string { return v.Typename }

// FindQueuesForClusterNodeClusterQueueToken includes the requested fields of the GraphQL type ClusterQueueToken.
// The GraphQL type's documentation follows.
//
// A token used to register an agent with a Buildkite cluster queue
type FindQueuesForClusterNodeClusterQueueToken struct {
	Typename *string `json:"__typename"`
}

// GetTypename returns FindQueuesForClusterNodeClusterQueueToken.Typename, and is useful for accessing the field via an interface.
func (v *FindQueuesForClusterNodeClusterQueueToken) GetTypename() *string { return v.Typename }

// FindQueuesForClusterNodeClusterQueuesClusterQueueConnection includes the requested fields of the GraphQL type ClusterQueueConnection.
type FindQueuesForClusterNodeClusterQueuesClusterQueueConnection struct {
	Edges    []*FindQueuesForClusterNodeClusterQueuesClusterQueueConnectionEdgesClusterQueueEdge `json:"edges"`
	PageInfo *FindQueuesForClusterNodeClusterQueuesClusterQueueConnectionPageInfo                `json:"pageInfo"`
}

// GetEdges returns FindQueuesForClusterNodeClusterQueuesClusterQueueConnection.Edges, and is useful for accessing the field via an interface.
func (v *FindQueuesForClusterNodeClusterQueuesClusterQueueConnection) GetEdges() []*FindQueuesForClusterNodeClusterQueuesClusterQueueConnectionEdgesClusterQueueEdge {
	return v.Edges
}

// GetPageInfo returns FindQueuesForClusterNodeClusterQueuesClusterQueueConnection.PageInfo, and is useful for accessing the field via an interface.
func (v *FindQueuesForClusterNodeClusterQueuesClusterQueueConnection) GetPageInfo() *FindQueuesForClusterNodeClusterQueuesClusterQueueConnectionPageInfo {
	return v.PageInfo
}

// FindQueuesForClusterNodeClusterQueuesClusterQueueConnectionEdgesClusterQueueEdge includes the requested fields of the GraphQL type ClusterQueueEdge.
type FindQueuesForClusterNodeClusterQueuesClusterQueueConnectionEdgesClusterQueueEdge struct {
	Node *FindQueuesForClusterNodeClusterQueuesClusterQueueConnectionEdgesClusterQueueEdgeNodeClusterQueue `json:"node"`
}

// GetNode returns FindQueuesForClusterNodeClusterQueuesClusterQueueConnectionEdgesClusterQueueEdge.Node, and is useful for accessing the field via an interface.
func (v *FindQueuesForClusterNodeClusterQueuesClusterQueueConnectionEdgesClusterQueueEdge) GetNode() *FindQueuesForClusterNodeClusterQueuesClusterQueueConnectionEdgesClusterQueueEdgeNodeClusterQueue {
	return v.Node
}

// FindQueuesForClusterNodeClusterQueuesClusterQueueConnectionEdgesClusterQueueEdgeNodeClusterQueue includes the requested fields of the GraphQL type ClusterQueue.
type FindQueuesForClusterNodeClusterQueuesClusterQueueConnectionEdgesClusterQueueEdgeNodeClusterQueue struct {
	Id  string `json:"id"`
	Key string `json:"key"`
}

// GetId returns FindQueuesForClusterNodeClusterQueuesClusterQueueConnectionEdgesClusterQueueEdgeNodeClusterQueue.Id, and is useful for accessing the field via an interface.
func (v *FindQueuesForClusterNodeClusterQueuesClusterQueueConnectionEdgesClusterQueueEdgeNodeClusterQueue) GetId() string {
	return v.Id
}

// GetKey returns FindQueuesForClusterNodeClusterQueuesClusterQueueConnectionEdgesClusterQueueEdgeNodeClusterQueue.Key, and is useful for accessing the field via an interface.
func (v *FindQueuesForClusterNodeClusterQueuesClusterQueueConnectionEdgesClusterQueueEdgeNodeClusterQueue) GetKey() string {
	return v.Key
}

// FindQueuesForClusterNodeClusterQueuesClusterQueueConnectionPageInfo includes the requested fields of the GraphQL type PageInfo.
// The GraphQL type's documentation follows.
//
// Information about pagination in a connection.
type FindQueuesForClusterNodeClusterQueuesClusterQueueConnectionPageInfo struct {
	// When paginating forwards, are there more items?
	HasNextPage bool `json:"hasNextPage"`
	// When paginating forwards, the cursor to continue.
	EndCursor *string `json:"endCursor"`
}

// GetHasNextPage returns FindQueuesForClusterNodeClusterQueuesClusterQueueConnectionPageInfo.HasNextPage, and is useful for accessing the field via an interface.
func (v *FindQueuesForClusterNodeClusterQueuesClusterQueueConnectionPageInfo) GetHasNextPage() bool {
	return v.HasNextPage
}

// GetEndCursor returns FindQueuesForClusterNodeClusterQueuesClusterQueueConnectionPageInfo.EndCursor, and is useful for accessing the field via an interface.
func (v *FindQueuesForClusterNodeClusterQueuesClusterQueueConnectionPageInfo) GetEndCursor() *string {
	return v.EndCursor
}

// FindQueuesForClusterNodeClusterToken includes the requested fields of the GraphQL type ClusterToken.
// The GraphQL type's documentation follows.
//
// A token used to connect an agent in cluster to Buildkite
type FindQueuesForClusterNodeClusterToken struct {
	Typename *string `json:"__typename"`
}

// GetTypename returns FindQueuesForClusterNodeClusterToken.Typename, and is useful for accessing the field via an interface.
func (v *FindQueuesForClusterNodeClusterToken) GetTypename() *string { return v.Typename }

// FindQueuesForClusterNodeEmail includes the requested fields of the GraphQL type Email.
// The GraphQL type's documentation follows.
//
// An email address
type FindQueuesForClusterNodeEmail struct {
	Typename *string `json:"__typename"`
}

// GetTypename returns FindQueuesForClusterNodeEmail.Typename, and is useful for accessing the field via an interface.
func (v *FindQueuesForClusterNodeEmail) GetTypename() *string { return v.Typename }

// FindQueuesForClusterNodeJobEventAssigned includes the requested fields of the GraphQL type JobEventAssigned.
// The GraphQL type's documentation follows.
//
// An event created when the dispatcher assigns the job to an agent
type FindQueuesForClusterNodeJobEventAssigned struct {
	Typename *string `json:"__typename"`
}

// GetTypename returns FindQueuesForClusterNodeJobEventAssigned.Typename, and is useful for accessing the field via an interface.
func (v *FindQueuesForClusterNodeJobEventAssigned) GetTypename() *string { return v.Typename }

// FindQueuesForClusterNodeJobEventBuildStepUploadCreated includes the requested fields of the GraphQL type JobEventBuildStepUploadCreated.
// The GraphQL type's documentation follows.
//
// An event created when the job creates new build steps via pipeline upload
type FindQueuesForClusterNodeJobEventBuildStepUploadCreated struct {
	Typename *string `json:"__typename"`
}

// GetTypename returns FindQueuesForClusterNodeJobEventBuildStepUploadCreated.Typename, and is useful for accessing the field via an interface.
func (v *FindQueuesForClusterNodeJobEventBuildStepUploadCreated) GetTypename() *string {
	return v.Typename
}

// FindQueuesForClusterNodeJobEventCanceled includes the requested fields of the GraphQL type JobEventCanceled.
// The GraphQL type's documentation follows.
//
// An event created when the job is canceled
type FindQueuesForClusterNodeJobEventCanceled struct {
	Typename *string `json:"__typename"`
}

// GetTypename returns FindQueuesForClusterNodeJobEventCanceled.Typename, and is useful for accessing the field via an interface.
func (v *FindQueuesForClusterNodeJobEventCanceled) GetTypename() *string { return v.Typename }

// FindQueuesForClusterNodeJobEventFinished includes the requested fields of the GraphQL type JobEventFinished.
// The GraphQL type's documentation follows.
//
// An event created when the job is finished
type FindQueuesForClusterNodeJobEventFinished struct {
	Typename *string `json:"__typename"`
}

// GetTypename returns FindQueuesForClusterNodeJobEventFinished.Typename, and is useful for accessing the field via an interface.
func (v *FindQueuesForClusterNodeJobEventFinished) GetTypename() *string { return v.Typename }

// FindQueuesForClusterNodeJobEventGeneric includes the requested fields of the GraphQL type JobEventGeneric.
// The GraphQL type's documentation follows.
//
// A generic event type that doesn't have any additional meta-information associated with the event
type FindQueuesForClusterNodeJobEventGeneric struct {
	Typename *string `json:"__typename"`
}

// GetTypename returns FindQueuesForClusterNodeJobEventGeneric.Typename, and is useful for accessing the field via an interface.
func (v *FindQueuesForClusterNodeJobEventGeneric) GetTypename() *string { return v.Typename }

// FindQueuesForClusterNodeJobEventRetried includes the requested fields of the GraphQL type JobEventRetried.
// The GraphQL type's documentation follows.
//
// An event created when the job is retried
type FindQueuesForClusterNodeJobEventRetried struct {
	Typename *string `json:"__typename"`
}

// GetTypename returns FindQueuesForClusterNodeJobEventRetried.Typename, and is useful for accessing the field via an interface.
func (v *FindQueuesForClusterNodeJobEventRetried) GetTypename() *string { return v.Typename }

// FindQueuesForClusterNodeJobEventTimedOut includes the requested fields of the GraphQL type JobEventTimedOut.
// The GraphQL type's documentation follows.
//
// An event created when the job is timed out
type FindQueuesForClusterNodeJobEventTimedOut struct {
	Typename *string `json:"__typename"`
}

// GetTypename returns FindQueuesForClusterNodeJobEventTimedOut.Typename, and is useful for accessing the field via an interface.
func (v *FindQueuesForClusterNodeJobEventTimedOut) GetTypename() *string { return v.Typename }

// FindQueuesForClusterNodeJobTypeBlock includes the requested fields of the GraphQL type JobTypeBlock.
// The GraphQL type's documentation follows.
//
// A type of job that requires a user to unblock it before proceeding in a build pipeline
type FindQueuesForClusterNodeJobTypeBlock struct {
	Typename *string `json:"__typename"`
}

// GetTypename returns FindQueuesForClusterNodeJobTypeBlock.Typename, and is useful for accessing the field via an interface.
func (v *FindQueuesForClusterNodeJobTypeBlock) GetTypename() *string { return v.Typename }

// FindQueuesForClusterNodeJobTypeCommand includes the requested fields of the GraphQL type JobTypeCommand.
// The GraphQL type's documentation follows.
//
// A type of job that runs a command on an agent
type FindQueuesForClusterNodeJobTypeCommand struct {
	Typename *string `json:"__typename"`
}

// GetTypename returns FindQueuesForClusterNodeJobTypeCommand.Typename, and is useful for accessing the field via an interface.
func (v *FindQueuesForClusterNodeJobTypeCommand) GetTypename() *string { return v.Typename }

// FindQueuesForClusterNodeJobTypeTrigger includes the requested fields of the GraphQL type JobTypeTrigger.
// The GraphQL type's documentation follows.
//
// A type of job that triggers another build on a pipeline
type FindQueuesForClusterNodeJobTypeTrigger struct {
	Typename *string `json:"__typename"`
}

// GetTypename returns FindQueuesForClusterNodeJobTypeTrigger.Typename, and is useful for accessing the field via an interface.
func (v *FindQueuesForClusterNodeJobTypeTrigger) GetTypename() *string { return v.Typename }

// FindQueuesForClusterNodeJobTypeWait includes the requested fields of the GraphQL type JobTypeWait.
// The GraphQL type's documentation follows.
//
// A type of job that waits for all previous jobs to pass before proceeding the build pipeline
type FindQueuesForClusterNodeJobTypeWait struct {
	Typename *string `json:"__typename"`
}

// GetTypename returns FindQueuesForClusterNodeJobTypeWait.Typename, and is useful for accessing the field via an interface.
func (v *FindQueuesForClusterNodeJobTypeWait) GetTypename() *string { return v.Typename }

// FindQueuesForClusterNodeNotificationServiceSlack includes the requested fields of the GraphQL type NotificationServiceSlack.
// The GraphQL type's documentation follows.
//
// Deliver notifications to Slack
type FindQueuesForClusterNodeNotificationServiceSlack struct {
	Typename *string `json:"__typename"`
}

// GetTypename returns FindQueuesForClusterNodeNotificationServiceSlack.Typename, and is useful for accessing the field via an interface.
func (v *FindQueuesForClusterNodeNotificationServiceSlack) GetTypename() *string { return v.Typename }

// FindQueuesForClusterNodeOrganization includes the requested fields of the GraphQL type Organization.
// The GraphQL type's documentation follows.
//
// An organization
type FindQueuesForClusterNodeOrganization struct {
	Typename *string `json:"__typename"`
}

// GetTypename returns FindQueuesForClusterNodeOrganization.Typename, and is useful for accessing the field via an interface.
func (v *FindQueuesForClusterNodeOrganization) GetTypename() *string { return v.Typename }

// FindQueuesForClusterNodeOrganizationBanner includes the requested fields of the GraphQL type OrganizationBanner.
// The GraphQL type's documentation follows.
//
// System banner of an organization
type FindQueuesForClusterNodeOrganizationBanner struct {
	Typename *string `json:"__typename"`
}

// GetTypename returns FindQueuesForClusterNodeOrganizationBanner.Typename, and is useful for accessing the field via an interface.
func (v *FindQueuesForClusterNodeOrganizationBanner) GetTypename() *string { return v.Typename }

// FindQueuesForClusterNodeOrganizationInvitation includes the requested fields of the GraphQL type OrganizationInvitation.
// The GraphQL type's documentation follows.
//
// A pending invitation to a user to join this organization
type FindQueuesForClusterNodeOrganizationInvitation struct {
	Typename *string `json:"__typename"`
}

// GetTypename returns FindQueuesForClusterNodeOrganizationInvitation.Typename, and is useful for accessing the field via an interface.
func (v *FindQueuesForClusterNodeOrganizationInvitation) GetTypename() *string { return v.Typename }

// FindQueuesForClusterNodeOrganizationMember includes the requested fields of the GraphQL type OrganizationMember.
// The GraphQL type's documentation follows.
//
// A member of an organization
type FindQueuesForClusterNodeOrganizationMember struct {
	Typename *string `json:"__typename"`
}

// GetTypename returns FindQueuesForClusterNodeOrganizationMember.Typename, and is useful for accessing the field via an interface.
func (v *FindQueuesForClusterNodeOrganizationMember) GetTypename() *string { return v.Typename }

// FindQueuesForClusterNodePipeline includes the requested fields of the GraphQL type Pipeline.
// The GraphQL type's documentation follows.
//
// A pipeline
type FindQueuesForClusterNodePipeline struct {
	Typename *string `json:"__typename"`
}

// GetTypename returns FindQueuesForClusterNodePipeline.Typename, and is useful for accessing the field via an interface.
func (v *FindQueuesForClusterNodePipeline) GetTypename() *string { return v.Typename }

// FindQueuesForClusterNodePipelineMetric includes the requested fields of the GraphQL type PipelineMetric.
// The GraphQL type's documentation follows.
//
// A metric for a pipeline
type FindQueuesForClusterNodePipelineMetric struct {
	Typename *string `json:"__typename"`
}

// GetTypename returns FindQueuesForClusterNodePipelineMetric.Typename, and is useful for accessing the field via an interface.
func (v *FindQueuesForClusterNodePipelineMetric) GetTypename() *string { return v.Typename }

// FindQueuesForClusterNodePipelineSchedule includes the requested fields of the GraphQL type PipelineSchedule.
// The GraphQL type's documentation follows.
//
// A schedule of when a build should automatically triggered for a Pipeline
type FindQueuesForClusterNodePipelineSchedule struct {
	Typename *string `json:"__typename"`
}

// GetTypename returns FindQueuesForClusterNodePipelineSchedule.Typename, and is useful for accessing the field via an interface.
func (v *FindQueuesForClusterNodePipelineSchedule) GetTypename() *string { return v.Typename }

// FindQueuesForClusterNodePipelineTemplate includes the requested fields of the GraphQL type PipelineTemplate.
// The GraphQL type's documentation follows.
//
// A template defining a fixed step configuration for a pipeline
type FindQueuesForClusterNodePipelineTemplate struct {
	Typename *string `json:"__typename"`
}

// GetTypename returns FindQueuesForClusterNodePipelineTemplate.Typename, and is useful for accessing the field via an interface.
func (v *FindQueuesForClusterNodePipelineTemplate) GetTypename() *string { return v.Typename }

// FindQueuesForClusterNodeSSOProviderGitHubApp includes the requested fields of the GraphQL type SSOProviderGitHubApp.
// The GraphQL type's documentation follows.
//
// Single sign-on provided by GitHub
type FindQueuesForClusterNodeSSOProviderGitHubApp struct {
	Typename *string `json:"__typename"`
}

// GetTypename returns FindQueuesForClusterNodeSSOProviderGitHubApp.Typename, and is useful for accessing the field via an interface.
func (v *FindQueuesForClusterNodeSSOProviderGitHubApp) GetTypename() *string { return v.Typename }

// FindQueuesForClusterNodeSSOProviderGoogleGSuite includes the requested fields of the GraphQL type SSOProviderGoogleGSuite.
// The GraphQL type's documentation follows.
//
// Single sign-on provided by Google
type FindQueuesForClusterNodeSSOProviderGoogleGSuite struct {
	Typename *string `json:"__typename"`
}

// GetTypename returns FindQueuesForClusterNodeSSOProviderGoogleGSuite.Typename, and is useful for accessing the field via an interface.
func (v *FindQueuesForClusterNodeSSOProviderGoogleGSuite) GetTypename() *string { return v.Typename }

// FindQueuesForClusterNodeSSOProviderSAML includes the requested fields of the GraphQL type SSOProviderSAML.
// The GraphQL type's documentation follows.
//
// Single sign-on provided via SAML
type FindQueuesForClusterNodeSSOProviderSAML struct {
	Typename *string `json:"__typename"`
}

// GetTypename returns FindQueuesForClusterNodeSSOProviderSAML.Typename, and is useful for accessing the field via an interface.
func (v *FindQueuesForClusterNodeSSOProviderSAML) GetTypename() *string { return v.Typename }

// FindQueuesForClusterNodeSecret includes the requested fields of the GraphQL type Secret.
// The GraphQL type's documentation follows.
//
// A secret hosted by Buildkite. This does not contain the secret value or encrypted material.
type FindQueuesForClusterNodeSecret struct {
	Typename *string `json:"__typename"`
}

// GetTypename returns FindQueuesForClusterNodeSecret.Typename, and is useful for accessing the field via an interface.
func (v *FindQueuesForClusterNodeSecret) GetTypename() *string { return v.Typename }

// FindQueuesForClusterNodeSuite includes the requested fields of the GraphQL type Suite.
// The GraphQL type's documentation follows.
//
// A suite
type FindQueuesForClusterNodeSuite struct {
	Typename *string `json:"__typename"`
}

// GetTypename returns FindQueuesForClusterNodeSuite.Typename, and is useful for accessing the field via an interface.
func (v *FindQueuesForClusterNodeSuite) GetTypename() *string { return v.Typename }

// FindQueuesForClusterNodeTeam includes the requested fields of the GraphQL type Team.
// The GraphQL type's documentation follows.
//
// An organization team
type FindQueuesForClusterNodeTeam struct {
	Typename *string `json:"__typename"`
}

// GetTypename returns FindQueuesForClusterNodeTeam.Typename, and is useful for accessing the field via an interface.
func (v *FindQueuesForClusterNodeTeam) GetTypename() *string { return v.Typename }

// FindQueuesForClusterNodeTeamMember includes the requested fields of the GraphQL type TeamMember.
// The GraphQL type's documentation follows.
//
// An member of a team
type FindQueuesForClusterNodeTeamMember struct {
	Typename *string `json:"__typename"`
}

// GetTypename returns FindQueuesForClusterNodeTeamMember.Typename, and is useful for accessing the field via an interface.
func (v *FindQueuesForClusterNodeTeamMember) GetTypename() *string { return v.Typename }

// FindQueuesForClusterNodeTeamPipeline includes the requested fields of the GraphQL type TeamPipeline.
// The GraphQL type's documentation follows.
//
// An pipeline that's been assigned to a team
type FindQueuesForClusterNodeTeamPipeline struct {
	Typename *string `json:"__typename"`
}

// GetTypename returns FindQueuesForClusterNodeTeamPipeline.Typename, and is useful for accessing the field via an interface.
func (v *FindQueuesForClusterNodeTeamPipeline) GetTypename() *string { return v.Typename }

// FindQueuesForClusterNodeTeamSuite includes the requested fields of the GraphQL type TeamSuite.
// The GraphQL type's documentation follows.
//
// A suite that's been assigned to a team
type FindQueuesForClusterNodeTeamSuite struct {
	Typename *string `json:"__typename"`
}

// GetTypename returns FindQueuesForClusterNodeTeamSuite.Typename, and is useful for accessing the field via an interface.
func (v *FindQueuesForClusterNodeTeamSuite) GetTypename() *string { return v.Typename }

// FindQueuesForClusterNodeUser includes the requested fields of the GraphQL type User.
// The GraphQL type's documentation follows.
//
// A user
type FindQueuesForClusterNodeUser struct {
	Typename *string `json:"__typename"`
}

// GetTypename returns FindQueuesForClusterNodeUser.Typename, and is useful for accessing the field via an interface.
func (v *FindQueuesForClusterNodeUser) GetTypename() *string { return v.Typename }

// FindQueuesForClusterNodeViewer includes the requested fields of the GraphQL type Viewer.
// The GraphQL type's documentation follows.
//
// Represents the current user session
type FindQueuesForClusterNodeViewer struct {
	Typename *string `json:"__typename"`
}

// GetTypename returns FindQueuesForClusterNodeViewer.Typename, and is useful for accessing the field via an interface.
func (v *FindQueuesForClusterNodeViewer) GetTypename() *string { return v.Typename }

// FindQueuesForClusterResponse is returned by FindQueuesForCluster on success.
type FindQueuesForClusterResponse struct {
	// Fetches an object given its ID.
	Node *FindQueuesForClusterNode `json:"-"`
}

// GetNode returns FindQueuesForClusterResponse.Node, and is useful for accessing the field via an interface.
func (v *FindQueuesForClusterResponse) GetNode() *FindQueuesForClusterNode { return v.Node }

func (v *FindQueuesForClusterResponse) UnmarshalJSON(b []byte) error {

	if string(b) == "null" {
		return nil
	}

	var firstPass struct {
		*FindQueuesForClusterResponse
		Node json.RawMessage `json:"node"`
		graphql.NoUnmarshalJSON
	}
	firstPass.FindQueuesForClusterResponse = v

	err := json.Unmarshal(b, &firstPass)
	if err != nil {
		return err
	}

	{
		dst := &v.Node
		src := firstPass.Node
		if len(src) != 0 && string(src) != "null" {
			*dst = new(FindQueuesForClusterNode)
			err = __unmarshalFindQueuesForClusterNode(
				src, *dst)
			if err != nil {
				return fmt.Errorf(
					"unable to unmarshal FindQueuesForClusterResponse.Node: %w", err)
			}
		}
	}
	return nil
}

type __premarshalFindQueuesForClusterResponse struct {
	Node json.RawMessage `json:"node"`
}

func (v *FindQueuesForClusterResponse) MarshalJSON() ([]byte, error) {
	premarshaled, err := v.__premarshalJSON()
	if err != nil {
		return nil, err
	}
	return json.Marshal(premarshaled)
}

func (v *FindQueuesForClusterResponse) __premarshalJSON() (*__premarshalFindQueuesForClusterResponse, error) {
	var retval __premarshalFindQueuesForClusterResponse

	{

		dst := &retval.Node
		src := v.Node
		if src != nil {
			var err error
			*dst, err = __marshalFindQueuesForClusterNode(
				src)
			if err != nil {
				return nil, fmt.Errorf(
					"unable to marshal FindQueuesForClusterResponse.Node: %w", err)
			}
		}
	}
	return &retval, nil
}

// FindUserByEmailOrganization includes the requested fields of the GraphQL type Organization.
// The GraphQL type's documentation follows.
//
// An organization
type FindUserByEmailOrganization struct {
	// Returns users within the organization
	Members *FindUserByEmailOrganizationMembersOrganizationMemberConnection `json:"members"`
}

// GetMembers returns FindUserByEmailOrganization.Members, and is useful for accessing the field via an interface.
func (v *FindUserByEmailOrganization) GetMembers() *FindUserByEmailOrganizationMembersOrganizationMemberConnection {
	return v.Members
}

// FindUserByEmailOrganizationMembersOrganizationMemberConnection includes the requested fields of the GraphQL type OrganizationMemberConnection.
type FindUserByEmailOrganizationMembersOrganizationMemberConnection struct {
	Edges []*FindUserByEmailOrganizationMembersOrganizationMemberConnectionEdgesOrganizationMemberEdge `json:"edges"`
}

// GetEdges returns FindUserByEmailOrganizationMembersOrganizationMemberConnection.Edges, and is useful for accessing the field via an interface.
func (v *FindUserByEmailOrganizationMembersOrganizationMemberConnection) GetEdges() []*FindUserByEmailOrganizationMembersOrganizationMemberConnectionEdgesOrganizationMemberEdge {
	return v.Edges
}

// FindUserByEmailOrganizationMembersOrganizationMemberConnectionEdgesOrganizationMemberEdge includes the requested fields of the GraphQL type OrganizationMemberEdge.
type FindUserByEmailOrganizationMembersOrganizationMemberConnectionEdgesOrganizationMemberEdge struct {
	Node *FindUserByEmailOrganizationMembersOrganizationMemberConnectionEdgesOrganizationMemberEdgeNodeOrganizationMember `json:"node"`
}

// GetNode returns FindUserByEmailOrganizationMembersOrganizationMemberConnectionEdgesOrganizationMemberEdge.Node, and is useful for accessing the field via an interface.
func (v *FindUserByEmailOrganizationMembersOrganizationMemberConnectionEdgesOrganizationMemberEdge) GetNode() *FindUserByEmailOrganizationMembersOrganizationMemberConnectionEdgesOrganizationMemberEdgeNodeOrganizationMember {
	return v.Node
}

// FindUserByEmailOrganizationMembersOrganizationMemberConnectionEdgesOrganizationMemberEdgeNodeOrganizationMember includes the requested fields of the GraphQL type OrganizationMember.
// The GraphQL type's documentation follows.
//
// A member of an organization
type FindUserByEmailOrganizationMembersOrganizationMemberConnectionEdgesOrganizationMemberEdgeNodeOrganizationMember struct {
	User FindUserByEmailOrganizationMembersOrganizationMemberConnectionEdgesOrganizationMemberEdgeNodeOrganizationMemberUser `json:"user"`
}

// GetUser returns FindUserByEmailOrganizationMembersOrganizationMemberConnectionEdgesOrganizationMemberEdgeNodeOrganizationMember.User, and is useful for accessing the field via an interface.
func (v *FindUserByEmailOrganizationMembersOrganizationMemberConnectionEdgesOrganizationMemberEdgeNodeOrganizationMember) GetUser() FindUserByEmailOrganizationMembersOrganizationMemberConnectionEdgesOrganizationMemberEdgeNodeOrganizationMemberUser {
	return v.User
}

// FindUserByEmailOrganizationMembersOrganizationMemberConnectionEdgesOrganizationMemberEdgeNodeOrganizationMemberUser includes the requested fields of the GraphQL type User.
// The GraphQL type's documentation follows.
//
// A user
type FindUserByEmailOrganizationMembersOrganizationMemberConnectionEdgesOrganizationMemberEdgeNodeOrganizationMemberUser struct {
	Id string `json:"id"`
}

// GetId returns FindUserByEmailOrganizationMembersOrganizationMemberConnectionEdgesOrganizationMemberEdgeNodeOrganizationMemberUser.Id, and is useful for accessing the field via an interface.
func (v *FindUserByEmailOrganizationMembersOrganizationMemberConnectionEdgesOrganizationMemberEdgeNodeOrganizationMemberUser) GetId() string {
	return v.Id
}

// FindUserByEmailResponse is returned by FindUserByEmail on success.
type FindUserByEmailResponse struct {
	// Find an organization
	Organization *FindUserByEmailOrganization `json:"organization"`
}

// GetOrganization returns FindUserByEmailResponse.Organization, and is useful for accessing the field via an interface.
func (v *FindUserByEmailResponse) GetOrganization() *FindUserByEmailOrganization {
	return v.Organization
}

// GetArtifactsArtifact includes the requested fields of the GraphQL type Artifact.
// The GraphQL type's documentation follows.
//
// A file uploaded from the agent whilst running a job
type GetArtifactsArtifact struct {
	// The public UUID for this artifact
	Uuid string `json:"uuid"`
	// The path of the uploaded artifact
	Path string `json:"path"`
	// The download URL for the artifact. Unless you've used your own artifact storage, the URL will be valid for only 10 minutes.
	DownloadURL string `json:"downloadURL"`
	// The job that uploaded this artifact
	Job *GetArtifactsArtifactJobJobTypeCommand `json:"job"`
}

// GetUuid returns GetArtifactsArtifact.Uuid, and is useful for accessing the field via an interface.
func (v *GetArtifactsArtifact) GetUuid() string { return v.Uuid }

// GetPath returns GetArtifactsArtifact.Path, and is useful for accessing the field via an interface.
func (v *GetArtifactsArtifact) GetPath() string { return v.Path }

// GetDownloadURL returns GetArtifactsArtifact.DownloadURL, and is useful for accessing the field via an interface.
func (v *GetArtifactsArtifact) GetDownloadURL() string { return v.DownloadURL }

// GetJob returns GetArtifactsArtifact.Job, and is useful for accessing the field via an interface.
func (v *GetArtifactsArtifact) GetJob() *GetArtifactsArtifactJobJobTypeCommand { return v.Job }

// GetArtifactsArtifactJobJobTypeCommand includes the requested fields of the GraphQL type JobTypeCommand.
// The GraphQL type's documentation follows.
//
// A type of job that runs a command on an agent
type GetArtifactsArtifactJobJobTypeCommand struct {
	// The UUID for this job
	Uuid string `json:"uuid"`
	// The pipeline that this job is a part of
	Pipeline *GetArtifactsArtifactJobJobTypeCommandPipeline `json:"pipeline"`
	// The build that this job is a part of
	Build *GetArtifactsArtifactJobJobTypeCommandBuild `json:"build"`
}

// GetUuid returns GetArtifactsArtifactJobJobTypeCommand.Uuid, and is useful for accessing the field via an interface.
func (v *GetArtifactsArtifactJobJobTypeCommand) GetUuid() string { return v.Uuid }

// GetPipeline returns GetArtifactsArtifactJobJobTypeCommand.Pipeline, and is useful for accessing the field via an interface.
func (v *GetArtifactsArtifactJobJobTypeCommand) GetPipeline() *GetArtifactsArtifactJobJobTypeCommandPipeline {
	return v.Pipeline
}

// GetBuild returns GetArtifactsArtifactJobJobTypeCommand.Build, and is useful for accessing the field via an interface.
func (v *GetArtifactsArtifactJobJobTypeCommand) GetBuild() *GetArtifactsArtifactJobJobTypeCommandBuild {
	return v.Build
}

// GetArtifactsArtifactJobJobTypeCommandBuild includes the requested fields of the GraphQL type Build.
// The GraphQL type's documentation follows.
//
// A build from a pipeline
type GetArtifactsArtifactJobJobTypeCommandBuild struct {
	// The number of the build
	Number int `json:"number"`
}

// GetNumber returns GetArtifactsArtifactJobJobTypeCommandBuild.Number, and is useful for accessing the field via an interface.
func (v *GetArtifactsArtifactJobJobTypeCommandBuild) GetNumber() int { return v.Number }

// GetArtifactsArtifactJobJobTypeCommandPipeline includes the requested fields of the GraphQL type Pipeline.
// The GraphQL type's documentation follows.
//
// A pipeline
type GetArtifactsArtifactJobJobTypeCommandPipeline struct {
	// The name of the pipeline
	Name string `json:"name"`
}

// GetName returns GetArtifactsArtifactJobJobTypeCommandPipeline.Name, and is useful for accessing the field via an interface.
func (v *GetArtifactsArtifactJobJobTypeCommandPipeline) GetName() string { return v.Name }

// GetArtifactsResponse is returned by GetArtifacts on success.
type GetArtifactsResponse struct {
	// Find an artifact by its UUID
	Artifact *GetArtifactsArtifact `json:"artifact"`
}

// GetArtifact returns GetArtifactsResponse.Artifact, and is useful for accessing the field via an interface.
func (v *GetArtifactsResponse) GetArtifact() *GetArtifactsArtifact { return v.Artifact }

// GetClusterQueueAgentOrganization includes the requested fields of the GraphQL type Organization.
// The GraphQL type's documentation follows.
//
// An organization
type GetClusterQueueAgentOrganization struct {
	Agents *GetClusterQueueAgentOrganizationAgentsAgentConnection `json:"agents"`
}

// GetAgents returns GetClusterQueueAgentOrganization.Agents, and is useful for accessing the field via an interface.
func (v *GetClusterQueueAgentOrganization) GetAgents() *GetClusterQueueAgentOrganizationAgentsAgentConnection {
	return v.Agents
}

// GetClusterQueueAgentOrganizationAgentsAgentConnection includes the requested fields of the GraphQL type AgentConnection.
type GetClusterQueueAgentOrganizationAgentsAgentConnection struct {
	Edges []*GetClusterQueueAgentOrganizationAgentsAgentConnectionEdgesAgentEdge `json:"edges"`
}

// GetEdges returns GetClusterQueueAgentOrganizationAgentsAgentConnection.Edges, and is useful for accessing the field via an interface.
func (v *GetClusterQueueAgentOrganizationAgentsAgentConnection) GetEdges() []*GetClusterQueueAgentOrganizationAgentsAgentConnectionEdgesAgentEdge {
	return v.Edges
}

// GetClusterQueueAgentOrganizationAgentsAgentConnectionEdgesAgentEdge includes the requested fields of the GraphQL type AgentEdge.
type GetClusterQueueAgentOrganizationAgentsAgentConnectionEdgesAgentEdge struct {
	Node *GetClusterQueueAgentOrganizationAgentsAgentConnectionEdgesAgentEdgeNodeAgent `json:"node"`
}

// GetNode returns GetClusterQueueAgentOrganizationAgentsAgentConnectionEdgesAgentEdge.Node, and is useful for accessing the field via an interface.
func (v *GetClusterQueueAgentOrganizationAgentsAgentConnectionEdgesAgentEdge) GetNode() *GetClusterQueueAgentOrganizationAgentsAgentConnectionEdgesAgentEdgeNodeAgent {
	return v.Node
}

// GetClusterQueueAgentOrganizationAgentsAgentConnectionEdgesAgentEdgeNodeAgent includes the requested fields of the GraphQL type Agent.
// The GraphQL type's documentation follows.
//
// An agent
type GetClusterQueueAgentOrganizationAgentsAgentConnectionEdgesAgentEdgeNodeAgent struct {
	// The name of the agent
	Name string `json:"name"`
	// The hostname of the machine running the agent
	Hostname *string `json:"hostname"`
	// The version of the agent
	Version      *string                                                                                   `json:"version"`
	Id           string                                                                                    `json:"id"`
	ClusterQueue *GetClusterQueueAgentOrganizationAgentsAgentConnectionEdgesAgentEdgeNodeAgentClusterQueue `json:"clusterQueue"`
}

// GetName returns GetClusterQueueAgentOrganizationAgentsAgentConnectionEdgesAgentEdgeNodeAgent.Name, and is useful for accessing the field via an interface.
func (v *GetClusterQueueAgentOrganizationAgentsAgentConnectionEdgesAgentEdgeNodeAgent) GetName() string {
	return v.Name
}

// GetHostname returns GetClusterQueueAgentOrganizationAgentsAgentConnectionEdgesAgentEdgeNodeAgent.Hostname, and is useful for accessing the field via an interface.
func (v *GetClusterQueueAgentOrganizationAgentsAgentConnectionEdgesAgentEdgeNodeAgent) GetHostname() *string {
	return v.Hostname
}

// GetVersion returns GetClusterQueueAgentOrganizationAgentsAgentConnectionEdgesAgentEdgeNodeAgent.Version, and is useful for accessing the field via an interface.
func (v *GetClusterQueueAgentOrganizationAgentsAgentConnectionEdgesAgentEdgeNodeAgent) GetVersion() *string {
	return v.Version
}

// GetId returns GetClusterQueueAgentOrganizationAgentsAgentConnectionEdgesAgentEdgeNodeAgent.Id, and is useful for accessing the field via an interface.
func (v *GetClusterQueueAgentOrganizationAgentsAgentConnectionEdgesAgentEdgeNodeAgent) GetId() string {
	return v.Id
}

// GetClusterQueue returns GetClusterQueueAgentOrganizationAgentsAgentConnectionEdgesAgentEdgeNodeAgent.ClusterQueue, and is useful for accessing the field via an interface.
func (v *GetClusterQueueAgentOrganizationAgentsAgentConnectionEdgesAgentEdgeNodeAgent) GetClusterQueue() *GetClusterQueueAgentOrganizationAgentsAgentConnectionEdgesAgentEdgeNodeAgentClusterQueue {
	return v.ClusterQueue
}

// GetClusterQueueAgentOrganizationAgentsAgentConnectionEdgesAgentEdgeNodeAgentClusterQueue includes the requested fields of the GraphQL type ClusterQueue.
type GetClusterQueueAgentOrganizationAgentsAgentConnectionEdgesAgentEdgeNodeAgentClusterQueue struct {
	Id string `json:"id"`
	// The public UUID for this cluster queue
	Uuid string `json:"uuid"`
}

// GetId returns GetClusterQueueAgentOrganizationAgentsAgentConnectionEdgesAgentEdgeNodeAgentClusterQueue.Id, and is useful for accessing the field via an interface.
func (v *GetClusterQueueAgentOrganizationAgentsAgentConnectionEdgesAgentEdgeNodeAgentClusterQueue) GetId() string {
	return v.Id
}

// GetUuid returns GetClusterQueueAgentOrganizationAgentsAgentConnectionEdgesAgentEdgeNodeAgentClusterQueue.Uuid, and is useful for accessing the field via an interface.
func (v *GetClusterQueueAgentOrganizationAgentsAgentConnectionEdgesAgentEdgeNodeAgentClusterQueue) GetUuid() string {
	return v.Uuid
}

// GetClusterQueueAgentResponse is returned by GetClusterQueueAgent on success.
type GetClusterQueueAgentResponse struct {
	// Find an organization
	Organization *GetClusterQueueAgentOrganization `json:"organization"`
}

// GetOrganization returns GetClusterQueueAgentResponse.Organization, and is useful for accessing the field via an interface.
func (v *GetClusterQueueAgentResponse) GetOrganization() *GetClusterQueueAgentOrganization {
	return v.Organization
}

// GetClusterQueuesOrganization includes the requested fields of the GraphQL type Organization.
// The GraphQL type's documentation follows.
//
// An organization
type GetClusterQueuesOrganization struct {
	// Return cluster in the Organization by UUID
	Cluster *GetClusterQueuesOrganizationCluster `json:"cluster"`
}

// GetCluster returns GetClusterQueuesOrganization.Cluster, and is useful for accessing the field via an interface.
func (v *GetClusterQueuesOrganization) GetCluster() *GetClusterQueuesOrganizationCluster {
	return v.Cluster
}

// GetClusterQueuesOrganizationCluster includes the requested fields of the GraphQL type Cluster.
type GetClusterQueuesOrganizationCluster struct {
	// Name of the cluster
	Name string `json:"name"`
	// Description of the cluster
	Description *string                                                          `json:"description"`
	Queues      *GetClusterQueuesOrganizationClusterQueuesClusterQueueConnection `json:"queues"`
}

// GetName returns GetClusterQueuesOrganizationCluster.Name, and is useful for accessing the field via an interface.
func (v *GetClusterQueuesOrganizationCluster) GetName() string { return v.Name }

// GetDescription returns GetClusterQueuesOrganizationCluster.Description, and is useful for accessing the field via an interface.
func (v *GetClusterQueuesOrganizationCluster) GetDescription() *string { return v.Description }

// GetQueues returns GetClusterQueuesOrganizationCluster.Queues, and is useful for accessing the field via an interface.
func (v *GetClusterQueuesOrganizationCluster) GetQueues() *GetClusterQueuesOrganizationClusterQueuesClusterQueueConnection {
	return v.Queues
}

// GetClusterQueuesOrganizationClusterQueuesClusterQueueConnection includes the requested fields of the GraphQL type ClusterQueueConnection.
type GetClusterQueuesOrganizationClusterQueuesClusterQueueConnection struct {
	Edges []*GetClusterQueuesOrganizationClusterQueuesClusterQueueConnectionEdgesClusterQueueEdge `json:"edges"`
}

// GetEdges returns GetClusterQueuesOrganizationClusterQueuesClusterQueueConnection.Edges, and is useful for accessing the field via an interface.
func (v *GetClusterQueuesOrganizationClusterQueuesClusterQueueConnection) GetEdges() []*GetClusterQueuesOrganizationClusterQueuesClusterQueueConnectionEdgesClusterQueueEdge {
	return v.Edges
}

// GetClusterQueuesOrganizationClusterQueuesClusterQueueConnectionEdgesClusterQueueEdge includes the requested fields of the GraphQL type ClusterQueueEdge.
type GetClusterQueuesOrganizationClusterQueuesClusterQueueConnectionEdgesClusterQueueEdge struct {
	Node *GetClusterQueuesOrganizationClusterQueuesClusterQueueConnectionEdgesClusterQueueEdgeNodeClusterQueue `json:"node"`
}

// GetNode returns GetClusterQueuesOrganizationClusterQueuesClusterQueueConnectionEdgesClusterQueueEdge.Node, and is useful for accessing the field via an interface.
func (v *GetClusterQueuesOrganizationClusterQueuesClusterQueueConnectionEdgesClusterQueueEdge) GetNode() *GetClusterQueuesOrganizationClusterQueuesClusterQueueConnectionEdgesClusterQueueEdgeNodeClusterQueue {
	return v.Node
}

// GetClusterQueuesOrganizationClusterQueuesClusterQueueConnectionEdgesClusterQueueEdgeNodeClusterQueue includes the requested fields of the GraphQL type ClusterQueue.
type GetClusterQueuesOrganizationClusterQueuesClusterQueueConnectionEdgesClusterQueueEdgeNodeClusterQueue struct {
	Id string `json:"id"`
	// The public UUID for this cluster queue
	Uuid        string  `json:"uuid"`
	Key         string  `json:"key"`
	Description *string `json:"description"`
}

// GetId returns GetClusterQueuesOrganizationClusterQueuesClusterQueueConnectionEdgesClusterQueueEdgeNodeClusterQueue.Id, and is useful for accessing the field via an interface.
func (v *GetClusterQueuesOrganizationClusterQueuesClusterQueueConnectionEdgesClusterQueueEdgeNodeClusterQueue) GetId() string {
	return v.Id
}

// GetUuid returns GetClusterQueuesOrganizationClusterQueuesClusterQueueConnectionEdgesClusterQueueEdgeNodeClusterQueue.Uuid, and is useful for accessing the field via an interface.
func (v *GetClusterQueuesOrganizationClusterQueuesClusterQueueConnectionEdgesClusterQueueEdgeNodeClusterQueue) GetUuid() string {
	return v.Uuid
}

// GetKey returns GetClusterQueuesOrganizationClusterQueuesClusterQueueConnectionEdgesClusterQueueEdgeNodeClusterQueue.Key, and is useful for accessing the field via an interface.
func (v *GetClusterQueuesOrganizationClusterQueuesClusterQueueConnectionEdgesClusterQueueEdgeNodeClusterQueue) GetKey() string {
	return v.Key
}

// GetDescription returns GetClusterQueuesOrganizationClusterQueuesClusterQueueConnectionEdgesClusterQueueEdgeNodeClusterQueue.Description, and is useful for accessing the field via an interface.
func (v *GetClusterQueuesOrganizationClusterQueuesClusterQueueConnectionEdgesClusterQueueEdgeNodeClusterQueue) GetDescription() *string {
	return v.Description
}

// GetClusterQueuesResponse is returned by GetClusterQueues on success.
type GetClusterQueuesResponse struct {
	// Find an organization
	Organization *GetClusterQueuesOrganization `json:"organization"`
}

// GetOrganization returns GetClusterQueuesResponse.Organization, and is useful for accessing the field via an interface.
func (v *GetClusterQueuesResponse) GetOrganization() *GetClusterQueuesOrganization {
	return v.Organization
}

// GetOrganizationIDOrganization includes the requested fields of the GraphQL type Organization.
// The GraphQL type's documentation follows.
//
// An organization
type GetOrganizationIDOrganization struct {
	Id string `json:"id"`
}

// GetId returns GetOrganizationIDOrganization.Id, and is useful for accessing the field via an interface.
func (v *GetOrganizationIDOrganization) GetId() string { return v.Id }

// GetOrganizationIDResponse is returned by GetOrganizationID on success.
type GetOrganizationIDResponse struct {
	// Find an organization
	Organization *GetOrganizationIDOrganization `json:"organization"`
}

// GetOrganization returns GetOrganizationIDResponse.Organization, and is useful for accessing the field via an interface.
func (v *GetOrganizationIDResponse) GetOrganization() *GetOrganizationIDOrganization {
	return v.Organization
}

// GetPipelinePipeline includes the requested fields of the GraphQL type Pipeline.
// The GraphQL type's documentation follows.
//
// A pipeline
type GetPipelinePipeline struct {
	// The name of the pipeline
	Name string `json:"name"`
	// The short description of the pipeline
	Description *string `json:"description"`
	// The emoji of the pipeline
	Emoji *string `json:"emoji"`
	// The color of the pipeline
	Color *string `json:"color"`
	// Returns true if the viewer has favorited this pipeline
	Favorite bool                                                `json:"favorite"`
	Steps    *GetPipelinePipelineSteps                           `json:"steps"`
	Metrics  *GetPipelinePipelineMetricsPipelineMetricConnection `json:"metrics"`
	// Tags that have been given to this pipeline
	Tags []GetPipelinePipelineTagsPipelineTag `json:"tags"`
}

// GetName returns GetPipelinePipeline.Name, and is useful for accessing the field via an interface.
func (v *GetPipelinePipeline) GetName() string { return v.Name }

// GetDescription returns GetPipelinePipeline.Description, and is useful for accessing the field via an interface.
func (v *GetPipelinePipeline) GetDescription() *string { return v.Description }

// GetEmoji returns GetPipelinePipeline.Emoji, and is useful for accessing the field via an interface.
func (v *GetPipelinePipeline) GetEmoji() *string { return v.Emoji }

// GetColor returns GetPipelinePipeline.Color, and is useful for accessing the field via an interface.
func (v *GetPipelinePipeline) GetColor() *string { return v.Color }

// GetFavorite returns GetPipelinePipeline.Favorite, and is useful for accessing the field via an interface.
func (v *GetPipelinePipeline) GetFavorite() bool { return v.Favorite }

// GetSteps returns GetPipelinePipeline.Steps, and is useful for accessing the field via an interface.
func (v *GetPipelinePipeline) GetSteps() *GetPipelinePipelineSteps { return v.Steps }

// GetMetrics returns GetPipelinePipeline.Metrics, and is useful for accessing the field via an interface.
func (v *GetPipelinePipeline) GetMetrics() *GetPipelinePipelineMetricsPipelineMetricConnection {
	return v.Metrics
}

// GetTags returns GetPipelinePipeline.Tags, and is useful for accessing the field via an interface.
func (v *GetPipelinePipeline) GetTags() []GetPipelinePipelineTagsPipelineTag { return v.Tags }

// GetPipelinePipelineMetricsPipelineMetricConnection includes the requested fields of the GraphQL type PipelineMetricConnection.
type GetPipelinePipelineMetricsPipelineMetricConnection struct {
	Edges []*GetPipelinePipelineMetricsPipelineMetricConnectionEdgesPipelineMetricEdge `json:"edges"`
}

// GetEdges returns GetPipelinePipelineMetricsPipelineMetricConnection.Edges, and is useful for accessing the field via an interface.
func (v *GetPipelinePipelineMetricsPipelineMetricConnection) GetEdges() []*GetPipelinePipelineMetricsPipelineMetricConnectionEdgesPipelineMetricEdge {
	return v.Edges
}

// GetPipelinePipelineMetricsPipelineMetricConnectionEdgesPipelineMetricEdge includes the requested fields of the GraphQL type PipelineMetricEdge.
type GetPipelinePipelineMetricsPipelineMetricConnectionEdgesPipelineMetricEdge struct {
	Node *GetPipelinePipelineMetricsPipelineMetricConnectionEdgesPipelineMetricEdgeNodePipelineMetric `json:"node"`
}

// GetNode returns GetPipelinePipelineMetricsPipelineMetricConnectionEdgesPipelineMetricEdge.Node, and is useful for accessing the field via an interface.
func (v *GetPipelinePipelineMetricsPipelineMetricConnectionEdgesPipelineMetricEdge) GetNode() *GetPipelinePipelineMetricsPipelineMetricConnectionEdgesPipelineMetricEdgeNodePipelineMetric {
	return v.Node
}

// GetPipelinePipelineMetricsPipelineMetricConnectionEdgesPipelineMetricEdgeNodePipelineMetric includes the requested fields of the GraphQL type PipelineMetric.
// The GraphQL type's documentation follows.
//
// A metric for a pipeline
type GetPipelinePipelineMetricsPipelineMetricConnectionEdgesPipelineMetricEdgeNodePipelineMetric struct {
	// The label of this metric
	Label string `json:"label"`
	// The value for this metric
	Value *string `json:"value"`
}

// GetLabel returns GetPipelinePipelineMetricsPipelineMetricConnectionEdgesPipelineMetricEdgeNodePipelineMetric.Label, and is useful for accessing the field via an interface.
func (v *GetPipelinePipelineMetricsPipelineMetricConnectionEdgesPipelineMetricEdgeNodePipelineMetric) GetLabel() string {
	return v.Label
}

// GetValue returns GetPipelinePipelineMetricsPipelineMetricConnectionEdgesPipelineMetricEdgeNodePipelineMetric.Value, and is useful for accessing the field via an interface.
func (v *GetPipelinePipelineMetricsPipelineMetricConnectionEdgesPipelineMetricEdgeNodePipelineMetric) GetValue() *string {
	return v.Value
}

// GetPipelinePipelineSteps includes the requested fields of the GraphQL type PipelineSteps.
// The GraphQL type's documentation follows.
//
// Steps defined on a pipeline
type GetPipelinePipelineSteps struct {
	// A YAML representation of the pipeline steps
	Yaml *string `json:"yaml"`
}

// GetYaml returns GetPipelinePipelineSteps.Yaml, and is useful for accessing the field via an interface.
func (v *GetPipelinePipelineSteps) GetYaml() *string { return v.Yaml }

// GetPipelinePipelineTagsPipelineTag includes the requested fields of the GraphQL type PipelineTag.
// The GraphQL type's documentation follows.
//
// A tag associated with a pipeline
type GetPipelinePipelineTagsPipelineTag struct {
	// The label for this tag
	Label string `json:"label"`
}

// GetLabel returns GetPipelinePipelineTagsPipelineTag.Label, and is useful for accessing the field via an interface.
func (v *GetPipelinePipelineTagsPipelineTag) GetLabel() string { return v.Label }

// GetPipelineResponse is returned by GetPipeline on success.
type GetPipelineResponse struct {
	// Find a pipeline
	Pipeline *GetPipelinePipeline `json:"pipeline"`
}

// GetPipeline returns GetPipelineResponse.Pipeline, and is useful for accessing the field via an interface.
func (v *GetPipelineResponse) GetPipeline() *GetPipelinePipeline { return v.Pipeline }

// InviteUserOrganizationInvitationCreateOrganizationInvitationCreatePayload includes the requested fields of the GraphQL type OrganizationInvitationCreatePayload.
// The GraphQL type's documentation follows.
//
// Autogenerated return type of OrganizationInvitationCreate.
type InviteUserOrganizationInvitationCreateOrganizationInvitationCreatePayload struct {
	// A unique identifier for the client performing the mutation.
	ClientMutationId *string `json:"clientMutationId"`
}

// GetClientMutationId returns InviteUserOrganizationInvitationCreateOrganizationInvitationCreatePayload.ClientMutationId, and is useful for accessing the field via an interface.
func (v *InviteUserOrganizationInvitationCreateOrganizationInvitationCreatePayload) GetClientMutationId() *string {
	return v.ClientMutationId
}

// InviteUserResponse is returned by InviteUser on success.
type InviteUserResponse struct {
	// Send email invitations to this organization.
	OrganizationInvitationCreate *InviteUserOrganizationInvitationCreateOrganizationInvitationCreatePayload `json:"organizationInvitationCreate"`
}

// GetOrganizationInvitationCreate returns InviteUserResponse.OrganizationInvitationCreate, and is useful for accessing the field via an interface.
func (v *InviteUserResponse) GetOrganizationInvitationCreate() *InviteUserOrganizationInvitationCreateOrganizationInvitationCreatePayload {
	return v.OrganizationInvitationCreate
}

// All the possible states a job can be in
type JobStates string

const (
	// The job has just been created and doesn't have a state yet
	JobStatesPending JobStates = "PENDING"
	// The job is waiting on a `wait` step to finish
	JobStatesWaiting JobStates = "WAITING"
	// The job was in a `WAITING` state when the build failed
	JobStatesWaitingFailed JobStates = "WAITING_FAILED"
	// The job is waiting on a `block` step to finish
	JobStatesBlocked JobStates = "BLOCKED"
	// The job was in a `BLOCKED` state when the build failed
	JobStatesBlockedFailed JobStates = "BLOCKED_FAILED"
	// This `block` job has been manually unblocked
	JobStatesUnblocked JobStates = "UNBLOCKED"
	// This `block` job was in an `UNBLOCKED` state when the build failed
	JobStatesUnblockedFailed JobStates = "UNBLOCKED_FAILED"
	// The job is waiting on a concurrency group check before becoming either `LIMITED` or `SCHEDULED`
	JobStatesLimiting JobStates = "LIMITING"
	// The job is waiting for jobs with the same concurrency group to finish
	JobStatesLimited JobStates = "LIMITED"
	// The job is scheduled and waiting for an agent
	JobStatesScheduled JobStates = "SCHEDULED"
	// The job has been assigned to an agent, and it's waiting for it to accept
	JobStatesAssigned JobStates = "ASSIGNED"
	// The job was accepted by the agent, and now it's waiting to start running
	JobStatesAccepted JobStates = "ACCEPTED"
	// The job is running
	JobStatesRunning JobStates = "RUNNING"
	// The job has finished
	JobStatesFinished JobStates = "FINISHED"
	// The job is currently canceling
	JobStatesCanceling JobStates = "CANCELING"
	// The job was canceled
	JobStatesCanceled JobStates = "CANCELED"
	// The job is timing out for taking too long
	JobStatesTimingOut JobStates = "TIMING_OUT"
	// The job timed out
	JobStatesTimedOut JobStates = "TIMED_OUT"
	// The job was skipped
	JobStatesSkipped JobStates = "SKIPPED"
	// The jobs configuration means that it can't be run
	JobStatesBroken JobStates = "BROKEN"
	// The job expired before it was started on an agent
	JobStatesExpired JobStates = "EXPIRED"
)

var AllJobStates = []JobStates{
	JobStatesPending,
	JobStatesWaiting,
	JobStatesWaitingFailed,
	JobStatesBlocked,
	JobStatesBlockedFailed,
	JobStatesUnblocked,
	JobStatesUnblockedFailed,
	JobStatesLimiting,
	JobStatesLimited,
	JobStatesScheduled,
	JobStatesAssigned,
	JobStatesAccepted,
	JobStatesRunning,
	JobStatesFinished,
	JobStatesCanceling,
	JobStatesCanceled,
	JobStatesTimingOut,
	JobStatesTimedOut,
	JobStatesSkipped,
	JobStatesBroken,
	JobStatesExpired,
}

// ListJobsByQueueOrganization includes the requested fields of the GraphQL type Organization.
// The GraphQL type's documentation follows.
//
// An organization
type ListJobsByQueueOrganization struct {
	Jobs *ListJobsByQueueOrganizationJobsJobConnection `json:"jobs"`
}

// GetJobs returns ListJobsByQueueOrganization.Jobs, and is useful for accessing the field via an interface.
func (v *ListJobsByQueueOrganization) GetJobs() *ListJobsByQueueOrganizationJobsJobConnection {
	return v.Jobs
}

// ListJobsByQueueOrganizationJobsJobConnection includes the requested fields of the GraphQL type JobConnection.
type ListJobsByQueueOrganizationJobsJobConnection struct {
	Edges    []*ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdge `json:"edges"`
	PageInfo *ListJobsByQueueOrganizationJobsJobConnectionPageInfo       `json:"pageInfo"`
}

// GetEdges returns ListJobsByQueueOrganizationJobsJobConnection.Edges, and is useful for accessing the field via an interface.
func (v *ListJobsByQueueOrganizationJobsJobConnection) GetEdges() []*ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdge {
	return v.Edges
}

// GetPageInfo returns ListJobsByQueueOrganizationJobsJobConnection.PageInfo, and is useful for accessing the field via an interface.
func (v *ListJobsByQueueOrganizationJobsJobConnection) GetPageInfo() *ListJobsByQueueOrganizationJobsJobConnectionPageInfo {
	return v.PageInfo
}

// ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdge includes the requested fields of the GraphQL type JobEdge.
type ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdge struct {
	Node *ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJob `json:"-"`
}

// GetNode returns ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdge.Node, and is useful for accessing the field via an interface.
func (v *ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdge) GetNode() *ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJob {
	return v.Node
}

func (v *ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdge) UnmarshalJSON(b []byte) error {

	if string(b) == "null" {
		return nil
	}

	var firstPass struct {
		*ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdge
		Node json.RawMessage `json:"node"`
		graphql.NoUnmarshalJSON
	}
	firstPass.ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdge = v

	err := json.Unmarshal(b, &firstPass)
	if err != nil {
		return err
	}

	{
		dst := &v.Node
		src := firstPass.Node
		if len(src) != 0 && string(src) != "null" {
			*dst = new(ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJob)
			err = __unmarshalListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJob(
				src, *dst)
			if err != nil {
				return fmt.Errorf(
					"unable to unmarshal ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdge.Node: %w", err)
			}
		}
	}
	return nil
}

type __premarshalListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdge struct {
	Node json.RawMessage `json:"node"`
}

func (v *ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdge) MarshalJSON() ([]byte, error) {
	premarshaled, err := v.__premarshalJSON()
	if err != nil {
		return nil, err
	}
	return json.Marshal(premarshaled)
}

func (v *ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdge) __premarshalJSON() (*__premarshalListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdge, error) {
	var retval __premarshalListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdge

	{

		dst := &retval.Node
		src := v.Node
		if src != nil {
			var err error
			*dst, err = __marshalListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJob(
				src)
			if err != nil {
				return nil, fmt.Errorf(
					"unable to marshal ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdge.Node: %w", err)
			}
		}
	}
	return &retval, nil
}

// ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJob includes the requested fields of the GraphQL interface Job.
//
// ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJob is implemented by the following types:
// ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeBlock
// ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommand
// ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeTrigger
// ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeWait
// The GraphQL type's documentation follows.
//
// Kinds of jobs that can exist on a build
type ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJob interface {
	implementsGraphQLInterfaceListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJob()
	// GetTypename returns the receiver's concrete GraphQL type-name (see interface doc for possible values).
	GetTypename() *string
}

func (v *ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeBlock) implementsGraphQLInterfaceListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJob() {
}
func (v *ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommand) implementsGraphQLInterfaceListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJob() {
}
func (v *ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeTrigger) implementsGraphQLInterfaceListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJob() {
}
func (v *ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeWait) implementsGraphQLInterfaceListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJob() {
}

func __unmarshalListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJob(b []byte, v *ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJob) error {
	if string(b) == "null" {
		return nil
	}

	var tn struct {
		TypeName string `json:"__typename"`
	}
	err := json.Unmarshal(b, &tn)
	if err != nil {
		return err
	}

	switch tn.TypeName {
	case "JobTypeBlock":
		*v = new(ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeBlock)
		return json.Unmarshal(b, *v)
	case "JobTypeCommand":
		*v = new(ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommand)
		return json.Unmarshal(b, *v)
	case "JobTypeTrigger":
		*v = new(ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeTrigger)
		return json.Unmarshal(b, *v)
	case "JobTypeWait":
		*v = new(ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeWait)
		return json.Unmarshal(b, *v)
	case "":
		return fmt.Errorf(
			"response was missing Job.__typename")
	default:
		return fmt.Errorf(
			`unexpected concrete type for ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJob: "%v"`, tn.TypeName)
	}
}

func __marshalListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJob(v *ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJob) ([]byte, error) {

	var typename string
	switch v := (*v).(type) {
	case *ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeBlock:
		typename = "JobTypeBlock"

		result := struct {
			TypeName string `json:"__typename"`
			*ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeBlock
		}{typename, v}
		return json.Marshal(result)
	case *ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommand:
		typename = "JobTypeCommand"

		result := struct {
			TypeName string `json:"__typename"`
			*ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommand
		}{typename, v}
		return json.Marshal(result)
	case *ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeTrigger:
		typename = "JobTypeTrigger"

		result := struct {
			TypeName string `json:"__typename"`
			*ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeTrigger
		}{typename, v}
		return json.Marshal(result)
	case *ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeWait:
		typename = "JobTypeWait"

		result := struct {
			TypeName string `json:"__typename"`
			*ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeWait
		}{typename, v}
		return json.Marshal(result)
	case nil:
		return []byte("null"), nil
	default:
		return nil, fmt.Errorf(
			`unexpected concrete type for ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJob: "%T"`, v)
	}
}

// ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeBlock includes the requested fields of the GraphQL type JobTypeBlock.
// The GraphQL type's documentation follows.
//
// A type of job that requires a user to unblock it before proceeding in a build pipeline
type ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeBlock struct {
	Typename *string `json:"__typename"`
}

// GetTypename returns ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeBlock.Typename, and is useful for accessing the field via an interface.
func (v *ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeBlock) GetTypename() *string {
	return v.Typename
}

// ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommand includes the requested fields of the GraphQL type JobTypeCommand.
// The GraphQL type's documentation follows.
//
// A type of job that runs a command on an agent
type ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommand struct {
	Typename *string `json:"__typename"`
	Id       string  `json:"id"`
	// The UUID for this job
	Uuid string `json:"uuid"`
	// The command the job will run
	Command *string `json:"command"`
	// The state of the job
	State JobStates `json:"state"`
	// The exit status returned by the command on the agent
	ExitStatus *string `json:"exitStatus"`
	// The URL for the job
	Url string `json:"url"`
	// The time when the job started running
	StartedAt *time.Time `json:"startedAt"`
	// The time when the job finished
	FinishedAt *time.Time `json:"finishedAt"`
	// The time when the job was created
	CreatedAt *time.Time `json:"createdAt"`
	// The cluster of this job
	Cluster *ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommandCluster `json:"cluster"`
	// The cluster queue of this job
	ClusterQueue *ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommandClusterQueue `json:"clusterQueue"`
	// The agent that is running the job
	Agent *ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommandAgent `json:"agent"`
}

// GetTypename returns ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommand.Typename, and is useful for accessing the field via an interface.
func (v *ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommand) GetTypename() *string {
	return v.Typename
}

// GetId returns ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommand.Id, and is useful for accessing the field via an interface.
func (v *ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommand) GetId() string {
	return v.Id
}

// GetUuid returns ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommand.Uuid, and is useful for accessing the field via an interface.
func (v *ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommand) GetUuid() string {
	return v.Uuid
}

// GetCommand returns ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommand.Command, and is useful for accessing the field via an interface.
func (v *ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommand) GetCommand() *string {
	return v.Command
}

// GetState returns ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommand.State, and is useful for accessing the field via an interface.
func (v *ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommand) GetState() JobStates {
	return v.State
}

// GetExitStatus returns ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommand.ExitStatus, and is useful for accessing the field via an interface.
func (v *ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommand) GetExitStatus() *string {
	return v.ExitStatus
}

// GetUrl returns ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommand.Url, and is useful for accessing the field via an interface.
func (v *ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommand) GetUrl() string {
	return v.Url
}

// GetStartedAt returns ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommand.StartedAt, and is useful for accessing the field via an interface.
func (v *ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommand) GetStartedAt() *time.Time {
	return v.StartedAt
}

// GetFinishedAt returns ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommand.FinishedAt, and is useful for accessing the field via an interface.
func (v *ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommand) GetFinishedAt() *time.Time {
	return v.FinishedAt
}

// GetCreatedAt returns ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommand.CreatedAt, and is useful for accessing the field via an interface.
func (v *ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommand) GetCreatedAt() *time.Time {
	return v.CreatedAt
}

// GetCluster returns ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommand.Cluster, and is useful for accessing the field via an interface.
func (v *ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommand) GetCluster() *ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommandCluster {
	return v.Cluster
}

// GetClusterQueue returns ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommand.ClusterQueue, and is useful for accessing the field via an interface.
func (v *ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommand) GetClusterQueue() *ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommandClusterQueue {
	return v.ClusterQueue
}

// GetAgent returns ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommand.Agent, and is useful for accessing the field via an interface.
func (v *ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommand) GetAgent() *ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommandAgent {
	return v.Agent
}

// ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommandAgent includes the requested fields of the GraphQL type Agent.
// The GraphQL type's documentation follows.
//
// An agent
type ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommandAgent struct {
	Id string `json:"id"`
	// The name of the agent
	Name string `json:"name"`
	// The hostname of the machine running the agent
	Hostname *string `json:"hostname"`
	// The meta data this agent was stared with
	MetaData []string `json:"metaData"`
}

// GetId returns ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommandAgent.Id, and is useful for accessing the field via an interface.
func (v *ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommandAgent) GetId() string {
	return v.Id
}

// GetName returns ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommandAgent.Name, and is useful for accessing the field via an interface.
func (v *ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommandAgent) GetName() string {
	return v.Name
}

// GetHostname returns ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommandAgent.Hostname, and is useful for accessing the field via an interface.
func (v *ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommandAgent) GetHostname() *string {
	return v.Hostname
}

// GetMetaData returns ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommandAgent.MetaData, and is useful for accessing the field via an interface.
func (v *ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommandAgent) GetMetaData() []string {
	return v.MetaData
}

// ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommandCluster includes the requested fields of the GraphQL type Cluster.
type ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommandCluster struct {
	Id string `json:"id"`
	// Name of the cluster
	Name string `json:"name"`
}

// GetId returns ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommandCluster.Id, and is useful for accessing the field via an interface.
func (v *ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommandCluster) GetId() string {
	return v.Id
}

// GetName returns ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommandCluster.Name, and is useful for accessing the field via an interface.
func (v *ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommandCluster) GetName() string {
	return v.Name
}

// ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommandClusterQueue includes the requested fields of the GraphQL type ClusterQueue.
type ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommandClusterQueue struct {
	Id  string `json:"id"`
	Key string `json:"key"`
}

// GetId returns ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommandClusterQueue.Id, and is useful for accessing the field via an interface.
func (v *ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommandClusterQueue) GetId() string {
	return v.Id
}

// GetKey returns ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommandClusterQueue.Key, and is useful for accessing the field via an interface.
func (v *ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommandClusterQueue) GetKey() string {
	return v.Key
}

// ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeTrigger includes the requested fields of the GraphQL type JobTypeTrigger.
// The GraphQL type's documentation follows.
//
// A type of job that triggers another build on a pipeline
type ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeTrigger struct {
	Typename *string `json:"__typename"`
}

// GetTypename returns ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeTrigger.Typename, and is useful for accessing the field via an interface.
func (v *ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeTrigger) GetTypename() *string {
	return v.Typename
}

// ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeWait includes the requested fields of the GraphQL type JobTypeWait.
// The GraphQL type's documentation follows.
//
// A type of job that waits for all previous jobs to pass before proceeding the build pipeline
type ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeWait struct {
	Typename *string `json:"__typename"`
}

// GetTypename returns ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeWait.Typename, and is useful for accessing the field via an interface.
func (v *ListJobsByQueueOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeWait) GetTypename() *string {
	return v.Typename
}

// ListJobsByQueueOrganizationJobsJobConnectionPageInfo includes the requested fields of the GraphQL type PageInfo.
// The GraphQL type's documentation follows.
//
// Information about pagination in a connection.
type ListJobsByQueueOrganizationJobsJobConnectionPageInfo struct {
	// When paginating forwards, the cursor to continue.
	EndCursor *string `json:"endCursor"`
	// When paginating forwards, are there more items?
	HasNextPage bool `json:"hasNextPage"`
}

// GetEndCursor returns ListJobsByQueueOrganizationJobsJobConnectionPageInfo.EndCursor, and is useful for accessing the field via an interface.
func (v *ListJobsByQueueOrganizationJobsJobConnectionPageInfo) GetEndCursor() *string {
	return v.EndCursor
}

// GetHasNextPage returns ListJobsByQueueOrganizationJobsJobConnectionPageInfo.HasNextPage, and is useful for accessing the field via an interface.
func (v *ListJobsByQueueOrganizationJobsJobConnectionPageInfo) GetHasNextPage() bool {
	return v.HasNextPage
}

// ListJobsByQueueResponse is returned by ListJobsByQueue on success.
type ListJobsByQueueResponse struct {
	// Find an organization
	Organization *ListJobsByQueueOrganization `json:"organization"`
}

// GetOrganization returns ListJobsByQueueResponse.Organization, and is useful for accessing the field via an interface.
func (v *ListJobsByQueueResponse) GetOrganization() *ListJobsByQueueOrganization {
	return v.Organization
}

// ListJobsByStateOrganization includes the requested fields of the GraphQL type Organization.
// The GraphQL type's documentation follows.
//
// An organization
type ListJobsByStateOrganization struct {
	Jobs *ListJobsByStateOrganizationJobsJobConnection `json:"jobs"`
}

// GetJobs returns ListJobsByStateOrganization.Jobs, and is useful for accessing the field via an interface.
func (v *ListJobsByStateOrganization) GetJobs() *ListJobsByStateOrganizationJobsJobConnection {
	return v.Jobs
}

// ListJobsByStateOrganizationJobsJobConnection includes the requested fields of the GraphQL type JobConnection.
type ListJobsByStateOrganizationJobsJobConnection struct {
	Edges    []*ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdge `json:"edges"`
	PageInfo *ListJobsByStateOrganizationJobsJobConnectionPageInfo       `json:"pageInfo"`
}

// GetEdges returns ListJobsByStateOrganizationJobsJobConnection.Edges, and is useful for accessing the field via an interface.
func (v *ListJobsByStateOrganizationJobsJobConnection) GetEdges() []*ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdge {
	return v.Edges
}

// GetPageInfo returns ListJobsByStateOrganizationJobsJobConnection.PageInfo, and is useful for accessing the field via an interface.
func (v *ListJobsByStateOrganizationJobsJobConnection) GetPageInfo() *ListJobsByStateOrganizationJobsJobConnectionPageInfo {
	return v.PageInfo
}

// ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdge includes the requested fields of the GraphQL type JobEdge.
type ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdge struct {
	Node *ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJob `json:"-"`
}

// GetNode returns ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdge.Node, and is useful for accessing the field via an interface.
func (v *ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdge) GetNode() *ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJob {
	return v.Node
}

func (v *ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdge) UnmarshalJSON(b []byte) error {

	if string(b) == "null" {
		return nil
	}

	var firstPass struct {
		*ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdge
		Node json.RawMessage `json:"node"`
		graphql.NoUnmarshalJSON
	}
	firstPass.ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdge = v

	err := json.Unmarshal(b, &firstPass)
	if err != nil {
		return err
	}

	{
		dst := &v.Node
		src := firstPass.Node
		if len(src) != 0 && string(src) != "null" {
			*dst = new(ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJob)
			err = __unmarshalListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJob(
				src, *dst)
			if err != nil {
				return fmt.Errorf(
					"unable to unmarshal ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdge.Node: %w", err)
			}
		}
	}
	return nil
}

type __premarshalListJobsByStateOrganizationJobsJobConnectionEdgesJobEdge struct {
	Node json.RawMessage `json:"node"`
}

func (v *ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdge) MarshalJSON() ([]byte, error) {
	premarshaled, err := v.__premarshalJSON()
	if err != nil {
		return nil, err
	}
	return json.Marshal(premarshaled)
}

func (v *ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdge) __premarshalJSON() (*__premarshalListJobsByStateOrganizationJobsJobConnectionEdgesJobEdge, error) {
	var retval __premarshalListJobsByStateOrganizationJobsJobConnectionEdgesJobEdge

	{

		dst := &retval.Node
		src := v.Node
		if src != nil {
			var err error
			*dst, err = __marshalListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJob(
				src)
			if err != nil {
				return nil, fmt.Errorf(
					"unable to marshal ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdge.Node: %w", err)
			}
		}
	}
	return &retval, nil
}

// ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJob includes the requested fields of the GraphQL interface Job.
//
// ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJob is implemented by the following types:
// ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeBlock
// ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommand
// ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeTrigger
// ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeWait
// The GraphQL type's documentation follows.
//
// Kinds of jobs that can exist on a build
type ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJob interface {
	implementsGraphQLInterfaceListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJob()
	// GetTypename returns the receiver's concrete GraphQL type-name (see interface doc for possible values).
	GetTypename() *string
}

func (v *ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeBlock) implementsGraphQLInterfaceListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJob() {
}
func (v *ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommand) implementsGraphQLInterfaceListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJob() {
}
func (v *ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeTrigger) implementsGraphQLInterfaceListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJob() {
}
func (v *ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeWait) implementsGraphQLInterfaceListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJob() {
}

func __unmarshalListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJob(b []byte, v *ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJob) error {
	if string(b) == "null" {
		return nil
	}

	var tn struct {
		TypeName string `json:"__typename"`
	}
	err := json.Unmarshal(b, &tn)
	if err != nil {
		return err
	}

	switch tn.TypeName {
	case "JobTypeBlock":
		*v = new(ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeBlock)
		return json.Unmarshal(b, *v)
	case "JobTypeCommand":
		*v = new(ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommand)
		return json.Unmarshal(b, *v)
	case "JobTypeTrigger":
		*v = new(ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeTrigger)
		return json.Unmarshal(b, *v)
	case "JobTypeWait":
		*v = new(ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeWait)
		return json.Unmarshal(b, *v)
	case "":
		return fmt.Errorf(
			"response was missing Job.__typename")
	default:
		return fmt.Errorf(
			`unexpected concrete type for ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJob: "%v"`, tn.TypeName)
	}
}

func __marshalListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJob(v *ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJob) ([]byte, error) {

	var typename string
	switch v := (*v).(type) {
	case *ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeBlock:
		typename = "JobTypeBlock"

		result := struct {
			TypeName string `json:"__typename"`
			*ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeBlock
		}{typename, v}
		return json.Marshal(result)
	case *ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommand:
		typename = "JobTypeCommand"

		result := struct {
			TypeName string `json:"__typename"`
			*ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommand
		}{typename, v}
		return json.Marshal(result)
	case *ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeTrigger:
		typename = "JobTypeTrigger"

		result := struct {
			TypeName string `json:"__typename"`
			*ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeTrigger
		}{typename, v}
		return json.Marshal(result)
	case *ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeWait:
		typename = "JobTypeWait"

		result := struct {
			TypeName string `json:"__typename"`
			*ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeWait
		}{typename, v}
		return json.Marshal(result)
	case nil:
		return []byte("null"), nil
	default:
		return nil, fmt.Errorf(
			`unexpected concrete type for ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJob: "%T"`, v)
	}
}

// ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeBlock includes the requested fields of the GraphQL type JobTypeBlock.
// The GraphQL type's documentation follows.
//
// A type of job that requires a user to unblock it before proceeding in a build pipeline
type ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeBlock struct {
	Typename *string `json:"__typename"`
}

// GetTypename returns ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeBlock.Typename, and is useful for accessing the field via an interface.
func (v *ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeBlock) GetTypename() *string {
	return v.Typename
}

// ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommand includes the requested fields of the GraphQL type JobTypeCommand.
// The GraphQL type's documentation follows.
//
// A type of job that runs a command on an agent
type ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommand struct {
	Typename *string `json:"__typename"`
	Id       string  `json:"id"`
	// The UUID for this job
	Uuid string `json:"uuid"`
	// The label of the job
	Label *string `json:"label"`
	// The command the job will run
	Command *string `json:"command"`
	// The state of the job
	State JobStates `json:"state"`
	// The exit status returned by the command on the agent
	ExitStatus *string `json:"exitStatus"`
	// The URL for the job
	Url string `json:"url"`
	// The time when the job started running
	StartedAt *time.Time `json:"startedAt"`
	// The time when the job finished
	FinishedAt *time.Time `json:"finishedAt"`
	// The time when the job was created
	CreatedAt *time.Time `json:"createdAt"`
	// The cluster of this job
	Cluster *ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommandCluster `json:"cluster"`
	// The cluster queue of this job
	ClusterQueue *ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommandClusterQueue `json:"clusterQueue"`
	// The agent that is running the job
	Agent *ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommandAgent `json:"agent"`
}

// GetTypename returns ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommand.Typename, and is useful for accessing the field via an interface.
func (v *ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommand) GetTypename() *string {
	return v.Typename
}

// GetId returns ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommand.Id, and is useful for accessing the field via an interface.
func (v *ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommand) GetId() string {
	return v.Id
}

// GetUuid returns ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommand.Uuid, and is useful for accessing the field via an interface.
func (v *ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommand) GetUuid() string {
	return v.Uuid
}

// GetLabel returns ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommand.Label, and is useful for accessing the field via an interface.
func (v *ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommand) GetLabel() *string {
	return v.Label
}

// GetCommand returns ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommand.Command, and is useful for accessing the field via an interface.
func (v *ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommand) GetCommand() *string {
	return v.Command
}

// GetState returns ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommand.State, and is useful for accessing the field via an interface.
func (v *ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommand) GetState() JobStates {
	return v.State
}

// GetExitStatus returns ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommand.ExitStatus, and is useful for accessing the field via an interface.
func (v *ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommand) GetExitStatus() *string {
	return v.ExitStatus
}

// GetUrl returns ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommand.Url, and is useful for accessing the field via an interface.
func (v *ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommand) GetUrl() string {
	return v.Url
}

// GetStartedAt returns ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommand.StartedAt, and is useful for accessing the field via an interface.
func (v *ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommand) GetStartedAt() *time.Time {
	return v.StartedAt
}

// GetFinishedAt returns ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommand.FinishedAt, and is useful for accessing the field via an interface.
func (v *ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommand) GetFinishedAt() *time.Time {
	return v.FinishedAt
}

// GetCreatedAt returns ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommand.CreatedAt, and is useful for accessing the field via an interface.
func (v *ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommand) GetCreatedAt() *time.Time {
	return v.CreatedAt
}

// GetCluster returns ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommand.Cluster, and is useful for accessing the field via an interface.
func (v *ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommand) GetCluster() *ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommandCluster {
	return v.Cluster
}

// GetClusterQueue returns ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommand.ClusterQueue, and is useful for accessing the field via an interface.
func (v *ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommand) GetClusterQueue() *ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommandClusterQueue {
	return v.ClusterQueue
}

// GetAgent returns ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommand.Agent, and is useful for accessing the field via an interface.
func (v *ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommand) GetAgent() *ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommandAgent {
	return v.Agent
}

// ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommandAgent includes the requested fields of the GraphQL type Agent.
// The GraphQL type's documentation follows.
//
// An agent
type ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommandAgent struct {
	Id string `json:"id"`
	// The name of the agent
	Name string `json:"name"`
	// The hostname of the machine running the agent
	Hostname *string `json:"hostname"`
	// The meta data this agent was stared with
	MetaData []string `json:"metaData"`
}

// GetId returns ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommandAgent.Id, and is useful for accessing the field via an interface.
func (v *ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommandAgent) GetId() string {
	return v.Id
}

// GetName returns ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommandAgent.Name, and is useful for accessing the field via an interface.
func (v *ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommandAgent) GetName() string {
	return v.Name
}

// GetHostname returns ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommandAgent.Hostname, and is useful for accessing the field via an interface.
func (v *ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommandAgent) GetHostname() *string {
	return v.Hostname
}

// GetMetaData returns ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommandAgent.MetaData, and is useful for accessing the field via an interface.
func (v *ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommandAgent) GetMetaData() []string {
	return v.MetaData
}

// ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommandCluster includes the requested fields of the GraphQL type Cluster.
type ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommandCluster struct {
	Id string `json:"id"`
	// Name of the cluster
	Name string `json:"name"`
}

// GetId returns ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommandCluster.Id, and is useful for accessing the field via an interface.
func (v *ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommandCluster) GetId() string {
	return v.Id
}

// GetName returns ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommandCluster.Name, and is useful for accessing the field via an interface.
func (v *ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommandCluster) GetName() string {
	return v.Name
}

// ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommandClusterQueue includes the requested fields of the GraphQL type ClusterQueue.
type ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommandClusterQueue struct {
	Id  string `json:"id"`
	Key string `json:"key"`
}

// GetId returns ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommandClusterQueue.Id, and is useful for accessing the field via an interface.
func (v *ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommandClusterQueue) GetId() string {
	return v.Id
}

// GetKey returns ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommandClusterQueue.Key, and is useful for accessing the field via an interface.
func (v *ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeCommandClusterQueue) GetKey() string {
	return v.Key
}

// ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeTrigger includes the requested fields of the GraphQL type JobTypeTrigger.
// The GraphQL type's documentation follows.
//
// A type of job that triggers another build on a pipeline
type ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeTrigger struct {
	Typename *string `json:"__typename"`
}

// GetTypename returns ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeTrigger.Typename, and is useful for accessing the field via an interface.
func (v *ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeTrigger) GetTypename() *string {
	return v.Typename
}

// ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeWait includes the requested fields of the GraphQL type JobTypeWait.
// The GraphQL type's documentation follows.
//
// A type of job that waits for all previous jobs to pass before proceeding the build pipeline
type ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeWait struct {
	Typename *string `json:"__typename"`
}

// GetTypename returns ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeWait.Typename, and is useful for accessing the field via an interface.
func (v *ListJobsByStateOrganizationJobsJobConnectionEdgesJobEdgeNodeJobTypeWait) GetTypename() *string {
	return v.Typename
}

// ListJobsByStateOrganizationJobsJobConnectionPageInfo includes the requested fields of the GraphQL type PageInfo.
// The GraphQL type's documentation follows.
//
// Information about pagination in a connection.
type ListJobsByStateOrganizationJobsJobConnectionPageInfo struct {
	// When paginating forwards, the cursor to continue.
	EndCursor *string `json:"endCursor"`
	// When paginating forwards, are there more items?
	HasNextPage bool `json:"hasNextPage"`
}

// GetEndCursor returns ListJobsByStateOrganizationJobsJobConnectionPageInfo.EndCursor, and is useful for accessing the field via an interface.
func (v *ListJobsByStateOrganizationJobsJobConnectionPageInfo) GetEndCursor() *string {
	return v.EndCursor
}

// GetHasNextPage returns ListJobsByStateOrganizationJobsJobConnectionPageInfo.HasNextPage, and is useful for accessing the field via an interface.
func (v *ListJobsByStateOrganizationJobsJobConnectionPageInfo) GetHasNextPage() bool {
	return v.HasNextPage
}

// ListJobsByStateResponse is returned by ListJobsByState on success.
type ListJobsByStateResponse struct {
	// Find an organization
	Organization *ListJobsByStateOrganization `json:"organization"`
}

// GetOrganization returns ListJobsByStateResponse.Organization, and is useful for accessing the field via an interface.
func (v *ListJobsByStateResponse) GetOrganization() *ListJobsByStateOrganization {
	return v.Organization
}

// RetryJobJobTypeCommandRetryJobTypeCommandRetryPayload includes the requested fields of the GraphQL type JobTypeCommandRetryPayload.
// The GraphQL type's documentation follows.
//
// Autogenerated return type of JobTypeCommandRetry.
type RetryJobJobTypeCommandRetryJobTypeCommandRetryPayload struct {
	JobTypeCommand RetryJobJobTypeCommandRetryJobTypeCommandRetryPayloadJobTypeCommand `json:"jobTypeCommand"`
}

// GetJobTypeCommand returns RetryJobJobTypeCommandRetryJobTypeCommandRetryPayload.JobTypeCommand, and is useful for accessing the field via an interface.
func (v *RetryJobJobTypeCommandRetryJobTypeCommandRetryPayload) GetJobTypeCommand() RetryJobJobTypeCommandRetryJobTypeCommandRetryPayloadJobTypeCommand {
	return v.JobTypeCommand
}

// RetryJobJobTypeCommandRetryJobTypeCommandRetryPayloadJobTypeCommand includes the requested fields of the GraphQL type JobTypeCommand.
// The GraphQL type's documentation follows.
//
// A type of job that runs a command on an agent
type RetryJobJobTypeCommandRetryJobTypeCommandRetryPayloadJobTypeCommand struct {
	Id string `json:"id"`
	// The state of the job
	State JobStates `json:"state"`
	// The URL for the job
	Url string `json:"url"`
}

// GetId returns RetryJobJobTypeCommandRetryJobTypeCommandRetryPayloadJobTypeCommand.Id, and is useful for accessing the field via an interface.
func (v *RetryJobJobTypeCommandRetryJobTypeCommandRetryPayloadJobTypeCommand) GetId() string {
	return v.Id
}

// GetState returns RetryJobJobTypeCommandRetryJobTypeCommandRetryPayloadJobTypeCommand.State, and is useful for accessing the field via an interface.
func (v *RetryJobJobTypeCommandRetryJobTypeCommandRetryPayloadJobTypeCommand) GetState() JobStates {
	return v.State
}

// GetUrl returns RetryJobJobTypeCommandRetryJobTypeCommandRetryPayloadJobTypeCommand.Url, and is useful for accessing the field via an interface.
func (v *RetryJobJobTypeCommandRetryJobTypeCommandRetryPayloadJobTypeCommand) GetUrl() string {
	return v.Url
}

// RetryJobResponse is returned by RetryJob on success.
type RetryJobResponse struct {
	// Retry a job.
	JobTypeCommandRetry *RetryJobJobTypeCommandRetryJobTypeCommandRetryPayload `json:"jobTypeCommandRetry"`
}

// GetJobTypeCommandRetry returns RetryJobResponse.JobTypeCommandRetry, and is useful for accessing the field via an interface.
func (v *RetryJobResponse) GetJobTypeCommandRetry() *RetryJobJobTypeCommandRetryJobTypeCommandRetryPayload {
	return v.JobTypeCommandRetry
}

// UnblockJobJobTypeBlockUnblockJobTypeBlockUnblockPayload includes the requested fields of the GraphQL type JobTypeBlockUnblockPayload.
// The GraphQL type's documentation follows.
//
// Autogenerated return type of JobTypeBlockUnblock.
type UnblockJobJobTypeBlockUnblockJobTypeBlockUnblockPayload struct {
	JobTypeBlock UnblockJobJobTypeBlockUnblockJobTypeBlockUnblockPayloadJobTypeBlock `json:"jobTypeBlock"`
}

// GetJobTypeBlock returns UnblockJobJobTypeBlockUnblockJobTypeBlockUnblockPayload.JobTypeBlock, and is useful for accessing the field via an interface.
func (v *UnblockJobJobTypeBlockUnblockJobTypeBlockUnblockPayload) GetJobTypeBlock() UnblockJobJobTypeBlockUnblockJobTypeBlockUnblockPayloadJobTypeBlock {
	return v.JobTypeBlock
}

// UnblockJobJobTypeBlockUnblockJobTypeBlockUnblockPayloadJobTypeBlock includes the requested fields of the GraphQL type JobTypeBlock.
// The GraphQL type's documentation follows.
//
// A type of job that requires a user to unblock it before proceeding in a build pipeline
type UnblockJobJobTypeBlockUnblockJobTypeBlockUnblockPayloadJobTypeBlock struct {
	Id string `json:"id"`
	// The state of the job
	State JobStates `json:"state"`
	// Whether or not this job can be unblocked yet (may be waiting on another job to finish)
	IsUnblockable *bool `json:"isUnblockable"`
	// The build that this job is a part of
	Build *UnblockJobJobTypeBlockUnblockJobTypeBlockUnblockPayloadJobTypeBlockBuild `json:"build"`
}

// GetId returns UnblockJobJobTypeBlockUnblockJobTypeBlockUnblockPayloadJobTypeBlock.Id, and is useful for accessing the field via an interface.
func (v *UnblockJobJobTypeBlockUnblockJobTypeBlockUnblockPayloadJobTypeBlock) GetId() string {
	return v.Id
}

// GetState returns UnblockJobJobTypeBlockUnblockJobTypeBlockUnblockPayloadJobTypeBlock.State, and is useful for accessing the field via an interface.
func (v *UnblockJobJobTypeBlockUnblockJobTypeBlockUnblockPayloadJobTypeBlock) GetState() JobStates {
	return v.State
}

// GetIsUnblockable returns UnblockJobJobTypeBlockUnblockJobTypeBlockUnblockPayloadJobTypeBlock.IsUnblockable, and is useful for accessing the field via an interface.
func (v *UnblockJobJobTypeBlockUnblockJobTypeBlockUnblockPayloadJobTypeBlock) GetIsUnblockable() *bool {
	return v.IsUnblockable
}

// GetBuild returns UnblockJobJobTypeBlockUnblockJobTypeBlockUnblockPayloadJobTypeBlock.Build, and is useful for accessing the field via an interface.
func (v *UnblockJobJobTypeBlockUnblockJobTypeBlockUnblockPayloadJobTypeBlock) GetBuild() *UnblockJobJobTypeBlockUnblockJobTypeBlockUnblockPayloadJobTypeBlockBuild {
	return v.Build
}

// UnblockJobJobTypeBlockUnblockJobTypeBlockUnblockPayloadJobTypeBlockBuild includes the requested fields of the GraphQL type Build.
// The GraphQL type's documentation follows.
//
// A build from a pipeline
type UnblockJobJobTypeBlockUnblockJobTypeBlockUnblockPayloadJobTypeBlockBuild struct {
	// The URL for the build
	Url string `json:"url"`
}

// GetUrl returns UnblockJobJobTypeBlockUnblockJobTypeBlockUnblockPayloadJobTypeBlockBuild.Url, and is useful for accessing the field via an interface.
func (v *UnblockJobJobTypeBlockUnblockJobTypeBlockUnblockPayloadJobTypeBlockBuild) GetUrl() string {
	return v.Url
}

// UnblockJobResponse is returned by UnblockJob on success.
type UnblockJobResponse struct {
	// Unblocks a build's "Block pipeline" job.
	JobTypeBlockUnblock *UnblockJobJobTypeBlockUnblockJobTypeBlockUnblockPayload `json:"jobTypeBlockUnblock"`
}

// GetJobTypeBlockUnblock returns UnblockJobResponse.JobTypeBlockUnblock, and is useful for accessing the field via an interface.
func (v *UnblockJobResponse) GetJobTypeBlockUnblock() *UnblockJobJobTypeBlockUnblockJobTypeBlockUnblockPayload {
	return v.JobTypeBlockUnblock
}

// __CancelJobInput is used internally by genqlient
type __CancelJobInput struct {
	JobId string `json:"jobId"`
}

// GetJobId returns __CancelJobInput.JobId, and is useful for accessing the field via an interface.
func (v *__CancelJobInput) GetJobId() string { return v.JobId }

// __FindClustersInput is used internally by genqlient
type __FindClustersInput struct {
	Org    string  `json:"org"`
	Cursor *string `json:"cursor"`
}

// GetOrg returns __FindClustersInput.Org, and is useful for accessing the field via an interface.
func (v *__FindClustersInput) GetOrg() string { return v.Org }

// GetCursor returns __FindClustersInput.Cursor, and is useful for accessing the field via an interface.
func (v *__FindClustersInput) GetCursor() *string { return v.Cursor }

// __FindQueuesForClusterInput is used internally by genqlient
type __FindQueuesForClusterInput struct {
	ClusterId string  `json:"clusterId"`
	Cursor    *string `json:"cursor"`
}

// GetClusterId returns __FindQueuesForClusterInput.ClusterId, and is useful for accessing the field via an interface.
func (v *__FindQueuesForClusterInput) GetClusterId() string { return v.ClusterId }

// GetCursor returns __FindQueuesForClusterInput.Cursor, and is useful for accessing the field via an interface.
func (v *__FindQueuesForClusterInput) GetCursor() *string { return v.Cursor }

// __FindUserByEmailInput is used internally by genqlient
type __FindUserByEmailInput struct {
	Organization string `json:"organization"`
	Email        string `json:"email"`
}

// GetOrganization returns __FindUserByEmailInput.Organization, and is useful for accessing the field via an interface.
func (v *__FindUserByEmailInput) GetOrganization() string { return v.Organization }

// GetEmail returns __FindUserByEmailInput.Email, and is useful for accessing the field via an interface.
func (v *__FindUserByEmailInput) GetEmail() string { return v.Email }

// __GetArtifactsInput is used internally by genqlient
type __GetArtifactsInput struct {
	ArtifactId string `json:"artifactId"`
}

// GetArtifactId returns __GetArtifactsInput.ArtifactId, and is useful for accessing the field via an interface.
func (v *__GetArtifactsInput) GetArtifactId() string { return v.ArtifactId }

// __GetClusterQueueAgentInput is used internally by genqlient
type __GetClusterQueueAgentInput struct {
	OrgSlug string   `json:"orgSlug"`
	QueueId []string `json:"queueId"`
}

// GetOrgSlug returns __GetClusterQueueAgentInput.OrgSlug, and is useful for accessing the field via an interface.
func (v *__GetClusterQueueAgentInput) GetOrgSlug() string { return v.OrgSlug }

// GetQueueId returns __GetClusterQueueAgentInput.QueueId, and is useful for accessing the field via an interface.
func (v *__GetClusterQueueAgentInput) GetQueueId() []string { return v.QueueId }

// __GetClusterQueuesInput is used internally by genqlient
type __GetClusterQueuesInput struct {
	OrgSlug   string `json:"orgSlug"`
	ClusterId string `json:"clusterId"`
}

// GetOrgSlug returns __GetClusterQueuesInput.OrgSlug, and is useful for accessing the field via an interface.
func (v *__GetClusterQueuesInput) GetOrgSlug() string { return v.OrgSlug }

// GetClusterId returns __GetClusterQueuesInput.ClusterId, and is useful for accessing the field via an interface.
func (v *__GetClusterQueuesInput) GetClusterId() string { return v.ClusterId }

// __GetOrganizationIDInput is used internally by genqlient
type __GetOrganizationIDInput struct {
	Slug string `json:"slug"`
}

// GetSlug returns __GetOrganizationIDInput.Slug, and is useful for accessing the field via an interface.
func (v *__GetOrganizationIDInput) GetSlug() string { return v.Slug }

// __GetPipelineInput is used internally by genqlient
type __GetPipelineInput struct {
	Slug string `json:"slug"`
}

// GetSlug returns __GetPipelineInput.Slug, and is useful for accessing the field via an interface.
func (v *__GetPipelineInput) GetSlug() string { return v.Slug }

// __InviteUserInput is used internally by genqlient
type __InviteUserInput struct {
	Organization string   `json:"organization"`
	Emails       []string `json:"emails"`
}

// GetOrganization returns __InviteUserInput.Organization, and is useful for accessing the field via an interface.
func (v *__InviteUserInput) GetOrganization() string { return v.Organization }

// GetEmails returns __InviteUserInput.Emails, and is useful for accessing the field via an interface.
func (v *__InviteUserInput) GetEmails() []string { return v.Emails }

// __ListJobsByQueueInput is used internally by genqlient
type __ListJobsByQueueInput struct {
	Org          string   `json:"org"`
	ClusterQueue []string `json:"clusterQueue"`
	First        *int     `json:"first"`
	After        *string  `json:"after"`
}

// GetOrg returns __ListJobsByQueueInput.Org, and is useful for accessing the field via an interface.
func (v *__ListJobsByQueueInput) GetOrg() string { return v.Org }

// GetClusterQueue returns __ListJobsByQueueInput.ClusterQueue, and is useful for accessing the field via an interface.
func (v *__ListJobsByQueueInput) GetClusterQueue() []string { return v.ClusterQueue }

// GetFirst returns __ListJobsByQueueInput.First, and is useful for accessing the field via an interface.
func (v *__ListJobsByQueueInput) GetFirst() *int { return v.First }

// GetAfter returns __ListJobsByQueueInput.After, and is useful for accessing the field via an interface.
func (v *__ListJobsByQueueInput) GetAfter() *string { return v.After }

// __ListJobsByStateInput is used internally by genqlient
type __ListJobsByStateInput struct {
	Org   string      `json:"org"`
	State []JobStates `json:"state"`
	First *int        `json:"first"`
	After *string     `json:"after"`
}

// GetOrg returns __ListJobsByStateInput.Org, and is useful for accessing the field via an interface.
func (v *__ListJobsByStateInput) GetOrg() string { return v.Org }

// GetState returns __ListJobsByStateInput.State, and is useful for accessing the field via an interface.
func (v *__ListJobsByStateInput) GetState() []JobStates { return v.State }

// GetFirst returns __ListJobsByStateInput.First, and is useful for accessing the field via an interface.
func (v *__ListJobsByStateInput) GetFirst() *int { return v.First }

// GetAfter returns __ListJobsByStateInput.After, and is useful for accessing the field via an interface.
func (v *__ListJobsByStateInput) GetAfter() *string { return v.After }

// __RetryJobInput is used internally by genqlient
type __RetryJobInput struct {
	Id string `json:"id"`
}

// GetId returns __RetryJobInput.Id, and is useful for accessing the field via an interface.
func (v *__RetryJobInput) GetId() string { return v.Id }

// __UnblockJobInput is used internally by genqlient
type __UnblockJobInput struct {
	Id     string  `json:"id"`
	Fields *string `json:"fields"`
}

// GetId returns __UnblockJobInput.Id, and is useful for accessing the field via an interface.
func (v *__UnblockJobInput) GetId() string { return v.Id }

// GetFields returns __UnblockJobInput.Fields, and is useful for accessing the field via an interface.
func (v *__UnblockJobInput) GetFields() *string { return v.Fields }

// The mutation executed by CancelJob.
const CancelJob_Operation = `
mutation CancelJob ($jobId: ID!) {
	jobTypeCommandCancel(input: {id:$jobId}) {
		clientMutationId
		jobTypeCommand {
			id
			uuid
			state
			url
		}
	}
}
`

func CancelJob(
	ctx_ context.Context,
	client_ graphql.Client,
	jobId string,
) (data_ *CancelJobResponse, err_ error) {
	req_ := &graphql.Request{
		OpName: "CancelJob",
		Query:  CancelJob_Operation,
		Variables: &__CancelJobInput{
			JobId: jobId,
		},
	}

	data_ = &CancelJobResponse{}
	resp_ := &graphql.Response{Data: data_}

	err_ = client_.MakeRequest(
		ctx_,
		req_,
		resp_,
	)

	return data_, err_
}

// The query executed by FindClusters.
const FindClusters_Operation = `
query FindClusters ($org: ID!, $cursor: String) {
	organization(slug: $org) {
		clusters(first: 100, after: $cursor) {
			edges {
				node {
					id
					name
				}
			}
			pageInfo {
				hasNextPage
				endCursor
			}
		}
	}
}
`

func FindClusters(
	ctx_ context.Context,
	client_ graphql.Client,
	org string,
	cursor *string,
) (data_ *FindClustersResponse, err_ error) {
	req_ := &graphql.Request{
		OpName: "FindClusters",
		Query:  FindClusters_Operation,
		Variables: &__FindClustersInput{
			Org:    org,
			Cursor: cursor,
		},
	}

	data_ = &FindClustersResponse{}
	resp_ := &graphql.Response{Data: data_}

	err_ = client_.MakeRequest(
		ctx_,
		req_,
		resp_,
	)

	return data_, err_
}

// The query executed by FindQueuesForCluster.
const FindQueuesForCluster_Operation = `
query FindQueuesForCluster ($clusterId: ID!, $cursor: String) {
	node(id: $clusterId) {
		__typename
		... on Cluster {
			id
			name
			queues(first: 100, after: $cursor) {
				edges {
					node {
						id
						key
					}
				}
				pageInfo {
					hasNextPage
					endCursor
				}
			}
		}
	}
}
`

func FindQueuesForCluster(
	ctx_ context.Context,
	client_ graphql.Client,
	clusterId string,
	cursor *string,
) (data_ *FindQueuesForClusterResponse, err_ error) {
	req_ := &graphql.Request{
		OpName: "FindQueuesForCluster",
		Query:  FindQueuesForCluster_Operation,
		Variables: &__FindQueuesForClusterInput{
			ClusterId: clusterId,
			Cursor:    cursor,
		},
	}

	data_ = &FindQueuesForClusterResponse{}
	resp_ := &graphql.Response{Data: data_}

	err_ = client_.MakeRequest(
		ctx_,
		req_,
		resp_,
	)

	return data_, err_
}

// The query executed by FindUserByEmail.
const FindUserByEmail_Operation = `
query FindUserByEmail ($organization: ID!, $email: String!) {
	organization(slug: $organization) {
		members(first: 1, search: $email) {
			edges {
				node {
					user {
						id
					}
				}
			}
		}
	}
}
`

func FindUserByEmail(
	ctx_ context.Context,
	client_ graphql.Client,
	organization string,
	email string,
) (data_ *FindUserByEmailResponse, err_ error) {
	req_ := &graphql.Request{
		OpName: "FindUserByEmail",
		Query:  FindUserByEmail_Operation,
		Variables: &__FindUserByEmailInput{
			Organization: organization,
			Email:        email,
		},
	}

	data_ = &FindUserByEmailResponse{}
	resp_ := &graphql.Response{Data: data_}

	err_ = client_.MakeRequest(
		ctx_,
		req_,
		resp_,
	)

	return data_, err_
}

// The query executed by GetArtifacts.
const GetArtifacts_Operation = `
query GetArtifacts ($artifactId: ID!) {
	artifact(uuid: $artifactId) {
		uuid
		path
		downloadURL
		job {
			uuid
			pipeline {
				name
			}
			build {
				number
			}
		}
	}
}
`

func GetArtifacts(
	ctx_ context.Context,
	client_ graphql.Client,
	artifactId string,
) (data_ *GetArtifactsResponse, err_ error) {
	req_ := &graphql.Request{
		OpName: "GetArtifacts",
		Query:  GetArtifacts_Operation,
		Variables: &__GetArtifactsInput{
			ArtifactId: artifactId,
		},
	}

	data_ = &GetArtifactsResponse{}
	resp_ := &graphql.Response{Data: data_}

	err_ = client_.MakeRequest(
		ctx_,
		req_,
		resp_,
	)

	return data_, err_
}

// The query executed by GetClusterQueueAgent.
const GetClusterQueueAgent_Operation = `
query GetClusterQueueAgent ($orgSlug: ID!, $queueId: [ID!]) {
	organization(slug: $orgSlug) {
		agents(first: 10, clusterQueue: $queueId) {
			edges {
				node {
					name
					hostname
					version
					id
					clusterQueue {
						id
						uuid
					}
				}
			}
		}
	}
}
`

func GetClusterQueueAgent(
	ctx_ context.Context,
	client_ graphql.Client,
	orgSlug string,
	queueId []string,
) (data_ *GetClusterQueueAgentResponse, err_ error) {
	req_ := &graphql.Request{
		OpName: "GetClusterQueueAgent",
		Query:  GetClusterQueueAgent_Operation,
		Variables: &__GetClusterQueueAgentInput{
			OrgSlug: orgSlug,
			QueueId: queueId,
		},
	}

	data_ = &GetClusterQueueAgentResponse{}
	resp_ := &graphql.Response{Data: data_}

	err_ = client_.MakeRequest(
		ctx_,
		req_,
		resp_,
	)

	return data_, err_
}

// The query executed by GetClusterQueues.
const GetClusterQueues_Operation = `
query GetClusterQueues ($orgSlug: ID!, $clusterId: ID!) {
	organization(slug: $orgSlug) {
		cluster(id: $clusterId) {
			name
			description
			queues(first: 10) {
				edges {
					node {
						id
						uuid
						key
						description
					}
				}
			}
		}
	}
}
`

func GetClusterQueues(
	ctx_ context.Context,
	client_ graphql.Client,
	orgSlug string,
	clusterId string,
) (data_ *GetClusterQueuesResponse, err_ error) {
	req_ := &graphql.Request{
		OpName: "GetClusterQueues",
		Query:  GetClusterQueues_Operation,
		Variables: &__GetClusterQueuesInput{
			OrgSlug:   orgSlug,
			ClusterId: clusterId,
		},
	}

	data_ = &GetClusterQueuesResponse{}
	resp_ := &graphql.Response{Data: data_}

	err_ = client_.MakeRequest(
		ctx_,
		req_,
		resp_,
	)

	return data_, err_
}

// The query executed by GetOrganizationID.
const GetOrganizationID_Operation = `
query GetOrganizationID ($slug: ID!) {
	organization(slug: $slug) {
		id
	}
}
`

func GetOrganizationID(
	ctx_ context.Context,
	client_ graphql.Client,
	slug string,
) (data_ *GetOrganizationIDResponse, err_ error) {
	req_ := &graphql.Request{
		OpName: "GetOrganizationID",
		Query:  GetOrganizationID_Operation,
		Variables: &__GetOrganizationIDInput{
			Slug: slug,
		},
	}

	data_ = &GetOrganizationIDResponse{}
	resp_ := &graphql.Response{Data: data_}

	err_ = client_.MakeRequest(
		ctx_,
		req_,
		resp_,
	)

	return data_, err_
}

// The query executed by GetPipeline.
const GetPipeline_Operation = `
query GetPipeline ($slug: ID!) {
	pipeline(slug: $slug) {
		name
		description
		emoji
		color
		favorite
		steps {
			yaml
		}
		metrics {
			edges {
				node {
					label
					value
				}
			}
		}
		tags {
			label
		}
	}
}
`

func GetPipeline(
	ctx_ context.Context,
	client_ graphql.Client,
	slug string,
) (data_ *GetPipelineResponse, err_ error) {
	req_ := &graphql.Request{
		OpName: "GetPipeline",
		Query:  GetPipeline_Operation,
		Variables: &__GetPipelineInput{
			Slug: slug,
		},
	}

	data_ = &GetPipelineResponse{}
	resp_ := &graphql.Response{Data: data_}

	err_ = client_.MakeRequest(
		ctx_,
		req_,
		resp_,
	)

	return data_, err_
}

// The mutation executed by InviteUser.
const InviteUser_Operation = `
mutation InviteUser ($organization: ID!, $emails: [String!]!) {
	organizationInvitationCreate(input: {organizationID:$organization,emails:$emails}) {
		clientMutationId
	}
}
`

func InviteUser(
	ctx_ context.Context,
	client_ graphql.Client,
	organization string,
	emails []string,
) (data_ *InviteUserResponse, err_ error) {
	req_ := &graphql.Request{
		OpName: "InviteUser",
		Query:  InviteUser_Operation,
		Variables: &__InviteUserInput{
			Organization: organization,
			Emails:       emails,
		},
	}

	data_ = &InviteUserResponse{}
	resp_ := &graphql.Response{Data: data_}

	err_ = client_.MakeRequest(
		ctx_,
		req_,
		resp_,
	)

	return data_, err_
}

// The query executed by ListJobsByQueue.
const ListJobsByQueue_Operation = `
query ListJobsByQueue ($org: ID!, $clusterQueue: [ID!], $first: Int, $after: String) {
	organization(slug: $org) {
		jobs(clusterQueue: $clusterQueue, first: $first, after: $after) {
			edges {
				node {
					__typename
					... on JobTypeCommand {
						id
						uuid
						command
						state
						exitStatus
						url
						startedAt
						finishedAt
						createdAt
						cluster {
							id
							name
						}
						clusterQueue {
							id
							key
						}
						agent {
							id
							name
							hostname
							metaData
						}
					}
				}
			}
			pageInfo {
				endCursor
				hasNextPage
			}
		}
	}
}
`

func ListJobsByQueue(
	ctx_ context.Context,
	client_ graphql.Client,
	org string,
	clusterQueue []string,
	first *int,
	after *string,
) (data_ *ListJobsByQueueResponse, err_ error) {
	req_ := &graphql.Request{
		OpName: "ListJobsByQueue",
		Query:  ListJobsByQueue_Operation,
		Variables: &__ListJobsByQueueInput{
			Org:          org,
			ClusterQueue: clusterQueue,
			First:        first,
			After:        after,
		},
	}

	data_ = &ListJobsByQueueResponse{}
	resp_ := &graphql.Response{Data: data_}

	err_ = client_.MakeRequest(
		ctx_,
		req_,
		resp_,
	)

	return data_, err_
}

// The query executed by ListJobsByState.
const ListJobsByState_Operation = `
query ListJobsByState ($org: ID!, $state: [JobStates!], $first: Int, $after: String) {
	organization(slug: $org) {
		jobs(state: $state, first: $first, after: $after) {
			edges {
				node {
					__typename
					... on JobTypeCommand {
						id
						uuid
						label
						command
						state
						exitStatus
						url
						startedAt
						finishedAt
						createdAt
						cluster {
							id
							name
						}
						clusterQueue {
							id
							key
						}
						agent {
							id
							name
							hostname
							metaData
						}
					}
				}
			}
			pageInfo {
				endCursor
				hasNextPage
			}
		}
	}
}
`

func ListJobsByState(
	ctx_ context.Context,
	client_ graphql.Client,
	org string,
	state []JobStates,
	first *int,
	after *string,
) (data_ *ListJobsByStateResponse, err_ error) {
	req_ := &graphql.Request{
		OpName: "ListJobsByState",
		Query:  ListJobsByState_Operation,
		Variables: &__ListJobsByStateInput{
			Org:   org,
			State: state,
			First: first,
			After: after,
		},
	}

	data_ = &ListJobsByStateResponse{}
	resp_ := &graphql.Response{Data: data_}

	err_ = client_.MakeRequest(
		ctx_,
		req_,
		resp_,
	)

	return data_, err_
}

// The mutation executed by RetryJob.
const RetryJob_Operation = `
mutation RetryJob ($id: ID!) {
	jobTypeCommandRetry(input: {id:$id}) {
		jobTypeCommand {
			id
			state
			url
		}
	}
}
`

func RetryJob(
	ctx_ context.Context,
	client_ graphql.Client,
	id string,
) (data_ *RetryJobResponse, err_ error) {
	req_ := &graphql.Request{
		OpName: "RetryJob",
		Query:  RetryJob_Operation,
		Variables: &__RetryJobInput{
			Id: id,
		},
	}

	data_ = &RetryJobResponse{}
	resp_ := &graphql.Response{Data: data_}

	err_ = client_.MakeRequest(
		ctx_,
		req_,
		resp_,
	)

	return data_, err_
}

// The mutation executed by UnblockJob.
const UnblockJob_Operation = `
mutation UnblockJob ($id: ID!, $fields: JSON) {
	jobTypeBlockUnblock(input: {id:$id,fields:$fields}) {
		jobTypeBlock {
			id
			state
			isUnblockable
			build {
				url
			}
		}
	}
}
`

func UnblockJob(
	ctx_ context.Context,
	client_ graphql.Client,
	id string,
	fields *string,
) (data_ *UnblockJobResponse, err_ error) {
	req_ := &graphql.Request{
		OpName: "UnblockJob",
		Query:  UnblockJob_Operation,
		Variables: &__UnblockJobInput{
			Id:     id,
			Fields: fields,
		},
	}

	data_ = &UnblockJobResponse{}
	resp_ := &graphql.Response{Data: data_}

	err_ = client_.MakeRequest(
		ctx_,
		req_,
		resp_,
	)

	return data_, err_
}
