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

package buildkite

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

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

// ClusterAgentTokenValues includes the GraphQL fields of ClusterToken requested by the fragment ClusterAgentTokenValues.
// The GraphQL type's documentation follows.
//
// A token used to connect an agent in cluster to Buildkite
type ClusterAgentTokenValues struct {
	// A list of CIDR-notation IPv4 addresses from which agents can use this token. Please note that this feature is not yet available to all organizations
	AllowedIpAddresses string                         `json:"allowedIpAddresses"`
	Cluster            ClusterAgentTokenValuesCluster `json:"cluster"`
	// A description about what this cluster agent token is used for
	Description string `json:"description"`
	Id          string `json:"id"`
	// The public UUID for this cluster token
	Uuid string `json:"uuid"`
}

// GetAllowedIpAddresses returns ClusterAgentTokenValues.AllowedIpAddresses, and is useful for accessing the field via an interface.
func (v *ClusterAgentTokenValues) GetAllowedIpAddresses() string { return v.AllowedIpAddresses }

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

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

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

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

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

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

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

// ClusterFields includes the GraphQL fields of Cluster requested by the fragment ClusterFields.
type ClusterFields struct {
	Id string `json:"id"`
	// The public UUID for this cluster
	Uuid string `json:"uuid"`
	// Name of the cluster
	Name string `json:"name"`
	// Description of the cluster
	Description *string `json:"description"`
	// Emoji for the cluster using Buildkite emoji syntax
	Emoji *string `json:"emoji"`
	// Color hex code for the cluster
	Color *string `json:"color"`
	// The default queue that agents connecting to the cluster without specifying a queue will accept jobs from
	DefaultQueue *ClusterFieldsDefaultQueueClusterQueue `json:"defaultQueue"`
}

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

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

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

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

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

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

// GetDefaultQueue returns ClusterFields.DefaultQueue, and is useful for accessing the field via an interface.
func (v *ClusterFields) GetDefaultQueue() *ClusterFieldsDefaultQueueClusterQueue {
	return v.DefaultQueue
}

// ClusterFieldsDefaultQueueClusterQueue includes the requested fields of the GraphQL type ClusterQueue.
type ClusterFieldsDefaultQueueClusterQueue 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 ClusterFieldsDefaultQueueClusterQueue.Id, and is useful for accessing the field via an interface.
func (v *ClusterFieldsDefaultQueueClusterQueue) GetId() string { return v.Id }

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

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

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

// ClusterQueueValues includes the GraphQL fields of ClusterQueue requested by the fragment ClusterQueueValues.
type ClusterQueueValues struct {
	Id string `json:"id"`
	// The public UUID for this cluster queue
	Uuid        string                    `json:"uuid"`
	Key         string                    `json:"key"`
	Description *string                   `json:"description"`
	Cluster     ClusterQueueValuesCluster `json:"cluster"`
	// Whether this queue powers by hosted or self-hosted agents
	Hosted bool `json:"hosted"`
	// Settings for hosted agents used for jobs in this queue
	HostedAgents ClusterQueueValuesHostedAgentsHostedAgentQueueSettings `json:"hostedAgents"`
}

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

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

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

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

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

// GetHosted returns ClusterQueueValues.Hosted, and is useful for accessing the field via an interface.
func (v *ClusterQueueValues) GetHosted() bool { return v.Hosted }

// GetHostedAgents returns ClusterQueueValues.HostedAgents, and is useful for accessing the field via an interface.
func (v *ClusterQueueValues) GetHostedAgents() ClusterQueueValuesHostedAgentsHostedAgentQueueSettings {
	return v.HostedAgents
}

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

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

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

// ClusterQueueValuesHostedAgentsHostedAgentQueueSettings includes the requested fields of the GraphQL type HostedAgentQueueSettings.
// The GraphQL type's documentation follows.
//
// Platform-specific configuration for hosted agent instances.
type ClusterQueueValuesHostedAgentsHostedAgentQueueSettings struct {
	HostedAgentsQueueSettingsValues `json:"-"`
}

// GetInstanceShape returns ClusterQueueValuesHostedAgentsHostedAgentQueueSettings.InstanceShape, and is useful for accessing the field via an interface.
func (v *ClusterQueueValuesHostedAgentsHostedAgentQueueSettings) GetInstanceShape() HostedAgentsQueueSettingsValuesInstanceShapeHostedAgentInstanceShape {
	return v.HostedAgentsQueueSettingsValues.InstanceShape
}

// GetPlatformSettings returns ClusterQueueValuesHostedAgentsHostedAgentQueueSettings.PlatformSettings, and is useful for accessing the field via an interface.
func (v *ClusterQueueValuesHostedAgentsHostedAgentQueueSettings) GetPlatformSettings() HostedAgentsQueueSettingsValuesPlatformSettingsHostedAgentPlatformSettings {
	return v.HostedAgentsQueueSettingsValues.PlatformSettings
}

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

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

	var firstPass struct {
		*ClusterQueueValuesHostedAgentsHostedAgentQueueSettings
		graphql.NoUnmarshalJSON
	}
	firstPass.ClusterQueueValuesHostedAgentsHostedAgentQueueSettings = v

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

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

type __premarshalClusterQueueValuesHostedAgentsHostedAgentQueueSettings struct {
	InstanceShape HostedAgentsQueueSettingsValuesInstanceShapeHostedAgentInstanceShape `json:"instanceShape"`

	PlatformSettings HostedAgentsQueueSettingsValuesPlatformSettingsHostedAgentPlatformSettings `json:"platformSettings"`
}

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

func (v *ClusterQueueValuesHostedAgentsHostedAgentQueueSettings) __premarshalJSON() (*__premarshalClusterQueueValuesHostedAgentsHostedAgentQueueSettings, error) {
	var retval __premarshalClusterQueueValuesHostedAgentsHostedAgentQueueSettings

	retval.InstanceShape = v.HostedAgentsQueueSettingsValues.InstanceShape
	retval.PlatformSettings = v.HostedAgentsQueueSettingsValues.PlatformSettings
	return &retval, nil
}

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

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

// GetOrganizationClustersOrganizationClustersClusterConnection includes the requested fields of the GraphQL type ClusterConnection.
type GetOrganizationClustersOrganizationClustersClusterConnection struct {
	PageInfo GetOrganizationClustersOrganizationClustersClusterConnectionPageInfo           `json:"pageInfo"`
	Edges    []GetOrganizationClustersOrganizationClustersClusterConnectionEdgesClusterEdge `json:"edges"`
}

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

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

// GetOrganizationClustersOrganizationClustersClusterConnectionEdgesClusterEdge includes the requested fields of the GraphQL type ClusterEdge.
type GetOrganizationClustersOrganizationClustersClusterConnectionEdgesClusterEdge struct {
	Node GetOrganizationClustersOrganizationClustersClusterConnectionEdgesClusterEdgeNodeCluster `json:"node"`
}

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

// GetOrganizationClustersOrganizationClustersClusterConnectionEdgesClusterEdgeNodeCluster includes the requested fields of the GraphQL type Cluster.
type GetOrganizationClustersOrganizationClustersClusterConnectionEdgesClusterEdgeNodeCluster struct {
	Id string `json:"id"`
	// The public UUID for this cluster
	Uuid string `json:"uuid"`
	// Name of the cluster
	Name string `json:"name"`
	// Description of the cluster
	Description *string `json:"description"`
	// Emoji for the cluster using Buildkite emoji syntax
	Emoji *string `json:"emoji"`
	// Color hex code for the cluster
	Color *string `json:"color"`
	// The default queue that agents connecting to the cluster without specifying a queue will accept jobs from
	DefaultQueue *GetOrganizationClustersOrganizationClustersClusterConnectionEdgesClusterEdgeNodeClusterDefaultQueueClusterQueue `json:"defaultQueue"`
}

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

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

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

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

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

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

// GetDefaultQueue returns GetOrganizationClustersOrganizationClustersClusterConnectionEdgesClusterEdgeNodeCluster.DefaultQueue, and is useful for accessing the field via an interface.
func (v *GetOrganizationClustersOrganizationClustersClusterConnectionEdgesClusterEdgeNodeCluster) GetDefaultQueue() *GetOrganizationClustersOrganizationClustersClusterConnectionEdgesClusterEdgeNodeClusterDefaultQueueClusterQueue {
	return v.DefaultQueue
}

// GetOrganizationClustersOrganizationClustersClusterConnectionEdgesClusterEdgeNodeClusterDefaultQueueClusterQueue includes the requested fields of the GraphQL type ClusterQueue.
type GetOrganizationClustersOrganizationClustersClusterConnectionEdgesClusterEdgeNodeClusterDefaultQueueClusterQueue 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 GetOrganizationClustersOrganizationClustersClusterConnectionEdgesClusterEdgeNodeClusterDefaultQueueClusterQueue.Id, and is useful for accessing the field via an interface.
func (v *GetOrganizationClustersOrganizationClustersClusterConnectionEdgesClusterEdgeNodeClusterDefaultQueueClusterQueue) GetId() string {
	return v.Id
}

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

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

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

// GetOrganizationClustersOrganizationClustersClusterConnectionPageInfo includes the requested fields of the GraphQL type PageInfo.
// The GraphQL type's documentation follows.
//
// Information about pagination in a connection.
type GetOrganizationClustersOrganizationClustersClusterConnectionPageInfo 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 GetOrganizationClustersOrganizationClustersClusterConnectionPageInfo.EndCursor, and is useful for accessing the field via an interface.
func (v *GetOrganizationClustersOrganizationClustersClusterConnectionPageInfo) GetEndCursor() string {
	return v.EndCursor
}

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

// GetOrganizationClustersResponse is returned by GetOrganizationClusters on success.
type GetOrganizationClustersResponse struct {
	// Find an organization
	Organization GetOrganizationClustersOrganization `json:"organization"`
}

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

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

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

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

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

// GetOrganizationMemberByEmailOrganizationMembersOrganizationMemberConnectionEdgesOrganizationMemberEdge includes the requested fields of the GraphQL type OrganizationMemberEdge.
type GetOrganizationMemberByEmailOrganizationMembersOrganizationMemberConnectionEdgesOrganizationMemberEdge struct {
	Node GetOrganizationMemberByEmailOrganizationMembersOrganizationMemberConnectionEdgesOrganizationMemberEdgeNodeOrganizationMember `json:"node"`
}

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

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

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

// GetOrganizationMemberByEmailOrganizationMembersOrganizationMemberConnectionEdgesOrganizationMemberEdgeNodeOrganizationMemberUser includes the requested fields of the GraphQL type User.
// The GraphQL type's documentation follows.
//
// A user
type GetOrganizationMemberByEmailOrganizationMembersOrganizationMemberConnectionEdgesOrganizationMemberEdgeNodeOrganizationMemberUser struct {
	Id string `json:"id"`
	// The public UUID of the user
	Uuid string `json:"uuid"`
	// The name of the user
	Name string `json:"name"`
	// The primary email for the user
	Email string `json:"email"`
}

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

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

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

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

// GetOrganizationMemberByEmailResponse is returned by GetOrganizationMemberByEmail on success.
type GetOrganizationMemberByEmailResponse struct {
	// Find an organization
	Organization GetOrganizationMemberByEmailOrganization `json:"organization"`
}

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

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

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

// GetOrganizationMembersOrganizationMembersOrganizationMemberConnection includes the requested fields of the GraphQL type OrganizationMemberConnection.
type GetOrganizationMembersOrganizationMembersOrganizationMemberConnection struct {
	PageInfo GetOrganizationMembersOrganizationMembersOrganizationMemberConnectionPageInfo                      `json:"pageInfo"`
	Edges    []GetOrganizationMembersOrganizationMembersOrganizationMemberConnectionEdgesOrganizationMemberEdge `json:"edges"`
}

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

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

// GetOrganizationMembersOrganizationMembersOrganizationMemberConnectionEdgesOrganizationMemberEdge includes the requested fields of the GraphQL type OrganizationMemberEdge.
type GetOrganizationMembersOrganizationMembersOrganizationMemberConnectionEdgesOrganizationMemberEdge struct {
	Node GetOrganizationMembersOrganizationMembersOrganizationMemberConnectionEdgesOrganizationMemberEdgeNodeOrganizationMember `json:"node"`
}

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

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

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

// GetOrganizationMembersOrganizationMembersOrganizationMemberConnectionEdgesOrganizationMemberEdgeNodeOrganizationMemberUser includes the requested fields of the GraphQL type User.
// The GraphQL type's documentation follows.
//
// A user
type GetOrganizationMembersOrganizationMembersOrganizationMemberConnectionEdgesOrganizationMemberEdgeNodeOrganizationMemberUser struct {
	Id string `json:"id"`
	// The public UUID of the user
	Uuid string `json:"uuid"`
	// The name of the user
	Name string `json:"name"`
	// The primary email for the user
	Email string `json:"email"`
}

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

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

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

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

// GetOrganizationMembersOrganizationMembersOrganizationMemberConnectionPageInfo includes the requested fields of the GraphQL type PageInfo.
// The GraphQL type's documentation follows.
//
// Information about pagination in a connection.
type GetOrganizationMembersOrganizationMembersOrganizationMemberConnectionPageInfo 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 GetOrganizationMembersOrganizationMembersOrganizationMemberConnectionPageInfo.EndCursor, and is useful for accessing the field via an interface.
func (v *GetOrganizationMembersOrganizationMembersOrganizationMemberConnectionPageInfo) GetEndCursor() string {
	return v.EndCursor
}

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

// GetOrganizationMembersResponse is returned by GetOrganizationMembers on success.
type GetOrganizationMembersResponse struct {
	// Find an organization
	Organization GetOrganizationMembersOrganization `json:"organization"`
}

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

// GetOrganizationTeamsOrganization includes the requested fields of the GraphQL type Organization.
// The GraphQL type's documentation follows.
//
// An organization
type GetOrganizationTeamsOrganization struct {
	// Returns teams within the organization that the viewer can see
	Teams GetOrganizationTeamsOrganizationTeamsTeamConnection `json:"teams"`
}

// GetTeams returns GetOrganizationTeamsOrganization.Teams, and is useful for accessing the field via an interface.
func (v *GetOrganizationTeamsOrganization) GetTeams() GetOrganizationTeamsOrganizationTeamsTeamConnection {
	return v.Teams
}

// GetOrganizationTeamsOrganizationTeamsTeamConnection includes the requested fields of the GraphQL type TeamConnection.
type GetOrganizationTeamsOrganizationTeamsTeamConnection struct {
	PageInfo GetOrganizationTeamsOrganizationTeamsTeamConnectionPageInfo        `json:"pageInfo"`
	Edges    []GetOrganizationTeamsOrganizationTeamsTeamConnectionEdgesTeamEdge `json:"edges"`
}

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

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

// GetOrganizationTeamsOrganizationTeamsTeamConnectionEdgesTeamEdge includes the requested fields of the GraphQL type TeamEdge.
type GetOrganizationTeamsOrganizationTeamsTeamConnectionEdgesTeamEdge struct {
	Node GetOrganizationTeamsOrganizationTeamsTeamConnectionEdgesTeamEdgeNodeTeam `json:"node"`
}

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

// GetOrganizationTeamsOrganizationTeamsTeamConnectionEdgesTeamEdgeNodeTeam includes the requested fields of the GraphQL type Team.
// The GraphQL type's documentation follows.
//
// An organization team
type GetOrganizationTeamsOrganizationTeamsTeamConnectionEdgesTeamEdgeNodeTeam struct {
	Id string `json:"id"`
	// The public UUID for this team
	Uuid string `json:"uuid"`
	// The name of the team
	Name string `json:"name"`
	// A description of the team
	Description string `json:"description"`
	// The slug of the team
	Slug string `json:"slug"`
	// The privacy setting for this team
	Privacy string `json:"privacy"`
	// Add new organization members to this team by default
	IsDefaultTeam bool `json:"isDefaultTeam"`
	// New organization members will be granted this role on this team
	DefaultMemberRole string `json:"defaultMemberRole"`
	// Whether or not team members can create new pipelines in this team
	MembersCanCreatePipelines bool `json:"membersCanCreatePipelines"`
}

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

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

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

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

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

// GetPrivacy returns GetOrganizationTeamsOrganizationTeamsTeamConnectionEdgesTeamEdgeNodeTeam.Privacy, and is useful for accessing the field via an interface.
func (v *GetOrganizationTeamsOrganizationTeamsTeamConnectionEdgesTeamEdgeNodeTeam) GetPrivacy() string {
	return v.Privacy
}

// GetIsDefaultTeam returns GetOrganizationTeamsOrganizationTeamsTeamConnectionEdgesTeamEdgeNodeTeam.IsDefaultTeam, and is useful for accessing the field via an interface.
func (v *GetOrganizationTeamsOrganizationTeamsTeamConnectionEdgesTeamEdgeNodeTeam) GetIsDefaultTeam() bool {
	return v.IsDefaultTeam
}

// GetDefaultMemberRole returns GetOrganizationTeamsOrganizationTeamsTeamConnectionEdgesTeamEdgeNodeTeam.DefaultMemberRole, and is useful for accessing the field via an interface.
func (v *GetOrganizationTeamsOrganizationTeamsTeamConnectionEdgesTeamEdgeNodeTeam) GetDefaultMemberRole() string {
	return v.DefaultMemberRole
}

// GetMembersCanCreatePipelines returns GetOrganizationTeamsOrganizationTeamsTeamConnectionEdgesTeamEdgeNodeTeam.MembersCanCreatePipelines, and is useful for accessing the field via an interface.
func (v *GetOrganizationTeamsOrganizationTeamsTeamConnectionEdgesTeamEdgeNodeTeam) GetMembersCanCreatePipelines() bool {
	return v.MembersCanCreatePipelines
}

// GetOrganizationTeamsOrganizationTeamsTeamConnectionPageInfo includes the requested fields of the GraphQL type PageInfo.
// The GraphQL type's documentation follows.
//
// Information about pagination in a connection.
type GetOrganizationTeamsOrganizationTeamsTeamConnectionPageInfo 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 GetOrganizationTeamsOrganizationTeamsTeamConnectionPageInfo.EndCursor, and is useful for accessing the field via an interface.
func (v *GetOrganizationTeamsOrganizationTeamsTeamConnectionPageInfo) GetEndCursor() string {
	return v.EndCursor
}

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

// GetOrganizationTeamsResponse is returned by GetOrganizationTeams on success.
type GetOrganizationTeamsResponse struct {
	// Find an organization
	Organization GetOrganizationTeamsOrganization `json:"organization"`
}

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

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

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

// GetRegistryIDResponse is returned by GetRegistryID on success.
type GetRegistryIDResponse struct {
	// Find a registry
	Registry GetRegistryIDRegistry `json:"registry"`
}

// GetRegistry returns GetRegistryIDResponse.Registry, and is useful for accessing the field via an interface.
func (v *GetRegistryIDResponse) GetRegistry() GetRegistryIDRegistry { return v.Registry }

// GetTeamFromSlugResponse is returned by GetTeamFromSlug on success.
type GetTeamFromSlugResponse struct {
	// Find a team
	Team GetTeamFromSlugTeam `json:"team"`
}

// GetTeam returns GetTeamFromSlugResponse.Team, and is useful for accessing the field via an interface.
func (v *GetTeamFromSlugResponse) GetTeam() GetTeamFromSlugTeam { return v.Team }

// GetTeamFromSlugTeam includes the requested fields of the GraphQL type Team.
// The GraphQL type's documentation follows.
//
// An organization team
type GetTeamFromSlugTeam struct {
	TeamFields `json:"-"`
}

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

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

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

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

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

// GetPrivacy returns GetTeamFromSlugTeam.Privacy, and is useful for accessing the field via an interface.
func (v *GetTeamFromSlugTeam) GetPrivacy() string { return v.TeamFields.Privacy }

// GetIsDefaultTeam returns GetTeamFromSlugTeam.IsDefaultTeam, and is useful for accessing the field via an interface.
func (v *GetTeamFromSlugTeam) GetIsDefaultTeam() bool { return v.TeamFields.IsDefaultTeam }

// GetDefaultMemberRole returns GetTeamFromSlugTeam.DefaultMemberRole, and is useful for accessing the field via an interface.
func (v *GetTeamFromSlugTeam) GetDefaultMemberRole() string { return v.TeamFields.DefaultMemberRole }

// GetMembersCanCreatePipelines returns GetTeamFromSlugTeam.MembersCanCreatePipelines, and is useful for accessing the field via an interface.
func (v *GetTeamFromSlugTeam) GetMembersCanCreatePipelines() bool {
	return v.TeamFields.MembersCanCreatePipelines
}

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

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

	var firstPass struct {
		*GetTeamFromSlugTeam
		graphql.NoUnmarshalJSON
	}
	firstPass.GetTeamFromSlugTeam = v

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

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

type __premarshalGetTeamFromSlugTeam struct {
	Id string `json:"id"`

	Uuid string `json:"uuid"`

	Name string `json:"name"`

	Description string `json:"description"`

	Slug string `json:"slug"`

	Privacy string `json:"privacy"`

	IsDefaultTeam bool `json:"isDefaultTeam"`

	DefaultMemberRole string `json:"defaultMemberRole"`

	MembersCanCreatePipelines bool `json:"membersCanCreatePipelines"`
}

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

func (v *GetTeamFromSlugTeam) __premarshalJSON() (*__premarshalGetTeamFromSlugTeam, error) {
	var retval __premarshalGetTeamFromSlugTeam

	retval.Id = v.TeamFields.Id
	retval.Uuid = v.TeamFields.Uuid
	retval.Name = v.TeamFields.Name
	retval.Description = v.TeamFields.Description
	retval.Slug = v.TeamFields.Slug
	retval.Privacy = v.TeamFields.Privacy
	retval.IsDefaultTeam = v.TeamFields.IsDefaultTeam
	retval.DefaultMemberRole = v.TeamFields.DefaultMemberRole
	retval.MembersCanCreatePipelines = v.TeamFields.MembersCanCreatePipelines
	return &retval, nil
}

// Possible machine architectures for the hosted agent instance
type HostedAgentArchitecture string

const (
	// AMD64
	HostedAgentArchitectureAmd64 HostedAgentArchitecture = "AMD64"
	// ARM64
	HostedAgentArchitectureArm64 HostedAgentArchitecture = "ARM64"
)

var AllHostedAgentArchitecture = []HostedAgentArchitecture{
	HostedAgentArchitectureAmd64,
	HostedAgentArchitectureArm64,
}

// Possible instance shapes for the hosted agent instance
type HostedAgentInstanceShapeName string

const (
	// Linux 2 vCPU x 4 GB Memory
	HostedAgentInstanceShapeNameLinuxAmd642x4 HostedAgentInstanceShapeName = "LINUX_AMD64_2X4"
	// Linux 4 vCPU x 16 GB Memory
	HostedAgentInstanceShapeNameLinuxAmd644x16 HostedAgentInstanceShapeName = "LINUX_AMD64_4X16"
	// Linux 8 vCPU x 32 GB Memory
	HostedAgentInstanceShapeNameLinuxAmd648x32 HostedAgentInstanceShapeName = "LINUX_AMD64_8X32"
	// Linux 16 vCPU x 64 GB Memory
	HostedAgentInstanceShapeNameLinuxAmd6416x64 HostedAgentInstanceShapeName = "LINUX_AMD64_16X64"
	// Linux 2 vCPU x 4 GB Memory
	HostedAgentInstanceShapeNameLinuxArm642x4 HostedAgentInstanceShapeName = "LINUX_ARM64_2X4"
	// Linux 4 vCPU x 16 GB Memory
	HostedAgentInstanceShapeNameLinuxArm644x16 HostedAgentInstanceShapeName = "LINUX_ARM64_4X16"
	// Linux 8 vCPU x 32 GB Memory
	HostedAgentInstanceShapeNameLinuxArm648x32 HostedAgentInstanceShapeName = "LINUX_ARM64_8X32"
	// Linux 16 vCPU x 64 GB Memory
	HostedAgentInstanceShapeNameLinuxArm6416x64 HostedAgentInstanceShapeName = "LINUX_ARM64_16X64"
	// macOS 4 vCPU x 7 GB Memory
	HostedAgentInstanceShapeNameMacosM24x7 HostedAgentInstanceShapeName = "MACOS_M2_4X7"
	// macOS 6 vCPU x 14 GB Memory
	HostedAgentInstanceShapeNameMacosM26x14 HostedAgentInstanceShapeName = "MACOS_M2_6X14"
	// macOS 12 vCPU x 28 GB Memory
	HostedAgentInstanceShapeNameMacosM212x28 HostedAgentInstanceShapeName = "MACOS_M2_12X28"
	// macOS 12 vCPU x 56 GB Memory
	HostedAgentInstanceShapeNameMacosM412x56 HostedAgentInstanceShapeName = "MACOS_M4_12X56"
	// macOS 6 vCPU x 28 GB Memory
	HostedAgentInstanceShapeNameMacosArm64M46x28 HostedAgentInstanceShapeName = "MACOS_ARM64_M4_6X28"
	// macOS 12 vCPU x 56 GB Memory
	HostedAgentInstanceShapeNameMacosArm64M412x56 HostedAgentInstanceShapeName = "MACOS_ARM64_M4_12X56"
)

var AllHostedAgentInstanceShapeName = []HostedAgentInstanceShapeName{
	HostedAgentInstanceShapeNameLinuxAmd642x4,
	HostedAgentInstanceShapeNameLinuxAmd644x16,
	HostedAgentInstanceShapeNameLinuxAmd648x32,
	HostedAgentInstanceShapeNameLinuxAmd6416x64,
	HostedAgentInstanceShapeNameLinuxArm642x4,
	HostedAgentInstanceShapeNameLinuxArm644x16,
	HostedAgentInstanceShapeNameLinuxArm648x32,
	HostedAgentInstanceShapeNameLinuxArm6416x64,
	HostedAgentInstanceShapeNameMacosM24x7,
	HostedAgentInstanceShapeNameMacosM26x14,
	HostedAgentInstanceShapeNameMacosM212x28,
	HostedAgentInstanceShapeNameMacosM412x56,
	HostedAgentInstanceShapeNameMacosArm64M46x28,
	HostedAgentInstanceShapeNameMacosArm64M412x56,
}

// Possible macOS versions for the Hosted Agent instance
type HostedAgentMacOSVersion string

const (
	// macOS Sonoma (14.6.1)
	HostedAgentMacOSVersionSonoma HostedAgentMacOSVersion = "SONOMA"
	// macOS Sequoia (15.5)
	HostedAgentMacOSVersionSequoia HostedAgentMacOSVersion = "SEQUOIA"
	// macOS Tahoe (26.0)
	HostedAgentMacOSVersionTahoe HostedAgentMacOSVersion = "TAHOE"
)

var AllHostedAgentMacOSVersion = []HostedAgentMacOSVersion{
	HostedAgentMacOSVersionSonoma,
	HostedAgentMacOSVersionSequoia,
	HostedAgentMacOSVersionTahoe,
}

// Possible machine types for the hosted agent instance
type HostedAgentMachineType string

const (
	// Linux
	HostedAgentMachineTypeLinux HostedAgentMachineType = "LINUX"
	// macOS
	HostedAgentMachineTypeMacos HostedAgentMachineType = "MACOS"
)

var AllHostedAgentMachineType = []HostedAgentMachineType{
	HostedAgentMachineTypeLinux,
	HostedAgentMachineTypeMacos,
}

// Possible sizes for the hosted agent instance, specifying vCPU and memory allocations.
type HostedAgentSize string

const (
	// Small capacity size: 2 vCPU, 4GB RAM (Linux); 4 vCPU, 7GB RAM (macOS).
	HostedAgentSizeSmall HostedAgentSize = "SMALL"
	// Medium capacity size: 4 vCPU, 16GB RAM (Linux); 6 vCPU, 14GB RAM (macOS).
	HostedAgentSizeMedium HostedAgentSize = "MEDIUM"
	// Large capacity size: 8 vCPU, 32GB RAM (Linux); 12 vCPU, 28GB RAM (macOS).
	HostedAgentSizeLarge HostedAgentSize = "LARGE"
	// Extra large capacity size: 12 vCPU, 28GB RAM (Linux); Not applicable for macOS.
	HostedAgentSizeExtraLarge HostedAgentSize = "EXTRA_LARGE"
)

var AllHostedAgentSize = []HostedAgentSize{
	HostedAgentSizeSmall,
	HostedAgentSizeMedium,
	HostedAgentSizeLarge,
	HostedAgentSizeExtraLarge,
}

// Settings for Linux hosted agents on this queue
type HostedAgentsLinuxPlatformSettingsInput struct {
	// Settings for Linux hosted agents on this queue
	AgentImageRef *string `json:"agentImageRef"`
}

// GetAgentImageRef returns HostedAgentsLinuxPlatformSettingsInput.AgentImageRef, and is useful for accessing the field via an interface.
func (v *HostedAgentsLinuxPlatformSettingsInput) GetAgentImageRef() *string { return v.AgentImageRef }

// Settings for Mac hosted agents on this queue
type HostedAgentsMacosPlatformSettingsInput struct {
	// Settings for Mac hosted agents on this queue
	XcodeVersion *string `json:"xcodeVersion"`
	// Settings for Mac hosted agents on this queue
	MacosVersion *HostedAgentMacOSVersion `json:"macosVersion"`
}

// GetXcodeVersion returns HostedAgentsMacosPlatformSettingsInput.XcodeVersion, and is useful for accessing the field via an interface.
func (v *HostedAgentsMacosPlatformSettingsInput) GetXcodeVersion() *string { return v.XcodeVersion }

// GetMacosVersion returns HostedAgentsMacosPlatformSettingsInput.MacosVersion, and is useful for accessing the field via an interface.
func (v *HostedAgentsMacosPlatformSettingsInput) GetMacosVersion() *HostedAgentMacOSVersion {
	return v.MacosVersion
}

// Settings for hosted agents on this queue
type HostedAgentsPlatformSettingsInput struct {
	// Settings for hosted agents on this queue
	Linux *HostedAgentsLinuxPlatformSettingsInput `json:"linux,omitempty"`
	// Settings for hosted agents on this queue
	Macos *HostedAgentsMacosPlatformSettingsInput `json:"macos,omitempty"`
}

// GetLinux returns HostedAgentsPlatformSettingsInput.Linux, and is useful for accessing the field via an interface.
func (v *HostedAgentsPlatformSettingsInput) GetLinux() *HostedAgentsLinuxPlatformSettingsInput {
	return v.Linux
}

// GetMacos returns HostedAgentsPlatformSettingsInput.Macos, and is useful for accessing the field via an interface.
func (v *HostedAgentsPlatformSettingsInput) GetMacos() *HostedAgentsMacosPlatformSettingsInput {
	return v.Macos
}

// Settings for hosted agents on this queue
type HostedAgentsQueueSettingsCreateInput struct {
	// Settings for hosted agents on this queue
	InstanceShape HostedAgentInstanceShapeName `json:"instanceShape"`
	// Settings for hosted agents on this queue
	PlatformSettings HostedAgentsPlatformSettingsInput `json:"platformSettings"`
}

// GetInstanceShape returns HostedAgentsQueueSettingsCreateInput.InstanceShape, and is useful for accessing the field via an interface.
func (v *HostedAgentsQueueSettingsCreateInput) GetInstanceShape() HostedAgentInstanceShapeName {
	return v.InstanceShape
}

// GetPlatformSettings returns HostedAgentsQueueSettingsCreateInput.PlatformSettings, and is useful for accessing the field via an interface.
func (v *HostedAgentsQueueSettingsCreateInput) GetPlatformSettings() HostedAgentsPlatformSettingsInput {
	return v.PlatformSettings
}

// Settings for hosted agents on this queue
type HostedAgentsQueueSettingsUpdateInput struct {
	// Settings for hosted agents on this queue
	InstanceShape HostedAgentInstanceShapeName `json:"instanceShape"`
	// Settings for hosted agents on this queue
	AgentImageRef string `json:"agentImageRef"`
	// Settings for hosted agents on this queue
	PlatformSettings HostedAgentsPlatformSettingsInput `json:"platformSettings"`
}

// GetInstanceShape returns HostedAgentsQueueSettingsUpdateInput.InstanceShape, and is useful for accessing the field via an interface.
func (v *HostedAgentsQueueSettingsUpdateInput) GetInstanceShape() HostedAgentInstanceShapeName {
	return v.InstanceShape
}

// GetAgentImageRef returns HostedAgentsQueueSettingsUpdateInput.AgentImageRef, and is useful for accessing the field via an interface.
func (v *HostedAgentsQueueSettingsUpdateInput) GetAgentImageRef() string { return v.AgentImageRef }

// GetPlatformSettings returns HostedAgentsQueueSettingsUpdateInput.PlatformSettings, and is useful for accessing the field via an interface.
func (v *HostedAgentsQueueSettingsUpdateInput) GetPlatformSettings() HostedAgentsPlatformSettingsInput {
	return v.PlatformSettings
}

// HostedAgentsQueueSettingsValues includes the GraphQL fields of HostedAgentQueueSettings requested by the fragment HostedAgentsQueueSettingsValues.
// The GraphQL type's documentation follows.
//
// Platform-specific configuration for hosted agent instances.
type HostedAgentsQueueSettingsValues struct {
	// The hardware specifications of the hosted agent instance, such as CPU and memory
	InstanceShape HostedAgentsQueueSettingsValuesInstanceShapeHostedAgentInstanceShape `json:"instanceShape"`
	// Platform-specific configuration for Linux and macOS hosted agents.
	PlatformSettings HostedAgentsQueueSettingsValuesPlatformSettingsHostedAgentPlatformSettings `json:"platformSettings"`
}

// GetInstanceShape returns HostedAgentsQueueSettingsValues.InstanceShape, and is useful for accessing the field via an interface.
func (v *HostedAgentsQueueSettingsValues) GetInstanceShape() HostedAgentsQueueSettingsValuesInstanceShapeHostedAgentInstanceShape {
	return v.InstanceShape
}

// GetPlatformSettings returns HostedAgentsQueueSettingsValues.PlatformSettings, and is useful for accessing the field via an interface.
func (v *HostedAgentsQueueSettingsValues) GetPlatformSettings() HostedAgentsQueueSettingsValuesPlatformSettingsHostedAgentPlatformSettings {
	return v.PlatformSettings
}

// HostedAgentsQueueSettingsValuesInstanceShapeHostedAgentInstanceShape includes the requested fields of the GraphQL type HostedAgentInstanceShape.
// The GraphQL type's documentation follows.
//
// The hosted agent instance configuration for this cluster queue
type HostedAgentsQueueSettingsValuesInstanceShapeHostedAgentInstanceShape struct {
	// Specifies the architecture of the hosted agent instance, such as AMD64 (x86_64) or ARM64 (AArch64), used in this cluster queue.
	Architecture HostedAgentArchitecture `json:"architecture"`
	// Specifies the type of machine used for the hosted agent instance in this cluster queue (e.g., Linux or MacOS).
	MachineType HostedAgentMachineType `json:"machineType"`
	// The amount of memory (in GB) available on each hosted agent instance in this cluster queue.
	Memory int `json:"memory"`
	// Name of the instance shape
	Name HostedAgentInstanceShapeName `json:"name"`
	// The overall size classification of the hosted agent instance, combining vCPU and memory, used in this cluster queue.
	Size HostedAgentSize `json:"size"`
	// The number of CPU cores allocated to the hosted agent instance in this cluster queue.
	Vcpu int `json:"vcpu"`
}

// GetArchitecture returns HostedAgentsQueueSettingsValuesInstanceShapeHostedAgentInstanceShape.Architecture, and is useful for accessing the field via an interface.
func (v *HostedAgentsQueueSettingsValuesInstanceShapeHostedAgentInstanceShape) GetArchitecture() HostedAgentArchitecture {
	return v.Architecture
}

// GetMachineType returns HostedAgentsQueueSettingsValuesInstanceShapeHostedAgentInstanceShape.MachineType, and is useful for accessing the field via an interface.
func (v *HostedAgentsQueueSettingsValuesInstanceShapeHostedAgentInstanceShape) GetMachineType() HostedAgentMachineType {
	return v.MachineType
}

// GetMemory returns HostedAgentsQueueSettingsValuesInstanceShapeHostedAgentInstanceShape.Memory, and is useful for accessing the field via an interface.
func (v *HostedAgentsQueueSettingsValuesInstanceShapeHostedAgentInstanceShape) GetMemory() int {
	return v.Memory
}

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

// GetSize returns HostedAgentsQueueSettingsValuesInstanceShapeHostedAgentInstanceShape.Size, and is useful for accessing the field via an interface.
func (v *HostedAgentsQueueSettingsValuesInstanceShapeHostedAgentInstanceShape) GetSize() HostedAgentSize {
	return v.Size
}

// GetVcpu returns HostedAgentsQueueSettingsValuesInstanceShapeHostedAgentInstanceShape.Vcpu, and is useful for accessing the field via an interface.
func (v *HostedAgentsQueueSettingsValuesInstanceShapeHostedAgentInstanceShape) GetVcpu() int {
	return v.Vcpu
}

// HostedAgentsQueueSettingsValuesPlatformSettingsHostedAgentPlatformSettings includes the requested fields of the GraphQL type HostedAgentPlatformSettings.
// The GraphQL type's documentation follows.
//
// Platform-specific configuration for hosted agent instances.
type HostedAgentsQueueSettingsValuesPlatformSettingsHostedAgentPlatformSettings struct {
	// Configuration options specific to Linux hosted agent instances.
	Linux HostedAgentsQueueSettingsValuesPlatformSettingsHostedAgentPlatformSettingsLinuxHostedAgentLinuxSettings `json:"linux"`
	// Configuration options specific to macOS hosted agent instances.
	Macos HostedAgentsQueueSettingsValuesPlatformSettingsHostedAgentPlatformSettingsMacosHostedAgentMacOSSettingsType `json:"macos"`
}

// GetLinux returns HostedAgentsQueueSettingsValuesPlatformSettingsHostedAgentPlatformSettings.Linux, and is useful for accessing the field via an interface.
func (v *HostedAgentsQueueSettingsValuesPlatformSettingsHostedAgentPlatformSettings) GetLinux() HostedAgentsQueueSettingsValuesPlatformSettingsHostedAgentPlatformSettingsLinuxHostedAgentLinuxSettings {
	return v.Linux
}

// GetMacos returns HostedAgentsQueueSettingsValuesPlatformSettingsHostedAgentPlatformSettings.Macos, and is useful for accessing the field via an interface.
func (v *HostedAgentsQueueSettingsValuesPlatformSettingsHostedAgentPlatformSettings) GetMacos() HostedAgentsQueueSettingsValuesPlatformSettingsHostedAgentPlatformSettingsMacosHostedAgentMacOSSettingsType {
	return v.Macos
}

// HostedAgentsQueueSettingsValuesPlatformSettingsHostedAgentPlatformSettingsLinuxHostedAgentLinuxSettings includes the requested fields of the GraphQL type HostedAgentLinuxSettings.
// The GraphQL type's documentation follows.
//
// Configuration options specific to Linux hosted agent instances.
type HostedAgentsQueueSettingsValuesPlatformSettingsHostedAgentPlatformSettingsLinuxHostedAgentLinuxSettings struct {
	// The image reference of a custom agent base image used by the hosted agent instances in this cluster queue. Note: this must be a public image, or image stored within the hosted agents internal registry.
	AgentImageRef string `json:"agentImageRef"`
}

// GetAgentImageRef returns HostedAgentsQueueSettingsValuesPlatformSettingsHostedAgentPlatformSettingsLinuxHostedAgentLinuxSettings.AgentImageRef, and is useful for accessing the field via an interface.
func (v *HostedAgentsQueueSettingsValuesPlatformSettingsHostedAgentPlatformSettingsLinuxHostedAgentLinuxSettings) GetAgentImageRef() string {
	return v.AgentImageRef
}

// HostedAgentsQueueSettingsValuesPlatformSettingsHostedAgentPlatformSettingsMacosHostedAgentMacOSSettingsType includes the requested fields of the GraphQL type HostedAgentMacOSSettingsType.
// The GraphQL type's documentation follows.
//
// Configuration options for the base image of hosted agent instances on macOS platforms.
type HostedAgentsQueueSettingsValuesPlatformSettingsHostedAgentPlatformSettingsMacosHostedAgentMacOSSettingsType struct {
	// The Xcode version to pre-select (via xcode-select) on macOS hosted agent instances for this cluster queue.
	XcodeVersion string `json:"xcodeVersion"`
	// The macOS version to use for macOS hosted agent instances for this cluster queue.
	MacosVersion *HostedAgentMacOSVersion `json:"macosVersion"`
}

// GetXcodeVersion returns HostedAgentsQueueSettingsValuesPlatformSettingsHostedAgentPlatformSettingsMacosHostedAgentMacOSSettingsType.XcodeVersion, and is useful for accessing the field via an interface.
func (v *HostedAgentsQueueSettingsValuesPlatformSettingsHostedAgentPlatformSettingsMacosHostedAgentMacOSSettingsType) GetXcodeVersion() string {
	return v.XcodeVersion
}

// GetMacosVersion returns HostedAgentsQueueSettingsValuesPlatformSettingsHostedAgentPlatformSettingsMacosHostedAgentMacOSSettingsType.MacosVersion, and is useful for accessing the field via an interface.
func (v *HostedAgentsQueueSettingsValuesPlatformSettingsHostedAgentPlatformSettingsMacosHostedAgentMacOSSettingsType) GetMacosVersion() *HostedAgentMacOSVersion {
	return v.MacosVersion
}

// OrganizationBannerFields includes the GraphQL fields of OrganizationBanner requested by the fragment OrganizationBannerFields.
// The GraphQL type's documentation follows.
//
// System banner of an organization
type OrganizationBannerFields struct {
	Id string `json:"id"`
	// The UUID of the organization banner
	Uuid string `json:"uuid"`
	// The banner message
	Message string `json:"message"`
}

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

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

// GetMessage returns OrganizationBannerFields.Message, and is useful for accessing the field via an interface.
func (v *OrganizationBannerFields) GetMessage() string { return v.Message }

// OrganizationRuleFields includes the GraphQL fields of Rule requested by the fragment OrganizationRuleFields.
type OrganizationRuleFields struct {
	Id string `json:"id"`
	// The public UUID for the rule
	Uuid string `json:"uuid"`
	// Description of the rule
	Description *string `json:"description"`
	// A formatted JSON document of the Rule
	Document string `json:"document"`
	// The type of rule
	Type string `json:"type"`
	// Source type for the rule
	SourceType RuleSourceType `json:"sourceType"`
	// Target type for the rule
	TargetType RuleTargetType `json:"targetType"`
	// Effect for the rule
	Effect RuleEffect `json:"effect"`
	// Action for the rule
	Action RuleAction `json:"action"`
	// The source for the rule
	Source OrganizationRuleFieldsSourceRuleSource `json:"-"`
	// The target for the rule
	Target OrganizationRuleFieldsTargetRuleTarget `json:"-"`
}

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

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

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

// GetDocument returns OrganizationRuleFields.Document, and is useful for accessing the field via an interface.
func (v *OrganizationRuleFields) GetDocument() string { return v.Document }

// GetType returns OrganizationRuleFields.Type, and is useful for accessing the field via an interface.
func (v *OrganizationRuleFields) GetType() string { return v.Type }

// GetSourceType returns OrganizationRuleFields.SourceType, and is useful for accessing the field via an interface.
func (v *OrganizationRuleFields) GetSourceType() RuleSourceType { return v.SourceType }

// GetTargetType returns OrganizationRuleFields.TargetType, and is useful for accessing the field via an interface.
func (v *OrganizationRuleFields) GetTargetType() RuleTargetType { return v.TargetType }

// GetEffect returns OrganizationRuleFields.Effect, and is useful for accessing the field via an interface.
func (v *OrganizationRuleFields) GetEffect() RuleEffect { return v.Effect }

// GetAction returns OrganizationRuleFields.Action, and is useful for accessing the field via an interface.
func (v *OrganizationRuleFields) GetAction() RuleAction { return v.Action }

// GetSource returns OrganizationRuleFields.Source, and is useful for accessing the field via an interface.
func (v *OrganizationRuleFields) GetSource() OrganizationRuleFieldsSourceRuleSource { return v.Source }

// GetTarget returns OrganizationRuleFields.Target, and is useful for accessing the field via an interface.
func (v *OrganizationRuleFields) GetTarget() OrganizationRuleFieldsTargetRuleTarget { return v.Target }

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

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

	var firstPass struct {
		*OrganizationRuleFields
		Source json.RawMessage `json:"source"`
		Target json.RawMessage `json:"target"`
		graphql.NoUnmarshalJSON
	}
	firstPass.OrganizationRuleFields = v

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

	{
		dst := &v.Source
		src := firstPass.Source
		if len(src) != 0 && string(src) != "null" {
			err = __unmarshalOrganizationRuleFieldsSourceRuleSource(
				src, dst)
			if err != nil {
				return fmt.Errorf(
					"unable to unmarshal OrganizationRuleFields.Source: %w", err)
			}
		}
	}

	{
		dst := &v.Target
		src := firstPass.Target
		if len(src) != 0 && string(src) != "null" {
			err = __unmarshalOrganizationRuleFieldsTargetRuleTarget(
				src, dst)
			if err != nil {
				return fmt.Errorf(
					"unable to unmarshal OrganizationRuleFields.Target: %w", err)
			}
		}
	}
	return nil
}

type __premarshalOrganizationRuleFields struct {
	Id string `json:"id"`

	Uuid string `json:"uuid"`

	Description *string `json:"description"`

	Document string `json:"document"`

	Type string `json:"type"`

	SourceType RuleSourceType `json:"sourceType"`

	TargetType RuleTargetType `json:"targetType"`

	Effect RuleEffect `json:"effect"`

	Action RuleAction `json:"action"`

	Source json.RawMessage `json:"source"`

	Target json.RawMessage `json:"target"`
}

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

func (v *OrganizationRuleFields) __premarshalJSON() (*__premarshalOrganizationRuleFields, error) {
	var retval __premarshalOrganizationRuleFields

	retval.Id = v.Id
	retval.Uuid = v.Uuid
	retval.Description = v.Description
	retval.Document = v.Document
	retval.Type = v.Type
	retval.SourceType = v.SourceType
	retval.TargetType = v.TargetType
	retval.Effect = v.Effect
	retval.Action = v.Action
	{

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

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

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

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

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

// OrganizationRuleFieldsSourceRuleSource includes the requested fields of the GraphQL interface RuleSource.
//
// OrganizationRuleFieldsSourceRuleSource is implemented by the following types:
// OrganizationRuleFieldsSourcePipeline
// The GraphQL type's documentation follows.
//
// Kinds of sources for a rule
type OrganizationRuleFieldsSourceRuleSource interface {
	implementsGraphQLInterfaceOrganizationRuleFieldsSourceRuleSource()
	// GetTypename returns the receiver's concrete GraphQL type-name (see interface doc for possible values).
	GetTypename() string
}

func (v *OrganizationRuleFieldsSourcePipeline) implementsGraphQLInterfaceOrganizationRuleFieldsSourceRuleSource() {
}

func __unmarshalOrganizationRuleFieldsSourceRuleSource(b []byte, v *OrganizationRuleFieldsSourceRuleSource) 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 "Pipeline":
		*v = new(OrganizationRuleFieldsSourcePipeline)
		return json.Unmarshal(b, *v)
	case "":
		return fmt.Errorf(
			"response was missing RuleSource.__typename")
	default:
		return fmt.Errorf(
			`unexpected concrete type for OrganizationRuleFieldsSourceRuleSource: "%v"`, tn.TypeName)
	}
}

func __marshalOrganizationRuleFieldsSourceRuleSource(v *OrganizationRuleFieldsSourceRuleSource) ([]byte, error) {

	var typename string
	switch v := (*v).(type) {
	case *OrganizationRuleFieldsSourcePipeline:
		typename = "Pipeline"

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

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

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

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

// OrganizationRuleFieldsTargetRuleTarget includes the requested fields of the GraphQL interface RuleTarget.
//
// OrganizationRuleFieldsTargetRuleTarget is implemented by the following types:
// OrganizationRuleFieldsTargetPipeline
// The GraphQL type's documentation follows.
//
// Kinds of targets for a rule
type OrganizationRuleFieldsTargetRuleTarget interface {
	implementsGraphQLInterfaceOrganizationRuleFieldsTargetRuleTarget()
	// GetTypename returns the receiver's concrete GraphQL type-name (see interface doc for possible values).
	GetTypename() string
}

func (v *OrganizationRuleFieldsTargetPipeline) implementsGraphQLInterfaceOrganizationRuleFieldsTargetRuleTarget() {
}

func __unmarshalOrganizationRuleFieldsTargetRuleTarget(b []byte, v *OrganizationRuleFieldsTargetRuleTarget) 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 "Pipeline":
		*v = new(OrganizationRuleFieldsTargetPipeline)
		return json.Unmarshal(b, *v)
	case "":
		return fmt.Errorf(
			"response was missing RuleTarget.__typename")
	default:
		return fmt.Errorf(
			`unexpected concrete type for OrganizationRuleFieldsTargetRuleTarget: "%v"`, tn.TypeName)
	}
}

func __marshalOrganizationRuleFieldsTargetRuleTarget(v *OrganizationRuleFieldsTargetRuleTarget) ([]byte, error) {

	var typename string
	switch v := (*v).(type) {
	case *OrganizationRuleFieldsTargetPipeline:
		typename = "Pipeline"

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

// The access levels that can be assigned to a pipeline
type PipelineAccessLevels string

const (
	// Allows edits, builds and reads
	PipelineAccessLevelsManageBuildAndRead PipelineAccessLevels = "MANAGE_BUILD_AND_READ"
	// Allows builds and read only
	PipelineAccessLevelsBuildAndRead PipelineAccessLevels = "BUILD_AND_READ"
	// Read only - no builds or edits
	PipelineAccessLevelsReadOnly PipelineAccessLevels = "READ_ONLY"
)

var AllPipelineAccessLevels = []PipelineAccessLevels{
	PipelineAccessLevelsManageBuildAndRead,
	PipelineAccessLevelsBuildAndRead,
	PipelineAccessLevelsReadOnly,
}

// Autogenerated input type of PipelineCreate
type PipelineCreateInput struct {
	// Autogenerated input type of PipelineCreate
	ClientMutationId string `json:"clientMutationId"`
	// Autogenerated input type of PipelineCreate
	OrganizationId string `json:"organizationId"`
	// Autogenerated input type of PipelineCreate
	Name string `json:"name"`
	// Autogenerated input type of PipelineCreate
	Description string `json:"description"`
	// Autogenerated input type of PipelineCreate
	Emoji *string `json:"emoji"`
	// Autogenerated input type of PipelineCreate
	Color *string `json:"color"`
	// Autogenerated input type of PipelineCreate
	Visibility PipelineVisibility `json:"visibility,omitempty"`
	// Autogenerated input type of PipelineCreate
	Repository PipelineRepositoryInput `json:"repository"`
	// Autogenerated input type of PipelineCreate
	Steps PipelineStepsInput `json:"steps"`
	// Autogenerated input type of PipelineCreate
	SkipIntermediateBuilds bool `json:"skipIntermediateBuilds"`
	// Autogenerated input type of PipelineCreate
	SkipIntermediateBuildsBranchFilter string `json:"skipIntermediateBuildsBranchFilter"`
	// Autogenerated input type of PipelineCreate
	CancelIntermediateBuilds bool `json:"cancelIntermediateBuilds"`
	// Autogenerated input type of PipelineCreate
	CancelIntermediateBuildsBranchFilter string `json:"cancelIntermediateBuildsBranchFilter"`
	// Autogenerated input type of PipelineCreate
	AllowRebuilds bool `json:"allowRebuilds"`
	// Autogenerated input type of PipelineCreate
	DefaultTimeoutInMinutes *int `json:"defaultTimeoutInMinutes"`
	// Autogenerated input type of PipelineCreate
	MaximumTimeoutInMinutes *int `json:"maximumTimeoutInMinutes"`
	// Autogenerated input type of PipelineCreate
	Teams []PipelineTeamAssignmentInput `json:"teams"`
	// Autogenerated input type of PipelineCreate
	DefaultBranch string `json:"defaultBranch"`
	// Autogenerated input type of PipelineCreate
	NextBuildNumber int `json:"nextBuildNumber,omitempty"`
	// Autogenerated input type of PipelineCreate
	ClusterId *string `json:"clusterId"`
	// Autogenerated input type of PipelineCreate
	PipelineTemplateId string `json:"pipelineTemplateId,omitempty"`
	// Autogenerated input type of PipelineCreate
	Tags []PipelineTagInput `json:"tags"`
	// Autogenerated input type of PipelineCreate
	BranchConfiguration *string `json:"branchConfiguration"`
}

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

// GetOrganizationId returns PipelineCreateInput.OrganizationId, and is useful for accessing the field via an interface.
func (v *PipelineCreateInput) GetOrganizationId() string { return v.OrganizationId }

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

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

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

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

// GetVisibility returns PipelineCreateInput.Visibility, and is useful for accessing the field via an interface.
func (v *PipelineCreateInput) GetVisibility() PipelineVisibility { return v.Visibility }

// GetRepository returns PipelineCreateInput.Repository, and is useful for accessing the field via an interface.
func (v *PipelineCreateInput) GetRepository() PipelineRepositoryInput { return v.Repository }

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

// GetSkipIntermediateBuilds returns PipelineCreateInput.SkipIntermediateBuilds, and is useful for accessing the field via an interface.
func (v *PipelineCreateInput) GetSkipIntermediateBuilds() bool { return v.SkipIntermediateBuilds }

// GetSkipIntermediateBuildsBranchFilter returns PipelineCreateInput.SkipIntermediateBuildsBranchFilter, and is useful for accessing the field via an interface.
func (v *PipelineCreateInput) GetSkipIntermediateBuildsBranchFilter() string {
	return v.SkipIntermediateBuildsBranchFilter
}

// GetCancelIntermediateBuilds returns PipelineCreateInput.CancelIntermediateBuilds, and is useful for accessing the field via an interface.
func (v *PipelineCreateInput) GetCancelIntermediateBuilds() bool { return v.CancelIntermediateBuilds }

// GetCancelIntermediateBuildsBranchFilter returns PipelineCreateInput.CancelIntermediateBuildsBranchFilter, and is useful for accessing the field via an interface.
func (v *PipelineCreateInput) GetCancelIntermediateBuildsBranchFilter() string {
	return v.CancelIntermediateBuildsBranchFilter
}

// GetAllowRebuilds returns PipelineCreateInput.AllowRebuilds, and is useful for accessing the field via an interface.
func (v *PipelineCreateInput) GetAllowRebuilds() bool { return v.AllowRebuilds }

// GetDefaultTimeoutInMinutes returns PipelineCreateInput.DefaultTimeoutInMinutes, and is useful for accessing the field via an interface.
func (v *PipelineCreateInput) GetDefaultTimeoutInMinutes() *int { return v.DefaultTimeoutInMinutes }

// GetMaximumTimeoutInMinutes returns PipelineCreateInput.MaximumTimeoutInMinutes, and is useful for accessing the field via an interface.
func (v *PipelineCreateInput) GetMaximumTimeoutInMinutes() *int { return v.MaximumTimeoutInMinutes }

// GetTeams returns PipelineCreateInput.Teams, and is useful for accessing the field via an interface.
func (v *PipelineCreateInput) GetTeams() []PipelineTeamAssignmentInput { return v.Teams }

// GetDefaultBranch returns PipelineCreateInput.DefaultBranch, and is useful for accessing the field via an interface.
func (v *PipelineCreateInput) GetDefaultBranch() string { return v.DefaultBranch }

// GetNextBuildNumber returns PipelineCreateInput.NextBuildNumber, and is useful for accessing the field via an interface.
func (v *PipelineCreateInput) GetNextBuildNumber() int { return v.NextBuildNumber }

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

// GetPipelineTemplateId returns PipelineCreateInput.PipelineTemplateId, and is useful for accessing the field via an interface.
func (v *PipelineCreateInput) GetPipelineTemplateId() string { return v.PipelineTemplateId }

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

// GetBranchConfiguration returns PipelineCreateInput.BranchConfiguration, and is useful for accessing the field via an interface.
func (v *PipelineCreateInput) GetBranchConfiguration() *string { return v.BranchConfiguration }

// PipelineFields includes the GraphQL fields of Pipeline requested by the fragment PipelineFields.
// The GraphQL type's documentation follows.
//
// A pipeline
type PipelineFields struct {
	Id string `json:"id"`
	// The UUID of the pipeline
	PipelineUuid string `json:"pipelineUuid"`
	// Whether existing builds can be rebuilt as new builds.
	AllowRebuilds bool `json:"allowRebuilds"`
	// The URL for build badge to the show the current build state for a pipeline.
	BadgeURL string `json:"badgeURL"`
	// A branch filter pattern to limit which pushed branches trigger builds on this pipeline.
	BranchConfiguration *string `json:"branchConfiguration"`
	// When a new build is created on a branch, any previous builds that are running on the same branch will be automatically cancelled
	CancelIntermediateBuilds bool `json:"cancelIntermediateBuilds"`
	// Limit which branches build cancelling applies to, for example `!main` will ensure that the main branch won't have it's builds automatically cancelled.
	CancelIntermediateBuildsBranchFilter string                `json:"cancelIntermediateBuildsBranchFilter"`
	Cluster                              PipelineFieldsCluster `json:"cluster"`
	// The color of the pipeline
	Color *string `json:"color"`
	// The default branch for this pipeline
	DefaultBranch string `json:"defaultBranch"`
	// The default timeout in minutes for all command steps in this pipeline. This can still be overridden in any command step
	DefaultTimeoutInMinutes *int `json:"defaultTimeoutInMinutes"`
	// The emoji of the pipeline
	Emoji *string `json:"emoji"`
	// The maximum timeout in minutes for all command steps in this pipeline. Any command step without a timeout or with a timeout greater than this value will be set to this value.
	MaximumTimeoutInMinutes *int `json:"maximumTimeoutInMinutes"`
	// The short description of the pipeline
	Description string `json:"description"`
	// The name of the pipeline
	Name string `json:"name"`
	// The repository for this pipeline
	Repository       PipelineFieldsRepository       `json:"repository"`
	PipelineTemplate PipelineFieldsPipelineTemplate `json:"pipelineTemplate"`
	// When a new build is created on a branch, any previous builds that haven't yet started on the same branch will be automatically marked as skipped.
	SkipIntermediateBuilds bool `json:"skipIntermediateBuilds"`
	// Limit which branches build skipping applies to, for example `!main` will ensure that the main branch won't have it's builds automatically skipped.
	SkipIntermediateBuildsBranchFilter string `json:"skipIntermediateBuildsBranchFilter"`
	// The slug of the pipeline
	Slug  string                           `json:"slug"`
	Steps PipelineFieldsStepsPipelineSteps `json:"steps"`
	// Tags that have been given to this pipeline
	Tags []PipelineFieldsTagsPipelineTag `json:"tags"`
	// Teams associated with this pipeline
	Teams PipelineFieldsTeamsTeamPipelineConnection `json:"teams"`
	// The URL to use in your repository settings for commit webhooks
	WebhookURL string `json:"webhookURL"`
}

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

// GetPipelineUuid returns PipelineFields.PipelineUuid, and is useful for accessing the field via an interface.
func (v *PipelineFields) GetPipelineUuid() string { return v.PipelineUuid }

// GetAllowRebuilds returns PipelineFields.AllowRebuilds, and is useful for accessing the field via an interface.
func (v *PipelineFields) GetAllowRebuilds() bool { return v.AllowRebuilds }

// GetBadgeURL returns PipelineFields.BadgeURL, and is useful for accessing the field via an interface.
func (v *PipelineFields) GetBadgeURL() string { return v.BadgeURL }

// GetBranchConfiguration returns PipelineFields.BranchConfiguration, and is useful for accessing the field via an interface.
func (v *PipelineFields) GetBranchConfiguration() *string { return v.BranchConfiguration }

// GetCancelIntermediateBuilds returns PipelineFields.CancelIntermediateBuilds, and is useful for accessing the field via an interface.
func (v *PipelineFields) GetCancelIntermediateBuilds() bool { return v.CancelIntermediateBuilds }

// GetCancelIntermediateBuildsBranchFilter returns PipelineFields.CancelIntermediateBuildsBranchFilter, and is useful for accessing the field via an interface.
func (v *PipelineFields) GetCancelIntermediateBuildsBranchFilter() string {
	return v.CancelIntermediateBuildsBranchFilter
}

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

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

// GetDefaultBranch returns PipelineFields.DefaultBranch, and is useful for accessing the field via an interface.
func (v *PipelineFields) GetDefaultBranch() string { return v.DefaultBranch }

// GetDefaultTimeoutInMinutes returns PipelineFields.DefaultTimeoutInMinutes, and is useful for accessing the field via an interface.
func (v *PipelineFields) GetDefaultTimeoutInMinutes() *int { return v.DefaultTimeoutInMinutes }

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

// GetMaximumTimeoutInMinutes returns PipelineFields.MaximumTimeoutInMinutes, and is useful for accessing the field via an interface.
func (v *PipelineFields) GetMaximumTimeoutInMinutes() *int { return v.MaximumTimeoutInMinutes }

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

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

// GetRepository returns PipelineFields.Repository, and is useful for accessing the field via an interface.
func (v *PipelineFields) GetRepository() PipelineFieldsRepository { return v.Repository }

// GetPipelineTemplate returns PipelineFields.PipelineTemplate, and is useful for accessing the field via an interface.
func (v *PipelineFields) GetPipelineTemplate() PipelineFieldsPipelineTemplate {
	return v.PipelineTemplate
}

// GetSkipIntermediateBuilds returns PipelineFields.SkipIntermediateBuilds, and is useful for accessing the field via an interface.
func (v *PipelineFields) GetSkipIntermediateBuilds() bool { return v.SkipIntermediateBuilds }

// GetSkipIntermediateBuildsBranchFilter returns PipelineFields.SkipIntermediateBuildsBranchFilter, and is useful for accessing the field via an interface.
func (v *PipelineFields) GetSkipIntermediateBuildsBranchFilter() string {
	return v.SkipIntermediateBuildsBranchFilter
}

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

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

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

// GetTeams returns PipelineFields.Teams, and is useful for accessing the field via an interface.
func (v *PipelineFields) GetTeams() PipelineFieldsTeamsTeamPipelineConnection { return v.Teams }

// GetWebhookURL returns PipelineFields.WebhookURL, and is useful for accessing the field via an interface.
func (v *PipelineFields) GetWebhookURL() string { return v.WebhookURL }

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

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

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

// PipelineFieldsPipelineTemplate 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 PipelineFieldsPipelineTemplate struct {
	Id *string `json:"id"`
}

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

// PipelineFieldsRepository includes the requested fields of the GraphQL type Repository.
// The GraphQL type's documentation follows.
//
// A repository associated with a pipeline
type PipelineFieldsRepository struct {
	// The git URL for this repository
	Url string `json:"url"`
}

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

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

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

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

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

// PipelineFieldsTeamsTeamPipelineConnection includes the requested fields of the GraphQL type TeamPipelineConnection.
// The GraphQL type's documentation follows.
//
// A collection of TeamPipeline records
type PipelineFieldsTeamsTeamPipelineConnection struct {
	PipelineTeam `json:"-"`
}

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

// GetCount returns PipelineFieldsTeamsTeamPipelineConnection.Count, and is useful for accessing the field via an interface.
func (v *PipelineFieldsTeamsTeamPipelineConnection) GetCount() int { return v.PipelineTeam.Count }

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

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

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

	var firstPass struct {
		*PipelineFieldsTeamsTeamPipelineConnection
		graphql.NoUnmarshalJSON
	}
	firstPass.PipelineFieldsTeamsTeamPipelineConnection = v

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

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

type __premarshalPipelineFieldsTeamsTeamPipelineConnection struct {
	PageInfo PipelineTeamPageInfo `json:"pageInfo"`

	Count int `json:"count"`

	Edges []PipelineTeamEdgesTeamPipelineEdge `json:"edges"`
}

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

func (v *PipelineFieldsTeamsTeamPipelineConnection) __premarshalJSON() (*__premarshalPipelineFieldsTeamsTeamPipelineConnection, error) {
	var retval __premarshalPipelineFieldsTeamsTeamPipelineConnection

	retval.PageInfo = v.PipelineTeam.PageInfo
	retval.Count = v.PipelineTeam.Count
	retval.Edges = v.PipelineTeam.Edges
	return &retval, nil
}

// Repository information for a pipeline
type PipelineRepositoryInput struct {
	// Repository information for a pipeline
	Url string `json:"url"`
}

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

// Autogenerated input type of PipelineScheduleUpdate
type PipelineScheduleUpdateInput struct {
	// Autogenerated input type of PipelineScheduleUpdate
	ClientMutationId string `json:"clientMutationId"`
	// Autogenerated input type of PipelineScheduleUpdate
	Id string `json:"id"`
	// Autogenerated input type of PipelineScheduleUpdate
	Label *string `json:"label"`
	// Autogenerated input type of PipelineScheduleUpdate
	Cronline *string `json:"cronline"`
	// Autogenerated input type of PipelineScheduleUpdate
	Message *string `json:"message"`
	// Autogenerated input type of PipelineScheduleUpdate
	Commit *string `json:"commit"`
	// Autogenerated input type of PipelineScheduleUpdate
	Branch *string `json:"branch"`
	// Autogenerated input type of PipelineScheduleUpdate
	Env *string `json:"env"`
	// Autogenerated input type of PipelineScheduleUpdate
	Enabled *bool `json:"enabled"`
}

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

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

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

// GetCronline returns PipelineScheduleUpdateInput.Cronline, and is useful for accessing the field via an interface.
func (v *PipelineScheduleUpdateInput) GetCronline() *string { return v.Cronline }

// GetMessage returns PipelineScheduleUpdateInput.Message, and is useful for accessing the field via an interface.
func (v *PipelineScheduleUpdateInput) GetMessage() *string { return v.Message }

// GetCommit returns PipelineScheduleUpdateInput.Commit, and is useful for accessing the field via an interface.
func (v *PipelineScheduleUpdateInput) GetCommit() *string { return v.Commit }

// GetBranch returns PipelineScheduleUpdateInput.Branch, and is useful for accessing the field via an interface.
func (v *PipelineScheduleUpdateInput) GetBranch() *string { return v.Branch }

// GetEnv returns PipelineScheduleUpdateInput.Env, and is useful for accessing the field via an interface.
func (v *PipelineScheduleUpdateInput) GetEnv() *string { return v.Env }

// GetEnabled returns PipelineScheduleUpdateInput.Enabled, and is useful for accessing the field via an interface.
func (v *PipelineScheduleUpdateInput) GetEnabled() *bool { return v.Enabled }

// PipelineScheduleValues includes the GraphQL fields of PipelineSchedule requested by the fragment PipelineScheduleValues.
// The GraphQL type's documentation follows.
//
// A schedule of when a build should automatically triggered for a Pipeline
type PipelineScheduleValues struct {
	Id string `json:"id"`
	// The UUID of the Pipeline schedule
	Uuid string `json:"uuid"`
	// A short description of the Pipeline schedule
	Label *string `json:"label"`
	// A definition of the trigger build schedule in cron syntax
	Cronline *string `json:"cronline"`
	// The message to use for builds that this schedule triggers
	Message *string `json:"message"`
	// The commit to use for builds that this schedule triggers. Defaults to `HEAD`
	Commit *string `json:"commit"`
	// The branch to use for builds that this schedule triggers. Defaults to to the default branch in the Pipeline
	Branch *string `json:"branch"`
	// Environment variables passed to any triggered builds
	Env []*string `json:"env"`
	// If this Pipeline schedule is currently enabled
	Enabled  bool                           `json:"enabled"`
	Pipeline PipelineScheduleValuesPipeline `json:"pipeline"`
}

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

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

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

// GetCronline returns PipelineScheduleValues.Cronline, and is useful for accessing the field via an interface.
func (v *PipelineScheduleValues) GetCronline() *string { return v.Cronline }

// GetMessage returns PipelineScheduleValues.Message, and is useful for accessing the field via an interface.
func (v *PipelineScheduleValues) GetMessage() *string { return v.Message }

// GetCommit returns PipelineScheduleValues.Commit, and is useful for accessing the field via an interface.
func (v *PipelineScheduleValues) GetCommit() *string { return v.Commit }

// GetBranch returns PipelineScheduleValues.Branch, and is useful for accessing the field via an interface.
func (v *PipelineScheduleValues) GetBranch() *string { return v.Branch }

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

// GetEnabled returns PipelineScheduleValues.Enabled, and is useful for accessing the field via an interface.
func (v *PipelineScheduleValues) GetEnabled() bool { return v.Enabled }

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

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

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

// Step definition for a pipeline
type PipelineStepsInput struct {
	// Step definition for a pipeline
	Yaml string `json:"yaml"`
}

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

// Tag associated with a pipeline
type PipelineTagInput struct {
	// Tag associated with a pipeline
	Label string `json:"label"`
}

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

// PipelineTeam includes the GraphQL fields of TeamPipelineConnection requested by the fragment PipelineTeam.
// The GraphQL type's documentation follows.
//
// A collection of TeamPipeline records
type PipelineTeam struct {
	PageInfo PipelineTeamPageInfo                `json:"pageInfo"`
	Count    int                                 `json:"count"`
	Edges    []PipelineTeamEdgesTeamPipelineEdge `json:"edges"`
}

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

// GetCount returns PipelineTeam.Count, and is useful for accessing the field via an interface.
func (v *PipelineTeam) GetCount() int { return v.Count }

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

// Used to assign teams to pipelines
type PipelineTeamAssignmentInput struct {
	// Used to assign teams to pipelines
	Id string `json:"id"`
	// Used to assign teams to pipelines
	AccessLevel PipelineAccessLevels `json:"accessLevel"`
}

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

// GetAccessLevel returns PipelineTeamAssignmentInput.AccessLevel, and is useful for accessing the field via an interface.
func (v *PipelineTeamAssignmentInput) GetAccessLevel() PipelineAccessLevels { return v.AccessLevel }

// PipelineTeamEdgesTeamPipelineEdge includes the requested fields of the GraphQL type TeamPipelineEdge.
type PipelineTeamEdgesTeamPipelineEdge struct {
	Cursor string                                            `json:"cursor"`
	Node   PipelineTeamEdgesTeamPipelineEdgeNodeTeamPipeline `json:"node"`
}

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

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

// PipelineTeamEdgesTeamPipelineEdgeNodeTeamPipeline 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 PipelineTeamEdgesTeamPipelineEdgeNodeTeamPipeline struct {
	Id string `json:"id"`
	// The access level users have to this pipeline
	AccessLevel PipelineAccessLevels `json:"accessLevel"`
	// The team associated with this team member
	Team PipelineTeamEdgesTeamPipelineEdgeNodeTeamPipelineTeam `json:"team"`
}

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

// GetAccessLevel returns PipelineTeamEdgesTeamPipelineEdgeNodeTeamPipeline.AccessLevel, and is useful for accessing the field via an interface.
func (v *PipelineTeamEdgesTeamPipelineEdgeNodeTeamPipeline) GetAccessLevel() PipelineAccessLevels {
	return v.AccessLevel
}

// GetTeam returns PipelineTeamEdgesTeamPipelineEdgeNodeTeamPipeline.Team, and is useful for accessing the field via an interface.
func (v *PipelineTeamEdgesTeamPipelineEdgeNodeTeamPipeline) GetTeam() PipelineTeamEdgesTeamPipelineEdgeNodeTeamPipelineTeam {
	return v.Team
}

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

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

// PipelineTeamPageInfo includes the requested fields of the GraphQL type PageInfo.
// The GraphQL type's documentation follows.
//
// Information about pagination in a connection.
type PipelineTeamPageInfo 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 PipelineTeamPageInfo.EndCursor, and is useful for accessing the field via an interface.
func (v *PipelineTeamPageInfo) GetEndCursor() string { return v.EndCursor }

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

// PipelineTemplateFields includes the GraphQL fields of PipelineTemplate requested by the fragment PipelineTemplateFields.
// The GraphQL type's documentation follows.
//
// A template defining a fixed step configuration for a pipeline
type PipelineTemplateFields struct {
	Id string `json:"id"`
	// The UUID for the template
	Uuid string `json:"uuid"`
	// If the pipeline template is available for assignment by non admin users
	Available bool `json:"available"`
	// A YAML representation of the step configuration
	Configuration string `json:"configuration"`
	// The short description of the template
	Description *string `json:"description"`
	// The name of the template
	Name string `json:"name"`
}

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

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

// GetAvailable returns PipelineTemplateFields.Available, and is useful for accessing the field via an interface.
func (v *PipelineTemplateFields) GetAvailable() bool { return v.Available }

// GetConfiguration returns PipelineTemplateFields.Configuration, and is useful for accessing the field via an interface.
func (v *PipelineTemplateFields) GetConfiguration() string { return v.Configuration }

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

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

// Autogenerated input type of PipelineUpdate
type PipelineUpdateInput struct {
	// Autogenerated input type of PipelineUpdate
	ClientMutationId string `json:"clientMutationId"`
	// Autogenerated input type of PipelineUpdate
	Id string `json:"id"`
	// Autogenerated input type of PipelineUpdate
	Name string `json:"name"`
	// Autogenerated input type of PipelineUpdate
	Description string `json:"description"`
	// Autogenerated input type of PipelineUpdate
	Emoji *string `json:"emoji"`
	// Autogenerated input type of PipelineUpdate
	Color *string `json:"color"`
	// Autogenerated input type of PipelineUpdate
	Visibility PipelineVisibility `json:"visibility,omitempty"`
	// Autogenerated input type of PipelineUpdate
	Repository PipelineRepositoryInput `json:"repository"`
	// Autogenerated input type of PipelineUpdate
	Steps PipelineStepsInput `json:"steps"`
	// Autogenerated input type of PipelineUpdate
	DefaultBranch string `json:"defaultBranch"`
	// Autogenerated input type of PipelineUpdate
	NextBuildNumber int `json:"nextBuildNumber,omitempty"`
	// Autogenerated input type of PipelineUpdate
	SkipIntermediateBuilds bool `json:"skipIntermediateBuilds"`
	// Autogenerated input type of PipelineUpdate
	SkipIntermediateBuildsBranchFilter string `json:"skipIntermediateBuildsBranchFilter"`
	// Autogenerated input type of PipelineUpdate
	CancelIntermediateBuilds bool `json:"cancelIntermediateBuilds"`
	// Autogenerated input type of PipelineUpdate
	CancelIntermediateBuildsBranchFilter string `json:"cancelIntermediateBuildsBranchFilter"`
	// Autogenerated input type of PipelineUpdate
	AllowRebuilds bool `json:"allowRebuilds"`
	// Autogenerated input type of PipelineUpdate
	DefaultTimeoutInMinutes *int `json:"defaultTimeoutInMinutes"`
	// Autogenerated input type of PipelineUpdate
	MaximumTimeoutInMinutes *int `json:"maximumTimeoutInMinutes"`
	// Autogenerated input type of PipelineUpdate
	ClusterId *string `json:"clusterId"`
	// Autogenerated input type of PipelineUpdate
	PipelineTemplateId *string `json:"pipelineTemplateId"`
	// Autogenerated input type of PipelineUpdate
	Archived bool `json:"archived,omitempty"`
	// Autogenerated input type of PipelineUpdate
	Tags []PipelineTagInput `json:"tags"`
	// Autogenerated input type of PipelineUpdate
	BranchConfiguration *string `json:"branchConfiguration"`
}

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

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

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

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

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

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

// GetVisibility returns PipelineUpdateInput.Visibility, and is useful for accessing the field via an interface.
func (v *PipelineUpdateInput) GetVisibility() PipelineVisibility { return v.Visibility }

// GetRepository returns PipelineUpdateInput.Repository, and is useful for accessing the field via an interface.
func (v *PipelineUpdateInput) GetRepository() PipelineRepositoryInput { return v.Repository }

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

// GetDefaultBranch returns PipelineUpdateInput.DefaultBranch, and is useful for accessing the field via an interface.
func (v *PipelineUpdateInput) GetDefaultBranch() string { return v.DefaultBranch }

// GetNextBuildNumber returns PipelineUpdateInput.NextBuildNumber, and is useful for accessing the field via an interface.
func (v *PipelineUpdateInput) GetNextBuildNumber() int { return v.NextBuildNumber }

// GetSkipIntermediateBuilds returns PipelineUpdateInput.SkipIntermediateBuilds, and is useful for accessing the field via an interface.
func (v *PipelineUpdateInput) GetSkipIntermediateBuilds() bool { return v.SkipIntermediateBuilds }

// GetSkipIntermediateBuildsBranchFilter returns PipelineUpdateInput.SkipIntermediateBuildsBranchFilter, and is useful for accessing the field via an interface.
func (v *PipelineUpdateInput) GetSkipIntermediateBuildsBranchFilter() string {
	return v.SkipIntermediateBuildsBranchFilter
}

// GetCancelIntermediateBuilds returns PipelineUpdateInput.CancelIntermediateBuilds, and is useful for accessing the field via an interface.
func (v *PipelineUpdateInput) GetCancelIntermediateBuilds() bool { return v.CancelIntermediateBuilds }

// GetCancelIntermediateBuildsBranchFilter returns PipelineUpdateInput.CancelIntermediateBuildsBranchFilter, and is useful for accessing the field via an interface.
func (v *PipelineUpdateInput) GetCancelIntermediateBuildsBranchFilter() string {
	return v.CancelIntermediateBuildsBranchFilter
}

// GetAllowRebuilds returns PipelineUpdateInput.AllowRebuilds, and is useful for accessing the field via an interface.
func (v *PipelineUpdateInput) GetAllowRebuilds() bool { return v.AllowRebuilds }

// GetDefaultTimeoutInMinutes returns PipelineUpdateInput.DefaultTimeoutInMinutes, and is useful for accessing the field via an interface.
func (v *PipelineUpdateInput) GetDefaultTimeoutInMinutes() *int { return v.DefaultTimeoutInMinutes }

// GetMaximumTimeoutInMinutes returns PipelineUpdateInput.MaximumTimeoutInMinutes, and is useful for accessing the field via an interface.
func (v *PipelineUpdateInput) GetMaximumTimeoutInMinutes() *int { return v.MaximumTimeoutInMinutes }

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

// GetPipelineTemplateId returns PipelineUpdateInput.PipelineTemplateId, and is useful for accessing the field via an interface.
func (v *PipelineUpdateInput) GetPipelineTemplateId() *string { return v.PipelineTemplateId }

// GetArchived returns PipelineUpdateInput.Archived, and is useful for accessing the field via an interface.
func (v *PipelineUpdateInput) GetArchived() bool { return v.Archived }

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

// GetBranchConfiguration returns PipelineUpdateInput.BranchConfiguration, and is useful for accessing the field via an interface.
func (v *PipelineUpdateInput) GetBranchConfiguration() *string { return v.BranchConfiguration }

// The visibility of the pipeline
type PipelineVisibility string

const (
	// The pipeline is public
	PipelineVisibilityPublic PipelineVisibility = "PUBLIC"
	// The pipeline is private
	PipelineVisibilityPrivate PipelineVisibility = "PRIVATE"
)

var AllPipelineVisibility = []PipelineVisibility{
	PipelineVisibilityPublic,
	PipelineVisibilityPrivate,
}

// The action a rule enforces
type RuleAction string

const (
	// Artifacts read
	RuleActionArtifactsRead RuleAction = "ARTIFACTS_READ"
	// Trigger build
	RuleActionTriggerBuild RuleAction = "TRIGGER_BUILD"
)

var AllRuleAction = []RuleAction{
	RuleActionArtifactsRead,
	RuleActionTriggerBuild,
}

// The effect a rule has
type RuleEffect string

const (
	// Allow
	RuleEffectAllow RuleEffect = "ALLOW"
)

var AllRuleEffect = []RuleEffect{
	RuleEffectAllow,
}

// The source type for a rule
type RuleSourceType string

const (
	// Pipeline
	RuleSourceTypePipeline RuleSourceType = "PIPELINE"
)

var AllRuleSourceType = []RuleSourceType{
	RuleSourceTypePipeline,
}

// The target type for a rule
type RuleTargetType string

const (
	// Pipeline
	RuleTargetTypePipeline RuleTargetType = "PIPELINE"
)

var AllRuleTargetType = []RuleTargetType{
	RuleTargetTypePipeline,
}

// The access levels that can be assigned to a suite
type SuiteAccessLevels string

const (
	// Allows edits and reads
	SuiteAccessLevelsManageAndRead SuiteAccessLevels = "MANAGE_AND_READ"
	// Read only
	SuiteAccessLevelsReadOnly SuiteAccessLevels = "READ_ONLY"
)

var AllSuiteAccessLevels = []SuiteAccessLevels{
	SuiteAccessLevelsManageAndRead,
	SuiteAccessLevelsReadOnly,
}

// TeamFields includes the GraphQL fields of Team requested by the fragment TeamFields.
// The GraphQL type's documentation follows.
//
// An organization team
type TeamFields struct {
	Id string `json:"id"`
	// The public UUID for this team
	Uuid string `json:"uuid"`
	// The name of the team
	Name string `json:"name"`
	// A description of the team
	Description string `json:"description"`
	// The slug of the team
	Slug string `json:"slug"`
	// The privacy setting for this team
	Privacy string `json:"privacy"`
	// Add new organization members to this team by default
	IsDefaultTeam bool `json:"isDefaultTeam"`
	// New organization members will be granted this role on this team
	DefaultMemberRole string `json:"defaultMemberRole"`
	// Whether or not team members can create new pipelines in this team
	MembersCanCreatePipelines bool `json:"membersCanCreatePipelines"`
}

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

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

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

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

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

// GetPrivacy returns TeamFields.Privacy, and is useful for accessing the field via an interface.
func (v *TeamFields) GetPrivacy() string { return v.Privacy }

// GetIsDefaultTeam returns TeamFields.IsDefaultTeam, and is useful for accessing the field via an interface.
func (v *TeamFields) GetIsDefaultTeam() bool { return v.IsDefaultTeam }

// GetDefaultMemberRole returns TeamFields.DefaultMemberRole, and is useful for accessing the field via an interface.
func (v *TeamFields) GetDefaultMemberRole() string { return v.DefaultMemberRole }

// GetMembersCanCreatePipelines returns TeamFields.MembersCanCreatePipelines, and is useful for accessing the field via an interface.
func (v *TeamFields) GetMembersCanCreatePipelines() bool { return v.MembersCanCreatePipelines }

// TeamMemberFields includes the GraphQL fields of TeamMember requested by the fragment TeamMemberFields.
// The GraphQL type's documentation follows.
//
// An member of a team
type TeamMemberFields struct {
	Id string `json:"id"`
	// The public UUID for this team member
	Uuid string `json:"uuid"`
	// The team associated with this team member
	Team TeamMemberFieldsTeam `json:"team"`
	// The user associated with this team member
	User TeamMemberFieldsUser `json:"user"`
	// The users role within the team
	Role string `json:"role"`
}

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

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

// GetTeam returns TeamMemberFields.Team, and is useful for accessing the field via an interface.
func (v *TeamMemberFields) GetTeam() TeamMemberFieldsTeam { return v.Team }

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

// GetRole returns TeamMemberFields.Role, and is useful for accessing the field via an interface.
func (v *TeamMemberFields) GetRole() string { return v.Role }

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

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

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

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

// TeamPipelineFields includes the GraphQL fields of TeamPipeline requested by the fragment TeamPipelineFields.
// The GraphQL type's documentation follows.
//
// An pipeline that's been assigned to a team
type TeamPipelineFields struct {
	Id string `json:"id"`
	// The public UUID for this team member
	Uuid string `json:"uuid"`
	// The access level users have to this pipeline
	PipelineAccessLevel PipelineAccessLevels `json:"pipelineAccessLevel"`
	// The team associated with this team member
	Team TeamPipelineFieldsTeam `json:"team"`
	// The pipeline associated with this team member
	Pipeline TeamPipelineFieldsPipeline `json:"pipeline"`
}

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

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

// GetPipelineAccessLevel returns TeamPipelineFields.PipelineAccessLevel, and is useful for accessing the field via an interface.
func (v *TeamPipelineFields) GetPipelineAccessLevel() PipelineAccessLevels {
	return v.PipelineAccessLevel
}

// GetTeam returns TeamPipelineFields.Team, and is useful for accessing the field via an interface.
func (v *TeamPipelineFields) GetTeam() TeamPipelineFieldsTeam { return v.Team }

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

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

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

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

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

// TeamSuiteFields includes the GraphQL fields of TeamSuite requested by the fragment TeamSuiteFields.
// The GraphQL type's documentation follows.
//
// A suite that's been assigned to a team
type TeamSuiteFields struct {
	Id string `json:"id"`
	// The public UUID for this team suite
	TeamSuiteUuid string `json:"teamSuiteUuid"`
	// The access level users have to this suite
	AccessLevel SuiteAccessLevels `json:"accessLevel"`
	// The team associated with this team member
	Team TeamSuiteFieldsTeam `json:"team"`
	// The suite associated with this team member
	Suite TeamSuiteFieldsSuite `json:"suite"`
}

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

// GetTeamSuiteUuid returns TeamSuiteFields.TeamSuiteUuid, and is useful for accessing the field via an interface.
func (v *TeamSuiteFields) GetTeamSuiteUuid() string { return v.TeamSuiteUuid }

// GetAccessLevel returns TeamSuiteFields.AccessLevel, and is useful for accessing the field via an interface.
func (v *TeamSuiteFields) GetAccessLevel() SuiteAccessLevels { return v.AccessLevel }

// GetTeam returns TeamSuiteFields.Team, and is useful for accessing the field via an interface.
func (v *TeamSuiteFields) GetTeam() TeamSuiteFieldsTeam { return v.Team }

// GetSuite returns TeamSuiteFields.Suite, and is useful for accessing the field via an interface.
func (v *TeamSuiteFields) GetSuite() TeamSuiteFieldsSuite { return v.Suite }

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

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

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

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

// __GetOrganizationClustersInput is used internally by genqlient
type __GetOrganizationClustersInput struct {
	Slug   string  `json:"slug"`
	Cursor *string `json:"cursor"`
}

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

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

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

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

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

// __GetOrganizationMembersInput is used internally by genqlient
type __GetOrganizationMembersInput struct {
	Slug   string  `json:"slug"`
	Cursor *string `json:"cursor"`
}

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

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

// __GetOrganizationTeamsInput is used internally by genqlient
type __GetOrganizationTeamsInput struct {
	Slug   string  `json:"slug"`
	Cursor *string `json:"cursor"`
}

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

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

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

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

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

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

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

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

// __createAgentTokenInput is used internally by genqlient
type __createAgentTokenInput struct {
	OrganizationId string  `json:"organizationId"`
	Description    *string `json:"description"`
}

// GetOrganizationId returns __createAgentTokenInput.OrganizationId, and is useful for accessing the field via an interface.
func (v *__createAgentTokenInput) GetOrganizationId() string { return v.OrganizationId }

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

// __createClusterAgentTokenInput is used internally by genqlient
type __createClusterAgentTokenInput struct {
	OrganizationId     string `json:"organizationId"`
	ClusterId          string `json:"clusterId"`
	Description        string `json:"description"`
	AllowedIpAddresses string `json:"allowedIpAddresses"`
}

// GetOrganizationId returns __createClusterAgentTokenInput.OrganizationId, and is useful for accessing the field via an interface.
func (v *__createClusterAgentTokenInput) GetOrganizationId() string { return v.OrganizationId }

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

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

// GetAllowedIpAddresses returns __createClusterAgentTokenInput.AllowedIpAddresses, and is useful for accessing the field via an interface.
func (v *__createClusterAgentTokenInput) GetAllowedIpAddresses() string { return v.AllowedIpAddresses }

// __createClusterInput is used internally by genqlient
type __createClusterInput struct {
	OrganizationId string  `json:"organizationId"`
	Name           string  `json:"name"`
	Description    *string `json:"description"`
	Emoji          *string `json:"emoji"`
	Color          *string `json:"color"`
}

// GetOrganizationId returns __createClusterInput.OrganizationId, and is useful for accessing the field via an interface.
func (v *__createClusterInput) GetOrganizationId() string { return v.OrganizationId }

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

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

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

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

// __createClusterQueueInput is used internally by genqlient
type __createClusterQueueInput struct {
	OrganizationId string                                `json:"organizationId"`
	ClusterId      string                                `json:"clusterId"`
	Key            string                                `json:"key"`
	Description    *string                               `json:"description"`
	HostedAgents   *HostedAgentsQueueSettingsCreateInput `json:"hostedAgents"`
}

// GetOrganizationId returns __createClusterQueueInput.OrganizationId, and is useful for accessing the field via an interface.
func (v *__createClusterQueueInput) GetOrganizationId() string { return v.OrganizationId }

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

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

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

// GetHostedAgents returns __createClusterQueueInput.HostedAgents, and is useful for accessing the field via an interface.
func (v *__createClusterQueueInput) GetHostedAgents() *HostedAgentsQueueSettingsCreateInput {
	return v.HostedAgents
}

// __createOrganizationRuleInput is used internally by genqlient
type __createOrganizationRuleInput struct {
	OrganizationId string  `json:"organizationId"`
	Description    *string `json:"description"`
	RuleType       string  `json:"ruleType"`
	Value          string  `json:"value"`
}

// GetOrganizationId returns __createOrganizationRuleInput.OrganizationId, and is useful for accessing the field via an interface.
func (v *__createOrganizationRuleInput) GetOrganizationId() string { return v.OrganizationId }

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

// GetRuleType returns __createOrganizationRuleInput.RuleType, and is useful for accessing the field via an interface.
func (v *__createOrganizationRuleInput) GetRuleType() string { return v.RuleType }

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

// __createPipelineInput is used internally by genqlient
type __createPipelineInput struct {
	Input PipelineCreateInput `json:"input"`
}

// GetInput returns __createPipelineInput.Input, and is useful for accessing the field via an interface.
func (v *__createPipelineInput) GetInput() PipelineCreateInput { return v.Input }

// __createPipelineScheduleInput is used internally by genqlient
type __createPipelineScheduleInput struct {
	PipelineId string  `json:"pipelineId"`
	Label      *string `json:"label"`
	Cronline   *string `json:"cronline"`
	Message    *string `json:"message"`
	Commit     *string `json:"commit"`
	Branch     *string `json:"branch"`
	Env        *string `json:"env"`
	Enabled    bool    `json:"enabled"`
}

// GetPipelineId returns __createPipelineScheduleInput.PipelineId, and is useful for accessing the field via an interface.
func (v *__createPipelineScheduleInput) GetPipelineId() string { return v.PipelineId }

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

// GetCronline returns __createPipelineScheduleInput.Cronline, and is useful for accessing the field via an interface.
func (v *__createPipelineScheduleInput) GetCronline() *string { return v.Cronline }

// GetMessage returns __createPipelineScheduleInput.Message, and is useful for accessing the field via an interface.
func (v *__createPipelineScheduleInput) GetMessage() *string { return v.Message }

// GetCommit returns __createPipelineScheduleInput.Commit, and is useful for accessing the field via an interface.
func (v *__createPipelineScheduleInput) GetCommit() *string { return v.Commit }

// GetBranch returns __createPipelineScheduleInput.Branch, and is useful for accessing the field via an interface.
func (v *__createPipelineScheduleInput) GetBranch() *string { return v.Branch }

// GetEnv returns __createPipelineScheduleInput.Env, and is useful for accessing the field via an interface.
func (v *__createPipelineScheduleInput) GetEnv() *string { return v.Env }

// GetEnabled returns __createPipelineScheduleInput.Enabled, and is useful for accessing the field via an interface.
func (v *__createPipelineScheduleInput) GetEnabled() bool { return v.Enabled }

// __createPipelineTemplateInput is used internally by genqlient
type __createPipelineTemplateInput struct {
	OrganizationId string  `json:"organizationId"`
	Name           string  `json:"name"`
	Configuration  string  `json:"configuration"`
	Description    *string `json:"description"`
	Available      bool    `json:"available,omitempty"`
}

// GetOrganizationId returns __createPipelineTemplateInput.OrganizationId, and is useful for accessing the field via an interface.
func (v *__createPipelineTemplateInput) GetOrganizationId() string { return v.OrganizationId }

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

// GetConfiguration returns __createPipelineTemplateInput.Configuration, and is useful for accessing the field via an interface.
func (v *__createPipelineTemplateInput) GetConfiguration() string { return v.Configuration }

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

// GetAvailable returns __createPipelineTemplateInput.Available, and is useful for accessing the field via an interface.
func (v *__createPipelineTemplateInput) GetAvailable() bool { return v.Available }

// __createTeamMemberInput is used internally by genqlient
type __createTeamMemberInput struct {
	TeamID string `json:"teamID"`
	UserID string `json:"userID"`
	Role   string `json:"role,omitempty"`
}

// GetTeamID returns __createTeamMemberInput.TeamID, and is useful for accessing the field via an interface.
func (v *__createTeamMemberInput) GetTeamID() string { return v.TeamID }

// GetUserID returns __createTeamMemberInput.UserID, and is useful for accessing the field via an interface.
func (v *__createTeamMemberInput) GetUserID() string { return v.UserID }

// GetRole returns __createTeamMemberInput.Role, and is useful for accessing the field via an interface.
func (v *__createTeamMemberInput) GetRole() string { return v.Role }

// __createTeamPipelineInput is used internally by genqlient
type __createTeamPipelineInput struct {
	TeamID      string               `json:"teamID"`
	PipelineID  string               `json:"pipelineID"`
	AccessLevel PipelineAccessLevels `json:"accessLevel"`
}

// GetTeamID returns __createTeamPipelineInput.TeamID, and is useful for accessing the field via an interface.
func (v *__createTeamPipelineInput) GetTeamID() string { return v.TeamID }

// GetPipelineID returns __createTeamPipelineInput.PipelineID, and is useful for accessing the field via an interface.
func (v *__createTeamPipelineInput) GetPipelineID() string { return v.PipelineID }

// GetAccessLevel returns __createTeamPipelineInput.AccessLevel, and is useful for accessing the field via an interface.
func (v *__createTeamPipelineInput) GetAccessLevel() PipelineAccessLevels { return v.AccessLevel }

// __createTestSuiteTeamInput is used internally by genqlient
type __createTestSuiteTeamInput struct {
	TeamId      string            `json:"teamId"`
	SuiteId     string            `json:"suiteId"`
	AccessLevel SuiteAccessLevels `json:"accessLevel"`
}

// GetTeamId returns __createTestSuiteTeamInput.TeamId, and is useful for accessing the field via an interface.
func (v *__createTestSuiteTeamInput) GetTeamId() string { return v.TeamId }

// GetSuiteId returns __createTestSuiteTeamInput.SuiteId, and is useful for accessing the field via an interface.
func (v *__createTestSuiteTeamInput) GetSuiteId() string { return v.SuiteId }

// GetAccessLevel returns __createTestSuiteTeamInput.AccessLevel, and is useful for accessing the field via an interface.
func (v *__createTestSuiteTeamInput) GetAccessLevel() SuiteAccessLevels { return v.AccessLevel }

// __deleteBannerInput is used internally by genqlient
type __deleteBannerInput struct {
	OrganizationId string `json:"organizationId"`
}

// GetOrganizationId returns __deleteBannerInput.OrganizationId, and is useful for accessing the field via an interface.
func (v *__deleteBannerInput) GetOrganizationId() string { return v.OrganizationId }

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

// GetOrganizationId returns __deleteClusterInput.OrganizationId, and is useful for accessing the field via an interface.
func (v *__deleteClusterInput) GetOrganizationId() string { return v.OrganizationId }

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

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

// GetOrganizationId returns __deleteClusterQueueInput.OrganizationId, and is useful for accessing the field via an interface.
func (v *__deleteClusterQueueInput) GetOrganizationId() string { return v.OrganizationId }

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

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

// GetOrganizationId returns __deleteOrganizationRuleInput.OrganizationId, and is useful for accessing the field via an interface.
func (v *__deleteOrganizationRuleInput) GetOrganizationId() string { return v.OrganizationId }

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

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

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

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

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

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

// GetOrganizationId returns __deletePipelineTemplateInput.OrganizationId, and is useful for accessing the field via an interface.
func (v *__deletePipelineTemplateInput) GetOrganizationId() string { return v.OrganizationId }

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

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

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

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

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

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

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

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

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

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

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

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

// __getClusterByNameInput is used internally by genqlient
type __getClusterByNameInput struct {
	OrgSlug string  `json:"orgSlug"`
	Cursor  *string `json:"cursor"`
}

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

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

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

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

// __getClusterQueuesInput is used internally by genqlient
type __getClusterQueuesInput struct {
	OrgSlug string  `json:"orgSlug"`
	Id      string  `json:"id"`
	Cursor  *string `json:"cursor"`
}

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

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

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

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

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

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

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

// __getOrganizationRuleInput is used internally by genqlient
type __getOrganizationRuleInput struct {
	Uuid string `json:"uuid"`
}

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

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

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

// __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 }

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

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

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

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

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

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

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

// __getPipelineTemplatesInput is used internally by genqlient
type __getPipelineTemplatesInput struct {
	OrgSlug string  `json:"orgSlug"`
	Cursor  *string `json:"cursor"`
}

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

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

// __getTestSuiteInput is used internally by genqlient
type __getTestSuiteInput struct {
	Id        string `json:"id"`
	TeamCount int    `json:"teamCount"`
}

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

// GetTeamCount returns __getTestSuiteInput.TeamCount, and is useful for accessing the field via an interface.
func (v *__getTestSuiteInput) GetTeamCount() int { return v.TeamCount }

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

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

// __removeClusterDefaultQueueInput is used internally by genqlient
type __removeClusterDefaultQueueInput struct {
	OrganizationId string `json:"organizationId"`
	ClusterId      string `json:"clusterId"`
}

// GetOrganizationId returns __removeClusterDefaultQueueInput.OrganizationId, and is useful for accessing the field via an interface.
func (v *__removeClusterDefaultQueueInput) GetOrganizationId() string { return v.OrganizationId }

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

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

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

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

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

// GetReason returns __revokeAgentTokenInput.Reason, and is useful for accessing the field via an interface.
func (v *__revokeAgentTokenInput) GetReason() string { return v.Reason }

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

// GetOrganizationId returns __revokeClusterAgentTokenInput.OrganizationId, and is useful for accessing the field via an interface.
func (v *__revokeClusterAgentTokenInput) GetOrganizationId() string { return v.OrganizationId }

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

// __setApiIpAddressesInput is used internally by genqlient
type __setApiIpAddressesInput struct {
	OrganizationID string `json:"organizationID"`
	IpAddresses    string `json:"ipAddresses"`
}

// GetOrganizationID returns __setApiIpAddressesInput.OrganizationID, and is useful for accessing the field via an interface.
func (v *__setApiIpAddressesInput) GetOrganizationID() string { return v.OrganizationID }

// GetIpAddresses returns __setApiIpAddressesInput.IpAddresses, and is useful for accessing the field via an interface.
func (v *__setApiIpAddressesInput) GetIpAddresses() string { return v.IpAddresses }

// __setClusterDefaultQueueInput is used internally by genqlient
type __setClusterDefaultQueueInput struct {
	OrganizationId string `json:"organizationId"`
	ClusterId      string `json:"clusterId"`
	QueueId        string `json:"queueId"`
}

// GetOrganizationId returns __setClusterDefaultQueueInput.OrganizationId, and is useful for accessing the field via an interface.
func (v *__setClusterDefaultQueueInput) GetOrganizationId() string { return v.OrganizationId }

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

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

// __setOrganization2FAInput is used internally by genqlient
type __setOrganization2FAInput struct {
	OrganizationID string `json:"organizationID"`
	Value          bool   `json:"value"`
}

// GetOrganizationID returns __setOrganization2FAInput.OrganizationID, and is useful for accessing the field via an interface.
func (v *__setOrganization2FAInput) GetOrganizationID() string { return v.OrganizationID }

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

// __teamCreateInput is used internally by genqlient
type __teamCreateInput struct {
	OrganizationID            string `json:"organizationID"`
	Name                      string `json:"name"`
	Description               string `json:"description"`
	Privacy                   string `json:"privacy"`
	IsDefaultTeam             bool   `json:"isDefaultTeam"`
	DefaultMemberRole         string `json:"defaultMemberRole"`
	MembersCanCreatePipelines bool   `json:"membersCanCreatePipelines"`
}

// GetOrganizationID returns __teamCreateInput.OrganizationID, and is useful for accessing the field via an interface.
func (v *__teamCreateInput) GetOrganizationID() string { return v.OrganizationID }

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

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

// GetPrivacy returns __teamCreateInput.Privacy, and is useful for accessing the field via an interface.
func (v *__teamCreateInput) GetPrivacy() string { return v.Privacy }

// GetIsDefaultTeam returns __teamCreateInput.IsDefaultTeam, and is useful for accessing the field via an interface.
func (v *__teamCreateInput) GetIsDefaultTeam() bool { return v.IsDefaultTeam }

// GetDefaultMemberRole returns __teamCreateInput.DefaultMemberRole, and is useful for accessing the field via an interface.
func (v *__teamCreateInput) GetDefaultMemberRole() string { return v.DefaultMemberRole }

// GetMembersCanCreatePipelines returns __teamCreateInput.MembersCanCreatePipelines, and is useful for accessing the field via an interface.
func (v *__teamCreateInput) GetMembersCanCreatePipelines() bool { return v.MembersCanCreatePipelines }

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

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

// __teamUpdateInput is used internally by genqlient
type __teamUpdateInput struct {
	Id                        string `json:"id"`
	Name                      string `json:"name"`
	Description               string `json:"description"`
	Privacy                   string `json:"privacy"`
	IsDefaultTeam             bool   `json:"isDefaultTeam"`
	DefaultMemberRole         string `json:"defaultMemberRole"`
	MembersCanCreatePipelines bool   `json:"membersCanCreatePipelines"`
}

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

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

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

// GetPrivacy returns __teamUpdateInput.Privacy, and is useful for accessing the field via an interface.
func (v *__teamUpdateInput) GetPrivacy() string { return v.Privacy }

// GetIsDefaultTeam returns __teamUpdateInput.IsDefaultTeam, and is useful for accessing the field via an interface.
func (v *__teamUpdateInput) GetIsDefaultTeam() bool { return v.IsDefaultTeam }

// GetDefaultMemberRole returns __teamUpdateInput.DefaultMemberRole, and is useful for accessing the field via an interface.
func (v *__teamUpdateInput) GetDefaultMemberRole() string { return v.DefaultMemberRole }

// GetMembersCanCreatePipelines returns __teamUpdateInput.MembersCanCreatePipelines, and is useful for accessing the field via an interface.
func (v *__teamUpdateInput) GetMembersCanCreatePipelines() bool { return v.MembersCanCreatePipelines }

// __updateClusterAgentTokenInput is used internally by genqlient
type __updateClusterAgentTokenInput struct {
	OrganizationId     string `json:"organizationId"`
	Id                 string `json:"id"`
	Description        string `json:"description"`
	AllowedIpAddresses string `json:"allowedIpAddresses"`
}

// GetOrganizationId returns __updateClusterAgentTokenInput.OrganizationId, and is useful for accessing the field via an interface.
func (v *__updateClusterAgentTokenInput) GetOrganizationId() string { return v.OrganizationId }

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

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

// GetAllowedIpAddresses returns __updateClusterAgentTokenInput.AllowedIpAddresses, and is useful for accessing the field via an interface.
func (v *__updateClusterAgentTokenInput) GetAllowedIpAddresses() string { return v.AllowedIpAddresses }

// __updateClusterInput is used internally by genqlient
type __updateClusterInput struct {
	OrganizationId string  `json:"organizationId"`
	Id             string  `json:"id"`
	Name           string  `json:"name"`
	Description    *string `json:"description"`
	Emoji          *string `json:"emoji"`
	Color          *string `json:"color"`
}

// GetOrganizationId returns __updateClusterInput.OrganizationId, and is useful for accessing the field via an interface.
func (v *__updateClusterInput) GetOrganizationId() string { return v.OrganizationId }

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

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

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

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

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

// __updateClusterQueueInput is used internally by genqlient
type __updateClusterQueueInput struct {
	OrganizationId string                                `json:"organizationId"`
	Id             string                                `json:"id"`
	Description    *string                               `json:"description"`
	HostedAgents   *HostedAgentsQueueSettingsUpdateInput `json:"hostedAgents"`
}

// GetOrganizationId returns __updateClusterQueueInput.OrganizationId, and is useful for accessing the field via an interface.
func (v *__updateClusterQueueInput) GetOrganizationId() string { return v.OrganizationId }

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

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

// GetHostedAgents returns __updateClusterQueueInput.HostedAgents, and is useful for accessing the field via an interface.
func (v *__updateClusterQueueInput) GetHostedAgents() *HostedAgentsQueueSettingsUpdateInput {
	return v.HostedAgents
}

// __updateOrganizationRuleInput is used internally by genqlient
type __updateOrganizationRuleInput struct {
	OrganizationId string  `json:"organizationId"`
	Id             string  `json:"id"`
	Description    *string `json:"description"`
	Value          string  `json:"value"`
}

// GetOrganizationId returns __updateOrganizationRuleInput.OrganizationId, and is useful for accessing the field via an interface.
func (v *__updateOrganizationRuleInput) GetOrganizationId() string { return v.OrganizationId }

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

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

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

// __updatePipelineInput is used internally by genqlient
type __updatePipelineInput struct {
	Input PipelineUpdateInput `json:"input"`
}

// GetInput returns __updatePipelineInput.Input, and is useful for accessing the field via an interface.
func (v *__updatePipelineInput) GetInput() PipelineUpdateInput { return v.Input }

// __updatePipelineScheduleInput is used internally by genqlient
type __updatePipelineScheduleInput struct {
	Input PipelineScheduleUpdateInput `json:"input"`
}

// GetInput returns __updatePipelineScheduleInput.Input, and is useful for accessing the field via an interface.
func (v *__updatePipelineScheduleInput) GetInput() PipelineScheduleUpdateInput { return v.Input }

// __updatePipelineTemplateInput is used internally by genqlient
type __updatePipelineTemplateInput struct {
	OrganizationId string `json:"organizationId"`
	Id             string `json:"id"`
	Name           string `json:"name,omitempty"`
	Configuration  string `json:"configuration,omitempty"`
	Description    string `json:"description,omitempty"`
	Available      bool   `json:"available,omitempty"`
}

// GetOrganizationId returns __updatePipelineTemplateInput.OrganizationId, and is useful for accessing the field via an interface.
func (v *__updatePipelineTemplateInput) GetOrganizationId() string { return v.OrganizationId }

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

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

// GetConfiguration returns __updatePipelineTemplateInput.Configuration, and is useful for accessing the field via an interface.
func (v *__updatePipelineTemplateInput) GetConfiguration() string { return v.Configuration }

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

// GetAvailable returns __updatePipelineTemplateInput.Available, and is useful for accessing the field via an interface.
func (v *__updatePipelineTemplateInput) GetAvailable() bool { return v.Available }

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

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

// GetRole returns __updateTeamMemberInput.Role, and is useful for accessing the field via an interface.
func (v *__updateTeamMemberInput) GetRole() string { return v.Role }

// __updateTeamPipelineInput is used internally by genqlient
type __updateTeamPipelineInput struct {
	Id          string               `json:"id"`
	AccessLevel PipelineAccessLevels `json:"accessLevel"`
}

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

// GetAccessLevel returns __updateTeamPipelineInput.AccessLevel, and is useful for accessing the field via an interface.
func (v *__updateTeamPipelineInput) GetAccessLevel() PipelineAccessLevels { return v.AccessLevel }

// __updateTestSuiteTeamInput is used internally by genqlient
type __updateTestSuiteTeamInput struct {
	Id          string            `json:"id"`
	AccessLevel SuiteAccessLevels `json:"accessLevel"`
}

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

// GetAccessLevel returns __updateTestSuiteTeamInput.AccessLevel, and is useful for accessing the field via an interface.
func (v *__updateTestSuiteTeamInput) GetAccessLevel() SuiteAccessLevels { return v.AccessLevel }

// __upsertBannerInput is used internally by genqlient
type __upsertBannerInput struct {
	OrganizationId string `json:"organizationId"`
	Message        string `json:"message"`
}

// GetOrganizationId returns __upsertBannerInput.OrganizationId, and is useful for accessing the field via an interface.
func (v *__upsertBannerInput) GetOrganizationId() string { return v.OrganizationId }

// GetMessage returns __upsertBannerInput.Message, and is useful for accessing the field via an interface.
func (v *__upsertBannerInput) GetMessage() string { return v.Message }

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

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

// archivePipelineResponse is returned by archivePipeline on success.
type archivePipelineResponse struct {
	// Archive a pipeline.
	PipelineArchive archivePipelinePipelineArchivePipelineArchivePayload `json:"pipelineArchive"`
}

// GetPipelineArchive returns archivePipelineResponse.PipelineArchive, and is useful for accessing the field via an interface.
func (v *archivePipelineResponse) GetPipelineArchive() archivePipelinePipelineArchivePipelineArchivePayload {
	return v.PipelineArchive
}

// createAgentTokenAgentTokenCreateAgentTokenCreatePayload includes the requested fields of the GraphQL type AgentTokenCreatePayload.
// The GraphQL type's documentation follows.
//
// Autogenerated return type of AgentTokenCreate.
type createAgentTokenAgentTokenCreateAgentTokenCreatePayload struct {
	// The token value used to register a new unclustered agent. Please ensure to securely copy this value immediately upon generation as it will not be displayed again.
	TokenValue     string                                                                `json:"tokenValue"`
	AgentTokenEdge createAgentTokenAgentTokenCreateAgentTokenCreatePayloadAgentTokenEdge `json:"agentTokenEdge"`
}

// GetTokenValue returns createAgentTokenAgentTokenCreateAgentTokenCreatePayload.TokenValue, and is useful for accessing the field via an interface.
func (v *createAgentTokenAgentTokenCreateAgentTokenCreatePayload) GetTokenValue() string {
	return v.TokenValue
}

// GetAgentTokenEdge returns createAgentTokenAgentTokenCreateAgentTokenCreatePayload.AgentTokenEdge, and is useful for accessing the field via an interface.
func (v *createAgentTokenAgentTokenCreateAgentTokenCreatePayload) GetAgentTokenEdge() createAgentTokenAgentTokenCreateAgentTokenCreatePayloadAgentTokenEdge {
	return v.AgentTokenEdge
}

// createAgentTokenAgentTokenCreateAgentTokenCreatePayloadAgentTokenEdge includes the requested fields of the GraphQL type AgentTokenEdge.
type createAgentTokenAgentTokenCreateAgentTokenCreatePayloadAgentTokenEdge struct {
	Node createAgentTokenAgentTokenCreateAgentTokenCreatePayloadAgentTokenEdgeNodeAgentToken `json:"node"`
}

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

// createAgentTokenAgentTokenCreateAgentTokenCreatePayloadAgentTokenEdgeNodeAgentToken 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 createAgentTokenAgentTokenCreateAgentTokenCreatePayloadAgentTokenEdgeNodeAgentToken struct {
	Id string `json:"id"`
	// A description about what this agent token is used for
	Description *string `json:"description"`
	// The public UUID for the agent
	Uuid string `json:"uuid"`
}

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

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

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

// createAgentTokenResponse is returned by createAgentToken on success.
type createAgentTokenResponse struct {
	// Create a new unclustered agent token.
	AgentTokenCreate createAgentTokenAgentTokenCreateAgentTokenCreatePayload `json:"agentTokenCreate"`
}

// GetAgentTokenCreate returns createAgentTokenResponse.AgentTokenCreate, and is useful for accessing the field via an interface.
func (v *createAgentTokenResponse) GetAgentTokenCreate() createAgentTokenAgentTokenCreateAgentTokenCreatePayload {
	return v.AgentTokenCreate
}

// createClusterAgentTokenClusterAgentTokenCreateClusterAgentTokenCreatePayload includes the requested fields of the GraphQL type ClusterAgentTokenCreatePayload.
// The GraphQL type's documentation follows.
//
// Autogenerated return type of ClusterAgentTokenCreate.
type createClusterAgentTokenClusterAgentTokenCreateClusterAgentTokenCreatePayload struct {
	ClusterAgentToken createClusterAgentTokenClusterAgentTokenCreateClusterAgentTokenCreatePayloadClusterAgentTokenClusterToken `json:"clusterAgentToken"`
	// The token value used to register a new agent token to this cluster. Please ensure to securely copy this value immediately upon generation as it will not be displayed again.
	TokenValue string `json:"tokenValue"`
}

// GetClusterAgentToken returns createClusterAgentTokenClusterAgentTokenCreateClusterAgentTokenCreatePayload.ClusterAgentToken, and is useful for accessing the field via an interface.
func (v *createClusterAgentTokenClusterAgentTokenCreateClusterAgentTokenCreatePayload) GetClusterAgentToken() createClusterAgentTokenClusterAgentTokenCreateClusterAgentTokenCreatePayloadClusterAgentTokenClusterToken {
	return v.ClusterAgentToken
}

// GetTokenValue returns createClusterAgentTokenClusterAgentTokenCreateClusterAgentTokenCreatePayload.TokenValue, and is useful for accessing the field via an interface.
func (v *createClusterAgentTokenClusterAgentTokenCreateClusterAgentTokenCreatePayload) GetTokenValue() string {
	return v.TokenValue
}

// createClusterAgentTokenClusterAgentTokenCreateClusterAgentTokenCreatePayloadClusterAgentTokenClusterToken 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 createClusterAgentTokenClusterAgentTokenCreateClusterAgentTokenCreatePayloadClusterAgentTokenClusterToken struct {
	ClusterAgentTokenValues `json:"-"`
}

// GetAllowedIpAddresses returns createClusterAgentTokenClusterAgentTokenCreateClusterAgentTokenCreatePayloadClusterAgentTokenClusterToken.AllowedIpAddresses, and is useful for accessing the field via an interface.
func (v *createClusterAgentTokenClusterAgentTokenCreateClusterAgentTokenCreatePayloadClusterAgentTokenClusterToken) GetAllowedIpAddresses() string {
	return v.ClusterAgentTokenValues.AllowedIpAddresses
}

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

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

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

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

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

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

	var firstPass struct {
		*createClusterAgentTokenClusterAgentTokenCreateClusterAgentTokenCreatePayloadClusterAgentTokenClusterToken
		graphql.NoUnmarshalJSON
	}
	firstPass.createClusterAgentTokenClusterAgentTokenCreateClusterAgentTokenCreatePayloadClusterAgentTokenClusterToken = v

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

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

type __premarshalcreateClusterAgentTokenClusterAgentTokenCreateClusterAgentTokenCreatePayloadClusterAgentTokenClusterToken struct {
	AllowedIpAddresses string `json:"allowedIpAddresses"`

	Cluster ClusterAgentTokenValuesCluster `json:"cluster"`

	Description string `json:"description"`

	Id string `json:"id"`

	Uuid string `json:"uuid"`
}

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

func (v *createClusterAgentTokenClusterAgentTokenCreateClusterAgentTokenCreatePayloadClusterAgentTokenClusterToken) __premarshalJSON() (*__premarshalcreateClusterAgentTokenClusterAgentTokenCreateClusterAgentTokenCreatePayloadClusterAgentTokenClusterToken, error) {
	var retval __premarshalcreateClusterAgentTokenClusterAgentTokenCreateClusterAgentTokenCreatePayloadClusterAgentTokenClusterToken

	retval.AllowedIpAddresses = v.ClusterAgentTokenValues.AllowedIpAddresses
	retval.Cluster = v.ClusterAgentTokenValues.Cluster
	retval.Description = v.ClusterAgentTokenValues.Description
	retval.Id = v.ClusterAgentTokenValues.Id
	retval.Uuid = v.ClusterAgentTokenValues.Uuid
	return &retval, nil
}

// createClusterAgentTokenResponse is returned by createClusterAgentToken on success.
type createClusterAgentTokenResponse struct {
	// Create an agent token for a cluster.
	ClusterAgentTokenCreate createClusterAgentTokenClusterAgentTokenCreateClusterAgentTokenCreatePayload `json:"clusterAgentTokenCreate"`
}

// GetClusterAgentTokenCreate returns createClusterAgentTokenResponse.ClusterAgentTokenCreate, and is useful for accessing the field via an interface.
func (v *createClusterAgentTokenResponse) GetClusterAgentTokenCreate() createClusterAgentTokenClusterAgentTokenCreateClusterAgentTokenCreatePayload {
	return v.ClusterAgentTokenCreate
}

// createClusterClusterCreateClusterCreatePayload includes the requested fields of the GraphQL type ClusterCreatePayload.
// The GraphQL type's documentation follows.
//
// Autogenerated return type of ClusterCreate.
type createClusterClusterCreateClusterCreatePayload struct {
	// A unique identifier for the client performing the mutation.
	ClientMutationId string                                                `json:"clientMutationId"`
	Cluster          createClusterClusterCreateClusterCreatePayloadCluster `json:"cluster"`
}

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

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

// createClusterClusterCreateClusterCreatePayloadCluster includes the requested fields of the GraphQL type Cluster.
type createClusterClusterCreateClusterCreatePayloadCluster struct {
	ClusterFields `json:"-"`
}

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

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

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

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

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

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

// GetDefaultQueue returns createClusterClusterCreateClusterCreatePayloadCluster.DefaultQueue, and is useful for accessing the field via an interface.
func (v *createClusterClusterCreateClusterCreatePayloadCluster) GetDefaultQueue() *ClusterFieldsDefaultQueueClusterQueue {
	return v.ClusterFields.DefaultQueue
}

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

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

	var firstPass struct {
		*createClusterClusterCreateClusterCreatePayloadCluster
		graphql.NoUnmarshalJSON
	}
	firstPass.createClusterClusterCreateClusterCreatePayloadCluster = v

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

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

type __premarshalcreateClusterClusterCreateClusterCreatePayloadCluster struct {
	Id string `json:"id"`

	Uuid string `json:"uuid"`

	Name string `json:"name"`

	Description *string `json:"description"`

	Emoji *string `json:"emoji"`

	Color *string `json:"color"`

	DefaultQueue *ClusterFieldsDefaultQueueClusterQueue `json:"defaultQueue"`
}

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

func (v *createClusterClusterCreateClusterCreatePayloadCluster) __premarshalJSON() (*__premarshalcreateClusterClusterCreateClusterCreatePayloadCluster, error) {
	var retval __premarshalcreateClusterClusterCreateClusterCreatePayloadCluster

	retval.Id = v.ClusterFields.Id
	retval.Uuid = v.ClusterFields.Uuid
	retval.Name = v.ClusterFields.Name
	retval.Description = v.ClusterFields.Description
	retval.Emoji = v.ClusterFields.Emoji
	retval.Color = v.ClusterFields.Color
	retval.DefaultQueue = v.ClusterFields.DefaultQueue
	return &retval, nil
}

// createClusterQueueClusterQueueCreateClusterQueueCreatePayload includes the requested fields of the GraphQL type ClusterQueueCreatePayload.
// The GraphQL type's documentation follows.
//
// Autogenerated return type of ClusterQueueCreate.
type createClusterQueueClusterQueueCreateClusterQueueCreatePayload struct {
	ClusterQueue createClusterQueueClusterQueueCreateClusterQueueCreatePayloadClusterQueue `json:"clusterQueue"`
}

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

// createClusterQueueClusterQueueCreateClusterQueueCreatePayloadClusterQueue includes the requested fields of the GraphQL type ClusterQueue.
type createClusterQueueClusterQueueCreateClusterQueueCreatePayloadClusterQueue struct {
	ClusterQueueValues `json:"-"`
}

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

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

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

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

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

// GetHosted returns createClusterQueueClusterQueueCreateClusterQueueCreatePayloadClusterQueue.Hosted, and is useful for accessing the field via an interface.
func (v *createClusterQueueClusterQueueCreateClusterQueueCreatePayloadClusterQueue) GetHosted() bool {
	return v.ClusterQueueValues.Hosted
}

// GetHostedAgents returns createClusterQueueClusterQueueCreateClusterQueueCreatePayloadClusterQueue.HostedAgents, and is useful for accessing the field via an interface.
func (v *createClusterQueueClusterQueueCreateClusterQueueCreatePayloadClusterQueue) GetHostedAgents() ClusterQueueValuesHostedAgentsHostedAgentQueueSettings {
	return v.ClusterQueueValues.HostedAgents
}

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

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

	var firstPass struct {
		*createClusterQueueClusterQueueCreateClusterQueueCreatePayloadClusterQueue
		graphql.NoUnmarshalJSON
	}
	firstPass.createClusterQueueClusterQueueCreateClusterQueueCreatePayloadClusterQueue = v

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

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

type __premarshalcreateClusterQueueClusterQueueCreateClusterQueueCreatePayloadClusterQueue struct {
	Id string `json:"id"`

	Uuid string `json:"uuid"`

	Key string `json:"key"`

	Description *string `json:"description"`

	Cluster ClusterQueueValuesCluster `json:"cluster"`

	Hosted bool `json:"hosted"`

	HostedAgents ClusterQueueValuesHostedAgentsHostedAgentQueueSettings `json:"hostedAgents"`
}

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

func (v *createClusterQueueClusterQueueCreateClusterQueueCreatePayloadClusterQueue) __premarshalJSON() (*__premarshalcreateClusterQueueClusterQueueCreateClusterQueueCreatePayloadClusterQueue, error) {
	var retval __premarshalcreateClusterQueueClusterQueueCreateClusterQueueCreatePayloadClusterQueue

	retval.Id = v.ClusterQueueValues.Id
	retval.Uuid = v.ClusterQueueValues.Uuid
	retval.Key = v.ClusterQueueValues.Key
	retval.Description = v.ClusterQueueValues.Description
	retval.Cluster = v.ClusterQueueValues.Cluster
	retval.Hosted = v.ClusterQueueValues.Hosted
	retval.HostedAgents = v.ClusterQueueValues.HostedAgents
	return &retval, nil
}

// createClusterQueueResponse is returned by createClusterQueue on success.
type createClusterQueueResponse struct {
	// Create a cluster queue.
	ClusterQueueCreate createClusterQueueClusterQueueCreateClusterQueueCreatePayload `json:"clusterQueueCreate"`
}

// GetClusterQueueCreate returns createClusterQueueResponse.ClusterQueueCreate, and is useful for accessing the field via an interface.
func (v *createClusterQueueResponse) GetClusterQueueCreate() createClusterQueueClusterQueueCreateClusterQueueCreatePayload {
	return v.ClusterQueueCreate
}

// createClusterResponse is returned by createCluster on success.
type createClusterResponse struct {
	// Create a cluster.
	ClusterCreate createClusterClusterCreateClusterCreatePayload `json:"clusterCreate"`
}

// GetClusterCreate returns createClusterResponse.ClusterCreate, and is useful for accessing the field via an interface.
func (v *createClusterResponse) GetClusterCreate() createClusterClusterCreateClusterCreatePayload {
	return v.ClusterCreate
}

// createOrganizationRuleResponse is returned by createOrganizationRule on success.
type createOrganizationRuleResponse struct {
	// Create a rule.
	RuleCreate createOrganizationRuleRuleCreateRuleCreatePayload `json:"ruleCreate"`
}

// GetRuleCreate returns createOrganizationRuleResponse.RuleCreate, and is useful for accessing the field via an interface.
func (v *createOrganizationRuleResponse) GetRuleCreate() createOrganizationRuleRuleCreateRuleCreatePayload {
	return v.RuleCreate
}

// createOrganizationRuleRuleCreateRuleCreatePayload includes the requested fields of the GraphQL type RuleCreatePayload.
// The GraphQL type's documentation follows.
//
// Autogenerated return type of RuleCreate.
type createOrganizationRuleRuleCreateRuleCreatePayload struct {
	Rule createOrganizationRuleRuleCreateRuleCreatePayloadRule `json:"rule"`
}

// GetRule returns createOrganizationRuleRuleCreateRuleCreatePayload.Rule, and is useful for accessing the field via an interface.
func (v *createOrganizationRuleRuleCreateRuleCreatePayload) GetRule() createOrganizationRuleRuleCreateRuleCreatePayloadRule {
	return v.Rule
}

// createOrganizationRuleRuleCreateRuleCreatePayloadRule includes the requested fields of the GraphQL type Rule.
type createOrganizationRuleRuleCreateRuleCreatePayloadRule struct {
	OrganizationRuleFields `json:"-"`
}

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

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

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

// GetDocument returns createOrganizationRuleRuleCreateRuleCreatePayloadRule.Document, and is useful for accessing the field via an interface.
func (v *createOrganizationRuleRuleCreateRuleCreatePayloadRule) GetDocument() string {
	return v.OrganizationRuleFields.Document
}

// GetType returns createOrganizationRuleRuleCreateRuleCreatePayloadRule.Type, and is useful for accessing the field via an interface.
func (v *createOrganizationRuleRuleCreateRuleCreatePayloadRule) GetType() string {
	return v.OrganizationRuleFields.Type
}

// GetSourceType returns createOrganizationRuleRuleCreateRuleCreatePayloadRule.SourceType, and is useful for accessing the field via an interface.
func (v *createOrganizationRuleRuleCreateRuleCreatePayloadRule) GetSourceType() RuleSourceType {
	return v.OrganizationRuleFields.SourceType
}

// GetTargetType returns createOrganizationRuleRuleCreateRuleCreatePayloadRule.TargetType, and is useful for accessing the field via an interface.
func (v *createOrganizationRuleRuleCreateRuleCreatePayloadRule) GetTargetType() RuleTargetType {
	return v.OrganizationRuleFields.TargetType
}

// GetEffect returns createOrganizationRuleRuleCreateRuleCreatePayloadRule.Effect, and is useful for accessing the field via an interface.
func (v *createOrganizationRuleRuleCreateRuleCreatePayloadRule) GetEffect() RuleEffect {
	return v.OrganizationRuleFields.Effect
}

// GetAction returns createOrganizationRuleRuleCreateRuleCreatePayloadRule.Action, and is useful for accessing the field via an interface.
func (v *createOrganizationRuleRuleCreateRuleCreatePayloadRule) GetAction() RuleAction {
	return v.OrganizationRuleFields.Action
}

// GetSource returns createOrganizationRuleRuleCreateRuleCreatePayloadRule.Source, and is useful for accessing the field via an interface.
func (v *createOrganizationRuleRuleCreateRuleCreatePayloadRule) GetSource() OrganizationRuleFieldsSourceRuleSource {
	return v.OrganizationRuleFields.Source
}

// GetTarget returns createOrganizationRuleRuleCreateRuleCreatePayloadRule.Target, and is useful for accessing the field via an interface.
func (v *createOrganizationRuleRuleCreateRuleCreatePayloadRule) GetTarget() OrganizationRuleFieldsTargetRuleTarget {
	return v.OrganizationRuleFields.Target
}

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

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

	var firstPass struct {
		*createOrganizationRuleRuleCreateRuleCreatePayloadRule
		graphql.NoUnmarshalJSON
	}
	firstPass.createOrganizationRuleRuleCreateRuleCreatePayloadRule = v

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

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

type __premarshalcreateOrganizationRuleRuleCreateRuleCreatePayloadRule struct {
	Id string `json:"id"`

	Uuid string `json:"uuid"`

	Description *string `json:"description"`

	Document string `json:"document"`

	Type string `json:"type"`

	SourceType RuleSourceType `json:"sourceType"`

	TargetType RuleTargetType `json:"targetType"`

	Effect RuleEffect `json:"effect"`

	Action RuleAction `json:"action"`

	Source json.RawMessage `json:"source"`

	Target json.RawMessage `json:"target"`
}

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

func (v *createOrganizationRuleRuleCreateRuleCreatePayloadRule) __premarshalJSON() (*__premarshalcreateOrganizationRuleRuleCreateRuleCreatePayloadRule, error) {
	var retval __premarshalcreateOrganizationRuleRuleCreateRuleCreatePayloadRule

	retval.Id = v.OrganizationRuleFields.Id
	retval.Uuid = v.OrganizationRuleFields.Uuid
	retval.Description = v.OrganizationRuleFields.Description
	retval.Document = v.OrganizationRuleFields.Document
	retval.Type = v.OrganizationRuleFields.Type
	retval.SourceType = v.OrganizationRuleFields.SourceType
	retval.TargetType = v.OrganizationRuleFields.TargetType
	retval.Effect = v.OrganizationRuleFields.Effect
	retval.Action = v.OrganizationRuleFields.Action
	{

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

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

// createPipelinePipelineCreatePipelineCreatePayload includes the requested fields of the GraphQL type PipelineCreatePayload.
// The GraphQL type's documentation follows.
//
// Autogenerated return type of PipelineCreate.
type createPipelinePipelineCreatePipelineCreatePayload struct {
	Pipeline createPipelinePipelineCreatePipelineCreatePayloadPipeline `json:"pipeline"`
}

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

// createPipelinePipelineCreatePipelineCreatePayloadPipeline includes the requested fields of the GraphQL type Pipeline.
// The GraphQL type's documentation follows.
//
// A pipeline
type createPipelinePipelineCreatePipelineCreatePayloadPipeline struct {
	PipelineFields `json:"-"`
}

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

// GetPipelineUuid returns createPipelinePipelineCreatePipelineCreatePayloadPipeline.PipelineUuid, and is useful for accessing the field via an interface.
func (v *createPipelinePipelineCreatePipelineCreatePayloadPipeline) GetPipelineUuid() string {
	return v.PipelineFields.PipelineUuid
}

// GetAllowRebuilds returns createPipelinePipelineCreatePipelineCreatePayloadPipeline.AllowRebuilds, and is useful for accessing the field via an interface.
func (v *createPipelinePipelineCreatePipelineCreatePayloadPipeline) GetAllowRebuilds() bool {
	return v.PipelineFields.AllowRebuilds
}

// GetBadgeURL returns createPipelinePipelineCreatePipelineCreatePayloadPipeline.BadgeURL, and is useful for accessing the field via an interface.
func (v *createPipelinePipelineCreatePipelineCreatePayloadPipeline) GetBadgeURL() string {
	return v.PipelineFields.BadgeURL
}

// GetBranchConfiguration returns createPipelinePipelineCreatePipelineCreatePayloadPipeline.BranchConfiguration, and is useful for accessing the field via an interface.
func (v *createPipelinePipelineCreatePipelineCreatePayloadPipeline) GetBranchConfiguration() *string {
	return v.PipelineFields.BranchConfiguration
}

// GetCancelIntermediateBuilds returns createPipelinePipelineCreatePipelineCreatePayloadPipeline.CancelIntermediateBuilds, and is useful for accessing the field via an interface.
func (v *createPipelinePipelineCreatePipelineCreatePayloadPipeline) GetCancelIntermediateBuilds() bool {
	return v.PipelineFields.CancelIntermediateBuilds
}

// GetCancelIntermediateBuildsBranchFilter returns createPipelinePipelineCreatePipelineCreatePayloadPipeline.CancelIntermediateBuildsBranchFilter, and is useful for accessing the field via an interface.
func (v *createPipelinePipelineCreatePipelineCreatePayloadPipeline) GetCancelIntermediateBuildsBranchFilter() string {
	return v.PipelineFields.CancelIntermediateBuildsBranchFilter
}

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

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

// GetDefaultBranch returns createPipelinePipelineCreatePipelineCreatePayloadPipeline.DefaultBranch, and is useful for accessing the field via an interface.
func (v *createPipelinePipelineCreatePipelineCreatePayloadPipeline) GetDefaultBranch() string {
	return v.PipelineFields.DefaultBranch
}

// GetDefaultTimeoutInMinutes returns createPipelinePipelineCreatePipelineCreatePayloadPipeline.DefaultTimeoutInMinutes, and is useful for accessing the field via an interface.
func (v *createPipelinePipelineCreatePipelineCreatePayloadPipeline) GetDefaultTimeoutInMinutes() *int {
	return v.PipelineFields.DefaultTimeoutInMinutes
}

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

// GetMaximumTimeoutInMinutes returns createPipelinePipelineCreatePipelineCreatePayloadPipeline.MaximumTimeoutInMinutes, and is useful for accessing the field via an interface.
func (v *createPipelinePipelineCreatePipelineCreatePayloadPipeline) GetMaximumTimeoutInMinutes() *int {
	return v.PipelineFields.MaximumTimeoutInMinutes
}

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

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

// GetRepository returns createPipelinePipelineCreatePipelineCreatePayloadPipeline.Repository, and is useful for accessing the field via an interface.
func (v *createPipelinePipelineCreatePipelineCreatePayloadPipeline) GetRepository() PipelineFieldsRepository {
	return v.PipelineFields.Repository
}

// GetPipelineTemplate returns createPipelinePipelineCreatePipelineCreatePayloadPipeline.PipelineTemplate, and is useful for accessing the field via an interface.
func (v *createPipelinePipelineCreatePipelineCreatePayloadPipeline) GetPipelineTemplate() PipelineFieldsPipelineTemplate {
	return v.PipelineFields.PipelineTemplate
}

// GetSkipIntermediateBuilds returns createPipelinePipelineCreatePipelineCreatePayloadPipeline.SkipIntermediateBuilds, and is useful for accessing the field via an interface.
func (v *createPipelinePipelineCreatePipelineCreatePayloadPipeline) GetSkipIntermediateBuilds() bool {
	return v.PipelineFields.SkipIntermediateBuilds
}

// GetSkipIntermediateBuildsBranchFilter returns createPipelinePipelineCreatePipelineCreatePayloadPipeline.SkipIntermediateBuildsBranchFilter, and is useful for accessing the field via an interface.
func (v *createPipelinePipelineCreatePipelineCreatePayloadPipeline) GetSkipIntermediateBuildsBranchFilter() string {
	return v.PipelineFields.SkipIntermediateBuildsBranchFilter
}

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

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

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

// GetTeams returns createPipelinePipelineCreatePipelineCreatePayloadPipeline.Teams, and is useful for accessing the field via an interface.
func (v *createPipelinePipelineCreatePipelineCreatePayloadPipeline) GetTeams() PipelineFieldsTeamsTeamPipelineConnection {
	return v.PipelineFields.Teams
}

// GetWebhookURL returns createPipelinePipelineCreatePipelineCreatePayloadPipeline.WebhookURL, and is useful for accessing the field via an interface.
func (v *createPipelinePipelineCreatePipelineCreatePayloadPipeline) GetWebhookURL() string {
	return v.PipelineFields.WebhookURL
}

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

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

	var firstPass struct {
		*createPipelinePipelineCreatePipelineCreatePayloadPipeline
		graphql.NoUnmarshalJSON
	}
	firstPass.createPipelinePipelineCreatePipelineCreatePayloadPipeline = v

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

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

type __premarshalcreatePipelinePipelineCreatePipelineCreatePayloadPipeline struct {
	Id string `json:"id"`

	PipelineUuid string `json:"pipelineUuid"`

	AllowRebuilds bool `json:"allowRebuilds"`

	BadgeURL string `json:"badgeURL"`

	BranchConfiguration *string `json:"branchConfiguration"`

	CancelIntermediateBuilds bool `json:"cancelIntermediateBuilds"`

	CancelIntermediateBuildsBranchFilter string `json:"cancelIntermediateBuildsBranchFilter"`

	Cluster PipelineFieldsCluster `json:"cluster"`

	Color *string `json:"color"`

	DefaultBranch string `json:"defaultBranch"`

	DefaultTimeoutInMinutes *int `json:"defaultTimeoutInMinutes"`

	Emoji *string `json:"emoji"`

	MaximumTimeoutInMinutes *int `json:"maximumTimeoutInMinutes"`

	Description string `json:"description"`

	Name string `json:"name"`

	Repository PipelineFieldsRepository `json:"repository"`

	PipelineTemplate PipelineFieldsPipelineTemplate `json:"pipelineTemplate"`

	SkipIntermediateBuilds bool `json:"skipIntermediateBuilds"`

	SkipIntermediateBuildsBranchFilter string `json:"skipIntermediateBuildsBranchFilter"`

	Slug string `json:"slug"`

	Steps PipelineFieldsStepsPipelineSteps `json:"steps"`

	Tags []PipelineFieldsTagsPipelineTag `json:"tags"`

	Teams PipelineFieldsTeamsTeamPipelineConnection `json:"teams"`

	WebhookURL string `json:"webhookURL"`
}

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

func (v *createPipelinePipelineCreatePipelineCreatePayloadPipeline) __premarshalJSON() (*__premarshalcreatePipelinePipelineCreatePipelineCreatePayloadPipeline, error) {
	var retval __premarshalcreatePipelinePipelineCreatePipelineCreatePayloadPipeline

	retval.Id = v.PipelineFields.Id
	retval.PipelineUuid = v.PipelineFields.PipelineUuid
	retval.AllowRebuilds = v.PipelineFields.AllowRebuilds
	retval.BadgeURL = v.PipelineFields.BadgeURL
	retval.BranchConfiguration = v.PipelineFields.BranchConfiguration
	retval.CancelIntermediateBuilds = v.PipelineFields.CancelIntermediateBuilds
	retval.CancelIntermediateBuildsBranchFilter = v.PipelineFields.CancelIntermediateBuildsBranchFilter
	retval.Cluster = v.PipelineFields.Cluster
	retval.Color = v.PipelineFields.Color
	retval.DefaultBranch = v.PipelineFields.DefaultBranch
	retval.DefaultTimeoutInMinutes = v.PipelineFields.DefaultTimeoutInMinutes
	retval.Emoji = v.PipelineFields.Emoji
	retval.MaximumTimeoutInMinutes = v.PipelineFields.MaximumTimeoutInMinutes
	retval.Description = v.PipelineFields.Description
	retval.Name = v.PipelineFields.Name
	retval.Repository = v.PipelineFields.Repository
	retval.PipelineTemplate = v.PipelineFields.PipelineTemplate
	retval.SkipIntermediateBuilds = v.PipelineFields.SkipIntermediateBuilds
	retval.SkipIntermediateBuildsBranchFilter = v.PipelineFields.SkipIntermediateBuildsBranchFilter
	retval.Slug = v.PipelineFields.Slug
	retval.Steps = v.PipelineFields.Steps
	retval.Tags = v.PipelineFields.Tags
	retval.Teams = v.PipelineFields.Teams
	retval.WebhookURL = v.PipelineFields.WebhookURL
	return &retval, nil
}

// createPipelineResponse is returned by createPipeline on success.
type createPipelineResponse struct {
	// Create a pipeline.
	PipelineCreate createPipelinePipelineCreatePipelineCreatePayload `json:"pipelineCreate"`
}

// GetPipelineCreate returns createPipelineResponse.PipelineCreate, and is useful for accessing the field via an interface.
func (v *createPipelineResponse) GetPipelineCreate() createPipelinePipelineCreatePipelineCreatePayload {
	return v.PipelineCreate
}

// createPipelineSchedulePipelineScheduleCreatePipelineScheduleCreatePayload includes the requested fields of the GraphQL type PipelineScheduleCreatePayload.
// The GraphQL type's documentation follows.
//
// Autogenerated return type of PipelineScheduleCreate.
type createPipelineSchedulePipelineScheduleCreatePipelineScheduleCreatePayload struct {
	Pipeline             createPipelineSchedulePipelineScheduleCreatePipelineScheduleCreatePayloadPipeline             `json:"pipeline"`
	PipelineScheduleEdge createPipelineSchedulePipelineScheduleCreatePipelineScheduleCreatePayloadPipelineScheduleEdge `json:"pipelineScheduleEdge"`
}

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

// GetPipelineScheduleEdge returns createPipelineSchedulePipelineScheduleCreatePipelineScheduleCreatePayload.PipelineScheduleEdge, and is useful for accessing the field via an interface.
func (v *createPipelineSchedulePipelineScheduleCreatePipelineScheduleCreatePayload) GetPipelineScheduleEdge() createPipelineSchedulePipelineScheduleCreatePipelineScheduleCreatePayloadPipelineScheduleEdge {
	return v.PipelineScheduleEdge
}

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

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

// createPipelineSchedulePipelineScheduleCreatePipelineScheduleCreatePayloadPipelineScheduleEdge includes the requested fields of the GraphQL type PipelineScheduleEdge.
type createPipelineSchedulePipelineScheduleCreatePipelineScheduleCreatePayloadPipelineScheduleEdge struct {
	Node createPipelineSchedulePipelineScheduleCreatePipelineScheduleCreatePayloadPipelineScheduleEdgeNodePipelineSchedule `json:"node"`
}

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

// createPipelineSchedulePipelineScheduleCreatePipelineScheduleCreatePayloadPipelineScheduleEdgeNodePipelineSchedule 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 createPipelineSchedulePipelineScheduleCreatePipelineScheduleCreatePayloadPipelineScheduleEdgeNodePipelineSchedule struct {
	PipelineScheduleValues `json:"-"`
}

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

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

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

// GetCronline returns createPipelineSchedulePipelineScheduleCreatePipelineScheduleCreatePayloadPipelineScheduleEdgeNodePipelineSchedule.Cronline, and is useful for accessing the field via an interface.
func (v *createPipelineSchedulePipelineScheduleCreatePipelineScheduleCreatePayloadPipelineScheduleEdgeNodePipelineSchedule) GetCronline() *string {
	return v.PipelineScheduleValues.Cronline
}

// GetMessage returns createPipelineSchedulePipelineScheduleCreatePipelineScheduleCreatePayloadPipelineScheduleEdgeNodePipelineSchedule.Message, and is useful for accessing the field via an interface.
func (v *createPipelineSchedulePipelineScheduleCreatePipelineScheduleCreatePayloadPipelineScheduleEdgeNodePipelineSchedule) GetMessage() *string {
	return v.PipelineScheduleValues.Message
}

// GetCommit returns createPipelineSchedulePipelineScheduleCreatePipelineScheduleCreatePayloadPipelineScheduleEdgeNodePipelineSchedule.Commit, and is useful for accessing the field via an interface.
func (v *createPipelineSchedulePipelineScheduleCreatePipelineScheduleCreatePayloadPipelineScheduleEdgeNodePipelineSchedule) GetCommit() *string {
	return v.PipelineScheduleValues.Commit
}

// GetBranch returns createPipelineSchedulePipelineScheduleCreatePipelineScheduleCreatePayloadPipelineScheduleEdgeNodePipelineSchedule.Branch, and is useful for accessing the field via an interface.
func (v *createPipelineSchedulePipelineScheduleCreatePipelineScheduleCreatePayloadPipelineScheduleEdgeNodePipelineSchedule) GetBranch() *string {
	return v.PipelineScheduleValues.Branch
}

// GetEnv returns createPipelineSchedulePipelineScheduleCreatePipelineScheduleCreatePayloadPipelineScheduleEdgeNodePipelineSchedule.Env, and is useful for accessing the field via an interface.
func (v *createPipelineSchedulePipelineScheduleCreatePipelineScheduleCreatePayloadPipelineScheduleEdgeNodePipelineSchedule) GetEnv() []*string {
	return v.PipelineScheduleValues.Env
}

// GetEnabled returns createPipelineSchedulePipelineScheduleCreatePipelineScheduleCreatePayloadPipelineScheduleEdgeNodePipelineSchedule.Enabled, and is useful for accessing the field via an interface.
func (v *createPipelineSchedulePipelineScheduleCreatePipelineScheduleCreatePayloadPipelineScheduleEdgeNodePipelineSchedule) GetEnabled() bool {
	return v.PipelineScheduleValues.Enabled
}

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

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

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

	var firstPass struct {
		*createPipelineSchedulePipelineScheduleCreatePipelineScheduleCreatePayloadPipelineScheduleEdgeNodePipelineSchedule
		graphql.NoUnmarshalJSON
	}
	firstPass.createPipelineSchedulePipelineScheduleCreatePipelineScheduleCreatePayloadPipelineScheduleEdgeNodePipelineSchedule = v

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

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

type __premarshalcreatePipelineSchedulePipelineScheduleCreatePipelineScheduleCreatePayloadPipelineScheduleEdgeNodePipelineSchedule struct {
	Id string `json:"id"`

	Uuid string `json:"uuid"`

	Label *string `json:"label"`

	Cronline *string `json:"cronline"`

	Message *string `json:"message"`

	Commit *string `json:"commit"`

	Branch *string `json:"branch"`

	Env []*string `json:"env"`

	Enabled bool `json:"enabled"`

	Pipeline PipelineScheduleValuesPipeline `json:"pipeline"`
}

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

func (v *createPipelineSchedulePipelineScheduleCreatePipelineScheduleCreatePayloadPipelineScheduleEdgeNodePipelineSchedule) __premarshalJSON() (*__premarshalcreatePipelineSchedulePipelineScheduleCreatePipelineScheduleCreatePayloadPipelineScheduleEdgeNodePipelineSchedule, error) {
	var retval __premarshalcreatePipelineSchedulePipelineScheduleCreatePipelineScheduleCreatePayloadPipelineScheduleEdgeNodePipelineSchedule

	retval.Id = v.PipelineScheduleValues.Id
	retval.Uuid = v.PipelineScheduleValues.Uuid
	retval.Label = v.PipelineScheduleValues.Label
	retval.Cronline = v.PipelineScheduleValues.Cronline
	retval.Message = v.PipelineScheduleValues.Message
	retval.Commit = v.PipelineScheduleValues.Commit
	retval.Branch = v.PipelineScheduleValues.Branch
	retval.Env = v.PipelineScheduleValues.Env
	retval.Enabled = v.PipelineScheduleValues.Enabled
	retval.Pipeline = v.PipelineScheduleValues.Pipeline
	return &retval, nil
}

// createPipelineScheduleResponse is returned by createPipelineSchedule on success.
type createPipelineScheduleResponse struct {
	// Create a scheduled build on pipeline.
	PipelineScheduleCreate createPipelineSchedulePipelineScheduleCreatePipelineScheduleCreatePayload `json:"pipelineScheduleCreate"`
}

// GetPipelineScheduleCreate returns createPipelineScheduleResponse.PipelineScheduleCreate, and is useful for accessing the field via an interface.
func (v *createPipelineScheduleResponse) GetPipelineScheduleCreate() createPipelineSchedulePipelineScheduleCreatePipelineScheduleCreatePayload {
	return v.PipelineScheduleCreate
}

// createPipelineTemplatePipelineTemplateCreatePipelineTemplateCreatePayload includes the requested fields of the GraphQL type PipelineTemplateCreatePayload.
// The GraphQL type's documentation follows.
//
// Autogenerated return type of PipelineTemplateCreate.
type createPipelineTemplatePipelineTemplateCreatePipelineTemplateCreatePayload struct {
	PipelineTemplate createPipelineTemplatePipelineTemplateCreatePipelineTemplateCreatePayloadPipelineTemplate `json:"pipelineTemplate"`
}

// GetPipelineTemplate returns createPipelineTemplatePipelineTemplateCreatePipelineTemplateCreatePayload.PipelineTemplate, and is useful for accessing the field via an interface.
func (v *createPipelineTemplatePipelineTemplateCreatePipelineTemplateCreatePayload) GetPipelineTemplate() createPipelineTemplatePipelineTemplateCreatePipelineTemplateCreatePayloadPipelineTemplate {
	return v.PipelineTemplate
}

// createPipelineTemplatePipelineTemplateCreatePipelineTemplateCreatePayloadPipelineTemplate 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 createPipelineTemplatePipelineTemplateCreatePipelineTemplateCreatePayloadPipelineTemplate struct {
	PipelineTemplateFields `json:"-"`
}

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

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

// GetAvailable returns createPipelineTemplatePipelineTemplateCreatePipelineTemplateCreatePayloadPipelineTemplate.Available, and is useful for accessing the field via an interface.
func (v *createPipelineTemplatePipelineTemplateCreatePipelineTemplateCreatePayloadPipelineTemplate) GetAvailable() bool {
	return v.PipelineTemplateFields.Available
}

// GetConfiguration returns createPipelineTemplatePipelineTemplateCreatePipelineTemplateCreatePayloadPipelineTemplate.Configuration, and is useful for accessing the field via an interface.
func (v *createPipelineTemplatePipelineTemplateCreatePipelineTemplateCreatePayloadPipelineTemplate) GetConfiguration() string {
	return v.PipelineTemplateFields.Configuration
}

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

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

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

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

	var firstPass struct {
		*createPipelineTemplatePipelineTemplateCreatePipelineTemplateCreatePayloadPipelineTemplate
		graphql.NoUnmarshalJSON
	}
	firstPass.createPipelineTemplatePipelineTemplateCreatePipelineTemplateCreatePayloadPipelineTemplate = v

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

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

type __premarshalcreatePipelineTemplatePipelineTemplateCreatePipelineTemplateCreatePayloadPipelineTemplate struct {
	Id string `json:"id"`

	Uuid string `json:"uuid"`

	Available bool `json:"available"`

	Configuration string `json:"configuration"`

	Description *string `json:"description"`

	Name string `json:"name"`
}

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

func (v *createPipelineTemplatePipelineTemplateCreatePipelineTemplateCreatePayloadPipelineTemplate) __premarshalJSON() (*__premarshalcreatePipelineTemplatePipelineTemplateCreatePipelineTemplateCreatePayloadPipelineTemplate, error) {
	var retval __premarshalcreatePipelineTemplatePipelineTemplateCreatePipelineTemplateCreatePayloadPipelineTemplate

	retval.Id = v.PipelineTemplateFields.Id
	retval.Uuid = v.PipelineTemplateFields.Uuid
	retval.Available = v.PipelineTemplateFields.Available
	retval.Configuration = v.PipelineTemplateFields.Configuration
	retval.Description = v.PipelineTemplateFields.Description
	retval.Name = v.PipelineTemplateFields.Name
	return &retval, nil
}

// createPipelineTemplateResponse is returned by createPipelineTemplate on success.
type createPipelineTemplateResponse struct {
	// Create a pipeline template.
	PipelineTemplateCreate createPipelineTemplatePipelineTemplateCreatePipelineTemplateCreatePayload `json:"pipelineTemplateCreate"`
}

// GetPipelineTemplateCreate returns createPipelineTemplateResponse.PipelineTemplateCreate, and is useful for accessing the field via an interface.
func (v *createPipelineTemplateResponse) GetPipelineTemplateCreate() createPipelineTemplatePipelineTemplateCreatePipelineTemplateCreatePayload {
	return v.PipelineTemplateCreate
}

// createTeamMemberResponse is returned by createTeamMember on success.
type createTeamMemberResponse struct {
	// Add a user to a team.
	TeamMemberCreate createTeamMemberTeamMemberCreateTeamMemberCreatePayload `json:"teamMemberCreate"`
}

// GetTeamMemberCreate returns createTeamMemberResponse.TeamMemberCreate, and is useful for accessing the field via an interface.
func (v *createTeamMemberResponse) GetTeamMemberCreate() createTeamMemberTeamMemberCreateTeamMemberCreatePayload {
	return v.TeamMemberCreate
}

// createTeamMemberTeamMemberCreateTeamMemberCreatePayload includes the requested fields of the GraphQL type TeamMemberCreatePayload.
// The GraphQL type's documentation follows.
//
// Autogenerated return type of TeamMemberCreate.
type createTeamMemberTeamMemberCreateTeamMemberCreatePayload struct {
	TeamMemberEdge createTeamMemberTeamMemberCreateTeamMemberCreatePayloadTeamMemberEdge `json:"teamMemberEdge"`
}

// GetTeamMemberEdge returns createTeamMemberTeamMemberCreateTeamMemberCreatePayload.TeamMemberEdge, and is useful for accessing the field via an interface.
func (v *createTeamMemberTeamMemberCreateTeamMemberCreatePayload) GetTeamMemberEdge() createTeamMemberTeamMemberCreateTeamMemberCreatePayloadTeamMemberEdge {
	return v.TeamMemberEdge
}

// createTeamMemberTeamMemberCreateTeamMemberCreatePayloadTeamMemberEdge includes the requested fields of the GraphQL type TeamMemberEdge.
type createTeamMemberTeamMemberCreateTeamMemberCreatePayloadTeamMemberEdge struct {
	Node createTeamMemberTeamMemberCreateTeamMemberCreatePayloadTeamMemberEdgeNodeTeamMember `json:"node"`
}

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

// createTeamMemberTeamMemberCreateTeamMemberCreatePayloadTeamMemberEdgeNodeTeamMember includes the requested fields of the GraphQL type TeamMember.
// The GraphQL type's documentation follows.
//
// An member of a team
type createTeamMemberTeamMemberCreateTeamMemberCreatePayloadTeamMemberEdgeNodeTeamMember struct {
	TeamMemberFields `json:"-"`
}

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

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

// GetTeam returns createTeamMemberTeamMemberCreateTeamMemberCreatePayloadTeamMemberEdgeNodeTeamMember.Team, and is useful for accessing the field via an interface.
func (v *createTeamMemberTeamMemberCreateTeamMemberCreatePayloadTeamMemberEdgeNodeTeamMember) GetTeam() TeamMemberFieldsTeam {
	return v.TeamMemberFields.Team
}

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

// GetRole returns createTeamMemberTeamMemberCreateTeamMemberCreatePayloadTeamMemberEdgeNodeTeamMember.Role, and is useful for accessing the field via an interface.
func (v *createTeamMemberTeamMemberCreateTeamMemberCreatePayloadTeamMemberEdgeNodeTeamMember) GetRole() string {
	return v.TeamMemberFields.Role
}

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

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

	var firstPass struct {
		*createTeamMemberTeamMemberCreateTeamMemberCreatePayloadTeamMemberEdgeNodeTeamMember
		graphql.NoUnmarshalJSON
	}
	firstPass.createTeamMemberTeamMemberCreateTeamMemberCreatePayloadTeamMemberEdgeNodeTeamMember = v

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

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

type __premarshalcreateTeamMemberTeamMemberCreateTeamMemberCreatePayloadTeamMemberEdgeNodeTeamMember struct {
	Id string `json:"id"`

	Uuid string `json:"uuid"`

	Team TeamMemberFieldsTeam `json:"team"`

	User TeamMemberFieldsUser `json:"user"`

	Role string `json:"role"`
}

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

func (v *createTeamMemberTeamMemberCreateTeamMemberCreatePayloadTeamMemberEdgeNodeTeamMember) __premarshalJSON() (*__premarshalcreateTeamMemberTeamMemberCreateTeamMemberCreatePayloadTeamMemberEdgeNodeTeamMember, error) {
	var retval __premarshalcreateTeamMemberTeamMemberCreateTeamMemberCreatePayloadTeamMemberEdgeNodeTeamMember

	retval.Id = v.TeamMemberFields.Id
	retval.Uuid = v.TeamMemberFields.Uuid
	retval.Team = v.TeamMemberFields.Team
	retval.User = v.TeamMemberFields.User
	retval.Role = v.TeamMemberFields.Role
	return &retval, nil
}

// createTeamPipelineResponse is returned by createTeamPipeline on success.
type createTeamPipelineResponse struct {
	// Add a pipeline to a team.
	TeamPipelineCreate createTeamPipelineTeamPipelineCreateTeamPipelineCreatePayload `json:"teamPipelineCreate"`
}

// GetTeamPipelineCreate returns createTeamPipelineResponse.TeamPipelineCreate, and is useful for accessing the field via an interface.
func (v *createTeamPipelineResponse) GetTeamPipelineCreate() createTeamPipelineTeamPipelineCreateTeamPipelineCreatePayload {
	return v.TeamPipelineCreate
}

// createTeamPipelineTeamPipelineCreateTeamPipelineCreatePayload includes the requested fields of the GraphQL type TeamPipelineCreatePayload.
// The GraphQL type's documentation follows.
//
// Autogenerated return type of TeamPipelineCreate.
type createTeamPipelineTeamPipelineCreateTeamPipelineCreatePayload struct {
	TeamPipelineEdge createTeamPipelineTeamPipelineCreateTeamPipelineCreatePayloadTeamPipelineEdge `json:"teamPipelineEdge"`
}

// GetTeamPipelineEdge returns createTeamPipelineTeamPipelineCreateTeamPipelineCreatePayload.TeamPipelineEdge, and is useful for accessing the field via an interface.
func (v *createTeamPipelineTeamPipelineCreateTeamPipelineCreatePayload) GetTeamPipelineEdge() createTeamPipelineTeamPipelineCreateTeamPipelineCreatePayloadTeamPipelineEdge {
	return v.TeamPipelineEdge
}

// createTeamPipelineTeamPipelineCreateTeamPipelineCreatePayloadTeamPipelineEdge includes the requested fields of the GraphQL type TeamPipelineEdge.
type createTeamPipelineTeamPipelineCreateTeamPipelineCreatePayloadTeamPipelineEdge struct {
	Node createTeamPipelineTeamPipelineCreateTeamPipelineCreatePayloadTeamPipelineEdgeNodeTeamPipeline `json:"node"`
}

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

// createTeamPipelineTeamPipelineCreateTeamPipelineCreatePayloadTeamPipelineEdgeNodeTeamPipeline 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 createTeamPipelineTeamPipelineCreateTeamPipelineCreatePayloadTeamPipelineEdgeNodeTeamPipeline struct {
	TeamPipelineFields `json:"-"`
}

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

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

// GetPipelineAccessLevel returns createTeamPipelineTeamPipelineCreateTeamPipelineCreatePayloadTeamPipelineEdgeNodeTeamPipeline.PipelineAccessLevel, and is useful for accessing the field via an interface.
func (v *createTeamPipelineTeamPipelineCreateTeamPipelineCreatePayloadTeamPipelineEdgeNodeTeamPipeline) GetPipelineAccessLevel() PipelineAccessLevels {
	return v.TeamPipelineFields.PipelineAccessLevel
}

// GetTeam returns createTeamPipelineTeamPipelineCreateTeamPipelineCreatePayloadTeamPipelineEdgeNodeTeamPipeline.Team, and is useful for accessing the field via an interface.
func (v *createTeamPipelineTeamPipelineCreateTeamPipelineCreatePayloadTeamPipelineEdgeNodeTeamPipeline) GetTeam() TeamPipelineFieldsTeam {
	return v.TeamPipelineFields.Team
}

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

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

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

	var firstPass struct {
		*createTeamPipelineTeamPipelineCreateTeamPipelineCreatePayloadTeamPipelineEdgeNodeTeamPipeline
		graphql.NoUnmarshalJSON
	}
	firstPass.createTeamPipelineTeamPipelineCreateTeamPipelineCreatePayloadTeamPipelineEdgeNodeTeamPipeline = v

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

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

type __premarshalcreateTeamPipelineTeamPipelineCreateTeamPipelineCreatePayloadTeamPipelineEdgeNodeTeamPipeline struct {
	Id string `json:"id"`

	Uuid string `json:"uuid"`

	PipelineAccessLevel PipelineAccessLevels `json:"pipelineAccessLevel"`

	Team TeamPipelineFieldsTeam `json:"team"`

	Pipeline TeamPipelineFieldsPipeline `json:"pipeline"`
}

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

func (v *createTeamPipelineTeamPipelineCreateTeamPipelineCreatePayloadTeamPipelineEdgeNodeTeamPipeline) __premarshalJSON() (*__premarshalcreateTeamPipelineTeamPipelineCreateTeamPipelineCreatePayloadTeamPipelineEdgeNodeTeamPipeline, error) {
	var retval __premarshalcreateTeamPipelineTeamPipelineCreateTeamPipelineCreatePayloadTeamPipelineEdgeNodeTeamPipeline

	retval.Id = v.TeamPipelineFields.Id
	retval.Uuid = v.TeamPipelineFields.Uuid
	retval.PipelineAccessLevel = v.TeamPipelineFields.PipelineAccessLevel
	retval.Team = v.TeamPipelineFields.Team
	retval.Pipeline = v.TeamPipelineFields.Pipeline
	return &retval, nil
}

// createTestSuiteTeamResponse is returned by createTestSuiteTeam on success.
type createTestSuiteTeamResponse struct {
	// Add a suite to a team.
	TeamSuiteCreate createTestSuiteTeamTeamSuiteCreateTeamSuiteCreatePayload `json:"teamSuiteCreate"`
}

// GetTeamSuiteCreate returns createTestSuiteTeamResponse.TeamSuiteCreate, and is useful for accessing the field via an interface.
func (v *createTestSuiteTeamResponse) GetTeamSuiteCreate() createTestSuiteTeamTeamSuiteCreateTeamSuiteCreatePayload {
	return v.TeamSuiteCreate
}

// createTestSuiteTeamTeamSuiteCreateTeamSuiteCreatePayload includes the requested fields of the GraphQL type TeamSuiteCreatePayload.
// The GraphQL type's documentation follows.
//
// Autogenerated return type of TeamSuiteCreate.
type createTestSuiteTeamTeamSuiteCreateTeamSuiteCreatePayload struct {
	Suite     createTestSuiteTeamTeamSuiteCreateTeamSuiteCreatePayloadSuite     `json:"suite"`
	TeamSuite createTestSuiteTeamTeamSuiteCreateTeamSuiteCreatePayloadTeamSuite `json:"teamSuite"`
}

// GetSuite returns createTestSuiteTeamTeamSuiteCreateTeamSuiteCreatePayload.Suite, and is useful for accessing the field via an interface.
func (v *createTestSuiteTeamTeamSuiteCreateTeamSuiteCreatePayload) GetSuite() createTestSuiteTeamTeamSuiteCreateTeamSuiteCreatePayloadSuite {
	return v.Suite
}

// GetTeamSuite returns createTestSuiteTeamTeamSuiteCreateTeamSuiteCreatePayload.TeamSuite, and is useful for accessing the field via an interface.
func (v *createTestSuiteTeamTeamSuiteCreateTeamSuiteCreatePayload) GetTeamSuite() createTestSuiteTeamTeamSuiteCreateTeamSuiteCreatePayloadTeamSuite {
	return v.TeamSuite
}

// createTestSuiteTeamTeamSuiteCreateTeamSuiteCreatePayloadSuite includes the requested fields of the GraphQL type Suite.
// The GraphQL type's documentation follows.
//
// A suite
type createTestSuiteTeamTeamSuiteCreateTeamSuiteCreatePayloadSuite struct {
	// Teams associated with this suite
	Teams createTestSuiteTeamTeamSuiteCreateTeamSuiteCreatePayloadSuiteTeamsTeamSuiteConnection `json:"teams"`
}

// GetTeams returns createTestSuiteTeamTeamSuiteCreateTeamSuiteCreatePayloadSuite.Teams, and is useful for accessing the field via an interface.
func (v *createTestSuiteTeamTeamSuiteCreateTeamSuiteCreatePayloadSuite) GetTeams() createTestSuiteTeamTeamSuiteCreateTeamSuiteCreatePayloadSuiteTeamsTeamSuiteConnection {
	return v.Teams
}

// createTestSuiteTeamTeamSuiteCreateTeamSuiteCreatePayloadSuiteTeamsTeamSuiteConnection includes the requested fields of the GraphQL type TeamSuiteConnection.
// The GraphQL type's documentation follows.
//
// A collection of TeamSuite records
type createTestSuiteTeamTeamSuiteCreateTeamSuiteCreatePayloadSuiteTeamsTeamSuiteConnection struct {
	Edges []createTestSuiteTeamTeamSuiteCreateTeamSuiteCreatePayloadSuiteTeamsTeamSuiteConnectionEdgesTeamSuiteEdge `json:"edges"`
}

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

// createTestSuiteTeamTeamSuiteCreateTeamSuiteCreatePayloadSuiteTeamsTeamSuiteConnectionEdgesTeamSuiteEdge includes the requested fields of the GraphQL type TeamSuiteEdge.
type createTestSuiteTeamTeamSuiteCreateTeamSuiteCreatePayloadSuiteTeamsTeamSuiteConnectionEdgesTeamSuiteEdge struct {
	Node createTestSuiteTeamTeamSuiteCreateTeamSuiteCreatePayloadSuiteTeamsTeamSuiteConnectionEdgesTeamSuiteEdgeNodeTeamSuite `json:"node"`
}

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

// createTestSuiteTeamTeamSuiteCreateTeamSuiteCreatePayloadSuiteTeamsTeamSuiteConnectionEdgesTeamSuiteEdgeNodeTeamSuite 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 createTestSuiteTeamTeamSuiteCreateTeamSuiteCreatePayloadSuiteTeamsTeamSuiteConnectionEdgesTeamSuiteEdgeNodeTeamSuite struct {
	Id string `json:"id"`
	// The public UUID for this team suite
	Uuid string `json:"uuid"`
	// The team associated with this team member
	Team createTestSuiteTeamTeamSuiteCreateTeamSuiteCreatePayloadSuiteTeamsTeamSuiteConnectionEdgesTeamSuiteEdgeNodeTeamSuiteTeam `json:"team"`
}

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

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

// GetTeam returns createTestSuiteTeamTeamSuiteCreateTeamSuiteCreatePayloadSuiteTeamsTeamSuiteConnectionEdgesTeamSuiteEdgeNodeTeamSuite.Team, and is useful for accessing the field via an interface.
func (v *createTestSuiteTeamTeamSuiteCreateTeamSuiteCreatePayloadSuiteTeamsTeamSuiteConnectionEdgesTeamSuiteEdgeNodeTeamSuite) GetTeam() createTestSuiteTeamTeamSuiteCreateTeamSuiteCreatePayloadSuiteTeamsTeamSuiteConnectionEdgesTeamSuiteEdgeNodeTeamSuiteTeam {
	return v.Team
}

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

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

// createTestSuiteTeamTeamSuiteCreateTeamSuiteCreatePayloadTeamSuite 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 createTestSuiteTeamTeamSuiteCreateTeamSuiteCreatePayloadTeamSuite struct {
	TeamSuiteFields `json:"-"`
}

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

// GetTeamSuiteUuid returns createTestSuiteTeamTeamSuiteCreateTeamSuiteCreatePayloadTeamSuite.TeamSuiteUuid, and is useful for accessing the field via an interface.
func (v *createTestSuiteTeamTeamSuiteCreateTeamSuiteCreatePayloadTeamSuite) GetTeamSuiteUuid() string {
	return v.TeamSuiteFields.TeamSuiteUuid
}

// GetAccessLevel returns createTestSuiteTeamTeamSuiteCreateTeamSuiteCreatePayloadTeamSuite.AccessLevel, and is useful for accessing the field via an interface.
func (v *createTestSuiteTeamTeamSuiteCreateTeamSuiteCreatePayloadTeamSuite) GetAccessLevel() SuiteAccessLevels {
	return v.TeamSuiteFields.AccessLevel
}

// GetTeam returns createTestSuiteTeamTeamSuiteCreateTeamSuiteCreatePayloadTeamSuite.Team, and is useful for accessing the field via an interface.
func (v *createTestSuiteTeamTeamSuiteCreateTeamSuiteCreatePayloadTeamSuite) GetTeam() TeamSuiteFieldsTeam {
	return v.TeamSuiteFields.Team
}

// GetSuite returns createTestSuiteTeamTeamSuiteCreateTeamSuiteCreatePayloadTeamSuite.Suite, and is useful for accessing the field via an interface.
func (v *createTestSuiteTeamTeamSuiteCreateTeamSuiteCreatePayloadTeamSuite) GetSuite() TeamSuiteFieldsSuite {
	return v.TeamSuiteFields.Suite
}

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

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

	var firstPass struct {
		*createTestSuiteTeamTeamSuiteCreateTeamSuiteCreatePayloadTeamSuite
		graphql.NoUnmarshalJSON
	}
	firstPass.createTestSuiteTeamTeamSuiteCreateTeamSuiteCreatePayloadTeamSuite = v

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

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

type __premarshalcreateTestSuiteTeamTeamSuiteCreateTeamSuiteCreatePayloadTeamSuite struct {
	Id string `json:"id"`

	TeamSuiteUuid string `json:"teamSuiteUuid"`

	AccessLevel SuiteAccessLevels `json:"accessLevel"`

	Team TeamSuiteFieldsTeam `json:"team"`

	Suite TeamSuiteFieldsSuite `json:"suite"`
}

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

func (v *createTestSuiteTeamTeamSuiteCreateTeamSuiteCreatePayloadTeamSuite) __premarshalJSON() (*__premarshalcreateTestSuiteTeamTeamSuiteCreateTeamSuiteCreatePayloadTeamSuite, error) {
	var retval __premarshalcreateTestSuiteTeamTeamSuiteCreateTeamSuiteCreatePayloadTeamSuite

	retval.Id = v.TeamSuiteFields.Id
	retval.TeamSuiteUuid = v.TeamSuiteFields.TeamSuiteUuid
	retval.AccessLevel = v.TeamSuiteFields.AccessLevel
	retval.Team = v.TeamSuiteFields.Team
	retval.Suite = v.TeamSuiteFields.Suite
	return &retval, nil
}

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

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

// deleteBannerResponse is returned by deleteBanner on success.
type deleteBannerResponse struct {
	// Delete the system banner
	OrganizationBannerDelete deleteBannerOrganizationBannerDeleteOrganizationBannerDeletePayload `json:"organizationBannerDelete"`
}

// GetOrganizationBannerDelete returns deleteBannerResponse.OrganizationBannerDelete, and is useful for accessing the field via an interface.
func (v *deleteBannerResponse) GetOrganizationBannerDelete() deleteBannerOrganizationBannerDeleteOrganizationBannerDeletePayload {
	return v.OrganizationBannerDelete
}

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

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

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

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

// deleteClusterQueueResponse is returned by deleteClusterQueue on success.
type deleteClusterQueueResponse struct {
	// Delete a cluster queue.
	ClusterQueueDelete deleteClusterQueueClusterQueueDeleteClusterQueueDeletePayload `json:"clusterQueueDelete"`
}

// GetClusterQueueDelete returns deleteClusterQueueResponse.ClusterQueueDelete, and is useful for accessing the field via an interface.
func (v *deleteClusterQueueResponse) GetClusterQueueDelete() deleteClusterQueueClusterQueueDeleteClusterQueueDeletePayload {
	return v.ClusterQueueDelete
}

// deleteClusterResponse is returned by deleteCluster on success.
type deleteClusterResponse struct {
	// Delete a cluster.
	ClusterDelete deleteClusterClusterDeleteClusterDeletePayload `json:"clusterDelete"`
}

// GetClusterDelete returns deleteClusterResponse.ClusterDelete, and is useful for accessing the field via an interface.
func (v *deleteClusterResponse) GetClusterDelete() deleteClusterClusterDeleteClusterDeletePayload {
	return v.ClusterDelete
}

// deleteOrganizationRuleResponse is returned by deleteOrganizationRule on success.
type deleteOrganizationRuleResponse struct {
	// Delete a rule.
	RuleDelete deleteOrganizationRuleRuleDeleteRuleDeletePayload `json:"ruleDelete"`
}

// GetRuleDelete returns deleteOrganizationRuleResponse.RuleDelete, and is useful for accessing the field via an interface.
func (v *deleteOrganizationRuleResponse) GetRuleDelete() deleteOrganizationRuleRuleDeleteRuleDeletePayload {
	return v.RuleDelete
}

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

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

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

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

// deletePipelineResponse is returned by deletePipeline on success.
type deletePipelineResponse struct {
	// Delete a pipeline.
	PipelineDelete deletePipelinePipelineDeletePipelineDeletePayload `json:"pipelineDelete"`
}

// GetPipelineDelete returns deletePipelineResponse.PipelineDelete, and is useful for accessing the field via an interface.
func (v *deletePipelineResponse) GetPipelineDelete() deletePipelinePipelineDeletePipelineDeletePayload {
	return v.PipelineDelete
}

// deletePipelineSchedulePipelineScheduleDeletePipelineScheduleDeletePayload includes the requested fields of the GraphQL type PipelineScheduleDeletePayload.
// The GraphQL type's documentation follows.
//
// Autogenerated return type of PipelineScheduleDelete.
type deletePipelineSchedulePipelineScheduleDeletePipelineScheduleDeletePayload struct {
	DeletedPipelineScheduleID string `json:"deletedPipelineScheduleID"`
}

// GetDeletedPipelineScheduleID returns deletePipelineSchedulePipelineScheduleDeletePipelineScheduleDeletePayload.DeletedPipelineScheduleID, and is useful for accessing the field via an interface.
func (v *deletePipelineSchedulePipelineScheduleDeletePipelineScheduleDeletePayload) GetDeletedPipelineScheduleID() string {
	return v.DeletedPipelineScheduleID
}

// deletePipelineScheduleResponse is returned by deletePipelineSchedule on success.
type deletePipelineScheduleResponse struct {
	// Delete a scheduled build on pipeline.
	PipelineScheduleDelete deletePipelineSchedulePipelineScheduleDeletePipelineScheduleDeletePayload `json:"pipelineScheduleDelete"`
}

// GetPipelineScheduleDelete returns deletePipelineScheduleResponse.PipelineScheduleDelete, and is useful for accessing the field via an interface.
func (v *deletePipelineScheduleResponse) GetPipelineScheduleDelete() deletePipelineSchedulePipelineScheduleDeletePipelineScheduleDeletePayload {
	return v.PipelineScheduleDelete
}

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

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

// deletePipelineTemplateResponse is returned by deletePipelineTemplate on success.
type deletePipelineTemplateResponse struct {
	// Delete a pipeline template.
	PipelineTemplateDelete deletePipelineTemplatePipelineTemplateDeletePipelineTemplateDeletePayload `json:"pipelineTemplateDelete"`
}

// GetPipelineTemplateDelete returns deletePipelineTemplateResponse.PipelineTemplateDelete, and is useful for accessing the field via an interface.
func (v *deletePipelineTemplateResponse) GetPipelineTemplateDelete() deletePipelineTemplatePipelineTemplateDeletePipelineTemplateDeletePayload {
	return v.PipelineTemplateDelete
}

// deleteTeamMemberResponse is returned by deleteTeamMember on success.
type deleteTeamMemberResponse struct {
	// Remove a user from a team.
	TeamMemberDelete deleteTeamMemberTeamMemberDeleteTeamMemberDeletePayload `json:"teamMemberDelete"`
}

// GetTeamMemberDelete returns deleteTeamMemberResponse.TeamMemberDelete, and is useful for accessing the field via an interface.
func (v *deleteTeamMemberResponse) GetTeamMemberDelete() deleteTeamMemberTeamMemberDeleteTeamMemberDeletePayload {
	return v.TeamMemberDelete
}

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

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

// deleteTeamPipelineResponse is returned by deleteTeamPipeline on success.
type deleteTeamPipelineResponse struct {
	// Remove a pipeline from a team.
	TeamPipelineDelete deleteTeamPipelineTeamPipelineDeleteTeamPipelineDeletePayload `json:"teamPipelineDelete"`
}

// GetTeamPipelineDelete returns deleteTeamPipelineResponse.TeamPipelineDelete, and is useful for accessing the field via an interface.
func (v *deleteTeamPipelineResponse) GetTeamPipelineDelete() deleteTeamPipelineTeamPipelineDeleteTeamPipelineDeletePayload {
	return v.TeamPipelineDelete
}

// deleteTeamPipelineTeamPipelineDeleteTeamPipelineDeletePayload includes the requested fields of the GraphQL type TeamPipelineDeletePayload.
// The GraphQL type's documentation follows.
//
// Autogenerated return type of TeamPipelineDelete.
type deleteTeamPipelineTeamPipelineDeleteTeamPipelineDeletePayload struct {
	DeletedTeamPipelineID string `json:"deletedTeamPipelineID"`
	// A unique identifier for the client performing the mutation.
	ClientMutationId string `json:"clientMutationId"`
}

// GetDeletedTeamPipelineID returns deleteTeamPipelineTeamPipelineDeleteTeamPipelineDeletePayload.DeletedTeamPipelineID, and is useful for accessing the field via an interface.
func (v *deleteTeamPipelineTeamPipelineDeleteTeamPipelineDeletePayload) GetDeletedTeamPipelineID() string {
	return v.DeletedTeamPipelineID
}

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

// deleteTestSuiteTeamResponse is returned by deleteTestSuiteTeam on success.
type deleteTestSuiteTeamResponse struct {
	// Remove a suite from a team.
	TeamSuiteDelete deleteTestSuiteTeamTeamSuiteDeleteTeamSuiteDeletePayload `json:"teamSuiteDelete"`
}

// GetTeamSuiteDelete returns deleteTestSuiteTeamResponse.TeamSuiteDelete, and is useful for accessing the field via an interface.
func (v *deleteTestSuiteTeamResponse) GetTeamSuiteDelete() deleteTestSuiteTeamTeamSuiteDeleteTeamSuiteDeletePayload {
	return v.TeamSuiteDelete
}

// deleteTestSuiteTeamTeamSuiteDeleteTeamSuiteDeletePayload includes the requested fields of the GraphQL type TeamSuiteDeletePayload.
// The GraphQL type's documentation follows.
//
// Autogenerated return type of TeamSuiteDelete.
type deleteTestSuiteTeamTeamSuiteDeleteTeamSuiteDeletePayload struct {
	DeletedTeamSuiteID string                                                       `json:"deletedTeamSuiteID"`
	Team               deleteTestSuiteTeamTeamSuiteDeleteTeamSuiteDeletePayloadTeam `json:"team"`
}

// GetDeletedTeamSuiteID returns deleteTestSuiteTeamTeamSuiteDeleteTeamSuiteDeletePayload.DeletedTeamSuiteID, and is useful for accessing the field via an interface.
func (v *deleteTestSuiteTeamTeamSuiteDeleteTeamSuiteDeletePayload) GetDeletedTeamSuiteID() string {
	return v.DeletedTeamSuiteID
}

// GetTeam returns deleteTestSuiteTeamTeamSuiteDeleteTeamSuiteDeletePayload.Team, and is useful for accessing the field via an interface.
func (v *deleteTestSuiteTeamTeamSuiteDeleteTeamSuiteDeletePayload) GetTeam() deleteTestSuiteTeamTeamSuiteDeleteTeamSuiteDeletePayloadTeam {
	return v.Team
}

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

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

// getAgentTokenAgentToken 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 getAgentTokenAgentToken struct {
	Id string `json:"id"`
	// A description about what this agent token is used for
	Description *string `json:"description"`
	// The public UUID for the agent
	Uuid string `json:"uuid"`
}

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

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

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

// getAgentTokenResponse is returned by getAgentToken on success.
type getAgentTokenResponse struct {
	// Find an agent token by its slug
	AgentToken getAgentTokenAgentToken `json:"agentToken"`
}

// GetAgentToken returns getAgentTokenResponse.AgentToken, and is useful for accessing the field via an interface.
func (v *getAgentTokenResponse) GetAgentToken() getAgentTokenAgentToken { return v.AgentToken }

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

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

// getClusterAgentTokensOrganizationCluster includes the requested fields of the GraphQL type Cluster.
type getClusterAgentTokensOrganizationCluster struct {
	// Returns agent tokens for the Cluster
	AgentTokens getClusterAgentTokensOrganizationClusterAgentTokensClusterAgentTokenConnection `json:"agentTokens"`
}

// GetAgentTokens returns getClusterAgentTokensOrganizationCluster.AgentTokens, and is useful for accessing the field via an interface.
func (v *getClusterAgentTokensOrganizationCluster) GetAgentTokens() getClusterAgentTokensOrganizationClusterAgentTokensClusterAgentTokenConnection {
	return v.AgentTokens
}

// getClusterAgentTokensOrganizationClusterAgentTokensClusterAgentTokenConnection includes the requested fields of the GraphQL type ClusterAgentTokenConnection.
type getClusterAgentTokensOrganizationClusterAgentTokensClusterAgentTokenConnection struct {
	Edges []getClusterAgentTokensOrganizationClusterAgentTokensClusterAgentTokenConnectionEdgesClusterAgentTokenEdge `json:"edges"`
}

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

// getClusterAgentTokensOrganizationClusterAgentTokensClusterAgentTokenConnectionEdgesClusterAgentTokenEdge includes the requested fields of the GraphQL type ClusterAgentTokenEdge.
type getClusterAgentTokensOrganizationClusterAgentTokensClusterAgentTokenConnectionEdgesClusterAgentTokenEdge struct {
	Node getClusterAgentTokensOrganizationClusterAgentTokensClusterAgentTokenConnectionEdgesClusterAgentTokenEdgeNodeClusterToken `json:"node"`
}

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

// getClusterAgentTokensOrganizationClusterAgentTokensClusterAgentTokenConnectionEdgesClusterAgentTokenEdgeNodeClusterToken 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 getClusterAgentTokensOrganizationClusterAgentTokensClusterAgentTokenConnectionEdgesClusterAgentTokenEdgeNodeClusterToken struct {
	ClusterAgentTokenValues `json:"-"`
}

// GetAllowedIpAddresses returns getClusterAgentTokensOrganizationClusterAgentTokensClusterAgentTokenConnectionEdgesClusterAgentTokenEdgeNodeClusterToken.AllowedIpAddresses, and is useful for accessing the field via an interface.
func (v *getClusterAgentTokensOrganizationClusterAgentTokensClusterAgentTokenConnectionEdgesClusterAgentTokenEdgeNodeClusterToken) GetAllowedIpAddresses() string {
	return v.ClusterAgentTokenValues.AllowedIpAddresses
}

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

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

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

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

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

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

	var firstPass struct {
		*getClusterAgentTokensOrganizationClusterAgentTokensClusterAgentTokenConnectionEdgesClusterAgentTokenEdgeNodeClusterToken
		graphql.NoUnmarshalJSON
	}
	firstPass.getClusterAgentTokensOrganizationClusterAgentTokensClusterAgentTokenConnectionEdgesClusterAgentTokenEdgeNodeClusterToken = v

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

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

type __premarshalgetClusterAgentTokensOrganizationClusterAgentTokensClusterAgentTokenConnectionEdgesClusterAgentTokenEdgeNodeClusterToken struct {
	AllowedIpAddresses string `json:"allowedIpAddresses"`

	Cluster ClusterAgentTokenValuesCluster `json:"cluster"`

	Description string `json:"description"`

	Id string `json:"id"`

	Uuid string `json:"uuid"`
}

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

func (v *getClusterAgentTokensOrganizationClusterAgentTokensClusterAgentTokenConnectionEdgesClusterAgentTokenEdgeNodeClusterToken) __premarshalJSON() (*__premarshalgetClusterAgentTokensOrganizationClusterAgentTokensClusterAgentTokenConnectionEdgesClusterAgentTokenEdgeNodeClusterToken, error) {
	var retval __premarshalgetClusterAgentTokensOrganizationClusterAgentTokensClusterAgentTokenConnectionEdgesClusterAgentTokenEdgeNodeClusterToken

	retval.AllowedIpAddresses = v.ClusterAgentTokenValues.AllowedIpAddresses
	retval.Cluster = v.ClusterAgentTokenValues.Cluster
	retval.Description = v.ClusterAgentTokenValues.Description
	retval.Id = v.ClusterAgentTokenValues.Id
	retval.Uuid = v.ClusterAgentTokenValues.Uuid
	return &retval, nil
}

// getClusterAgentTokensResponse is returned by getClusterAgentTokens on success.
type getClusterAgentTokensResponse struct {
	// Find an organization
	Organization getClusterAgentTokensOrganization `json:"organization"`
}

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

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

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

// getClusterByNameOrganizationClustersClusterConnection includes the requested fields of the GraphQL type ClusterConnection.
type getClusterByNameOrganizationClustersClusterConnection struct {
	PageInfo getClusterByNameOrganizationClustersClusterConnectionPageInfo           `json:"pageInfo"`
	Edges    []getClusterByNameOrganizationClustersClusterConnectionEdgesClusterEdge `json:"edges"`
}

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

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

// getClusterByNameOrganizationClustersClusterConnectionEdgesClusterEdge includes the requested fields of the GraphQL type ClusterEdge.
type getClusterByNameOrganizationClustersClusterConnectionEdgesClusterEdge struct {
	Node getClusterByNameOrganizationClustersClusterConnectionEdgesClusterEdgeNodeCluster `json:"node"`
}

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

// getClusterByNameOrganizationClustersClusterConnectionEdgesClusterEdgeNodeCluster includes the requested fields of the GraphQL type Cluster.
type getClusterByNameOrganizationClustersClusterConnectionEdgesClusterEdgeNodeCluster struct {
	ClusterFields `json:"-"`
}

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

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

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

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

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

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

// GetDefaultQueue returns getClusterByNameOrganizationClustersClusterConnectionEdgesClusterEdgeNodeCluster.DefaultQueue, and is useful for accessing the field via an interface.
func (v *getClusterByNameOrganizationClustersClusterConnectionEdgesClusterEdgeNodeCluster) GetDefaultQueue() *ClusterFieldsDefaultQueueClusterQueue {
	return v.ClusterFields.DefaultQueue
}

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

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

	var firstPass struct {
		*getClusterByNameOrganizationClustersClusterConnectionEdgesClusterEdgeNodeCluster
		graphql.NoUnmarshalJSON
	}
	firstPass.getClusterByNameOrganizationClustersClusterConnectionEdgesClusterEdgeNodeCluster = v

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

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

type __premarshalgetClusterByNameOrganizationClustersClusterConnectionEdgesClusterEdgeNodeCluster struct {
	Id string `json:"id"`

	Uuid string `json:"uuid"`

	Name string `json:"name"`

	Description *string `json:"description"`

	Emoji *string `json:"emoji"`

	Color *string `json:"color"`

	DefaultQueue *ClusterFieldsDefaultQueueClusterQueue `json:"defaultQueue"`
}

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

func (v *getClusterByNameOrganizationClustersClusterConnectionEdgesClusterEdgeNodeCluster) __premarshalJSON() (*__premarshalgetClusterByNameOrganizationClustersClusterConnectionEdgesClusterEdgeNodeCluster, error) {
	var retval __premarshalgetClusterByNameOrganizationClustersClusterConnectionEdgesClusterEdgeNodeCluster

	retval.Id = v.ClusterFields.Id
	retval.Uuid = v.ClusterFields.Uuid
	retval.Name = v.ClusterFields.Name
	retval.Description = v.ClusterFields.Description
	retval.Emoji = v.ClusterFields.Emoji
	retval.Color = v.ClusterFields.Color
	retval.DefaultQueue = v.ClusterFields.DefaultQueue
	return &retval, nil
}

// getClusterByNameOrganizationClustersClusterConnectionPageInfo includes the requested fields of the GraphQL type PageInfo.
// The GraphQL type's documentation follows.
//
// Information about pagination in a connection.
type getClusterByNameOrganizationClustersClusterConnectionPageInfo 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 getClusterByNameOrganizationClustersClusterConnectionPageInfo.EndCursor, and is useful for accessing the field via an interface.
func (v *getClusterByNameOrganizationClustersClusterConnectionPageInfo) GetEndCursor() string {
	return v.EndCursor
}

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

// getClusterByNameResponse is returned by getClusterByName on success.
type getClusterByNameResponse struct {
	// Find an organization
	Organization getClusterByNameOrganization `json:"organization"`
}

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

// getClusterQueueByNodeNode includes the requested fields of the GraphQL interface Node.
//
// getClusterQueueByNodeNode is implemented by the following types:
// getClusterQueueByNodeNodeAPIAccessToken
// getClusterQueueByNodeNodeAPIAccessTokenCode
// getClusterQueueByNodeNodeAPIApplication
// getClusterQueueByNodeNodeAgent
// getClusterQueueByNodeNodeAgentToken
// getClusterQueueByNodeNodeAnnotation
// getClusterQueueByNodeNodeArtifact
// getClusterQueueByNodeNodeAuditEvent
// getClusterQueueByNodeNodeAuthorizationBitbucket
// getClusterQueueByNodeNodeAuthorizationGitHub
// getClusterQueueByNodeNodeAuthorizationGitHubApp
// getClusterQueueByNodeNodeAuthorizationGitHubEnterprise
// getClusterQueueByNodeNodeAuthorizationGoogle
// getClusterQueueByNodeNodeAuthorizationSAML
// getClusterQueueByNodeNodeBuild
// getClusterQueueByNodeNodeCluster
// getClusterQueueByNodeNodeClusterQueue
// getClusterQueueByNodeNodeClusterQueueToken
// getClusterQueueByNodeNodeClusterToken
// getClusterQueueByNodeNodeCompositeRegistryUpstream
// getClusterQueueByNodeNodeEmail
// getClusterQueueByNodeNodeJobEventAssigned
// getClusterQueueByNodeNodeJobEventBuildStepUploadCreated
// getClusterQueueByNodeNodeJobEventCanceled
// getClusterQueueByNodeNodeJobEventFinished
// getClusterQueueByNodeNodeJobEventGeneric
// getClusterQueueByNodeNodeJobEventReprioritized
// getClusterQueueByNodeNodeJobEventRetried
// getClusterQueueByNodeNodeJobEventRetryFailed
// getClusterQueueByNodeNodeJobEventStackError
// getClusterQueueByNodeNodeJobEventStackNotification
// getClusterQueueByNodeNodeJobEventTimedOut
// getClusterQueueByNodeNodeJobTypeBlock
// getClusterQueueByNodeNodeJobTypeCommand
// getClusterQueueByNodeNodeJobTypeTrigger
// getClusterQueueByNodeNodeJobTypeWait
// getClusterQueueByNodeNodeNotificationServiceSlack
// getClusterQueueByNodeNodeOrganization
// getClusterQueueByNodeNodeOrganizationBanner
// getClusterQueueByNodeNodeOrganizationInvitation
// getClusterQueueByNodeNodeOrganizationMember
// getClusterQueueByNodeNodeOrganizationRepositoryProviderGitHub
// getClusterQueueByNodeNodeOrganizationRepositoryProviderGitHubEnterpriseServer
// getClusterQueueByNodeNodePipeline
// getClusterQueueByNodeNodePipelineMetric
// getClusterQueueByNodeNodePipelineSchedule
// getClusterQueueByNodeNodePipelineTemplate
// getClusterQueueByNodeNodeRegistry
// getClusterQueueByNodeNodeRegistryToken
// getClusterQueueByNodeNodeRule
// getClusterQueueByNodeNodeSSOProviderGitHubApp
// getClusterQueueByNodeNodeSSOProviderGoogleGSuite
// getClusterQueueByNodeNodeSSOProviderSAML
// getClusterQueueByNodeNodeSecret
// getClusterQueueByNodeNodeSuite
// getClusterQueueByNodeNodeTeam
// getClusterQueueByNodeNodeTeamMember
// getClusterQueueByNodeNodeTeamPipeline
// getClusterQueueByNodeNodeTeamRegistry
// getClusterQueueByNodeNodeTeamSuite
// getClusterQueueByNodeNodeUser
// getClusterQueueByNodeNodeViewer
// The GraphQL type's documentation follows.
//
// An object with an ID.
type getClusterQueueByNodeNode interface {
	implementsGraphQLInterfacegetClusterQueueByNodeNode()
	// GetTypename returns the receiver's concrete GraphQL type-name (see interface doc for possible values).
	GetTypename() string
}

func (v *getClusterQueueByNodeNodeAPIAccessToken) implementsGraphQLInterfacegetClusterQueueByNodeNode() {
}
func (v *getClusterQueueByNodeNodeAPIAccessTokenCode) implementsGraphQLInterfacegetClusterQueueByNodeNode() {
}
func (v *getClusterQueueByNodeNodeAPIApplication) implementsGraphQLInterfacegetClusterQueueByNodeNode() {
}
func (v *getClusterQueueByNodeNodeAgent) implementsGraphQLInterfacegetClusterQueueByNodeNode()      {}
func (v *getClusterQueueByNodeNodeAgentToken) implementsGraphQLInterfacegetClusterQueueByNodeNode() {}
func (v *getClusterQueueByNodeNodeAnnotation) implementsGraphQLInterfacegetClusterQueueByNodeNode() {}
func (v *getClusterQueueByNodeNodeArtifact) implementsGraphQLInterfacegetClusterQueueByNodeNode()   {}
func (v *getClusterQueueByNodeNodeAuditEvent) implementsGraphQLInterfacegetClusterQueueByNodeNode() {}
func (v *getClusterQueueByNodeNodeAuthorizationBitbucket) implementsGraphQLInterfacegetClusterQueueByNodeNode() {
}
func (v *getClusterQueueByNodeNodeAuthorizationGitHub) implementsGraphQLInterfacegetClusterQueueByNodeNode() {
}
func (v *getClusterQueueByNodeNodeAuthorizationGitHubApp) implementsGraphQLInterfacegetClusterQueueByNodeNode() {
}
func (v *getClusterQueueByNodeNodeAuthorizationGitHubEnterprise) implementsGraphQLInterfacegetClusterQueueByNodeNode() {
}
func (v *getClusterQueueByNodeNodeAuthorizationGoogle) implementsGraphQLInterfacegetClusterQueueByNodeNode() {
}
func (v *getClusterQueueByNodeNodeAuthorizationSAML) implementsGraphQLInterfacegetClusterQueueByNodeNode() {
}
func (v *getClusterQueueByNodeNodeBuild) implementsGraphQLInterfacegetClusterQueueByNodeNode()   {}
func (v *getClusterQueueByNodeNodeCluster) implementsGraphQLInterfacegetClusterQueueByNodeNode() {}
func (v *getClusterQueueByNodeNodeClusterQueue) implementsGraphQLInterfacegetClusterQueueByNodeNode() {
}
func (v *getClusterQueueByNodeNodeClusterQueueToken) implementsGraphQLInterfacegetClusterQueueByNodeNode() {
}
func (v *getClusterQueueByNodeNodeClusterToken) implementsGraphQLInterfacegetClusterQueueByNodeNode() {
}
func (v *getClusterQueueByNodeNodeCompositeRegistryUpstream) implementsGraphQLInterfacegetClusterQueueByNodeNode() {
}
func (v *getClusterQueueByNodeNodeEmail) implementsGraphQLInterfacegetClusterQueueByNodeNode() {}
func (v *getClusterQueueByNodeNodeJobEventAssigned) implementsGraphQLInterfacegetClusterQueueByNodeNode() {
}
func (v *getClusterQueueByNodeNodeJobEventBuildStepUploadCreated) implementsGraphQLInterfacegetClusterQueueByNodeNode() {
}
func (v *getClusterQueueByNodeNodeJobEventCanceled) implementsGraphQLInterfacegetClusterQueueByNodeNode() {
}
func (v *getClusterQueueByNodeNodeJobEventFinished) implementsGraphQLInterfacegetClusterQueueByNodeNode() {
}
func (v *getClusterQueueByNodeNodeJobEventGeneric) implementsGraphQLInterfacegetClusterQueueByNodeNode() {
}
func (v *getClusterQueueByNodeNodeJobEventReprioritized) implementsGraphQLInterfacegetClusterQueueByNodeNode() {
}
func (v *getClusterQueueByNodeNodeJobEventRetried) implementsGraphQLInterfacegetClusterQueueByNodeNode() {
}
func (v *getClusterQueueByNodeNodeJobEventRetryFailed) implementsGraphQLInterfacegetClusterQueueByNodeNode() {
}
func (v *getClusterQueueByNodeNodeJobEventStackError) implementsGraphQLInterfacegetClusterQueueByNodeNode() {
}
func (v *getClusterQueueByNodeNodeJobEventStackNotification) implementsGraphQLInterfacegetClusterQueueByNodeNode() {
}
func (v *getClusterQueueByNodeNodeJobEventTimedOut) implementsGraphQLInterfacegetClusterQueueByNodeNode() {
}
func (v *getClusterQueueByNodeNodeJobTypeBlock) implementsGraphQLInterfacegetClusterQueueByNodeNode() {
}
func (v *getClusterQueueByNodeNodeJobTypeCommand) implementsGraphQLInterfacegetClusterQueueByNodeNode() {
}
func (v *getClusterQueueByNodeNodeJobTypeTrigger) implementsGraphQLInterfacegetClusterQueueByNodeNode() {
}
func (v *getClusterQueueByNodeNodeJobTypeWait) implementsGraphQLInterfacegetClusterQueueByNodeNode() {
}
func (v *getClusterQueueByNodeNodeNotificationServiceSlack) implementsGraphQLInterfacegetClusterQueueByNodeNode() {
}
func (v *getClusterQueueByNodeNodeOrganization) implementsGraphQLInterfacegetClusterQueueByNodeNode() {
}
func (v *getClusterQueueByNodeNodeOrganizationBanner) implementsGraphQLInterfacegetClusterQueueByNodeNode() {
}
func (v *getClusterQueueByNodeNodeOrganizationInvitation) implementsGraphQLInterfacegetClusterQueueByNodeNode() {
}
func (v *getClusterQueueByNodeNodeOrganizationMember) implementsGraphQLInterfacegetClusterQueueByNodeNode() {
}
func (v *getClusterQueueByNodeNodeOrganizationRepositoryProviderGitHub) implementsGraphQLInterfacegetClusterQueueByNodeNode() {
}
func (v *getClusterQueueByNodeNodeOrganizationRepositoryProviderGitHubEnterpriseServer) implementsGraphQLInterfacegetClusterQueueByNodeNode() {
}
func (v *getClusterQueueByNodeNodePipeline) implementsGraphQLInterfacegetClusterQueueByNodeNode() {}
func (v *getClusterQueueByNodeNodePipelineMetric) implementsGraphQLInterfacegetClusterQueueByNodeNode() {
}
func (v *getClusterQueueByNodeNodePipelineSchedule) implementsGraphQLInterfacegetClusterQueueByNodeNode() {
}
func (v *getClusterQueueByNodeNodePipelineTemplate) implementsGraphQLInterfacegetClusterQueueByNodeNode() {
}
func (v *getClusterQueueByNodeNodeRegistry) implementsGraphQLInterfacegetClusterQueueByNodeNode() {}
func (v *getClusterQueueByNodeNodeRegistryToken) implementsGraphQLInterfacegetClusterQueueByNodeNode() {
}
func (v *getClusterQueueByNodeNodeRule) implementsGraphQLInterfacegetClusterQueueByNodeNode() {}
func (v *getClusterQueueByNodeNodeSSOProviderGitHubApp) implementsGraphQLInterfacegetClusterQueueByNodeNode() {
}
func (v *getClusterQueueByNodeNodeSSOProviderGoogleGSuite) implementsGraphQLInterfacegetClusterQueueByNodeNode() {
}
func (v *getClusterQueueByNodeNodeSSOProviderSAML) implementsGraphQLInterfacegetClusterQueueByNodeNode() {
}
func (v *getClusterQueueByNodeNodeSecret) implementsGraphQLInterfacegetClusterQueueByNodeNode()     {}
func (v *getClusterQueueByNodeNodeSuite) implementsGraphQLInterfacegetClusterQueueByNodeNode()      {}
func (v *getClusterQueueByNodeNodeTeam) implementsGraphQLInterfacegetClusterQueueByNodeNode()       {}
func (v *getClusterQueueByNodeNodeTeamMember) implementsGraphQLInterfacegetClusterQueueByNodeNode() {}
func (v *getClusterQueueByNodeNodeTeamPipeline) implementsGraphQLInterfacegetClusterQueueByNodeNode() {
}
func (v *getClusterQueueByNodeNodeTeamRegistry) implementsGraphQLInterfacegetClusterQueueByNodeNode() {
}
func (v *getClusterQueueByNodeNodeTeamSuite) implementsGraphQLInterfacegetClusterQueueByNodeNode() {}
func (v *getClusterQueueByNodeNodeUser) implementsGraphQLInterfacegetClusterQueueByNodeNode()      {}
func (v *getClusterQueueByNodeNodeViewer) implementsGraphQLInterfacegetClusterQueueByNodeNode()    {}

func __unmarshalgetClusterQueueByNodeNode(b []byte, v *getClusterQueueByNodeNode) 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(getClusterQueueByNodeNodeAPIAccessToken)
		return json.Unmarshal(b, *v)
	case "APIAccessTokenCode":
		*v = new(getClusterQueueByNodeNodeAPIAccessTokenCode)
		return json.Unmarshal(b, *v)
	case "APIApplication":
		*v = new(getClusterQueueByNodeNodeAPIApplication)
		return json.Unmarshal(b, *v)
	case "Agent":
		*v = new(getClusterQueueByNodeNodeAgent)
		return json.Unmarshal(b, *v)
	case "AgentToken":
		*v = new(getClusterQueueByNodeNodeAgentToken)
		return json.Unmarshal(b, *v)
	case "Annotation":
		*v = new(getClusterQueueByNodeNodeAnnotation)
		return json.Unmarshal(b, *v)
	case "Artifact":
		*v = new(getClusterQueueByNodeNodeArtifact)
		return json.Unmarshal(b, *v)
	case "AuditEvent":
		*v = new(getClusterQueueByNodeNodeAuditEvent)
		return json.Unmarshal(b, *v)
	case "AuthorizationBitbucket":
		*v = new(getClusterQueueByNodeNodeAuthorizationBitbucket)
		return json.Unmarshal(b, *v)
	case "AuthorizationGitHub":
		*v = new(getClusterQueueByNodeNodeAuthorizationGitHub)
		return json.Unmarshal(b, *v)
	case "AuthorizationGitHubApp":
		*v = new(getClusterQueueByNodeNodeAuthorizationGitHubApp)
		return json.Unmarshal(b, *v)
	case "AuthorizationGitHubEnterprise":
		*v = new(getClusterQueueByNodeNodeAuthorizationGitHubEnterprise)
		return json.Unmarshal(b, *v)
	case "AuthorizationGoogle":
		*v = new(getClusterQueueByNodeNodeAuthorizationGoogle)
		return json.Unmarshal(b, *v)
	case "AuthorizationSAML":
		*v = new(getClusterQueueByNodeNodeAuthorizationSAML)
		return json.Unmarshal(b, *v)
	case "Build":
		*v = new(getClusterQueueByNodeNodeBuild)
		return json.Unmarshal(b, *v)
	case "Cluster":
		*v = new(getClusterQueueByNodeNodeCluster)
		return json.Unmarshal(b, *v)
	case "ClusterQueue":
		*v = new(getClusterQueueByNodeNodeClusterQueue)
		return json.Unmarshal(b, *v)
	case "ClusterQueueToken":
		*v = new(getClusterQueueByNodeNodeClusterQueueToken)
		return json.Unmarshal(b, *v)
	case "ClusterToken":
		*v = new(getClusterQueueByNodeNodeClusterToken)
		return json.Unmarshal(b, *v)
	case "CompositeRegistryUpstream":
		*v = new(getClusterQueueByNodeNodeCompositeRegistryUpstream)
		return json.Unmarshal(b, *v)
	case "Email":
		*v = new(getClusterQueueByNodeNodeEmail)
		return json.Unmarshal(b, *v)
	case "JobEventAssigned":
		*v = new(getClusterQueueByNodeNodeJobEventAssigned)
		return json.Unmarshal(b, *v)
	case "JobEventBuildStepUploadCreated":
		*v = new(getClusterQueueByNodeNodeJobEventBuildStepUploadCreated)
		return json.Unmarshal(b, *v)
	case "JobEventCanceled":
		*v = new(getClusterQueueByNodeNodeJobEventCanceled)
		return json.Unmarshal(b, *v)
	case "JobEventFinished":
		*v = new(getClusterQueueByNodeNodeJobEventFinished)
		return json.Unmarshal(b, *v)
	case "JobEventGeneric":
		*v = new(getClusterQueueByNodeNodeJobEventGeneric)
		return json.Unmarshal(b, *v)
	case "JobEventReprioritized":
		*v = new(getClusterQueueByNodeNodeJobEventReprioritized)
		return json.Unmarshal(b, *v)
	case "JobEventRetried":
		*v = new(getClusterQueueByNodeNodeJobEventRetried)
		return json.Unmarshal(b, *v)
	case "JobEventRetryFailed":
		*v = new(getClusterQueueByNodeNodeJobEventRetryFailed)
		return json.Unmarshal(b, *v)
	case "JobEventStackError":
		*v = new(getClusterQueueByNodeNodeJobEventStackError)
		return json.Unmarshal(b, *v)
	case "JobEventStackNotification":
		*v = new(getClusterQueueByNodeNodeJobEventStackNotification)
		return json.Unmarshal(b, *v)
	case "JobEventTimedOut":
		*v = new(getClusterQueueByNodeNodeJobEventTimedOut)
		return json.Unmarshal(b, *v)
	case "JobTypeBlock":
		*v = new(getClusterQueueByNodeNodeJobTypeBlock)
		return json.Unmarshal(b, *v)
	case "JobTypeCommand":
		*v = new(getClusterQueueByNodeNodeJobTypeCommand)
		return json.Unmarshal(b, *v)
	case "JobTypeTrigger":
		*v = new(getClusterQueueByNodeNodeJobTypeTrigger)
		return json.Unmarshal(b, *v)
	case "JobTypeWait":
		*v = new(getClusterQueueByNodeNodeJobTypeWait)
		return json.Unmarshal(b, *v)
	case "NotificationServiceSlack":
		*v = new(getClusterQueueByNodeNodeNotificationServiceSlack)
		return json.Unmarshal(b, *v)
	case "Organization":
		*v = new(getClusterQueueByNodeNodeOrganization)
		return json.Unmarshal(b, *v)
	case "OrganizationBanner":
		*v = new(getClusterQueueByNodeNodeOrganizationBanner)
		return json.Unmarshal(b, *v)
	case "OrganizationInvitation":
		*v = new(getClusterQueueByNodeNodeOrganizationInvitation)
		return json.Unmarshal(b, *v)
	case "OrganizationMember":
		*v = new(getClusterQueueByNodeNodeOrganizationMember)
		return json.Unmarshal(b, *v)
	case "OrganizationRepositoryProviderGitHub":
		*v = new(getClusterQueueByNodeNodeOrganizationRepositoryProviderGitHub)
		return json.Unmarshal(b, *v)
	case "OrganizationRepositoryProviderGitHubEnterpriseServer":
		*v = new(getClusterQueueByNodeNodeOrganizationRepositoryProviderGitHubEnterpriseServer)
		return json.Unmarshal(b, *v)
	case "Pipeline":
		*v = new(getClusterQueueByNodeNodePipeline)
		return json.Unmarshal(b, *v)
	case "PipelineMetric":
		*v = new(getClusterQueueByNodeNodePipelineMetric)
		return json.Unmarshal(b, *v)
	case "PipelineSchedule":
		*v = new(getClusterQueueByNodeNodePipelineSchedule)
		return json.Unmarshal(b, *v)
	case "PipelineTemplate":
		*v = new(getClusterQueueByNodeNodePipelineTemplate)
		return json.Unmarshal(b, *v)
	case "Registry":
		*v = new(getClusterQueueByNodeNodeRegistry)
		return json.Unmarshal(b, *v)
	case "RegistryToken":
		*v = new(getClusterQueueByNodeNodeRegistryToken)
		return json.Unmarshal(b, *v)
	case "Rule":
		*v = new(getClusterQueueByNodeNodeRule)
		return json.Unmarshal(b, *v)
	case "SSOProviderGitHubApp":
		*v = new(getClusterQueueByNodeNodeSSOProviderGitHubApp)
		return json.Unmarshal(b, *v)
	case "SSOProviderGoogleGSuite":
		*v = new(getClusterQueueByNodeNodeSSOProviderGoogleGSuite)
		return json.Unmarshal(b, *v)
	case "SSOProviderSAML":
		*v = new(getClusterQueueByNodeNodeSSOProviderSAML)
		return json.Unmarshal(b, *v)
	case "Secret":
		*v = new(getClusterQueueByNodeNodeSecret)
		return json.Unmarshal(b, *v)
	case "Suite":
		*v = new(getClusterQueueByNodeNodeSuite)
		return json.Unmarshal(b, *v)
	case "Team":
		*v = new(getClusterQueueByNodeNodeTeam)
		return json.Unmarshal(b, *v)
	case "TeamMember":
		*v = new(getClusterQueueByNodeNodeTeamMember)
		return json.Unmarshal(b, *v)
	case "TeamPipeline":
		*v = new(getClusterQueueByNodeNodeTeamPipeline)
		return json.Unmarshal(b, *v)
	case "TeamRegistry":
		*v = new(getClusterQueueByNodeNodeTeamRegistry)
		return json.Unmarshal(b, *v)
	case "TeamSuite":
		*v = new(getClusterQueueByNodeNodeTeamSuite)
		return json.Unmarshal(b, *v)
	case "User":
		*v = new(getClusterQueueByNodeNodeUser)
		return json.Unmarshal(b, *v)
	case "Viewer":
		*v = new(getClusterQueueByNodeNodeViewer)
		return json.Unmarshal(b, *v)
	case "":
		return fmt.Errorf(
			"response was missing Node.__typename")
	default:
		return fmt.Errorf(
			`unexpected concrete type for getClusterQueueByNodeNode: "%v"`, tn.TypeName)
	}
}

func __marshalgetClusterQueueByNodeNode(v *getClusterQueueByNodeNode) ([]byte, error) {

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

		premarshaled, err := v.__premarshalJSON()
		if err != nil {
			return nil, err
		}
		result := struct {
			TypeName string `json:"__typename"`
			*__premarshalgetClusterQueueByNodeNodeClusterQueue
		}{typename, premarshaled}
		return json.Marshal(result)
	case *getClusterQueueByNodeNodeClusterQueueToken:
		typename = "ClusterQueueToken"

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

		result := struct {
			TypeName string `json:"__typename"`
			*getClusterQueueByNodeNodeClusterToken
		}{typename, v}
		return json.Marshal(result)
	case *getClusterQueueByNodeNodeCompositeRegistryUpstream:
		typename = "CompositeRegistryUpstream"

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

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

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

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

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

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

		result := struct {
			TypeName string `json:"__typename"`
			*getClusterQueueByNodeNodeJobEventGeneric
		}{typename, v}
		return json.Marshal(result)
	case *getClusterQueueByNodeNodeJobEventReprioritized:
		typename = "JobEventReprioritized"

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

		result := struct {
			TypeName string `json:"__typename"`
			*getClusterQueueByNodeNodeJobEventRetried
		}{typename, v}
		return json.Marshal(result)
	case *getClusterQueueByNodeNodeJobEventRetryFailed:
		typename = "JobEventRetryFailed"

		result := struct {
			TypeName string `json:"__typename"`
			*getClusterQueueByNodeNodeJobEventRetryFailed
		}{typename, v}
		return json.Marshal(result)
	case *getClusterQueueByNodeNodeJobEventStackError:
		typename = "JobEventStackError"

		result := struct {
			TypeName string `json:"__typename"`
			*getClusterQueueByNodeNodeJobEventStackError
		}{typename, v}
		return json.Marshal(result)
	case *getClusterQueueByNodeNodeJobEventStackNotification:
		typename = "JobEventStackNotification"

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

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

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

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

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

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

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

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

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

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

		result := struct {
			TypeName string `json:"__typename"`
			*getClusterQueueByNodeNodeOrganizationMember
		}{typename, v}
		return json.Marshal(result)
	case *getClusterQueueByNodeNodeOrganizationRepositoryProviderGitHub:
		typename = "OrganizationRepositoryProviderGitHub"

		result := struct {
			TypeName string `json:"__typename"`
			*getClusterQueueByNodeNodeOrganizationRepositoryProviderGitHub
		}{typename, v}
		return json.Marshal(result)
	case *getClusterQueueByNodeNodeOrganizationRepositoryProviderGitHubEnterpriseServer:
		typename = "OrganizationRepositoryProviderGitHubEnterpriseServer"

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

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

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

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

		result := struct {
			TypeName string `json:"__typename"`
			*getClusterQueueByNodeNodePipelineTemplate
		}{typename, v}
		return json.Marshal(result)
	case *getClusterQueueByNodeNodeRegistry:
		typename = "Registry"

		result := struct {
			TypeName string `json:"__typename"`
			*getClusterQueueByNodeNodeRegistry
		}{typename, v}
		return json.Marshal(result)
	case *getClusterQueueByNodeNodeRegistryToken:
		typename = "RegistryToken"

		result := struct {
			TypeName string `json:"__typename"`
			*getClusterQueueByNodeNodeRegistryToken
		}{typename, v}
		return json.Marshal(result)
	case *getClusterQueueByNodeNodeRule:
		typename = "Rule"

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

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

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

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

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

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

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

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

		result := struct {
			TypeName string `json:"__typename"`
			*getClusterQueueByNodeNodeTeamPipeline
		}{typename, v}
		return json.Marshal(result)
	case *getClusterQueueByNodeNodeTeamRegistry:
		typename = "TeamRegistry"

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

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

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

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

// getClusterQueueByNodeNodeAPIAccessToken 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 getClusterQueueByNodeNodeAPIAccessToken struct {
	Typename string `json:"__typename"`
}

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

// getClusterQueueByNodeNodeAPIAccessTokenCode 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 getClusterQueueByNodeNodeAPIAccessTokenCode struct {
	Typename string `json:"__typename"`
}

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

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

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

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

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

// getClusterQueueByNodeNodeAgentToken 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 getClusterQueueByNodeNodeAgentToken struct {
	Typename string `json:"__typename"`
}

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

// getClusterQueueByNodeNodeAnnotation 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 getClusterQueueByNodeNodeAnnotation struct {
	Typename string `json:"__typename"`
}

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

// getClusterQueueByNodeNodeArtifact 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 getClusterQueueByNodeNodeArtifact struct {
	Typename string `json:"__typename"`
}

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

// getClusterQueueByNodeNodeAuditEvent 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 getClusterQueueByNodeNodeAuditEvent struct {
	Typename string `json:"__typename"`
}

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

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

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

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

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

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

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

// getClusterQueueByNodeNodeAuthorizationGitHubEnterprise 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 getClusterQueueByNodeNodeAuthorizationGitHubEnterprise struct {
	Typename string `json:"__typename"`
}

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

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

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

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

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

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

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

// getClusterQueueByNodeNodeCluster includes the requested fields of the GraphQL type Cluster.
type getClusterQueueByNodeNodeCluster struct {
	Typename string `json:"__typename"`
}

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

// getClusterQueueByNodeNodeClusterQueue includes the requested fields of the GraphQL type ClusterQueue.
type getClusterQueueByNodeNodeClusterQueue struct {
	Typename           string `json:"__typename"`
	ClusterQueueValues `json:"-"`
	// States whether job dispatch is paused for this cluster queue
	DispatchPaused bool `json:"dispatchPaused"`
	// The time this queue was paused
	DispatchPausedAt *time.Time `json:"dispatchPausedAt"`
	// The user who paused this cluster queue
	DispatchPausedBy *getClusterQueueByNodeNodeClusterQueueDispatchPausedByUser `json:"dispatchPausedBy"`
	// Note describing why job dispatch was paused for this cluster queue
	DispatchPausedNote *string `json:"dispatchPausedNote"`
}

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

// GetDispatchPaused returns getClusterQueueByNodeNodeClusterQueue.DispatchPaused, and is useful for accessing the field via an interface.
func (v *getClusterQueueByNodeNodeClusterQueue) GetDispatchPaused() bool { return v.DispatchPaused }

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

// GetDispatchPausedBy returns getClusterQueueByNodeNodeClusterQueue.DispatchPausedBy, and is useful for accessing the field via an interface.
func (v *getClusterQueueByNodeNodeClusterQueue) GetDispatchPausedBy() *getClusterQueueByNodeNodeClusterQueueDispatchPausedByUser {
	return v.DispatchPausedBy
}

// GetDispatchPausedNote returns getClusterQueueByNodeNodeClusterQueue.DispatchPausedNote, and is useful for accessing the field via an interface.
func (v *getClusterQueueByNodeNodeClusterQueue) GetDispatchPausedNote() *string {
	return v.DispatchPausedNote
}

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

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

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

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

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

// GetHosted returns getClusterQueueByNodeNodeClusterQueue.Hosted, and is useful for accessing the field via an interface.
func (v *getClusterQueueByNodeNodeClusterQueue) GetHosted() bool { return v.ClusterQueueValues.Hosted }

// GetHostedAgents returns getClusterQueueByNodeNodeClusterQueue.HostedAgents, and is useful for accessing the field via an interface.
func (v *getClusterQueueByNodeNodeClusterQueue) GetHostedAgents() ClusterQueueValuesHostedAgentsHostedAgentQueueSettings {
	return v.ClusterQueueValues.HostedAgents
}

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

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

	var firstPass struct {
		*getClusterQueueByNodeNodeClusterQueue
		graphql.NoUnmarshalJSON
	}
	firstPass.getClusterQueueByNodeNodeClusterQueue = v

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

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

type __premarshalgetClusterQueueByNodeNodeClusterQueue struct {
	Typename string `json:"__typename"`

	DispatchPaused bool `json:"dispatchPaused"`

	DispatchPausedAt *time.Time `json:"dispatchPausedAt"`

	DispatchPausedBy *getClusterQueueByNodeNodeClusterQueueDispatchPausedByUser `json:"dispatchPausedBy"`

	DispatchPausedNote *string `json:"dispatchPausedNote"`

	Id string `json:"id"`

	Uuid string `json:"uuid"`

	Key string `json:"key"`

	Description *string `json:"description"`

	Cluster ClusterQueueValuesCluster `json:"cluster"`

	Hosted bool `json:"hosted"`

	HostedAgents ClusterQueueValuesHostedAgentsHostedAgentQueueSettings `json:"hostedAgents"`
}

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

func (v *getClusterQueueByNodeNodeClusterQueue) __premarshalJSON() (*__premarshalgetClusterQueueByNodeNodeClusterQueue, error) {
	var retval __premarshalgetClusterQueueByNodeNodeClusterQueue

	retval.Typename = v.Typename
	retval.DispatchPaused = v.DispatchPaused
	retval.DispatchPausedAt = v.DispatchPausedAt
	retval.DispatchPausedBy = v.DispatchPausedBy
	retval.DispatchPausedNote = v.DispatchPausedNote
	retval.Id = v.ClusterQueueValues.Id
	retval.Uuid = v.ClusterQueueValues.Uuid
	retval.Key = v.ClusterQueueValues.Key
	retval.Description = v.ClusterQueueValues.Description
	retval.Cluster = v.ClusterQueueValues.Cluster
	retval.Hosted = v.ClusterQueueValues.Hosted
	retval.HostedAgents = v.ClusterQueueValues.HostedAgents
	return &retval, nil
}

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

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

// getClusterQueueByNodeNodeClusterQueueToken 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 getClusterQueueByNodeNodeClusterQueueToken struct {
	Typename string `json:"__typename"`
}

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

// getClusterQueueByNodeNodeClusterToken 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 getClusterQueueByNodeNodeClusterToken struct {
	Typename string `json:"__typename"`
}

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

// getClusterQueueByNodeNodeCompositeRegistryUpstream includes the requested fields of the GraphQL type CompositeRegistryUpstream.
// The GraphQL type's documentation follows.
//
// A composite registry's upstream
type getClusterQueueByNodeNodeCompositeRegistryUpstream struct {
	Typename string `json:"__typename"`
}

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

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

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

// getClusterQueueByNodeNodeJobEventAssigned 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 getClusterQueueByNodeNodeJobEventAssigned struct {
	Typename string `json:"__typename"`
}

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

// getClusterQueueByNodeNodeJobEventBuildStepUploadCreated 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 getClusterQueueByNodeNodeJobEventBuildStepUploadCreated struct {
	Typename string `json:"__typename"`
}

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

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

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

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

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

// getClusterQueueByNodeNodeJobEventGeneric 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 getClusterQueueByNodeNodeJobEventGeneric struct {
	Typename string `json:"__typename"`
}

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

// getClusterQueueByNodeNodeJobEventReprioritized includes the requested fields of the GraphQL type JobEventReprioritized.
// The GraphQL type's documentation follows.
//
// A job event for when a job's priority has been changed
type getClusterQueueByNodeNodeJobEventReprioritized struct {
	Typename string `json:"__typename"`
}

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

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

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

// getClusterQueueByNodeNodeJobEventRetryFailed includes the requested fields of the GraphQL type JobEventRetryFailed.
// The GraphQL type's documentation follows.
//
// An event created when job fails to retry
type getClusterQueueByNodeNodeJobEventRetryFailed struct {
	Typename string `json:"__typename"`
}

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

// getClusterQueueByNodeNodeJobEventStackError includes the requested fields of the GraphQL type JobEventStackError.
// The GraphQL type's documentation follows.
//
// An event created when a stack error is reported
type getClusterQueueByNodeNodeJobEventStackError struct {
	Typename string `json:"__typename"`
}

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

// getClusterQueueByNodeNodeJobEventStackNotification includes the requested fields of the GraphQL type JobEventStackNotification.
// The GraphQL type's documentation follows.
//
// An event created when a stack notification is triggered
type getClusterQueueByNodeNodeJobEventStackNotification struct {
	Typename string `json:"__typename"`
}

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

// getClusterQueueByNodeNodeJobEventTimedOut 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 getClusterQueueByNodeNodeJobEventTimedOut struct {
	Typename string `json:"__typename"`
}

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

// getClusterQueueByNodeNodeJobTypeBlock 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 getClusterQueueByNodeNodeJobTypeBlock struct {
	Typename string `json:"__typename"`
}

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

// getClusterQueueByNodeNodeJobTypeCommand 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 getClusterQueueByNodeNodeJobTypeCommand struct {
	Typename string `json:"__typename"`
}

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

// getClusterQueueByNodeNodeJobTypeTrigger 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 getClusterQueueByNodeNodeJobTypeTrigger struct {
	Typename string `json:"__typename"`
}

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

// getClusterQueueByNodeNodeJobTypeWait 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 getClusterQueueByNodeNodeJobTypeWait struct {
	Typename string `json:"__typename"`
}

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

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

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

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

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

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

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

// getClusterQueueByNodeNodeOrganizationInvitation 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 getClusterQueueByNodeNodeOrganizationInvitation struct {
	Typename string `json:"__typename"`
}

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

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

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

// getClusterQueueByNodeNodeOrganizationRepositoryProviderGitHub includes the requested fields of the GraphQL type OrganizationRepositoryProviderGitHub.
// The GraphQL type's documentation follows.
//
// GitHub installation associated with this organization
type getClusterQueueByNodeNodeOrganizationRepositoryProviderGitHub struct {
	Typename string `json:"__typename"`
}

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

// getClusterQueueByNodeNodeOrganizationRepositoryProviderGitHubEnterpriseServer includes the requested fields of the GraphQL type OrganizationRepositoryProviderGitHubEnterpriseServer.
// The GraphQL type's documentation follows.
//
// GitHub Enterprise Server associated with this organization
type getClusterQueueByNodeNodeOrganizationRepositoryProviderGitHubEnterpriseServer struct {
	Typename string `json:"__typename"`
}

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

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

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

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

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

// getClusterQueueByNodeNodePipelineSchedule 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 getClusterQueueByNodeNodePipelineSchedule struct {
	Typename string `json:"__typename"`
}

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

// getClusterQueueByNodeNodePipelineTemplate 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 getClusterQueueByNodeNodePipelineTemplate struct {
	Typename string `json:"__typename"`
}

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

// getClusterQueueByNodeNodeRegistry includes the requested fields of the GraphQL type Registry.
// The GraphQL type's documentation follows.
//
// A registry
type getClusterQueueByNodeNodeRegistry struct {
	Typename string `json:"__typename"`
}

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

// getClusterQueueByNodeNodeRegistryToken includes the requested fields of the GraphQL type RegistryToken.
// The GraphQL type's documentation follows.
//
// A registry token
type getClusterQueueByNodeNodeRegistryToken struct {
	Typename string `json:"__typename"`
}

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

// getClusterQueueByNodeNodeRule includes the requested fields of the GraphQL type Rule.
type getClusterQueueByNodeNodeRule struct {
	Typename string `json:"__typename"`
}

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

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

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

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

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

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

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

// getClusterQueueByNodeNodeSecret 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 getClusterQueueByNodeNodeSecret struct {
	Typename string `json:"__typename"`
}

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

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

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

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

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

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

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

// getClusterQueueByNodeNodeTeamPipeline 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 getClusterQueueByNodeNodeTeamPipeline struct {
	Typename string `json:"__typename"`
}

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

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

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

// getClusterQueueByNodeNodeTeamSuite 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 getClusterQueueByNodeNodeTeamSuite struct {
	Typename string `json:"__typename"`
}

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

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

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

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

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

// getClusterQueueByNodeResponse is returned by getClusterQueueByNode on success.
type getClusterQueueByNodeResponse struct {
	// Fetches an object given its ID.
	Node getClusterQueueByNodeNode `json:"-"`
}

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

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

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

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

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

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

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

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

func (v *getClusterQueueByNodeResponse) __premarshalJSON() (*__premarshalgetClusterQueueByNodeResponse, error) {
	var retval __premarshalgetClusterQueueByNodeResponse

	{

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

// 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 {
	Queues getClusterQueuesOrganizationClusterQueuesClusterQueueConnection `json:"queues"`
}

// 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 {
	PageInfo getClusterQueuesOrganizationClusterQueuesClusterQueueConnectionPageInfo                `json:"pageInfo"`
	Edges    []getClusterQueuesOrganizationClusterQueuesClusterQueueConnectionEdgesClusterQueueEdge `json:"edges"`
}

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

// 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 {
	ClusterQueueValues `json:"-"`
	// States whether job dispatch is paused for this cluster queue
	DispatchPaused bool `json:"dispatchPaused"`
	// The time this queue was paused
	DispatchPausedAt *time.Time `json:"dispatchPausedAt"`
	// The user who paused this cluster queue
	DispatchPausedBy *getClusterQueuesOrganizationClusterQueuesClusterQueueConnectionEdgesClusterQueueEdgeNodeClusterQueueDispatchPausedByUser `json:"dispatchPausedBy"`
	// Note describing why job dispatch was paused for this cluster queue
	DispatchPausedNote *string `json:"dispatchPausedNote"`
}

// GetDispatchPaused returns getClusterQueuesOrganizationClusterQueuesClusterQueueConnectionEdgesClusterQueueEdgeNodeClusterQueue.DispatchPaused, and is useful for accessing the field via an interface.
func (v *getClusterQueuesOrganizationClusterQueuesClusterQueueConnectionEdgesClusterQueueEdgeNodeClusterQueue) GetDispatchPaused() bool {
	return v.DispatchPaused
}

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

// GetDispatchPausedBy returns getClusterQueuesOrganizationClusterQueuesClusterQueueConnectionEdgesClusterQueueEdgeNodeClusterQueue.DispatchPausedBy, and is useful for accessing the field via an interface.
func (v *getClusterQueuesOrganizationClusterQueuesClusterQueueConnectionEdgesClusterQueueEdgeNodeClusterQueue) GetDispatchPausedBy() *getClusterQueuesOrganizationClusterQueuesClusterQueueConnectionEdgesClusterQueueEdgeNodeClusterQueueDispatchPausedByUser {
	return v.DispatchPausedBy
}

// GetDispatchPausedNote returns getClusterQueuesOrganizationClusterQueuesClusterQueueConnectionEdgesClusterQueueEdgeNodeClusterQueue.DispatchPausedNote, and is useful for accessing the field via an interface.
func (v *getClusterQueuesOrganizationClusterQueuesClusterQueueConnectionEdgesClusterQueueEdgeNodeClusterQueue) GetDispatchPausedNote() *string {
	return v.DispatchPausedNote
}

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

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

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

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

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

// GetHosted returns getClusterQueuesOrganizationClusterQueuesClusterQueueConnectionEdgesClusterQueueEdgeNodeClusterQueue.Hosted, and is useful for accessing the field via an interface.
func (v *getClusterQueuesOrganizationClusterQueuesClusterQueueConnectionEdgesClusterQueueEdgeNodeClusterQueue) GetHosted() bool {
	return v.ClusterQueueValues.Hosted
}

// GetHostedAgents returns getClusterQueuesOrganizationClusterQueuesClusterQueueConnectionEdgesClusterQueueEdgeNodeClusterQueue.HostedAgents, and is useful for accessing the field via an interface.
func (v *getClusterQueuesOrganizationClusterQueuesClusterQueueConnectionEdgesClusterQueueEdgeNodeClusterQueue) GetHostedAgents() ClusterQueueValuesHostedAgentsHostedAgentQueueSettings {
	return v.ClusterQueueValues.HostedAgents
}

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

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

	var firstPass struct {
		*getClusterQueuesOrganizationClusterQueuesClusterQueueConnectionEdgesClusterQueueEdgeNodeClusterQueue
		graphql.NoUnmarshalJSON
	}
	firstPass.getClusterQueuesOrganizationClusterQueuesClusterQueueConnectionEdgesClusterQueueEdgeNodeClusterQueue = v

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

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

type __premarshalgetClusterQueuesOrganizationClusterQueuesClusterQueueConnectionEdgesClusterQueueEdgeNodeClusterQueue struct {
	DispatchPaused bool `json:"dispatchPaused"`

	DispatchPausedAt *time.Time `json:"dispatchPausedAt"`

	DispatchPausedBy *getClusterQueuesOrganizationClusterQueuesClusterQueueConnectionEdgesClusterQueueEdgeNodeClusterQueueDispatchPausedByUser `json:"dispatchPausedBy"`

	DispatchPausedNote *string `json:"dispatchPausedNote"`

	Id string `json:"id"`

	Uuid string `json:"uuid"`

	Key string `json:"key"`

	Description *string `json:"description"`

	Cluster ClusterQueueValuesCluster `json:"cluster"`

	Hosted bool `json:"hosted"`

	HostedAgents ClusterQueueValuesHostedAgentsHostedAgentQueueSettings `json:"hostedAgents"`
}

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

func (v *getClusterQueuesOrganizationClusterQueuesClusterQueueConnectionEdgesClusterQueueEdgeNodeClusterQueue) __premarshalJSON() (*__premarshalgetClusterQueuesOrganizationClusterQueuesClusterQueueConnectionEdgesClusterQueueEdgeNodeClusterQueue, error) {
	var retval __premarshalgetClusterQueuesOrganizationClusterQueuesClusterQueueConnectionEdgesClusterQueueEdgeNodeClusterQueue

	retval.DispatchPaused = v.DispatchPaused
	retval.DispatchPausedAt = v.DispatchPausedAt
	retval.DispatchPausedBy = v.DispatchPausedBy
	retval.DispatchPausedNote = v.DispatchPausedNote
	retval.Id = v.ClusterQueueValues.Id
	retval.Uuid = v.ClusterQueueValues.Uuid
	retval.Key = v.ClusterQueueValues.Key
	retval.Description = v.ClusterQueueValues.Description
	retval.Cluster = v.ClusterQueueValues.Cluster
	retval.Hosted = v.ClusterQueueValues.Hosted
	retval.HostedAgents = v.ClusterQueueValues.HostedAgents
	return &retval, nil
}

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

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

// getClusterQueuesOrganizationClusterQueuesClusterQueueConnectionPageInfo includes the requested fields of the GraphQL type PageInfo.
// The GraphQL type's documentation follows.
//
// Information about pagination in a connection.
type getClusterQueuesOrganizationClusterQueuesClusterQueueConnectionPageInfo 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 getClusterQueuesOrganizationClusterQueuesClusterQueueConnectionPageInfo.EndCursor, and is useful for accessing the field via an interface.
func (v *getClusterQueuesOrganizationClusterQueuesClusterQueueConnectionPageInfo) GetEndCursor() string {
	return v.EndCursor
}

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

// 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
}

// getNodeNode includes the requested fields of the GraphQL interface Node.
//
// getNodeNode is implemented by the following types:
// getNodeNodeAPIAccessToken
// getNodeNodeAPIAccessTokenCode
// getNodeNodeAPIApplication
// getNodeNodeAgent
// getNodeNodeAgentToken
// getNodeNodeAnnotation
// getNodeNodeArtifact
// getNodeNodeAuditEvent
// getNodeNodeAuthorizationBitbucket
// getNodeNodeAuthorizationGitHub
// getNodeNodeAuthorizationGitHubApp
// getNodeNodeAuthorizationGitHubEnterprise
// getNodeNodeAuthorizationGoogle
// getNodeNodeAuthorizationSAML
// getNodeNodeBuild
// getNodeNodeCluster
// getNodeNodeClusterQueue
// getNodeNodeClusterQueueToken
// getNodeNodeClusterToken
// getNodeNodeCompositeRegistryUpstream
// getNodeNodeEmail
// getNodeNodeJobEventAssigned
// getNodeNodeJobEventBuildStepUploadCreated
// getNodeNodeJobEventCanceled
// getNodeNodeJobEventFinished
// getNodeNodeJobEventGeneric
// getNodeNodeJobEventReprioritized
// getNodeNodeJobEventRetried
// getNodeNodeJobEventRetryFailed
// getNodeNodeJobEventStackError
// getNodeNodeJobEventStackNotification
// getNodeNodeJobEventTimedOut
// getNodeNodeJobTypeBlock
// getNodeNodeJobTypeCommand
// getNodeNodeJobTypeTrigger
// getNodeNodeJobTypeWait
// getNodeNodeNotificationServiceSlack
// getNodeNodeOrganization
// getNodeNodeOrganizationBanner
// getNodeNodeOrganizationInvitation
// getNodeNodeOrganizationMember
// getNodeNodeOrganizationRepositoryProviderGitHub
// getNodeNodeOrganizationRepositoryProviderGitHubEnterpriseServer
// getNodeNodePipeline
// getNodeNodePipelineMetric
// getNodeNodePipelineSchedule
// getNodeNodePipelineTemplate
// getNodeNodeRegistry
// getNodeNodeRegistryToken
// getNodeNodeRule
// getNodeNodeSSOProviderGitHubApp
// getNodeNodeSSOProviderGoogleGSuite
// getNodeNodeSSOProviderSAML
// getNodeNodeSecret
// getNodeNodeSuite
// getNodeNodeTeam
// getNodeNodeTeamMember
// getNodeNodeTeamPipeline
// getNodeNodeTeamRegistry
// getNodeNodeTeamSuite
// getNodeNodeUser
// getNodeNodeViewer
// The GraphQL type's documentation follows.
//
// An object with an ID.
type getNodeNode interface {
	implementsGraphQLInterfacegetNodeNode()
	// GetTypename returns the receiver's concrete GraphQL type-name (see interface doc for possible values).
	GetTypename() string
}

func (v *getNodeNodeAPIAccessToken) implementsGraphQLInterfacegetNodeNode()                       {}
func (v *getNodeNodeAPIAccessTokenCode) implementsGraphQLInterfacegetNodeNode()                   {}
func (v *getNodeNodeAPIApplication) implementsGraphQLInterfacegetNodeNode()                       {}
func (v *getNodeNodeAgent) implementsGraphQLInterfacegetNodeNode()                                {}
func (v *getNodeNodeAgentToken) implementsGraphQLInterfacegetNodeNode()                           {}
func (v *getNodeNodeAnnotation) implementsGraphQLInterfacegetNodeNode()                           {}
func (v *getNodeNodeArtifact) implementsGraphQLInterfacegetNodeNode()                             {}
func (v *getNodeNodeAuditEvent) implementsGraphQLInterfacegetNodeNode()                           {}
func (v *getNodeNodeAuthorizationBitbucket) implementsGraphQLInterfacegetNodeNode()               {}
func (v *getNodeNodeAuthorizationGitHub) implementsGraphQLInterfacegetNodeNode()                  {}
func (v *getNodeNodeAuthorizationGitHubApp) implementsGraphQLInterfacegetNodeNode()               {}
func (v *getNodeNodeAuthorizationGitHubEnterprise) implementsGraphQLInterfacegetNodeNode()        {}
func (v *getNodeNodeAuthorizationGoogle) implementsGraphQLInterfacegetNodeNode()                  {}
func (v *getNodeNodeAuthorizationSAML) implementsGraphQLInterfacegetNodeNode()                    {}
func (v *getNodeNodeBuild) implementsGraphQLInterfacegetNodeNode()                                {}
func (v *getNodeNodeCluster) implementsGraphQLInterfacegetNodeNode()                              {}
func (v *getNodeNodeClusterQueue) implementsGraphQLInterfacegetNodeNode()                         {}
func (v *getNodeNodeClusterQueueToken) implementsGraphQLInterfacegetNodeNode()                    {}
func (v *getNodeNodeClusterToken) implementsGraphQLInterfacegetNodeNode()                         {}
func (v *getNodeNodeCompositeRegistryUpstream) implementsGraphQLInterfacegetNodeNode()            {}
func (v *getNodeNodeEmail) implementsGraphQLInterfacegetNodeNode()                                {}
func (v *getNodeNodeJobEventAssigned) implementsGraphQLInterfacegetNodeNode()                     {}
func (v *getNodeNodeJobEventBuildStepUploadCreated) implementsGraphQLInterfacegetNodeNode()       {}
func (v *getNodeNodeJobEventCanceled) implementsGraphQLInterfacegetNodeNode()                     {}
func (v *getNodeNodeJobEventFinished) implementsGraphQLInterfacegetNodeNode()                     {}
func (v *getNodeNodeJobEventGeneric) implementsGraphQLInterfacegetNodeNode()                      {}
func (v *getNodeNodeJobEventReprioritized) implementsGraphQLInterfacegetNodeNode()                {}
func (v *getNodeNodeJobEventRetried) implementsGraphQLInterfacegetNodeNode()                      {}
func (v *getNodeNodeJobEventRetryFailed) implementsGraphQLInterfacegetNodeNode()                  {}
func (v *getNodeNodeJobEventStackError) implementsGraphQLInterfacegetNodeNode()                   {}
func (v *getNodeNodeJobEventStackNotification) implementsGraphQLInterfacegetNodeNode()            {}
func (v *getNodeNodeJobEventTimedOut) implementsGraphQLInterfacegetNodeNode()                     {}
func (v *getNodeNodeJobTypeBlock) implementsGraphQLInterfacegetNodeNode()                         {}
func (v *getNodeNodeJobTypeCommand) implementsGraphQLInterfacegetNodeNode()                       {}
func (v *getNodeNodeJobTypeTrigger) implementsGraphQLInterfacegetNodeNode()                       {}
func (v *getNodeNodeJobTypeWait) implementsGraphQLInterfacegetNodeNode()                          {}
func (v *getNodeNodeNotificationServiceSlack) implementsGraphQLInterfacegetNodeNode()             {}
func (v *getNodeNodeOrganization) implementsGraphQLInterfacegetNodeNode()                         {}
func (v *getNodeNodeOrganizationBanner) implementsGraphQLInterfacegetNodeNode()                   {}
func (v *getNodeNodeOrganizationInvitation) implementsGraphQLInterfacegetNodeNode()               {}
func (v *getNodeNodeOrganizationMember) implementsGraphQLInterfacegetNodeNode()                   {}
func (v *getNodeNodeOrganizationRepositoryProviderGitHub) implementsGraphQLInterfacegetNodeNode() {}
func (v *getNodeNodeOrganizationRepositoryProviderGitHubEnterpriseServer) implementsGraphQLInterfacegetNodeNode() {
}
func (v *getNodeNodePipeline) implementsGraphQLInterfacegetNodeNode()                {}
func (v *getNodeNodePipelineMetric) implementsGraphQLInterfacegetNodeNode()          {}
func (v *getNodeNodePipelineSchedule) implementsGraphQLInterfacegetNodeNode()        {}
func (v *getNodeNodePipelineTemplate) implementsGraphQLInterfacegetNodeNode()        {}
func (v *getNodeNodeRegistry) implementsGraphQLInterfacegetNodeNode()                {}
func (v *getNodeNodeRegistryToken) implementsGraphQLInterfacegetNodeNode()           {}
func (v *getNodeNodeRule) implementsGraphQLInterfacegetNodeNode()                    {}
func (v *getNodeNodeSSOProviderGitHubApp) implementsGraphQLInterfacegetNodeNode()    {}
func (v *getNodeNodeSSOProviderGoogleGSuite) implementsGraphQLInterfacegetNodeNode() {}
func (v *getNodeNodeSSOProviderSAML) implementsGraphQLInterfacegetNodeNode()         {}
func (v *getNodeNodeSecret) implementsGraphQLInterfacegetNodeNode()                  {}
func (v *getNodeNodeSuite) implementsGraphQLInterfacegetNodeNode()                   {}
func (v *getNodeNodeTeam) implementsGraphQLInterfacegetNodeNode()                    {}
func (v *getNodeNodeTeamMember) implementsGraphQLInterfacegetNodeNode()              {}
func (v *getNodeNodeTeamPipeline) implementsGraphQLInterfacegetNodeNode()            {}
func (v *getNodeNodeTeamRegistry) implementsGraphQLInterfacegetNodeNode()            {}
func (v *getNodeNodeTeamSuite) implementsGraphQLInterfacegetNodeNode()               {}
func (v *getNodeNodeUser) implementsGraphQLInterfacegetNodeNode()                    {}
func (v *getNodeNodeViewer) implementsGraphQLInterfacegetNodeNode()                  {}

func __unmarshalgetNodeNode(b []byte, v *getNodeNode) 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(getNodeNodeAPIAccessToken)
		return json.Unmarshal(b, *v)
	case "APIAccessTokenCode":
		*v = new(getNodeNodeAPIAccessTokenCode)
		return json.Unmarshal(b, *v)
	case "APIApplication":
		*v = new(getNodeNodeAPIApplication)
		return json.Unmarshal(b, *v)
	case "Agent":
		*v = new(getNodeNodeAgent)
		return json.Unmarshal(b, *v)
	case "AgentToken":
		*v = new(getNodeNodeAgentToken)
		return json.Unmarshal(b, *v)
	case "Annotation":
		*v = new(getNodeNodeAnnotation)
		return json.Unmarshal(b, *v)
	case "Artifact":
		*v = new(getNodeNodeArtifact)
		return json.Unmarshal(b, *v)
	case "AuditEvent":
		*v = new(getNodeNodeAuditEvent)
		return json.Unmarshal(b, *v)
	case "AuthorizationBitbucket":
		*v = new(getNodeNodeAuthorizationBitbucket)
		return json.Unmarshal(b, *v)
	case "AuthorizationGitHub":
		*v = new(getNodeNodeAuthorizationGitHub)
		return json.Unmarshal(b, *v)
	case "AuthorizationGitHubApp":
		*v = new(getNodeNodeAuthorizationGitHubApp)
		return json.Unmarshal(b, *v)
	case "AuthorizationGitHubEnterprise":
		*v = new(getNodeNodeAuthorizationGitHubEnterprise)
		return json.Unmarshal(b, *v)
	case "AuthorizationGoogle":
		*v = new(getNodeNodeAuthorizationGoogle)
		return json.Unmarshal(b, *v)
	case "AuthorizationSAML":
		*v = new(getNodeNodeAuthorizationSAML)
		return json.Unmarshal(b, *v)
	case "Build":
		*v = new(getNodeNodeBuild)
		return json.Unmarshal(b, *v)
	case "Cluster":
		*v = new(getNodeNodeCluster)
		return json.Unmarshal(b, *v)
	case "ClusterQueue":
		*v = new(getNodeNodeClusterQueue)
		return json.Unmarshal(b, *v)
	case "ClusterQueueToken":
		*v = new(getNodeNodeClusterQueueToken)
		return json.Unmarshal(b, *v)
	case "ClusterToken":
		*v = new(getNodeNodeClusterToken)
		return json.Unmarshal(b, *v)
	case "CompositeRegistryUpstream":
		*v = new(getNodeNodeCompositeRegistryUpstream)
		return json.Unmarshal(b, *v)
	case "Email":
		*v = new(getNodeNodeEmail)
		return json.Unmarshal(b, *v)
	case "JobEventAssigned":
		*v = new(getNodeNodeJobEventAssigned)
		return json.Unmarshal(b, *v)
	case "JobEventBuildStepUploadCreated":
		*v = new(getNodeNodeJobEventBuildStepUploadCreated)
		return json.Unmarshal(b, *v)
	case "JobEventCanceled":
		*v = new(getNodeNodeJobEventCanceled)
		return json.Unmarshal(b, *v)
	case "JobEventFinished":
		*v = new(getNodeNodeJobEventFinished)
		return json.Unmarshal(b, *v)
	case "JobEventGeneric":
		*v = new(getNodeNodeJobEventGeneric)
		return json.Unmarshal(b, *v)
	case "JobEventReprioritized":
		*v = new(getNodeNodeJobEventReprioritized)
		return json.Unmarshal(b, *v)
	case "JobEventRetried":
		*v = new(getNodeNodeJobEventRetried)
		return json.Unmarshal(b, *v)
	case "JobEventRetryFailed":
		*v = new(getNodeNodeJobEventRetryFailed)
		return json.Unmarshal(b, *v)
	case "JobEventStackError":
		*v = new(getNodeNodeJobEventStackError)
		return json.Unmarshal(b, *v)
	case "JobEventStackNotification":
		*v = new(getNodeNodeJobEventStackNotification)
		return json.Unmarshal(b, *v)
	case "JobEventTimedOut":
		*v = new(getNodeNodeJobEventTimedOut)
		return json.Unmarshal(b, *v)
	case "JobTypeBlock":
		*v = new(getNodeNodeJobTypeBlock)
		return json.Unmarshal(b, *v)
	case "JobTypeCommand":
		*v = new(getNodeNodeJobTypeCommand)
		return json.Unmarshal(b, *v)
	case "JobTypeTrigger":
		*v = new(getNodeNodeJobTypeTrigger)
		return json.Unmarshal(b, *v)
	case "JobTypeWait":
		*v = new(getNodeNodeJobTypeWait)
		return json.Unmarshal(b, *v)
	case "NotificationServiceSlack":
		*v = new(getNodeNodeNotificationServiceSlack)
		return json.Unmarshal(b, *v)
	case "Organization":
		*v = new(getNodeNodeOrganization)
		return json.Unmarshal(b, *v)
	case "OrganizationBanner":
		*v = new(getNodeNodeOrganizationBanner)
		return json.Unmarshal(b, *v)
	case "OrganizationInvitation":
		*v = new(getNodeNodeOrganizationInvitation)
		return json.Unmarshal(b, *v)
	case "OrganizationMember":
		*v = new(getNodeNodeOrganizationMember)
		return json.Unmarshal(b, *v)
	case "OrganizationRepositoryProviderGitHub":
		*v = new(getNodeNodeOrganizationRepositoryProviderGitHub)
		return json.Unmarshal(b, *v)
	case "OrganizationRepositoryProviderGitHubEnterpriseServer":
		*v = new(getNodeNodeOrganizationRepositoryProviderGitHubEnterpriseServer)
		return json.Unmarshal(b, *v)
	case "Pipeline":
		*v = new(getNodeNodePipeline)
		return json.Unmarshal(b, *v)
	case "PipelineMetric":
		*v = new(getNodeNodePipelineMetric)
		return json.Unmarshal(b, *v)
	case "PipelineSchedule":
		*v = new(getNodeNodePipelineSchedule)
		return json.Unmarshal(b, *v)
	case "PipelineTemplate":
		*v = new(getNodeNodePipelineTemplate)
		return json.Unmarshal(b, *v)
	case "Registry":
		*v = new(getNodeNodeRegistry)
		return json.Unmarshal(b, *v)
	case "RegistryToken":
		*v = new(getNodeNodeRegistryToken)
		return json.Unmarshal(b, *v)
	case "Rule":
		*v = new(getNodeNodeRule)
		return json.Unmarshal(b, *v)
	case "SSOProviderGitHubApp":
		*v = new(getNodeNodeSSOProviderGitHubApp)
		return json.Unmarshal(b, *v)
	case "SSOProviderGoogleGSuite":
		*v = new(getNodeNodeSSOProviderGoogleGSuite)
		return json.Unmarshal(b, *v)
	case "SSOProviderSAML":
		*v = new(getNodeNodeSSOProviderSAML)
		return json.Unmarshal(b, *v)
	case "Secret":
		*v = new(getNodeNodeSecret)
		return json.Unmarshal(b, *v)
	case "Suite":
		*v = new(getNodeNodeSuite)
		return json.Unmarshal(b, *v)
	case "Team":
		*v = new(getNodeNodeTeam)
		return json.Unmarshal(b, *v)
	case "TeamMember":
		*v = new(getNodeNodeTeamMember)
		return json.Unmarshal(b, *v)
	case "TeamPipeline":
		*v = new(getNodeNodeTeamPipeline)
		return json.Unmarshal(b, *v)
	case "TeamRegistry":
		*v = new(getNodeNodeTeamRegistry)
		return json.Unmarshal(b, *v)
	case "TeamSuite":
		*v = new(getNodeNodeTeamSuite)
		return json.Unmarshal(b, *v)
	case "User":
		*v = new(getNodeNodeUser)
		return json.Unmarshal(b, *v)
	case "Viewer":
		*v = new(getNodeNodeViewer)
		return json.Unmarshal(b, *v)
	case "":
		return fmt.Errorf(
			"response was missing Node.__typename")
	default:
		return fmt.Errorf(
			`unexpected concrete type for getNodeNode: "%v"`, tn.TypeName)
	}
}

func __marshalgetNodeNode(v *getNodeNode) ([]byte, error) {

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

		premarshaled, err := v.__premarshalJSON()
		if err != nil {
			return nil, err
		}
		result := struct {
			TypeName string `json:"__typename"`
			*__premarshalgetNodeNodeCluster
		}{typename, premarshaled}
		return json.Marshal(result)
	case *getNodeNodeClusterQueue:
		typename = "ClusterQueue"

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

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

		result := struct {
			TypeName string `json:"__typename"`
			*getNodeNodeClusterToken
		}{typename, v}
		return json.Marshal(result)
	case *getNodeNodeCompositeRegistryUpstream:
		typename = "CompositeRegistryUpstream"

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

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

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

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

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

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

		result := struct {
			TypeName string `json:"__typename"`
			*getNodeNodeJobEventGeneric
		}{typename, v}
		return json.Marshal(result)
	case *getNodeNodeJobEventReprioritized:
		typename = "JobEventReprioritized"

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

		result := struct {
			TypeName string `json:"__typename"`
			*getNodeNodeJobEventRetried
		}{typename, v}
		return json.Marshal(result)
	case *getNodeNodeJobEventRetryFailed:
		typename = "JobEventRetryFailed"

		result := struct {
			TypeName string `json:"__typename"`
			*getNodeNodeJobEventRetryFailed
		}{typename, v}
		return json.Marshal(result)
	case *getNodeNodeJobEventStackError:
		typename = "JobEventStackError"

		result := struct {
			TypeName string `json:"__typename"`
			*getNodeNodeJobEventStackError
		}{typename, v}
		return json.Marshal(result)
	case *getNodeNodeJobEventStackNotification:
		typename = "JobEventStackNotification"

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

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

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

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

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

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

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

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

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

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

		result := struct {
			TypeName string `json:"__typename"`
			*getNodeNodeOrganizationMember
		}{typename, v}
		return json.Marshal(result)
	case *getNodeNodeOrganizationRepositoryProviderGitHub:
		typename = "OrganizationRepositoryProviderGitHub"

		result := struct {
			TypeName string `json:"__typename"`
			*getNodeNodeOrganizationRepositoryProviderGitHub
		}{typename, v}
		return json.Marshal(result)
	case *getNodeNodeOrganizationRepositoryProviderGitHubEnterpriseServer:
		typename = "OrganizationRepositoryProviderGitHubEnterpriseServer"

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

		premarshaled, err := v.__premarshalJSON()
		if err != nil {
			return nil, err
		}
		result := struct {
			TypeName string `json:"__typename"`
			*__premarshalgetNodeNodePipeline
		}{typename, premarshaled}
		return json.Marshal(result)
	case *getNodeNodePipelineMetric:
		typename = "PipelineMetric"

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

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

		premarshaled, err := v.__premarshalJSON()
		if err != nil {
			return nil, err
		}
		result := struct {
			TypeName string `json:"__typename"`
			*__premarshalgetNodeNodePipelineTemplate
		}{typename, premarshaled}
		return json.Marshal(result)
	case *getNodeNodeRegistry:
		typename = "Registry"

		result := struct {
			TypeName string `json:"__typename"`
			*getNodeNodeRegistry
		}{typename, v}
		return json.Marshal(result)
	case *getNodeNodeRegistryToken:
		typename = "RegistryToken"

		result := struct {
			TypeName string `json:"__typename"`
			*getNodeNodeRegistryToken
		}{typename, v}
		return json.Marshal(result)
	case *getNodeNodeRule:
		typename = "Rule"

		premarshaled, err := v.__premarshalJSON()
		if err != nil {
			return nil, err
		}
		result := struct {
			TypeName string `json:"__typename"`
			*__premarshalgetNodeNodeRule
		}{typename, premarshaled}
		return json.Marshal(result)
	case *getNodeNodeSSOProviderGitHubApp:
		typename = "SSOProviderGitHubApp"

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

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

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

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

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

		premarshaled, err := v.__premarshalJSON()
		if err != nil {
			return nil, err
		}
		result := struct {
			TypeName string `json:"__typename"`
			*__premarshalgetNodeNodeTeam
		}{typename, premarshaled}
		return json.Marshal(result)
	case *getNodeNodeTeamMember:
		typename = "TeamMember"

		premarshaled, err := v.__premarshalJSON()
		if err != nil {
			return nil, err
		}
		result := struct {
			TypeName string `json:"__typename"`
			*__premarshalgetNodeNodeTeamMember
		}{typename, premarshaled}
		return json.Marshal(result)
	case *getNodeNodeTeamPipeline:
		typename = "TeamPipeline"

		premarshaled, err := v.__premarshalJSON()
		if err != nil {
			return nil, err
		}
		result := struct {
			TypeName string `json:"__typename"`
			*__premarshalgetNodeNodeTeamPipeline
		}{typename, premarshaled}
		return json.Marshal(result)
	case *getNodeNodeTeamRegistry:
		typename = "TeamRegistry"

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

		premarshaled, err := v.__premarshalJSON()
		if err != nil {
			return nil, err
		}
		result := struct {
			TypeName string `json:"__typename"`
			*__premarshalgetNodeNodeTeamSuite
		}{typename, premarshaled}
		return json.Marshal(result)
	case *getNodeNodeUser:
		typename = "User"

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

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

// getNodeNodeAPIAccessToken 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 getNodeNodeAPIAccessToken struct {
	Typename string `json:"__typename"`
}

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

// getNodeNodeAPIAccessTokenCode 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 getNodeNodeAPIAccessTokenCode struct {
	Typename string `json:"__typename"`
}

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

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

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

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

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

// getNodeNodeAgentToken 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 getNodeNodeAgentToken struct {
	Typename string `json:"__typename"`
}

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

// getNodeNodeAnnotation 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 getNodeNodeAnnotation struct {
	Typename string `json:"__typename"`
}

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

// getNodeNodeArtifact 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 getNodeNodeArtifact struct {
	Typename string `json:"__typename"`
}

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

// getNodeNodeAuditEvent 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 getNodeNodeAuditEvent struct {
	Typename string `json:"__typename"`
}

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

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

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

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

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

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

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

// getNodeNodeAuthorizationGitHubEnterprise 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 getNodeNodeAuthorizationGitHubEnterprise struct {
	Typename string `json:"__typename"`
}

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

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

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

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

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

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

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

// getNodeNodeCluster includes the requested fields of the GraphQL type Cluster.
type getNodeNodeCluster struct {
	Typename      string `json:"__typename"`
	ClusterFields `json:"-"`
}

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

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

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

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

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

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

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

// GetDefaultQueue returns getNodeNodeCluster.DefaultQueue, and is useful for accessing the field via an interface.
func (v *getNodeNodeCluster) GetDefaultQueue() *ClusterFieldsDefaultQueueClusterQueue {
	return v.ClusterFields.DefaultQueue
}

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

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

	var firstPass struct {
		*getNodeNodeCluster
		graphql.NoUnmarshalJSON
	}
	firstPass.getNodeNodeCluster = v

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

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

type __premarshalgetNodeNodeCluster struct {
	Typename string `json:"__typename"`

	Id string `json:"id"`

	Uuid string `json:"uuid"`

	Name string `json:"name"`

	Description *string `json:"description"`

	Emoji *string `json:"emoji"`

	Color *string `json:"color"`

	DefaultQueue *ClusterFieldsDefaultQueueClusterQueue `json:"defaultQueue"`
}

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

func (v *getNodeNodeCluster) __premarshalJSON() (*__premarshalgetNodeNodeCluster, error) {
	var retval __premarshalgetNodeNodeCluster

	retval.Typename = v.Typename
	retval.Id = v.ClusterFields.Id
	retval.Uuid = v.ClusterFields.Uuid
	retval.Name = v.ClusterFields.Name
	retval.Description = v.ClusterFields.Description
	retval.Emoji = v.ClusterFields.Emoji
	retval.Color = v.ClusterFields.Color
	retval.DefaultQueue = v.ClusterFields.DefaultQueue
	return &retval, nil
}

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

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

// getNodeNodeClusterQueueToken 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 getNodeNodeClusterQueueToken struct {
	Typename string `json:"__typename"`
}

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

// getNodeNodeClusterToken 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 getNodeNodeClusterToken struct {
	Typename string `json:"__typename"`
}

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

// getNodeNodeCompositeRegistryUpstream includes the requested fields of the GraphQL type CompositeRegistryUpstream.
// The GraphQL type's documentation follows.
//
// A composite registry's upstream
type getNodeNodeCompositeRegistryUpstream struct {
	Typename string `json:"__typename"`
}

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

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

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

// getNodeNodeJobEventAssigned 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 getNodeNodeJobEventAssigned struct {
	Typename string `json:"__typename"`
}

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

// getNodeNodeJobEventBuildStepUploadCreated 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 getNodeNodeJobEventBuildStepUploadCreated struct {
	Typename string `json:"__typename"`
}

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

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

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

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

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

// getNodeNodeJobEventGeneric 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 getNodeNodeJobEventGeneric struct {
	Typename string `json:"__typename"`
}

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

// getNodeNodeJobEventReprioritized includes the requested fields of the GraphQL type JobEventReprioritized.
// The GraphQL type's documentation follows.
//
// A job event for when a job's priority has been changed
type getNodeNodeJobEventReprioritized struct {
	Typename string `json:"__typename"`
}

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

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

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

// getNodeNodeJobEventRetryFailed includes the requested fields of the GraphQL type JobEventRetryFailed.
// The GraphQL type's documentation follows.
//
// An event created when job fails to retry
type getNodeNodeJobEventRetryFailed struct {
	Typename string `json:"__typename"`
}

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

// getNodeNodeJobEventStackError includes the requested fields of the GraphQL type JobEventStackError.
// The GraphQL type's documentation follows.
//
// An event created when a stack error is reported
type getNodeNodeJobEventStackError struct {
	Typename string `json:"__typename"`
}

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

// getNodeNodeJobEventStackNotification includes the requested fields of the GraphQL type JobEventStackNotification.
// The GraphQL type's documentation follows.
//
// An event created when a stack notification is triggered
type getNodeNodeJobEventStackNotification struct {
	Typename string `json:"__typename"`
}

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

// getNodeNodeJobEventTimedOut 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 getNodeNodeJobEventTimedOut struct {
	Typename string `json:"__typename"`
}

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

// getNodeNodeJobTypeBlock 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 getNodeNodeJobTypeBlock struct {
	Typename string `json:"__typename"`
}

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

// getNodeNodeJobTypeCommand 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 getNodeNodeJobTypeCommand struct {
	Typename string `json:"__typename"`
}

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

// getNodeNodeJobTypeTrigger 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 getNodeNodeJobTypeTrigger struct {
	Typename string `json:"__typename"`
}

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

// getNodeNodeJobTypeWait 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 getNodeNodeJobTypeWait struct {
	Typename string `json:"__typename"`
}

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

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

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

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

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

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

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

// getNodeNodeOrganizationInvitation 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 getNodeNodeOrganizationInvitation struct {
	Typename string `json:"__typename"`
}

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

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

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

// getNodeNodeOrganizationRepositoryProviderGitHub includes the requested fields of the GraphQL type OrganizationRepositoryProviderGitHub.
// The GraphQL type's documentation follows.
//
// GitHub installation associated with this organization
type getNodeNodeOrganizationRepositoryProviderGitHub struct {
	Typename string `json:"__typename"`
}

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

// getNodeNodeOrganizationRepositoryProviderGitHubEnterpriseServer includes the requested fields of the GraphQL type OrganizationRepositoryProviderGitHubEnterpriseServer.
// The GraphQL type's documentation follows.
//
// GitHub Enterprise Server associated with this organization
type getNodeNodeOrganizationRepositoryProviderGitHubEnterpriseServer struct {
	Typename string `json:"__typename"`
}

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

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

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

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

// GetPipelineUuid returns getNodeNodePipeline.PipelineUuid, and is useful for accessing the field via an interface.
func (v *getNodeNodePipeline) GetPipelineUuid() string { return v.PipelineFields.PipelineUuid }

// GetAllowRebuilds returns getNodeNodePipeline.AllowRebuilds, and is useful for accessing the field via an interface.
func (v *getNodeNodePipeline) GetAllowRebuilds() bool { return v.PipelineFields.AllowRebuilds }

// GetBadgeURL returns getNodeNodePipeline.BadgeURL, and is useful for accessing the field via an interface.
func (v *getNodeNodePipeline) GetBadgeURL() string { return v.PipelineFields.BadgeURL }

// GetBranchConfiguration returns getNodeNodePipeline.BranchConfiguration, and is useful for accessing the field via an interface.
func (v *getNodeNodePipeline) GetBranchConfiguration() *string {
	return v.PipelineFields.BranchConfiguration
}

// GetCancelIntermediateBuilds returns getNodeNodePipeline.CancelIntermediateBuilds, and is useful for accessing the field via an interface.
func (v *getNodeNodePipeline) GetCancelIntermediateBuilds() bool {
	return v.PipelineFields.CancelIntermediateBuilds
}

// GetCancelIntermediateBuildsBranchFilter returns getNodeNodePipeline.CancelIntermediateBuildsBranchFilter, and is useful for accessing the field via an interface.
func (v *getNodeNodePipeline) GetCancelIntermediateBuildsBranchFilter() string {
	return v.PipelineFields.CancelIntermediateBuildsBranchFilter
}

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

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

// GetDefaultBranch returns getNodeNodePipeline.DefaultBranch, and is useful for accessing the field via an interface.
func (v *getNodeNodePipeline) GetDefaultBranch() string { return v.PipelineFields.DefaultBranch }

// GetDefaultTimeoutInMinutes returns getNodeNodePipeline.DefaultTimeoutInMinutes, and is useful for accessing the field via an interface.
func (v *getNodeNodePipeline) GetDefaultTimeoutInMinutes() *int {
	return v.PipelineFields.DefaultTimeoutInMinutes
}

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

// GetMaximumTimeoutInMinutes returns getNodeNodePipeline.MaximumTimeoutInMinutes, and is useful for accessing the field via an interface.
func (v *getNodeNodePipeline) GetMaximumTimeoutInMinutes() *int {
	return v.PipelineFields.MaximumTimeoutInMinutes
}

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

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

// GetRepository returns getNodeNodePipeline.Repository, and is useful for accessing the field via an interface.
func (v *getNodeNodePipeline) GetRepository() PipelineFieldsRepository {
	return v.PipelineFields.Repository
}

// GetPipelineTemplate returns getNodeNodePipeline.PipelineTemplate, and is useful for accessing the field via an interface.
func (v *getNodeNodePipeline) GetPipelineTemplate() PipelineFieldsPipelineTemplate {
	return v.PipelineFields.PipelineTemplate
}

// GetSkipIntermediateBuilds returns getNodeNodePipeline.SkipIntermediateBuilds, and is useful for accessing the field via an interface.
func (v *getNodeNodePipeline) GetSkipIntermediateBuilds() bool {
	return v.PipelineFields.SkipIntermediateBuilds
}

// GetSkipIntermediateBuildsBranchFilter returns getNodeNodePipeline.SkipIntermediateBuildsBranchFilter, and is useful for accessing the field via an interface.
func (v *getNodeNodePipeline) GetSkipIntermediateBuildsBranchFilter() string {
	return v.PipelineFields.SkipIntermediateBuildsBranchFilter
}

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

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

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

// GetTeams returns getNodeNodePipeline.Teams, and is useful for accessing the field via an interface.
func (v *getNodeNodePipeline) GetTeams() PipelineFieldsTeamsTeamPipelineConnection {
	return v.PipelineFields.Teams
}

// GetWebhookURL returns getNodeNodePipeline.WebhookURL, and is useful for accessing the field via an interface.
func (v *getNodeNodePipeline) GetWebhookURL() string { return v.PipelineFields.WebhookURL }

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

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

	var firstPass struct {
		*getNodeNodePipeline
		graphql.NoUnmarshalJSON
	}
	firstPass.getNodeNodePipeline = v

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

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

type __premarshalgetNodeNodePipeline struct {
	Typename string `json:"__typename"`

	Id string `json:"id"`

	PipelineUuid string `json:"pipelineUuid"`

	AllowRebuilds bool `json:"allowRebuilds"`

	BadgeURL string `json:"badgeURL"`

	BranchConfiguration *string `json:"branchConfiguration"`

	CancelIntermediateBuilds bool `json:"cancelIntermediateBuilds"`

	CancelIntermediateBuildsBranchFilter string `json:"cancelIntermediateBuildsBranchFilter"`

	Cluster PipelineFieldsCluster `json:"cluster"`

	Color *string `json:"color"`

	DefaultBranch string `json:"defaultBranch"`

	DefaultTimeoutInMinutes *int `json:"defaultTimeoutInMinutes"`

	Emoji *string `json:"emoji"`

	MaximumTimeoutInMinutes *int `json:"maximumTimeoutInMinutes"`

	Description string `json:"description"`

	Name string `json:"name"`

	Repository PipelineFieldsRepository `json:"repository"`

	PipelineTemplate PipelineFieldsPipelineTemplate `json:"pipelineTemplate"`

	SkipIntermediateBuilds bool `json:"skipIntermediateBuilds"`

	SkipIntermediateBuildsBranchFilter string `json:"skipIntermediateBuildsBranchFilter"`

	Slug string `json:"slug"`

	Steps PipelineFieldsStepsPipelineSteps `json:"steps"`

	Tags []PipelineFieldsTagsPipelineTag `json:"tags"`

	Teams PipelineFieldsTeamsTeamPipelineConnection `json:"teams"`

	WebhookURL string `json:"webhookURL"`
}

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

func (v *getNodeNodePipeline) __premarshalJSON() (*__premarshalgetNodeNodePipeline, error) {
	var retval __premarshalgetNodeNodePipeline

	retval.Typename = v.Typename
	retval.Id = v.PipelineFields.Id
	retval.PipelineUuid = v.PipelineFields.PipelineUuid
	retval.AllowRebuilds = v.PipelineFields.AllowRebuilds
	retval.BadgeURL = v.PipelineFields.BadgeURL
	retval.BranchConfiguration = v.PipelineFields.BranchConfiguration
	retval.CancelIntermediateBuilds = v.PipelineFields.CancelIntermediateBuilds
	retval.CancelIntermediateBuildsBranchFilter = v.PipelineFields.CancelIntermediateBuildsBranchFilter
	retval.Cluster = v.PipelineFields.Cluster
	retval.Color = v.PipelineFields.Color
	retval.DefaultBranch = v.PipelineFields.DefaultBranch
	retval.DefaultTimeoutInMinutes = v.PipelineFields.DefaultTimeoutInMinutes
	retval.Emoji = v.PipelineFields.Emoji
	retval.MaximumTimeoutInMinutes = v.PipelineFields.MaximumTimeoutInMinutes
	retval.Description = v.PipelineFields.Description
	retval.Name = v.PipelineFields.Name
	retval.Repository = v.PipelineFields.Repository
	retval.PipelineTemplate = v.PipelineFields.PipelineTemplate
	retval.SkipIntermediateBuilds = v.PipelineFields.SkipIntermediateBuilds
	retval.SkipIntermediateBuildsBranchFilter = v.PipelineFields.SkipIntermediateBuildsBranchFilter
	retval.Slug = v.PipelineFields.Slug
	retval.Steps = v.PipelineFields.Steps
	retval.Tags = v.PipelineFields.Tags
	retval.Teams = v.PipelineFields.Teams
	retval.WebhookURL = v.PipelineFields.WebhookURL
	return &retval, nil
}

// getNodeNodePipelineMetric includes the requested fields of the GraphQL type PipelineMetric.
// The GraphQL type's documentation follows.
//
// A metric for a pipeline
type getNodeNodePipelineMetric struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getNodeNodePipelineMetric.Typename, and is useful for accessing the field via an interface.
func (v *getNodeNodePipelineMetric) GetTypename() string { return v.Typename }

// getNodeNodePipelineSchedule 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 getNodeNodePipelineSchedule struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getNodeNodePipelineSchedule.Typename, and is useful for accessing the field via an interface.
func (v *getNodeNodePipelineSchedule) GetTypename() string { return v.Typename }

// getNodeNodePipelineTemplate 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 getNodeNodePipelineTemplate struct {
	Typename               string `json:"__typename"`
	PipelineTemplateFields `json:"-"`
}

// GetTypename returns getNodeNodePipelineTemplate.Typename, and is useful for accessing the field via an interface.
func (v *getNodeNodePipelineTemplate) GetTypename() string { return v.Typename }

// GetId returns getNodeNodePipelineTemplate.Id, and is useful for accessing the field via an interface.
func (v *getNodeNodePipelineTemplate) GetId() string { return v.PipelineTemplateFields.Id }

// GetUuid returns getNodeNodePipelineTemplate.Uuid, and is useful for accessing the field via an interface.
func (v *getNodeNodePipelineTemplate) GetUuid() string { return v.PipelineTemplateFields.Uuid }

// GetAvailable returns getNodeNodePipelineTemplate.Available, and is useful for accessing the field via an interface.
func (v *getNodeNodePipelineTemplate) GetAvailable() bool { return v.PipelineTemplateFields.Available }

// GetConfiguration returns getNodeNodePipelineTemplate.Configuration, and is useful for accessing the field via an interface.
func (v *getNodeNodePipelineTemplate) GetConfiguration() string {
	return v.PipelineTemplateFields.Configuration
}

// GetDescription returns getNodeNodePipelineTemplate.Description, and is useful for accessing the field via an interface.
func (v *getNodeNodePipelineTemplate) GetDescription() *string {
	return v.PipelineTemplateFields.Description
}

// GetName returns getNodeNodePipelineTemplate.Name, and is useful for accessing the field via an interface.
func (v *getNodeNodePipelineTemplate) GetName() string { return v.PipelineTemplateFields.Name }

func (v *getNodeNodePipelineTemplate) UnmarshalJSON(b []byte) error {

	if string(b) == "null" {
		return nil
	}

	var firstPass struct {
		*getNodeNodePipelineTemplate
		graphql.NoUnmarshalJSON
	}
	firstPass.getNodeNodePipelineTemplate = v

	err := json.Unmarshal(b, &firstPass)
	if err != nil {
		return err
	}

	err = json.Unmarshal(
		b, &v.PipelineTemplateFields)
	if err != nil {
		return err
	}
	return nil
}

type __premarshalgetNodeNodePipelineTemplate struct {
	Typename string `json:"__typename"`

	Id string `json:"id"`

	Uuid string `json:"uuid"`

	Available bool `json:"available"`

	Configuration string `json:"configuration"`

	Description *string `json:"description"`

	Name string `json:"name"`
}

func (v *getNodeNodePipelineTemplate) MarshalJSON() ([]byte, error) {
	premarshaled, err := v.__premarshalJSON()
	if err != nil {
		return nil, err
	}
	return json.Marshal(premarshaled)
}

func (v *getNodeNodePipelineTemplate) __premarshalJSON() (*__premarshalgetNodeNodePipelineTemplate, error) {
	var retval __premarshalgetNodeNodePipelineTemplate

	retval.Typename = v.Typename
	retval.Id = v.PipelineTemplateFields.Id
	retval.Uuid = v.PipelineTemplateFields.Uuid
	retval.Available = v.PipelineTemplateFields.Available
	retval.Configuration = v.PipelineTemplateFields.Configuration
	retval.Description = v.PipelineTemplateFields.Description
	retval.Name = v.PipelineTemplateFields.Name
	return &retval, nil
}

// getNodeNodeRegistry includes the requested fields of the GraphQL type Registry.
// The GraphQL type's documentation follows.
//
// A registry
type getNodeNodeRegistry struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getNodeNodeRegistry.Typename, and is useful for accessing the field via an interface.
func (v *getNodeNodeRegistry) GetTypename() string { return v.Typename }

// getNodeNodeRegistryToken includes the requested fields of the GraphQL type RegistryToken.
// The GraphQL type's documentation follows.
//
// A registry token
type getNodeNodeRegistryToken struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getNodeNodeRegistryToken.Typename, and is useful for accessing the field via an interface.
func (v *getNodeNodeRegistryToken) GetTypename() string { return v.Typename }

// getNodeNodeRule includes the requested fields of the GraphQL type Rule.
type getNodeNodeRule struct {
	Typename               string `json:"__typename"`
	OrganizationRuleFields `json:"-"`
}

// GetTypename returns getNodeNodeRule.Typename, and is useful for accessing the field via an interface.
func (v *getNodeNodeRule) GetTypename() string { return v.Typename }

// GetId returns getNodeNodeRule.Id, and is useful for accessing the field via an interface.
func (v *getNodeNodeRule) GetId() string { return v.OrganizationRuleFields.Id }

// GetUuid returns getNodeNodeRule.Uuid, and is useful for accessing the field via an interface.
func (v *getNodeNodeRule) GetUuid() string { return v.OrganizationRuleFields.Uuid }

// GetDescription returns getNodeNodeRule.Description, and is useful for accessing the field via an interface.
func (v *getNodeNodeRule) GetDescription() *string { return v.OrganizationRuleFields.Description }

// GetDocument returns getNodeNodeRule.Document, and is useful for accessing the field via an interface.
func (v *getNodeNodeRule) GetDocument() string { return v.OrganizationRuleFields.Document }

// GetType returns getNodeNodeRule.Type, and is useful for accessing the field via an interface.
func (v *getNodeNodeRule) GetType() string { return v.OrganizationRuleFields.Type }

// GetSourceType returns getNodeNodeRule.SourceType, and is useful for accessing the field via an interface.
func (v *getNodeNodeRule) GetSourceType() RuleSourceType { return v.OrganizationRuleFields.SourceType }

// GetTargetType returns getNodeNodeRule.TargetType, and is useful for accessing the field via an interface.
func (v *getNodeNodeRule) GetTargetType() RuleTargetType { return v.OrganizationRuleFields.TargetType }

// GetEffect returns getNodeNodeRule.Effect, and is useful for accessing the field via an interface.
func (v *getNodeNodeRule) GetEffect() RuleEffect { return v.OrganizationRuleFields.Effect }

// GetAction returns getNodeNodeRule.Action, and is useful for accessing the field via an interface.
func (v *getNodeNodeRule) GetAction() RuleAction { return v.OrganizationRuleFields.Action }

// GetSource returns getNodeNodeRule.Source, and is useful for accessing the field via an interface.
func (v *getNodeNodeRule) GetSource() OrganizationRuleFieldsSourceRuleSource {
	return v.OrganizationRuleFields.Source
}

// GetTarget returns getNodeNodeRule.Target, and is useful for accessing the field via an interface.
func (v *getNodeNodeRule) GetTarget() OrganizationRuleFieldsTargetRuleTarget {
	return v.OrganizationRuleFields.Target
}

func (v *getNodeNodeRule) UnmarshalJSON(b []byte) error {

	if string(b) == "null" {
		return nil
	}

	var firstPass struct {
		*getNodeNodeRule
		graphql.NoUnmarshalJSON
	}
	firstPass.getNodeNodeRule = v

	err := json.Unmarshal(b, &firstPass)
	if err != nil {
		return err
	}

	err = json.Unmarshal(
		b, &v.OrganizationRuleFields)
	if err != nil {
		return err
	}
	return nil
}

type __premarshalgetNodeNodeRule struct {
	Typename string `json:"__typename"`

	Id string `json:"id"`

	Uuid string `json:"uuid"`

	Description *string `json:"description"`

	Document string `json:"document"`

	Type string `json:"type"`

	SourceType RuleSourceType `json:"sourceType"`

	TargetType RuleTargetType `json:"targetType"`

	Effect RuleEffect `json:"effect"`

	Action RuleAction `json:"action"`

	Source json.RawMessage `json:"source"`

	Target json.RawMessage `json:"target"`
}

func (v *getNodeNodeRule) MarshalJSON() ([]byte, error) {
	premarshaled, err := v.__premarshalJSON()
	if err != nil {
		return nil, err
	}
	return json.Marshal(premarshaled)
}

func (v *getNodeNodeRule) __premarshalJSON() (*__premarshalgetNodeNodeRule, error) {
	var retval __premarshalgetNodeNodeRule

	retval.Typename = v.Typename
	retval.Id = v.OrganizationRuleFields.Id
	retval.Uuid = v.OrganizationRuleFields.Uuid
	retval.Description = v.OrganizationRuleFields.Description
	retval.Document = v.OrganizationRuleFields.Document
	retval.Type = v.OrganizationRuleFields.Type
	retval.SourceType = v.OrganizationRuleFields.SourceType
	retval.TargetType = v.OrganizationRuleFields.TargetType
	retval.Effect = v.OrganizationRuleFields.Effect
	retval.Action = v.OrganizationRuleFields.Action
	{

		dst := &retval.Source
		src := v.OrganizationRuleFields.Source
		var err error
		*dst, err = __marshalOrganizationRuleFieldsSourceRuleSource(
			&src)
		if err != nil {
			return nil, fmt.Errorf(
				"unable to marshal getNodeNodeRule.OrganizationRuleFields.Source: %w", err)
		}
	}
	{

		dst := &retval.Target
		src := v.OrganizationRuleFields.Target
		var err error
		*dst, err = __marshalOrganizationRuleFieldsTargetRuleTarget(
			&src)
		if err != nil {
			return nil, fmt.Errorf(
				"unable to marshal getNodeNodeRule.OrganizationRuleFields.Target: %w", err)
		}
	}
	return &retval, nil
}

// getNodeNodeSSOProviderGitHubApp includes the requested fields of the GraphQL type SSOProviderGitHubApp.
// The GraphQL type's documentation follows.
//
// Single sign-on provided by GitHub
type getNodeNodeSSOProviderGitHubApp struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getNodeNodeSSOProviderGitHubApp.Typename, and is useful for accessing the field via an interface.
func (v *getNodeNodeSSOProviderGitHubApp) GetTypename() string { return v.Typename }

// getNodeNodeSSOProviderGoogleGSuite includes the requested fields of the GraphQL type SSOProviderGoogleGSuite.
// The GraphQL type's documentation follows.
//
// Single sign-on provided by Google
type getNodeNodeSSOProviderGoogleGSuite struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getNodeNodeSSOProviderGoogleGSuite.Typename, and is useful for accessing the field via an interface.
func (v *getNodeNodeSSOProviderGoogleGSuite) GetTypename() string { return v.Typename }

// getNodeNodeSSOProviderSAML includes the requested fields of the GraphQL type SSOProviderSAML.
// The GraphQL type's documentation follows.
//
// Single sign-on provided via SAML
type getNodeNodeSSOProviderSAML struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getNodeNodeSSOProviderSAML.Typename, and is useful for accessing the field via an interface.
func (v *getNodeNodeSSOProviderSAML) GetTypename() string { return v.Typename }

// getNodeNodeSecret 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 getNodeNodeSecret struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getNodeNodeSecret.Typename, and is useful for accessing the field via an interface.
func (v *getNodeNodeSecret) GetTypename() string { return v.Typename }

// getNodeNodeSuite includes the requested fields of the GraphQL type Suite.
// The GraphQL type's documentation follows.
//
// A suite
type getNodeNodeSuite struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getNodeNodeSuite.Typename, and is useful for accessing the field via an interface.
func (v *getNodeNodeSuite) GetTypename() string { return v.Typename }

// getNodeNodeTeam includes the requested fields of the GraphQL type Team.
// The GraphQL type's documentation follows.
//
// An organization team
type getNodeNodeTeam struct {
	Typename   string `json:"__typename"`
	TeamFields `json:"-"`
}

// GetTypename returns getNodeNodeTeam.Typename, and is useful for accessing the field via an interface.
func (v *getNodeNodeTeam) GetTypename() string { return v.Typename }

// GetId returns getNodeNodeTeam.Id, and is useful for accessing the field via an interface.
func (v *getNodeNodeTeam) GetId() string { return v.TeamFields.Id }

// GetUuid returns getNodeNodeTeam.Uuid, and is useful for accessing the field via an interface.
func (v *getNodeNodeTeam) GetUuid() string { return v.TeamFields.Uuid }

// GetName returns getNodeNodeTeam.Name, and is useful for accessing the field via an interface.
func (v *getNodeNodeTeam) GetName() string { return v.TeamFields.Name }

// GetDescription returns getNodeNodeTeam.Description, and is useful for accessing the field via an interface.
func (v *getNodeNodeTeam) GetDescription() string { return v.TeamFields.Description }

// GetSlug returns getNodeNodeTeam.Slug, and is useful for accessing the field via an interface.
func (v *getNodeNodeTeam) GetSlug() string { return v.TeamFields.Slug }

// GetPrivacy returns getNodeNodeTeam.Privacy, and is useful for accessing the field via an interface.
func (v *getNodeNodeTeam) GetPrivacy() string { return v.TeamFields.Privacy }

// GetIsDefaultTeam returns getNodeNodeTeam.IsDefaultTeam, and is useful for accessing the field via an interface.
func (v *getNodeNodeTeam) GetIsDefaultTeam() bool { return v.TeamFields.IsDefaultTeam }

// GetDefaultMemberRole returns getNodeNodeTeam.DefaultMemberRole, and is useful for accessing the field via an interface.
func (v *getNodeNodeTeam) GetDefaultMemberRole() string { return v.TeamFields.DefaultMemberRole }

// GetMembersCanCreatePipelines returns getNodeNodeTeam.MembersCanCreatePipelines, and is useful for accessing the field via an interface.
func (v *getNodeNodeTeam) GetMembersCanCreatePipelines() bool {
	return v.TeamFields.MembersCanCreatePipelines
}

func (v *getNodeNodeTeam) UnmarshalJSON(b []byte) error {

	if string(b) == "null" {
		return nil
	}

	var firstPass struct {
		*getNodeNodeTeam
		graphql.NoUnmarshalJSON
	}
	firstPass.getNodeNodeTeam = v

	err := json.Unmarshal(b, &firstPass)
	if err != nil {
		return err
	}

	err = json.Unmarshal(
		b, &v.TeamFields)
	if err != nil {
		return err
	}
	return nil
}

type __premarshalgetNodeNodeTeam struct {
	Typename string `json:"__typename"`

	Id string `json:"id"`

	Uuid string `json:"uuid"`

	Name string `json:"name"`

	Description string `json:"description"`

	Slug string `json:"slug"`

	Privacy string `json:"privacy"`

	IsDefaultTeam bool `json:"isDefaultTeam"`

	DefaultMemberRole string `json:"defaultMemberRole"`

	MembersCanCreatePipelines bool `json:"membersCanCreatePipelines"`
}

func (v *getNodeNodeTeam) MarshalJSON() ([]byte, error) {
	premarshaled, err := v.__premarshalJSON()
	if err != nil {
		return nil, err
	}
	return json.Marshal(premarshaled)
}

func (v *getNodeNodeTeam) __premarshalJSON() (*__premarshalgetNodeNodeTeam, error) {
	var retval __premarshalgetNodeNodeTeam

	retval.Typename = v.Typename
	retval.Id = v.TeamFields.Id
	retval.Uuid = v.TeamFields.Uuid
	retval.Name = v.TeamFields.Name
	retval.Description = v.TeamFields.Description
	retval.Slug = v.TeamFields.Slug
	retval.Privacy = v.TeamFields.Privacy
	retval.IsDefaultTeam = v.TeamFields.IsDefaultTeam
	retval.DefaultMemberRole = v.TeamFields.DefaultMemberRole
	retval.MembersCanCreatePipelines = v.TeamFields.MembersCanCreatePipelines
	return &retval, nil
}

// getNodeNodeTeamMember includes the requested fields of the GraphQL type TeamMember.
// The GraphQL type's documentation follows.
//
// An member of a team
type getNodeNodeTeamMember struct {
	Typename         string `json:"__typename"`
	TeamMemberFields `json:"-"`
}

// GetTypename returns getNodeNodeTeamMember.Typename, and is useful for accessing the field via an interface.
func (v *getNodeNodeTeamMember) GetTypename() string { return v.Typename }

// GetId returns getNodeNodeTeamMember.Id, and is useful for accessing the field via an interface.
func (v *getNodeNodeTeamMember) GetId() string { return v.TeamMemberFields.Id }

// GetUuid returns getNodeNodeTeamMember.Uuid, and is useful for accessing the field via an interface.
func (v *getNodeNodeTeamMember) GetUuid() string { return v.TeamMemberFields.Uuid }

// GetTeam returns getNodeNodeTeamMember.Team, and is useful for accessing the field via an interface.
func (v *getNodeNodeTeamMember) GetTeam() TeamMemberFieldsTeam { return v.TeamMemberFields.Team }

// GetUser returns getNodeNodeTeamMember.User, and is useful for accessing the field via an interface.
func (v *getNodeNodeTeamMember) GetUser() TeamMemberFieldsUser { return v.TeamMemberFields.User }

// GetRole returns getNodeNodeTeamMember.Role, and is useful for accessing the field via an interface.
func (v *getNodeNodeTeamMember) GetRole() string { return v.TeamMemberFields.Role }

func (v *getNodeNodeTeamMember) UnmarshalJSON(b []byte) error {

	if string(b) == "null" {
		return nil
	}

	var firstPass struct {
		*getNodeNodeTeamMember
		graphql.NoUnmarshalJSON
	}
	firstPass.getNodeNodeTeamMember = v

	err := json.Unmarshal(b, &firstPass)
	if err != nil {
		return err
	}

	err = json.Unmarshal(
		b, &v.TeamMemberFields)
	if err != nil {
		return err
	}
	return nil
}

type __premarshalgetNodeNodeTeamMember struct {
	Typename string `json:"__typename"`

	Id string `json:"id"`

	Uuid string `json:"uuid"`

	Team TeamMemberFieldsTeam `json:"team"`

	User TeamMemberFieldsUser `json:"user"`

	Role string `json:"role"`
}

func (v *getNodeNodeTeamMember) MarshalJSON() ([]byte, error) {
	premarshaled, err := v.__premarshalJSON()
	if err != nil {
		return nil, err
	}
	return json.Marshal(premarshaled)
}

func (v *getNodeNodeTeamMember) __premarshalJSON() (*__premarshalgetNodeNodeTeamMember, error) {
	var retval __premarshalgetNodeNodeTeamMember

	retval.Typename = v.Typename
	retval.Id = v.TeamMemberFields.Id
	retval.Uuid = v.TeamMemberFields.Uuid
	retval.Team = v.TeamMemberFields.Team
	retval.User = v.TeamMemberFields.User
	retval.Role = v.TeamMemberFields.Role
	return &retval, nil
}

// getNodeNodeTeamPipeline 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 getNodeNodeTeamPipeline struct {
	Typename           string `json:"__typename"`
	TeamPipelineFields `json:"-"`
}

// GetTypename returns getNodeNodeTeamPipeline.Typename, and is useful for accessing the field via an interface.
func (v *getNodeNodeTeamPipeline) GetTypename() string { return v.Typename }

// GetId returns getNodeNodeTeamPipeline.Id, and is useful for accessing the field via an interface.
func (v *getNodeNodeTeamPipeline) GetId() string { return v.TeamPipelineFields.Id }

// GetUuid returns getNodeNodeTeamPipeline.Uuid, and is useful for accessing the field via an interface.
func (v *getNodeNodeTeamPipeline) GetUuid() string { return v.TeamPipelineFields.Uuid }

// GetPipelineAccessLevel returns getNodeNodeTeamPipeline.PipelineAccessLevel, and is useful for accessing the field via an interface.
func (v *getNodeNodeTeamPipeline) GetPipelineAccessLevel() PipelineAccessLevels {
	return v.TeamPipelineFields.PipelineAccessLevel
}

// GetTeam returns getNodeNodeTeamPipeline.Team, and is useful for accessing the field via an interface.
func (v *getNodeNodeTeamPipeline) GetTeam() TeamPipelineFieldsTeam { return v.TeamPipelineFields.Team }

// GetPipeline returns getNodeNodeTeamPipeline.Pipeline, and is useful for accessing the field via an interface.
func (v *getNodeNodeTeamPipeline) GetPipeline() TeamPipelineFieldsPipeline {
	return v.TeamPipelineFields.Pipeline
}

func (v *getNodeNodeTeamPipeline) UnmarshalJSON(b []byte) error {

	if string(b) == "null" {
		return nil
	}

	var firstPass struct {
		*getNodeNodeTeamPipeline
		graphql.NoUnmarshalJSON
	}
	firstPass.getNodeNodeTeamPipeline = v

	err := json.Unmarshal(b, &firstPass)
	if err != nil {
		return err
	}

	err = json.Unmarshal(
		b, &v.TeamPipelineFields)
	if err != nil {
		return err
	}
	return nil
}

type __premarshalgetNodeNodeTeamPipeline struct {
	Typename string `json:"__typename"`

	Id string `json:"id"`

	Uuid string `json:"uuid"`

	PipelineAccessLevel PipelineAccessLevels `json:"pipelineAccessLevel"`

	Team TeamPipelineFieldsTeam `json:"team"`

	Pipeline TeamPipelineFieldsPipeline `json:"pipeline"`
}

func (v *getNodeNodeTeamPipeline) MarshalJSON() ([]byte, error) {
	premarshaled, err := v.__premarshalJSON()
	if err != nil {
		return nil, err
	}
	return json.Marshal(premarshaled)
}

func (v *getNodeNodeTeamPipeline) __premarshalJSON() (*__premarshalgetNodeNodeTeamPipeline, error) {
	var retval __premarshalgetNodeNodeTeamPipeline

	retval.Typename = v.Typename
	retval.Id = v.TeamPipelineFields.Id
	retval.Uuid = v.TeamPipelineFields.Uuid
	retval.PipelineAccessLevel = v.TeamPipelineFields.PipelineAccessLevel
	retval.Team = v.TeamPipelineFields.Team
	retval.Pipeline = v.TeamPipelineFields.Pipeline
	return &retval, nil
}

// getNodeNodeTeamRegistry includes the requested fields of the GraphQL type TeamRegistry.
// The GraphQL type's documentation follows.
//
// A registry that's been assigned to a team
type getNodeNodeTeamRegistry struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getNodeNodeTeamRegistry.Typename, and is useful for accessing the field via an interface.
func (v *getNodeNodeTeamRegistry) GetTypename() string { return v.Typename }

// getNodeNodeTeamSuite 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 getNodeNodeTeamSuite struct {
	Typename        string `json:"__typename"`
	TeamSuiteFields `json:"-"`
}

// GetTypename returns getNodeNodeTeamSuite.Typename, and is useful for accessing the field via an interface.
func (v *getNodeNodeTeamSuite) GetTypename() string { return v.Typename }

// GetId returns getNodeNodeTeamSuite.Id, and is useful for accessing the field via an interface.
func (v *getNodeNodeTeamSuite) GetId() string { return v.TeamSuiteFields.Id }

// GetTeamSuiteUuid returns getNodeNodeTeamSuite.TeamSuiteUuid, and is useful for accessing the field via an interface.
func (v *getNodeNodeTeamSuite) GetTeamSuiteUuid() string { return v.TeamSuiteFields.TeamSuiteUuid }

// GetAccessLevel returns getNodeNodeTeamSuite.AccessLevel, and is useful for accessing the field via an interface.
func (v *getNodeNodeTeamSuite) GetAccessLevel() SuiteAccessLevels {
	return v.TeamSuiteFields.AccessLevel
}

// GetTeam returns getNodeNodeTeamSuite.Team, and is useful for accessing the field via an interface.
func (v *getNodeNodeTeamSuite) GetTeam() TeamSuiteFieldsTeam { return v.TeamSuiteFields.Team }

// GetSuite returns getNodeNodeTeamSuite.Suite, and is useful for accessing the field via an interface.
func (v *getNodeNodeTeamSuite) GetSuite() TeamSuiteFieldsSuite { return v.TeamSuiteFields.Suite }

func (v *getNodeNodeTeamSuite) UnmarshalJSON(b []byte) error {

	if string(b) == "null" {
		return nil
	}

	var firstPass struct {
		*getNodeNodeTeamSuite
		graphql.NoUnmarshalJSON
	}
	firstPass.getNodeNodeTeamSuite = v

	err := json.Unmarshal(b, &firstPass)
	if err != nil {
		return err
	}

	err = json.Unmarshal(
		b, &v.TeamSuiteFields)
	if err != nil {
		return err
	}
	return nil
}

type __premarshalgetNodeNodeTeamSuite struct {
	Typename string `json:"__typename"`

	Id string `json:"id"`

	TeamSuiteUuid string `json:"teamSuiteUuid"`

	AccessLevel SuiteAccessLevels `json:"accessLevel"`

	Team TeamSuiteFieldsTeam `json:"team"`

	Suite TeamSuiteFieldsSuite `json:"suite"`
}

func (v *getNodeNodeTeamSuite) MarshalJSON() ([]byte, error) {
	premarshaled, err := v.__premarshalJSON()
	if err != nil {
		return nil, err
	}
	return json.Marshal(premarshaled)
}

func (v *getNodeNodeTeamSuite) __premarshalJSON() (*__premarshalgetNodeNodeTeamSuite, error) {
	var retval __premarshalgetNodeNodeTeamSuite

	retval.Typename = v.Typename
	retval.Id = v.TeamSuiteFields.Id
	retval.TeamSuiteUuid = v.TeamSuiteFields.TeamSuiteUuid
	retval.AccessLevel = v.TeamSuiteFields.AccessLevel
	retval.Team = v.TeamSuiteFields.Team
	retval.Suite = v.TeamSuiteFields.Suite
	return &retval, nil
}

// getNodeNodeUser includes the requested fields of the GraphQL type User.
// The GraphQL type's documentation follows.
//
// A user
type getNodeNodeUser struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getNodeNodeUser.Typename, and is useful for accessing the field via an interface.
func (v *getNodeNodeUser) GetTypename() string { return v.Typename }

// getNodeNodeViewer includes the requested fields of the GraphQL type Viewer.
// The GraphQL type's documentation follows.
//
// Represents the current user session
type getNodeNodeViewer struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getNodeNodeViewer.Typename, and is useful for accessing the field via an interface.
func (v *getNodeNodeViewer) GetTypename() string { return v.Typename }

// getNodeResponse is returned by getNode on success.
type getNodeResponse struct {
	// Fetches an object given its ID.
	Node getNodeNode `json:"-"`
}

// GetNode returns getNodeResponse.Node, and is useful for accessing the field via an interface.
func (v *getNodeResponse) GetNode() getNodeNode { return v.Node }

func (v *getNodeResponse) UnmarshalJSON(b []byte) error {

	if string(b) == "null" {
		return nil
	}

	var firstPass struct {
		*getNodeResponse
		Node json.RawMessage `json:"node"`
		graphql.NoUnmarshalJSON
	}
	firstPass.getNodeResponse = v

	err := json.Unmarshal(b, &firstPass)
	if err != nil {
		return err
	}

	{
		dst := &v.Node
		src := firstPass.Node
		if len(src) != 0 && string(src) != "null" {
			err = __unmarshalgetNodeNode(
				src, dst)
			if err != nil {
				return fmt.Errorf(
					"unable to unmarshal getNodeResponse.Node: %w", err)
			}
		}
	}
	return nil
}

type __premarshalgetNodeResponse struct {
	Node json.RawMessage `json:"node"`
}

func (v *getNodeResponse) MarshalJSON() ([]byte, error) {
	premarshaled, err := v.__premarshalJSON()
	if err != nil {
		return nil, err
	}
	return json.Marshal(premarshaled)
}

func (v *getNodeResponse) __premarshalJSON() (*__premarshalgetNodeResponse, error) {
	var retval __premarshalgetNodeResponse

	{

		dst := &retval.Node
		src := v.Node
		var err error
		*dst, err = __marshalgetNodeNode(
			&src)
		if err != nil {
			return nil, fmt.Errorf(
				"unable to marshal getNodeResponse.Node: %w", err)
		}
	}
	return &retval, nil
}

// getOrganizationOrganization includes the requested fields of the GraphQL type Organization.
// The GraphQL type's documentation follows.
//
// An organization
type getOrganizationOrganization struct {
	// A space-separated allowlist of IP addresses that can access the organization via the GraphQL or REST API
	AllowedApiIpAddresses string `json:"allowedApiIpAddresses"`
	Id                    string `json:"id"`
	// The public UUID for this organization
	Uuid string `json:"uuid"`
	// Whether this organization requires 2FA to access (Please note that this is a beta feature and is not yet available to all organizations.)
	MembersRequireTwoFactorAuthentication bool `json:"membersRequireTwoFactorAuthentication"`
}

// GetAllowedApiIpAddresses returns getOrganizationOrganization.AllowedApiIpAddresses, and is useful for accessing the field via an interface.
func (v *getOrganizationOrganization) GetAllowedApiIpAddresses() string {
	return v.AllowedApiIpAddresses
}

// GetId returns getOrganizationOrganization.Id, and is useful for accessing the field via an interface.
func (v *getOrganizationOrganization) GetId() string { return v.Id }

// GetUuid returns getOrganizationOrganization.Uuid, and is useful for accessing the field via an interface.
func (v *getOrganizationOrganization) GetUuid() string { return v.Uuid }

// GetMembersRequireTwoFactorAuthentication returns getOrganizationOrganization.MembersRequireTwoFactorAuthentication, and is useful for accessing the field via an interface.
func (v *getOrganizationOrganization) GetMembersRequireTwoFactorAuthentication() bool {
	return v.MembersRequireTwoFactorAuthentication
}

// getOrganizationResponse is returned by getOrganization on success.
type getOrganizationResponse struct {
	// Find an organization
	Organization getOrganizationOrganization `json:"organization"`
}

// GetOrganization returns getOrganizationResponse.Organization, and is useful for accessing the field via an interface.
func (v *getOrganizationResponse) GetOrganization() getOrganizationOrganization {
	return v.Organization
}

// getOrganizationRuleResponse is returned by getOrganizationRule on success.
type getOrganizationRuleResponse struct {
	// Find a rule via its UUID
	Rule getOrganizationRuleRule `json:"rule"`
}

// GetRule returns getOrganizationRuleResponse.Rule, and is useful for accessing the field via an interface.
func (v *getOrganizationRuleResponse) GetRule() getOrganizationRuleRule { return v.Rule }

// getOrganizationRuleRule includes the requested fields of the GraphQL type Rule.
type getOrganizationRuleRule struct {
	OrganizationRuleFields `json:"-"`
}

// GetId returns getOrganizationRuleRule.Id, and is useful for accessing the field via an interface.
func (v *getOrganizationRuleRule) GetId() string { return v.OrganizationRuleFields.Id }

// GetUuid returns getOrganizationRuleRule.Uuid, and is useful for accessing the field via an interface.
func (v *getOrganizationRuleRule) GetUuid() string { return v.OrganizationRuleFields.Uuid }

// GetDescription returns getOrganizationRuleRule.Description, and is useful for accessing the field via an interface.
func (v *getOrganizationRuleRule) GetDescription() *string {
	return v.OrganizationRuleFields.Description
}

// GetDocument returns getOrganizationRuleRule.Document, and is useful for accessing the field via an interface.
func (v *getOrganizationRuleRule) GetDocument() string { return v.OrganizationRuleFields.Document }

// GetType returns getOrganizationRuleRule.Type, and is useful for accessing the field via an interface.
func (v *getOrganizationRuleRule) GetType() string { return v.OrganizationRuleFields.Type }

// GetSourceType returns getOrganizationRuleRule.SourceType, and is useful for accessing the field via an interface.
func (v *getOrganizationRuleRule) GetSourceType() RuleSourceType {
	return v.OrganizationRuleFields.SourceType
}

// GetTargetType returns getOrganizationRuleRule.TargetType, and is useful for accessing the field via an interface.
func (v *getOrganizationRuleRule) GetTargetType() RuleTargetType {
	return v.OrganizationRuleFields.TargetType
}

// GetEffect returns getOrganizationRuleRule.Effect, and is useful for accessing the field via an interface.
func (v *getOrganizationRuleRule) GetEffect() RuleEffect { return v.OrganizationRuleFields.Effect }

// GetAction returns getOrganizationRuleRule.Action, and is useful for accessing the field via an interface.
func (v *getOrganizationRuleRule) GetAction() RuleAction { return v.OrganizationRuleFields.Action }

// GetSource returns getOrganizationRuleRule.Source, and is useful for accessing the field via an interface.
func (v *getOrganizationRuleRule) GetSource() OrganizationRuleFieldsSourceRuleSource {
	return v.OrganizationRuleFields.Source
}

// GetTarget returns getOrganizationRuleRule.Target, and is useful for accessing the field via an interface.
func (v *getOrganizationRuleRule) GetTarget() OrganizationRuleFieldsTargetRuleTarget {
	return v.OrganizationRuleFields.Target
}

func (v *getOrganizationRuleRule) UnmarshalJSON(b []byte) error {

	if string(b) == "null" {
		return nil
	}

	var firstPass struct {
		*getOrganizationRuleRule
		graphql.NoUnmarshalJSON
	}
	firstPass.getOrganizationRuleRule = v

	err := json.Unmarshal(b, &firstPass)
	if err != nil {
		return err
	}

	err = json.Unmarshal(
		b, &v.OrganizationRuleFields)
	if err != nil {
		return err
	}
	return nil
}

type __premarshalgetOrganizationRuleRule struct {
	Id string `json:"id"`

	Uuid string `json:"uuid"`

	Description *string `json:"description"`

	Document string `json:"document"`

	Type string `json:"type"`

	SourceType RuleSourceType `json:"sourceType"`

	TargetType RuleTargetType `json:"targetType"`

	Effect RuleEffect `json:"effect"`

	Action RuleAction `json:"action"`

	Source json.RawMessage `json:"source"`

	Target json.RawMessage `json:"target"`
}

func (v *getOrganizationRuleRule) MarshalJSON() ([]byte, error) {
	premarshaled, err := v.__premarshalJSON()
	if err != nil {
		return nil, err
	}
	return json.Marshal(premarshaled)
}

func (v *getOrganizationRuleRule) __premarshalJSON() (*__premarshalgetOrganizationRuleRule, error) {
	var retval __premarshalgetOrganizationRuleRule

	retval.Id = v.OrganizationRuleFields.Id
	retval.Uuid = v.OrganizationRuleFields.Uuid
	retval.Description = v.OrganizationRuleFields.Description
	retval.Document = v.OrganizationRuleFields.Document
	retval.Type = v.OrganizationRuleFields.Type
	retval.SourceType = v.OrganizationRuleFields.SourceType
	retval.TargetType = v.OrganizationRuleFields.TargetType
	retval.Effect = v.OrganizationRuleFields.Effect
	retval.Action = v.OrganizationRuleFields.Action
	{

		dst := &retval.Source
		src := v.OrganizationRuleFields.Source
		var err error
		*dst, err = __marshalOrganizationRuleFieldsSourceRuleSource(
			&src)
		if err != nil {
			return nil, fmt.Errorf(
				"unable to marshal getOrganizationRuleRule.OrganizationRuleFields.Source: %w", err)
		}
	}
	{

		dst := &retval.Target
		src := v.OrganizationRuleFields.Target
		var err error
		*dst, err = __marshalOrganizationRuleFieldsTargetRuleTarget(
			&src)
		if err != nil {
			return nil, fmt.Errorf(
				"unable to marshal getOrganizationRuleRule.OrganizationRuleFields.Target: %w", err)
		}
	}
	return &retval, nil
}

// getOrganiztionBannerOrganization includes the requested fields of the GraphQL type Organization.
// The GraphQL type's documentation follows.
//
// An organization
type getOrganiztionBannerOrganization struct {
	// Returns active banners for this organization.
	Banners getOrganiztionBannerOrganizationBannersOrganizationBannerConnection `json:"banners"`
}

// GetBanners returns getOrganiztionBannerOrganization.Banners, and is useful for accessing the field via an interface.
func (v *getOrganiztionBannerOrganization) GetBanners() getOrganiztionBannerOrganizationBannersOrganizationBannerConnection {
	return v.Banners
}

// getOrganiztionBannerOrganizationBannersOrganizationBannerConnection includes the requested fields of the GraphQL type OrganizationBannerConnection.
// The GraphQL type's documentation follows.
//
// The connection type for OrganizationBanner.
type getOrganiztionBannerOrganizationBannersOrganizationBannerConnection struct {
	// A list of edges.
	Edges []getOrganiztionBannerOrganizationBannersOrganizationBannerConnectionEdgesOrganizationBannerEdge `json:"edges"`
}

// GetEdges returns getOrganiztionBannerOrganizationBannersOrganizationBannerConnection.Edges, and is useful for accessing the field via an interface.
func (v *getOrganiztionBannerOrganizationBannersOrganizationBannerConnection) GetEdges() []getOrganiztionBannerOrganizationBannersOrganizationBannerConnectionEdgesOrganizationBannerEdge {
	return v.Edges
}

// getOrganiztionBannerOrganizationBannersOrganizationBannerConnectionEdgesOrganizationBannerEdge includes the requested fields of the GraphQL type OrganizationBannerEdge.
// The GraphQL type's documentation follows.
//
// An edge in a connection.
type getOrganiztionBannerOrganizationBannersOrganizationBannerConnectionEdgesOrganizationBannerEdge struct {
	// The item at the end of the edge.
	Node getOrganiztionBannerOrganizationBannersOrganizationBannerConnectionEdgesOrganizationBannerEdgeNodeOrganizationBanner `json:"node"`
}

// GetNode returns getOrganiztionBannerOrganizationBannersOrganizationBannerConnectionEdgesOrganizationBannerEdge.Node, and is useful for accessing the field via an interface.
func (v *getOrganiztionBannerOrganizationBannersOrganizationBannerConnectionEdgesOrganizationBannerEdge) GetNode() getOrganiztionBannerOrganizationBannersOrganizationBannerConnectionEdgesOrganizationBannerEdgeNodeOrganizationBanner {
	return v.Node
}

// getOrganiztionBannerOrganizationBannersOrganizationBannerConnectionEdgesOrganizationBannerEdgeNodeOrganizationBanner includes the requested fields of the GraphQL type OrganizationBanner.
// The GraphQL type's documentation follows.
//
// System banner of an organization
type getOrganiztionBannerOrganizationBannersOrganizationBannerConnectionEdgesOrganizationBannerEdgeNodeOrganizationBanner struct {
	OrganizationBannerFields `json:"-"`
}

// GetId returns getOrganiztionBannerOrganizationBannersOrganizationBannerConnectionEdgesOrganizationBannerEdgeNodeOrganizationBanner.Id, and is useful for accessing the field via an interface.
func (v *getOrganiztionBannerOrganizationBannersOrganizationBannerConnectionEdgesOrganizationBannerEdgeNodeOrganizationBanner) GetId() string {
	return v.OrganizationBannerFields.Id
}

// GetUuid returns getOrganiztionBannerOrganizationBannersOrganizationBannerConnectionEdgesOrganizationBannerEdgeNodeOrganizationBanner.Uuid, and is useful for accessing the field via an interface.
func (v *getOrganiztionBannerOrganizationBannersOrganizationBannerConnectionEdgesOrganizationBannerEdgeNodeOrganizationBanner) GetUuid() string {
	return v.OrganizationBannerFields.Uuid
}

// GetMessage returns getOrganiztionBannerOrganizationBannersOrganizationBannerConnectionEdgesOrganizationBannerEdgeNodeOrganizationBanner.Message, and is useful for accessing the field via an interface.
func (v *getOrganiztionBannerOrganizationBannersOrganizationBannerConnectionEdgesOrganizationBannerEdgeNodeOrganizationBanner) GetMessage() string {
	return v.OrganizationBannerFields.Message
}

func (v *getOrganiztionBannerOrganizationBannersOrganizationBannerConnectionEdgesOrganizationBannerEdgeNodeOrganizationBanner) UnmarshalJSON(b []byte) error {

	if string(b) == "null" {
		return nil
	}

	var firstPass struct {
		*getOrganiztionBannerOrganizationBannersOrganizationBannerConnectionEdgesOrganizationBannerEdgeNodeOrganizationBanner
		graphql.NoUnmarshalJSON
	}
	firstPass.getOrganiztionBannerOrganizationBannersOrganizationBannerConnectionEdgesOrganizationBannerEdgeNodeOrganizationBanner = v

	err := json.Unmarshal(b, &firstPass)
	if err != nil {
		return err
	}

	err = json.Unmarshal(
		b, &v.OrganizationBannerFields)
	if err != nil {
		return err
	}
	return nil
}

type __premarshalgetOrganiztionBannerOrganizationBannersOrganizationBannerConnectionEdgesOrganizationBannerEdgeNodeOrganizationBanner struct {
	Id string `json:"id"`

	Uuid string `json:"uuid"`

	Message string `json:"message"`
}

func (v *getOrganiztionBannerOrganizationBannersOrganizationBannerConnectionEdgesOrganizationBannerEdgeNodeOrganizationBanner) MarshalJSON() ([]byte, error) {
	premarshaled, err := v.__premarshalJSON()
	if err != nil {
		return nil, err
	}
	return json.Marshal(premarshaled)
}

func (v *getOrganiztionBannerOrganizationBannersOrganizationBannerConnectionEdgesOrganizationBannerEdgeNodeOrganizationBanner) __premarshalJSON() (*__premarshalgetOrganiztionBannerOrganizationBannersOrganizationBannerConnectionEdgesOrganizationBannerEdgeNodeOrganizationBanner, error) {
	var retval __premarshalgetOrganiztionBannerOrganizationBannersOrganizationBannerConnectionEdgesOrganizationBannerEdgeNodeOrganizationBanner

	retval.Id = v.OrganizationBannerFields.Id
	retval.Uuid = v.OrganizationBannerFields.Uuid
	retval.Message = v.OrganizationBannerFields.Message
	return &retval, nil
}

// getOrganiztionBannerResponse is returned by getOrganiztionBanner on success.
type getOrganiztionBannerResponse struct {
	// Find an organization
	Organization getOrganiztionBannerOrganization `json:"organization"`
}

// GetOrganization returns getOrganiztionBannerResponse.Organization, and is useful for accessing the field via an interface.
func (v *getOrganiztionBannerResponse) GetOrganization() getOrganiztionBannerOrganization {
	return v.Organization
}

// getPipelinePipeline includes the requested fields of the GraphQL type Pipeline.
// The GraphQL type's documentation follows.
//
// A pipeline
type getPipelinePipeline struct {
	PipelineFields `json:"-"`
}

// GetId returns getPipelinePipeline.Id, and is useful for accessing the field via an interface.
func (v *getPipelinePipeline) GetId() string { return v.PipelineFields.Id }

// GetPipelineUuid returns getPipelinePipeline.PipelineUuid, and is useful for accessing the field via an interface.
func (v *getPipelinePipeline) GetPipelineUuid() string { return v.PipelineFields.PipelineUuid }

// GetAllowRebuilds returns getPipelinePipeline.AllowRebuilds, and is useful for accessing the field via an interface.
func (v *getPipelinePipeline) GetAllowRebuilds() bool { return v.PipelineFields.AllowRebuilds }

// GetBadgeURL returns getPipelinePipeline.BadgeURL, and is useful for accessing the field via an interface.
func (v *getPipelinePipeline) GetBadgeURL() string { return v.PipelineFields.BadgeURL }

// GetBranchConfiguration returns getPipelinePipeline.BranchConfiguration, and is useful for accessing the field via an interface.
func (v *getPipelinePipeline) GetBranchConfiguration() *string {
	return v.PipelineFields.BranchConfiguration
}

// GetCancelIntermediateBuilds returns getPipelinePipeline.CancelIntermediateBuilds, and is useful for accessing the field via an interface.
func (v *getPipelinePipeline) GetCancelIntermediateBuilds() bool {
	return v.PipelineFields.CancelIntermediateBuilds
}

// GetCancelIntermediateBuildsBranchFilter returns getPipelinePipeline.CancelIntermediateBuildsBranchFilter, and is useful for accessing the field via an interface.
func (v *getPipelinePipeline) GetCancelIntermediateBuildsBranchFilter() string {
	return v.PipelineFields.CancelIntermediateBuildsBranchFilter
}

// GetCluster returns getPipelinePipeline.Cluster, and is useful for accessing the field via an interface.
func (v *getPipelinePipeline) GetCluster() PipelineFieldsCluster { return v.PipelineFields.Cluster }

// GetColor returns getPipelinePipeline.Color, and is useful for accessing the field via an interface.
func (v *getPipelinePipeline) GetColor() *string { return v.PipelineFields.Color }

// GetDefaultBranch returns getPipelinePipeline.DefaultBranch, and is useful for accessing the field via an interface.
func (v *getPipelinePipeline) GetDefaultBranch() string { return v.PipelineFields.DefaultBranch }

// GetDefaultTimeoutInMinutes returns getPipelinePipeline.DefaultTimeoutInMinutes, and is useful for accessing the field via an interface.
func (v *getPipelinePipeline) GetDefaultTimeoutInMinutes() *int {
	return v.PipelineFields.DefaultTimeoutInMinutes
}

// GetEmoji returns getPipelinePipeline.Emoji, and is useful for accessing the field via an interface.
func (v *getPipelinePipeline) GetEmoji() *string { return v.PipelineFields.Emoji }

// GetMaximumTimeoutInMinutes returns getPipelinePipeline.MaximumTimeoutInMinutes, and is useful for accessing the field via an interface.
func (v *getPipelinePipeline) GetMaximumTimeoutInMinutes() *int {
	return v.PipelineFields.MaximumTimeoutInMinutes
}

// GetDescription returns getPipelinePipeline.Description, and is useful for accessing the field via an interface.
func (v *getPipelinePipeline) GetDescription() string { return v.PipelineFields.Description }

// GetName returns getPipelinePipeline.Name, and is useful for accessing the field via an interface.
func (v *getPipelinePipeline) GetName() string { return v.PipelineFields.Name }

// GetRepository returns getPipelinePipeline.Repository, and is useful for accessing the field via an interface.
func (v *getPipelinePipeline) GetRepository() PipelineFieldsRepository {
	return v.PipelineFields.Repository
}

// GetPipelineTemplate returns getPipelinePipeline.PipelineTemplate, and is useful for accessing the field via an interface.
func (v *getPipelinePipeline) GetPipelineTemplate() PipelineFieldsPipelineTemplate {
	return v.PipelineFields.PipelineTemplate
}

// GetSkipIntermediateBuilds returns getPipelinePipeline.SkipIntermediateBuilds, and is useful for accessing the field via an interface.
func (v *getPipelinePipeline) GetSkipIntermediateBuilds() bool {
	return v.PipelineFields.SkipIntermediateBuilds
}

// GetSkipIntermediateBuildsBranchFilter returns getPipelinePipeline.SkipIntermediateBuildsBranchFilter, and is useful for accessing the field via an interface.
func (v *getPipelinePipeline) GetSkipIntermediateBuildsBranchFilter() string {
	return v.PipelineFields.SkipIntermediateBuildsBranchFilter
}

// GetSlug returns getPipelinePipeline.Slug, and is useful for accessing the field via an interface.
func (v *getPipelinePipeline) GetSlug() string { return v.PipelineFields.Slug }

// GetSteps returns getPipelinePipeline.Steps, and is useful for accessing the field via an interface.
func (v *getPipelinePipeline) GetSteps() PipelineFieldsStepsPipelineSteps {
	return v.PipelineFields.Steps
}

// GetTags returns getPipelinePipeline.Tags, and is useful for accessing the field via an interface.
func (v *getPipelinePipeline) GetTags() []PipelineFieldsTagsPipelineTag { return v.PipelineFields.Tags }

// GetTeams returns getPipelinePipeline.Teams, and is useful for accessing the field via an interface.
func (v *getPipelinePipeline) GetTeams() PipelineFieldsTeamsTeamPipelineConnection {
	return v.PipelineFields.Teams
}

// GetWebhookURL returns getPipelinePipeline.WebhookURL, and is useful for accessing the field via an interface.
func (v *getPipelinePipeline) GetWebhookURL() string { return v.PipelineFields.WebhookURL }

func (v *getPipelinePipeline) UnmarshalJSON(b []byte) error {

	if string(b) == "null" {
		return nil
	}

	var firstPass struct {
		*getPipelinePipeline
		graphql.NoUnmarshalJSON
	}
	firstPass.getPipelinePipeline = v

	err := json.Unmarshal(b, &firstPass)
	if err != nil {
		return err
	}

	err = json.Unmarshal(
		b, &v.PipelineFields)
	if err != nil {
		return err
	}
	return nil
}

type __premarshalgetPipelinePipeline struct {
	Id string `json:"id"`

	PipelineUuid string `json:"pipelineUuid"`

	AllowRebuilds bool `json:"allowRebuilds"`

	BadgeURL string `json:"badgeURL"`

	BranchConfiguration *string `json:"branchConfiguration"`

	CancelIntermediateBuilds bool `json:"cancelIntermediateBuilds"`

	CancelIntermediateBuildsBranchFilter string `json:"cancelIntermediateBuildsBranchFilter"`

	Cluster PipelineFieldsCluster `json:"cluster"`

	Color *string `json:"color"`

	DefaultBranch string `json:"defaultBranch"`

	DefaultTimeoutInMinutes *int `json:"defaultTimeoutInMinutes"`

	Emoji *string `json:"emoji"`

	MaximumTimeoutInMinutes *int `json:"maximumTimeoutInMinutes"`

	Description string `json:"description"`

	Name string `json:"name"`

	Repository PipelineFieldsRepository `json:"repository"`

	PipelineTemplate PipelineFieldsPipelineTemplate `json:"pipelineTemplate"`

	SkipIntermediateBuilds bool `json:"skipIntermediateBuilds"`

	SkipIntermediateBuildsBranchFilter string `json:"skipIntermediateBuildsBranchFilter"`

	Slug string `json:"slug"`

	Steps PipelineFieldsStepsPipelineSteps `json:"steps"`

	Tags []PipelineFieldsTagsPipelineTag `json:"tags"`

	Teams PipelineFieldsTeamsTeamPipelineConnection `json:"teams"`

	WebhookURL string `json:"webhookURL"`
}

func (v *getPipelinePipeline) MarshalJSON() ([]byte, error) {
	premarshaled, err := v.__premarshalJSON()
	if err != nil {
		return nil, err
	}
	return json.Marshal(premarshaled)
}

func (v *getPipelinePipeline) __premarshalJSON() (*__premarshalgetPipelinePipeline, error) {
	var retval __premarshalgetPipelinePipeline

	retval.Id = v.PipelineFields.Id
	retval.PipelineUuid = v.PipelineFields.PipelineUuid
	retval.AllowRebuilds = v.PipelineFields.AllowRebuilds
	retval.BadgeURL = v.PipelineFields.BadgeURL
	retval.BranchConfiguration = v.PipelineFields.BranchConfiguration
	retval.CancelIntermediateBuilds = v.PipelineFields.CancelIntermediateBuilds
	retval.CancelIntermediateBuildsBranchFilter = v.PipelineFields.CancelIntermediateBuildsBranchFilter
	retval.Cluster = v.PipelineFields.Cluster
	retval.Color = v.PipelineFields.Color
	retval.DefaultBranch = v.PipelineFields.DefaultBranch
	retval.DefaultTimeoutInMinutes = v.PipelineFields.DefaultTimeoutInMinutes
	retval.Emoji = v.PipelineFields.Emoji
	retval.MaximumTimeoutInMinutes = v.PipelineFields.MaximumTimeoutInMinutes
	retval.Description = v.PipelineFields.Description
	retval.Name = v.PipelineFields.Name
	retval.Repository = v.PipelineFields.Repository
	retval.PipelineTemplate = v.PipelineFields.PipelineTemplate
	retval.SkipIntermediateBuilds = v.PipelineFields.SkipIntermediateBuilds
	retval.SkipIntermediateBuildsBranchFilter = v.PipelineFields.SkipIntermediateBuildsBranchFilter
	retval.Slug = v.PipelineFields.Slug
	retval.Steps = v.PipelineFields.Steps
	retval.Tags = v.PipelineFields.Tags
	retval.Teams = v.PipelineFields.Teams
	retval.WebhookURL = v.PipelineFields.WebhookURL
	return &retval, nil
}

// 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 }

// getPipelineScheduleBySlugPipelineSchedule 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 getPipelineScheduleBySlugPipelineSchedule struct {
	PipelineScheduleValues `json:"-"`
}

// GetId returns getPipelineScheduleBySlugPipelineSchedule.Id, and is useful for accessing the field via an interface.
func (v *getPipelineScheduleBySlugPipelineSchedule) GetId() string {
	return v.PipelineScheduleValues.Id
}

// GetUuid returns getPipelineScheduleBySlugPipelineSchedule.Uuid, and is useful for accessing the field via an interface.
func (v *getPipelineScheduleBySlugPipelineSchedule) GetUuid() string {
	return v.PipelineScheduleValues.Uuid
}

// GetLabel returns getPipelineScheduleBySlugPipelineSchedule.Label, and is useful for accessing the field via an interface.
func (v *getPipelineScheduleBySlugPipelineSchedule) GetLabel() *string {
	return v.PipelineScheduleValues.Label
}

// GetCronline returns getPipelineScheduleBySlugPipelineSchedule.Cronline, and is useful for accessing the field via an interface.
func (v *getPipelineScheduleBySlugPipelineSchedule) GetCronline() *string {
	return v.PipelineScheduleValues.Cronline
}

// GetMessage returns getPipelineScheduleBySlugPipelineSchedule.Message, and is useful for accessing the field via an interface.
func (v *getPipelineScheduleBySlugPipelineSchedule) GetMessage() *string {
	return v.PipelineScheduleValues.Message
}

// GetCommit returns getPipelineScheduleBySlugPipelineSchedule.Commit, and is useful for accessing the field via an interface.
func (v *getPipelineScheduleBySlugPipelineSchedule) GetCommit() *string {
	return v.PipelineScheduleValues.Commit
}

// GetBranch returns getPipelineScheduleBySlugPipelineSchedule.Branch, and is useful for accessing the field via an interface.
func (v *getPipelineScheduleBySlugPipelineSchedule) GetBranch() *string {
	return v.PipelineScheduleValues.Branch
}

// GetEnv returns getPipelineScheduleBySlugPipelineSchedule.Env, and is useful for accessing the field via an interface.
func (v *getPipelineScheduleBySlugPipelineSchedule) GetEnv() []*string {
	return v.PipelineScheduleValues.Env
}

// GetEnabled returns getPipelineScheduleBySlugPipelineSchedule.Enabled, and is useful for accessing the field via an interface.
func (v *getPipelineScheduleBySlugPipelineSchedule) GetEnabled() bool {
	return v.PipelineScheduleValues.Enabled
}

// GetPipeline returns getPipelineScheduleBySlugPipelineSchedule.Pipeline, and is useful for accessing the field via an interface.
func (v *getPipelineScheduleBySlugPipelineSchedule) GetPipeline() PipelineScheduleValuesPipeline {
	return v.PipelineScheduleValues.Pipeline
}

func (v *getPipelineScheduleBySlugPipelineSchedule) UnmarshalJSON(b []byte) error {

	if string(b) == "null" {
		return nil
	}

	var firstPass struct {
		*getPipelineScheduleBySlugPipelineSchedule
		graphql.NoUnmarshalJSON
	}
	firstPass.getPipelineScheduleBySlugPipelineSchedule = v

	err := json.Unmarshal(b, &firstPass)
	if err != nil {
		return err
	}

	err = json.Unmarshal(
		b, &v.PipelineScheduleValues)
	if err != nil {
		return err
	}
	return nil
}

type __premarshalgetPipelineScheduleBySlugPipelineSchedule struct {
	Id string `json:"id"`

	Uuid string `json:"uuid"`

	Label *string `json:"label"`

	Cronline *string `json:"cronline"`

	Message *string `json:"message"`

	Commit *string `json:"commit"`

	Branch *string `json:"branch"`

	Env []*string `json:"env"`

	Enabled bool `json:"enabled"`

	Pipeline PipelineScheduleValuesPipeline `json:"pipeline"`
}

func (v *getPipelineScheduleBySlugPipelineSchedule) MarshalJSON() ([]byte, error) {
	premarshaled, err := v.__premarshalJSON()
	if err != nil {
		return nil, err
	}
	return json.Marshal(premarshaled)
}

func (v *getPipelineScheduleBySlugPipelineSchedule) __premarshalJSON() (*__premarshalgetPipelineScheduleBySlugPipelineSchedule, error) {
	var retval __premarshalgetPipelineScheduleBySlugPipelineSchedule

	retval.Id = v.PipelineScheduleValues.Id
	retval.Uuid = v.PipelineScheduleValues.Uuid
	retval.Label = v.PipelineScheduleValues.Label
	retval.Cronline = v.PipelineScheduleValues.Cronline
	retval.Message = v.PipelineScheduleValues.Message
	retval.Commit = v.PipelineScheduleValues.Commit
	retval.Branch = v.PipelineScheduleValues.Branch
	retval.Env = v.PipelineScheduleValues.Env
	retval.Enabled = v.PipelineScheduleValues.Enabled
	retval.Pipeline = v.PipelineScheduleValues.Pipeline
	return &retval, nil
}

// getPipelineScheduleBySlugResponse is returned by getPipelineScheduleBySlug on success.
type getPipelineScheduleBySlugResponse struct {
	// Find a pipeline schedule by its slug
	PipelineSchedule getPipelineScheduleBySlugPipelineSchedule `json:"pipelineSchedule"`
}

// GetPipelineSchedule returns getPipelineScheduleBySlugResponse.PipelineSchedule, and is useful for accessing the field via an interface.
func (v *getPipelineScheduleBySlugResponse) GetPipelineSchedule() getPipelineScheduleBySlugPipelineSchedule {
	return v.PipelineSchedule
}

// getPipelineScheduleNode includes the requested fields of the GraphQL interface Node.
//
// getPipelineScheduleNode is implemented by the following types:
// getPipelineScheduleNodeAPIAccessToken
// getPipelineScheduleNodeAPIAccessTokenCode
// getPipelineScheduleNodeAPIApplication
// getPipelineScheduleNodeAgent
// getPipelineScheduleNodeAgentToken
// getPipelineScheduleNodeAnnotation
// getPipelineScheduleNodeArtifact
// getPipelineScheduleNodeAuditEvent
// getPipelineScheduleNodeAuthorizationBitbucket
// getPipelineScheduleNodeAuthorizationGitHub
// getPipelineScheduleNodeAuthorizationGitHubApp
// getPipelineScheduleNodeAuthorizationGitHubEnterprise
// getPipelineScheduleNodeAuthorizationGoogle
// getPipelineScheduleNodeAuthorizationSAML
// getPipelineScheduleNodeBuild
// getPipelineScheduleNodeCluster
// getPipelineScheduleNodeClusterQueue
// getPipelineScheduleNodeClusterQueueToken
// getPipelineScheduleNodeClusterToken
// getPipelineScheduleNodeCompositeRegistryUpstream
// getPipelineScheduleNodeEmail
// getPipelineScheduleNodeJobEventAssigned
// getPipelineScheduleNodeJobEventBuildStepUploadCreated
// getPipelineScheduleNodeJobEventCanceled
// getPipelineScheduleNodeJobEventFinished
// getPipelineScheduleNodeJobEventGeneric
// getPipelineScheduleNodeJobEventReprioritized
// getPipelineScheduleNodeJobEventRetried
// getPipelineScheduleNodeJobEventRetryFailed
// getPipelineScheduleNodeJobEventStackError
// getPipelineScheduleNodeJobEventStackNotification
// getPipelineScheduleNodeJobEventTimedOut
// getPipelineScheduleNodeJobTypeBlock
// getPipelineScheduleNodeJobTypeCommand
// getPipelineScheduleNodeJobTypeTrigger
// getPipelineScheduleNodeJobTypeWait
// getPipelineScheduleNodeNotificationServiceSlack
// getPipelineScheduleNodeOrganization
// getPipelineScheduleNodeOrganizationBanner
// getPipelineScheduleNodeOrganizationInvitation
// getPipelineScheduleNodeOrganizationMember
// getPipelineScheduleNodeOrganizationRepositoryProviderGitHub
// getPipelineScheduleNodeOrganizationRepositoryProviderGitHubEnterpriseServer
// getPipelineScheduleNodePipeline
// getPipelineScheduleNodePipelineMetric
// getPipelineScheduleNodePipelineSchedule
// getPipelineScheduleNodePipelineTemplate
// getPipelineScheduleNodeRegistry
// getPipelineScheduleNodeRegistryToken
// getPipelineScheduleNodeRule
// getPipelineScheduleNodeSSOProviderGitHubApp
// getPipelineScheduleNodeSSOProviderGoogleGSuite
// getPipelineScheduleNodeSSOProviderSAML
// getPipelineScheduleNodeSecret
// getPipelineScheduleNodeSuite
// getPipelineScheduleNodeTeam
// getPipelineScheduleNodeTeamMember
// getPipelineScheduleNodeTeamPipeline
// getPipelineScheduleNodeTeamRegistry
// getPipelineScheduleNodeTeamSuite
// getPipelineScheduleNodeUser
// getPipelineScheduleNodeViewer
// The GraphQL type's documentation follows.
//
// An object with an ID.
type getPipelineScheduleNode interface {
	implementsGraphQLInterfacegetPipelineScheduleNode()
	// GetTypename returns the receiver's concrete GraphQL type-name (see interface doc for possible values).
	GetTypename() string
}

func (v *getPipelineScheduleNodeAPIAccessToken) implementsGraphQLInterfacegetPipelineScheduleNode() {}
func (v *getPipelineScheduleNodeAPIAccessTokenCode) implementsGraphQLInterfacegetPipelineScheduleNode() {
}
func (v *getPipelineScheduleNodeAPIApplication) implementsGraphQLInterfacegetPipelineScheduleNode() {}
func (v *getPipelineScheduleNodeAgent) implementsGraphQLInterfacegetPipelineScheduleNode()          {}
func (v *getPipelineScheduleNodeAgentToken) implementsGraphQLInterfacegetPipelineScheduleNode()     {}
func (v *getPipelineScheduleNodeAnnotation) implementsGraphQLInterfacegetPipelineScheduleNode()     {}
func (v *getPipelineScheduleNodeArtifact) implementsGraphQLInterfacegetPipelineScheduleNode()       {}
func (v *getPipelineScheduleNodeAuditEvent) implementsGraphQLInterfacegetPipelineScheduleNode()     {}
func (v *getPipelineScheduleNodeAuthorizationBitbucket) implementsGraphQLInterfacegetPipelineScheduleNode() {
}
func (v *getPipelineScheduleNodeAuthorizationGitHub) implementsGraphQLInterfacegetPipelineScheduleNode() {
}
func (v *getPipelineScheduleNodeAuthorizationGitHubApp) implementsGraphQLInterfacegetPipelineScheduleNode() {
}
func (v *getPipelineScheduleNodeAuthorizationGitHubEnterprise) implementsGraphQLInterfacegetPipelineScheduleNode() {
}
func (v *getPipelineScheduleNodeAuthorizationGoogle) implementsGraphQLInterfacegetPipelineScheduleNode() {
}
func (v *getPipelineScheduleNodeAuthorizationSAML) implementsGraphQLInterfacegetPipelineScheduleNode() {
}
func (v *getPipelineScheduleNodeBuild) implementsGraphQLInterfacegetPipelineScheduleNode()        {}
func (v *getPipelineScheduleNodeCluster) implementsGraphQLInterfacegetPipelineScheduleNode()      {}
func (v *getPipelineScheduleNodeClusterQueue) implementsGraphQLInterfacegetPipelineScheduleNode() {}
func (v *getPipelineScheduleNodeClusterQueueToken) implementsGraphQLInterfacegetPipelineScheduleNode() {
}
func (v *getPipelineScheduleNodeClusterToken) implementsGraphQLInterfacegetPipelineScheduleNode() {}
func (v *getPipelineScheduleNodeCompositeRegistryUpstream) implementsGraphQLInterfacegetPipelineScheduleNode() {
}
func (v *getPipelineScheduleNodeEmail) implementsGraphQLInterfacegetPipelineScheduleNode() {}
func (v *getPipelineScheduleNodeJobEventAssigned) implementsGraphQLInterfacegetPipelineScheduleNode() {
}
func (v *getPipelineScheduleNodeJobEventBuildStepUploadCreated) implementsGraphQLInterfacegetPipelineScheduleNode() {
}
func (v *getPipelineScheduleNodeJobEventCanceled) implementsGraphQLInterfacegetPipelineScheduleNode() {
}
func (v *getPipelineScheduleNodeJobEventFinished) implementsGraphQLInterfacegetPipelineScheduleNode() {
}
func (v *getPipelineScheduleNodeJobEventGeneric) implementsGraphQLInterfacegetPipelineScheduleNode() {
}
func (v *getPipelineScheduleNodeJobEventReprioritized) implementsGraphQLInterfacegetPipelineScheduleNode() {
}
func (v *getPipelineScheduleNodeJobEventRetried) implementsGraphQLInterfacegetPipelineScheduleNode() {
}
func (v *getPipelineScheduleNodeJobEventRetryFailed) implementsGraphQLInterfacegetPipelineScheduleNode() {
}
func (v *getPipelineScheduleNodeJobEventStackError) implementsGraphQLInterfacegetPipelineScheduleNode() {
}
func (v *getPipelineScheduleNodeJobEventStackNotification) implementsGraphQLInterfacegetPipelineScheduleNode() {
}
func (v *getPipelineScheduleNodeJobEventTimedOut) implementsGraphQLInterfacegetPipelineScheduleNode() {
}
func (v *getPipelineScheduleNodeJobTypeBlock) implementsGraphQLInterfacegetPipelineScheduleNode()   {}
func (v *getPipelineScheduleNodeJobTypeCommand) implementsGraphQLInterfacegetPipelineScheduleNode() {}
func (v *getPipelineScheduleNodeJobTypeTrigger) implementsGraphQLInterfacegetPipelineScheduleNode() {}
func (v *getPipelineScheduleNodeJobTypeWait) implementsGraphQLInterfacegetPipelineScheduleNode()    {}
func (v *getPipelineScheduleNodeNotificationServiceSlack) implementsGraphQLInterfacegetPipelineScheduleNode() {
}
func (v *getPipelineScheduleNodeOrganization) implementsGraphQLInterfacegetPipelineScheduleNode() {}
func (v *getPipelineScheduleNodeOrganizationBanner) implementsGraphQLInterfacegetPipelineScheduleNode() {
}
func (v *getPipelineScheduleNodeOrganizationInvitation) implementsGraphQLInterfacegetPipelineScheduleNode() {
}
func (v *getPipelineScheduleNodeOrganizationMember) implementsGraphQLInterfacegetPipelineScheduleNode() {
}
func (v *getPipelineScheduleNodeOrganizationRepositoryProviderGitHub) implementsGraphQLInterfacegetPipelineScheduleNode() {
}
func (v *getPipelineScheduleNodeOrganizationRepositoryProviderGitHubEnterpriseServer) implementsGraphQLInterfacegetPipelineScheduleNode() {
}
func (v *getPipelineScheduleNodePipeline) implementsGraphQLInterfacegetPipelineScheduleNode()       {}
func (v *getPipelineScheduleNodePipelineMetric) implementsGraphQLInterfacegetPipelineScheduleNode() {}
func (v *getPipelineScheduleNodePipelineSchedule) implementsGraphQLInterfacegetPipelineScheduleNode() {
}
func (v *getPipelineScheduleNodePipelineTemplate) implementsGraphQLInterfacegetPipelineScheduleNode() {
}
func (v *getPipelineScheduleNodeRegistry) implementsGraphQLInterfacegetPipelineScheduleNode()      {}
func (v *getPipelineScheduleNodeRegistryToken) implementsGraphQLInterfacegetPipelineScheduleNode() {}
func (v *getPipelineScheduleNodeRule) implementsGraphQLInterfacegetPipelineScheduleNode()          {}
func (v *getPipelineScheduleNodeSSOProviderGitHubApp) implementsGraphQLInterfacegetPipelineScheduleNode() {
}
func (v *getPipelineScheduleNodeSSOProviderGoogleGSuite) implementsGraphQLInterfacegetPipelineScheduleNode() {
}
func (v *getPipelineScheduleNodeSSOProviderSAML) implementsGraphQLInterfacegetPipelineScheduleNode() {
}
func (v *getPipelineScheduleNodeSecret) implementsGraphQLInterfacegetPipelineScheduleNode()       {}
func (v *getPipelineScheduleNodeSuite) implementsGraphQLInterfacegetPipelineScheduleNode()        {}
func (v *getPipelineScheduleNodeTeam) implementsGraphQLInterfacegetPipelineScheduleNode()         {}
func (v *getPipelineScheduleNodeTeamMember) implementsGraphQLInterfacegetPipelineScheduleNode()   {}
func (v *getPipelineScheduleNodeTeamPipeline) implementsGraphQLInterfacegetPipelineScheduleNode() {}
func (v *getPipelineScheduleNodeTeamRegistry) implementsGraphQLInterfacegetPipelineScheduleNode() {}
func (v *getPipelineScheduleNodeTeamSuite) implementsGraphQLInterfacegetPipelineScheduleNode()    {}
func (v *getPipelineScheduleNodeUser) implementsGraphQLInterfacegetPipelineScheduleNode()         {}
func (v *getPipelineScheduleNodeViewer) implementsGraphQLInterfacegetPipelineScheduleNode()       {}

func __unmarshalgetPipelineScheduleNode(b []byte, v *getPipelineScheduleNode) 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(getPipelineScheduleNodeAPIAccessToken)
		return json.Unmarshal(b, *v)
	case "APIAccessTokenCode":
		*v = new(getPipelineScheduleNodeAPIAccessTokenCode)
		return json.Unmarshal(b, *v)
	case "APIApplication":
		*v = new(getPipelineScheduleNodeAPIApplication)
		return json.Unmarshal(b, *v)
	case "Agent":
		*v = new(getPipelineScheduleNodeAgent)
		return json.Unmarshal(b, *v)
	case "AgentToken":
		*v = new(getPipelineScheduleNodeAgentToken)
		return json.Unmarshal(b, *v)
	case "Annotation":
		*v = new(getPipelineScheduleNodeAnnotation)
		return json.Unmarshal(b, *v)
	case "Artifact":
		*v = new(getPipelineScheduleNodeArtifact)
		return json.Unmarshal(b, *v)
	case "AuditEvent":
		*v = new(getPipelineScheduleNodeAuditEvent)
		return json.Unmarshal(b, *v)
	case "AuthorizationBitbucket":
		*v = new(getPipelineScheduleNodeAuthorizationBitbucket)
		return json.Unmarshal(b, *v)
	case "AuthorizationGitHub":
		*v = new(getPipelineScheduleNodeAuthorizationGitHub)
		return json.Unmarshal(b, *v)
	case "AuthorizationGitHubApp":
		*v = new(getPipelineScheduleNodeAuthorizationGitHubApp)
		return json.Unmarshal(b, *v)
	case "AuthorizationGitHubEnterprise":
		*v = new(getPipelineScheduleNodeAuthorizationGitHubEnterprise)
		return json.Unmarshal(b, *v)
	case "AuthorizationGoogle":
		*v = new(getPipelineScheduleNodeAuthorizationGoogle)
		return json.Unmarshal(b, *v)
	case "AuthorizationSAML":
		*v = new(getPipelineScheduleNodeAuthorizationSAML)
		return json.Unmarshal(b, *v)
	case "Build":
		*v = new(getPipelineScheduleNodeBuild)
		return json.Unmarshal(b, *v)
	case "Cluster":
		*v = new(getPipelineScheduleNodeCluster)
		return json.Unmarshal(b, *v)
	case "ClusterQueue":
		*v = new(getPipelineScheduleNodeClusterQueue)
		return json.Unmarshal(b, *v)
	case "ClusterQueueToken":
		*v = new(getPipelineScheduleNodeClusterQueueToken)
		return json.Unmarshal(b, *v)
	case "ClusterToken":
		*v = new(getPipelineScheduleNodeClusterToken)
		return json.Unmarshal(b, *v)
	case "CompositeRegistryUpstream":
		*v = new(getPipelineScheduleNodeCompositeRegistryUpstream)
		return json.Unmarshal(b, *v)
	case "Email":
		*v = new(getPipelineScheduleNodeEmail)
		return json.Unmarshal(b, *v)
	case "JobEventAssigned":
		*v = new(getPipelineScheduleNodeJobEventAssigned)
		return json.Unmarshal(b, *v)
	case "JobEventBuildStepUploadCreated":
		*v = new(getPipelineScheduleNodeJobEventBuildStepUploadCreated)
		return json.Unmarshal(b, *v)
	case "JobEventCanceled":
		*v = new(getPipelineScheduleNodeJobEventCanceled)
		return json.Unmarshal(b, *v)
	case "JobEventFinished":
		*v = new(getPipelineScheduleNodeJobEventFinished)
		return json.Unmarshal(b, *v)
	case "JobEventGeneric":
		*v = new(getPipelineScheduleNodeJobEventGeneric)
		return json.Unmarshal(b, *v)
	case "JobEventReprioritized":
		*v = new(getPipelineScheduleNodeJobEventReprioritized)
		return json.Unmarshal(b, *v)
	case "JobEventRetried":
		*v = new(getPipelineScheduleNodeJobEventRetried)
		return json.Unmarshal(b, *v)
	case "JobEventRetryFailed":
		*v = new(getPipelineScheduleNodeJobEventRetryFailed)
		return json.Unmarshal(b, *v)
	case "JobEventStackError":
		*v = new(getPipelineScheduleNodeJobEventStackError)
		return json.Unmarshal(b, *v)
	case "JobEventStackNotification":
		*v = new(getPipelineScheduleNodeJobEventStackNotification)
		return json.Unmarshal(b, *v)
	case "JobEventTimedOut":
		*v = new(getPipelineScheduleNodeJobEventTimedOut)
		return json.Unmarshal(b, *v)
	case "JobTypeBlock":
		*v = new(getPipelineScheduleNodeJobTypeBlock)
		return json.Unmarshal(b, *v)
	case "JobTypeCommand":
		*v = new(getPipelineScheduleNodeJobTypeCommand)
		return json.Unmarshal(b, *v)
	case "JobTypeTrigger":
		*v = new(getPipelineScheduleNodeJobTypeTrigger)
		return json.Unmarshal(b, *v)
	case "JobTypeWait":
		*v = new(getPipelineScheduleNodeJobTypeWait)
		return json.Unmarshal(b, *v)
	case "NotificationServiceSlack":
		*v = new(getPipelineScheduleNodeNotificationServiceSlack)
		return json.Unmarshal(b, *v)
	case "Organization":
		*v = new(getPipelineScheduleNodeOrganization)
		return json.Unmarshal(b, *v)
	case "OrganizationBanner":
		*v = new(getPipelineScheduleNodeOrganizationBanner)
		return json.Unmarshal(b, *v)
	case "OrganizationInvitation":
		*v = new(getPipelineScheduleNodeOrganizationInvitation)
		return json.Unmarshal(b, *v)
	case "OrganizationMember":
		*v = new(getPipelineScheduleNodeOrganizationMember)
		return json.Unmarshal(b, *v)
	case "OrganizationRepositoryProviderGitHub":
		*v = new(getPipelineScheduleNodeOrganizationRepositoryProviderGitHub)
		return json.Unmarshal(b, *v)
	case "OrganizationRepositoryProviderGitHubEnterpriseServer":
		*v = new(getPipelineScheduleNodeOrganizationRepositoryProviderGitHubEnterpriseServer)
		return json.Unmarshal(b, *v)
	case "Pipeline":
		*v = new(getPipelineScheduleNodePipeline)
		return json.Unmarshal(b, *v)
	case "PipelineMetric":
		*v = new(getPipelineScheduleNodePipelineMetric)
		return json.Unmarshal(b, *v)
	case "PipelineSchedule":
		*v = new(getPipelineScheduleNodePipelineSchedule)
		return json.Unmarshal(b, *v)
	case "PipelineTemplate":
		*v = new(getPipelineScheduleNodePipelineTemplate)
		return json.Unmarshal(b, *v)
	case "Registry":
		*v = new(getPipelineScheduleNodeRegistry)
		return json.Unmarshal(b, *v)
	case "RegistryToken":
		*v = new(getPipelineScheduleNodeRegistryToken)
		return json.Unmarshal(b, *v)
	case "Rule":
		*v = new(getPipelineScheduleNodeRule)
		return json.Unmarshal(b, *v)
	case "SSOProviderGitHubApp":
		*v = new(getPipelineScheduleNodeSSOProviderGitHubApp)
		return json.Unmarshal(b, *v)
	case "SSOProviderGoogleGSuite":
		*v = new(getPipelineScheduleNodeSSOProviderGoogleGSuite)
		return json.Unmarshal(b, *v)
	case "SSOProviderSAML":
		*v = new(getPipelineScheduleNodeSSOProviderSAML)
		return json.Unmarshal(b, *v)
	case "Secret":
		*v = new(getPipelineScheduleNodeSecret)
		return json.Unmarshal(b, *v)
	case "Suite":
		*v = new(getPipelineScheduleNodeSuite)
		return json.Unmarshal(b, *v)
	case "Team":
		*v = new(getPipelineScheduleNodeTeam)
		return json.Unmarshal(b, *v)
	case "TeamMember":
		*v = new(getPipelineScheduleNodeTeamMember)
		return json.Unmarshal(b, *v)
	case "TeamPipeline":
		*v = new(getPipelineScheduleNodeTeamPipeline)
		return json.Unmarshal(b, *v)
	case "TeamRegistry":
		*v = new(getPipelineScheduleNodeTeamRegistry)
		return json.Unmarshal(b, *v)
	case "TeamSuite":
		*v = new(getPipelineScheduleNodeTeamSuite)
		return json.Unmarshal(b, *v)
	case "User":
		*v = new(getPipelineScheduleNodeUser)
		return json.Unmarshal(b, *v)
	case "Viewer":
		*v = new(getPipelineScheduleNodeViewer)
		return json.Unmarshal(b, *v)
	case "":
		return fmt.Errorf(
			"response was missing Node.__typename")
	default:
		return fmt.Errorf(
			`unexpected concrete type for getPipelineScheduleNode: "%v"`, tn.TypeName)
	}
}

func __marshalgetPipelineScheduleNode(v *getPipelineScheduleNode) ([]byte, error) {

	var typename string
	switch v := (*v).(type) {
	case *getPipelineScheduleNodeAPIAccessToken:
		typename = "APIAccessToken"

		result := struct {
			TypeName string `json:"__typename"`
			*getPipelineScheduleNodeAPIAccessToken
		}{typename, v}
		return json.Marshal(result)
	case *getPipelineScheduleNodeAPIAccessTokenCode:
		typename = "APIAccessTokenCode"

		result := struct {
			TypeName string `json:"__typename"`
			*getPipelineScheduleNodeAPIAccessTokenCode
		}{typename, v}
		return json.Marshal(result)
	case *getPipelineScheduleNodeAPIApplication:
		typename = "APIApplication"

		result := struct {
			TypeName string `json:"__typename"`
			*getPipelineScheduleNodeAPIApplication
		}{typename, v}
		return json.Marshal(result)
	case *getPipelineScheduleNodeAgent:
		typename = "Agent"

		result := struct {
			TypeName string `json:"__typename"`
			*getPipelineScheduleNodeAgent
		}{typename, v}
		return json.Marshal(result)
	case *getPipelineScheduleNodeAgentToken:
		typename = "AgentToken"

		result := struct {
			TypeName string `json:"__typename"`
			*getPipelineScheduleNodeAgentToken
		}{typename, v}
		return json.Marshal(result)
	case *getPipelineScheduleNodeAnnotation:
		typename = "Annotation"

		result := struct {
			TypeName string `json:"__typename"`
			*getPipelineScheduleNodeAnnotation
		}{typename, v}
		return json.Marshal(result)
	case *getPipelineScheduleNodeArtifact:
		typename = "Artifact"

		result := struct {
			TypeName string `json:"__typename"`
			*getPipelineScheduleNodeArtifact
		}{typename, v}
		return json.Marshal(result)
	case *getPipelineScheduleNodeAuditEvent:
		typename = "AuditEvent"

		result := struct {
			TypeName string `json:"__typename"`
			*getPipelineScheduleNodeAuditEvent
		}{typename, v}
		return json.Marshal(result)
	case *getPipelineScheduleNodeAuthorizationBitbucket:
		typename = "AuthorizationBitbucket"

		result := struct {
			TypeName string `json:"__typename"`
			*getPipelineScheduleNodeAuthorizationBitbucket
		}{typename, v}
		return json.Marshal(result)
	case *getPipelineScheduleNodeAuthorizationGitHub:
		typename = "AuthorizationGitHub"

		result := struct {
			TypeName string `json:"__typename"`
			*getPipelineScheduleNodeAuthorizationGitHub
		}{typename, v}
		return json.Marshal(result)
	case *getPipelineScheduleNodeAuthorizationGitHubApp:
		typename = "AuthorizationGitHubApp"

		result := struct {
			TypeName string `json:"__typename"`
			*getPipelineScheduleNodeAuthorizationGitHubApp
		}{typename, v}
		return json.Marshal(result)
	case *getPipelineScheduleNodeAuthorizationGitHubEnterprise:
		typename = "AuthorizationGitHubEnterprise"

		result := struct {
			TypeName string `json:"__typename"`
			*getPipelineScheduleNodeAuthorizationGitHubEnterprise
		}{typename, v}
		return json.Marshal(result)
	case *getPipelineScheduleNodeAuthorizationGoogle:
		typename = "AuthorizationGoogle"

		result := struct {
			TypeName string `json:"__typename"`
			*getPipelineScheduleNodeAuthorizationGoogle
		}{typename, v}
		return json.Marshal(result)
	case *getPipelineScheduleNodeAuthorizationSAML:
		typename = "AuthorizationSAML"

		result := struct {
			TypeName string `json:"__typename"`
			*getPipelineScheduleNodeAuthorizationSAML
		}{typename, v}
		return json.Marshal(result)
	case *getPipelineScheduleNodeBuild:
		typename = "Build"

		result := struct {
			TypeName string `json:"__typename"`
			*getPipelineScheduleNodeBuild
		}{typename, v}
		return json.Marshal(result)
	case *getPipelineScheduleNodeCluster:
		typename = "Cluster"

		result := struct {
			TypeName string `json:"__typename"`
			*getPipelineScheduleNodeCluster
		}{typename, v}
		return json.Marshal(result)
	case *getPipelineScheduleNodeClusterQueue:
		typename = "ClusterQueue"

		result := struct {
			TypeName string `json:"__typename"`
			*getPipelineScheduleNodeClusterQueue
		}{typename, v}
		return json.Marshal(result)
	case *getPipelineScheduleNodeClusterQueueToken:
		typename = "ClusterQueueToken"

		result := struct {
			TypeName string `json:"__typename"`
			*getPipelineScheduleNodeClusterQueueToken
		}{typename, v}
		return json.Marshal(result)
	case *getPipelineScheduleNodeClusterToken:
		typename = "ClusterToken"

		result := struct {
			TypeName string `json:"__typename"`
			*getPipelineScheduleNodeClusterToken
		}{typename, v}
		return json.Marshal(result)
	case *getPipelineScheduleNodeCompositeRegistryUpstream:
		typename = "CompositeRegistryUpstream"

		result := struct {
			TypeName string `json:"__typename"`
			*getPipelineScheduleNodeCompositeRegistryUpstream
		}{typename, v}
		return json.Marshal(result)
	case *getPipelineScheduleNodeEmail:
		typename = "Email"

		result := struct {
			TypeName string `json:"__typename"`
			*getPipelineScheduleNodeEmail
		}{typename, v}
		return json.Marshal(result)
	case *getPipelineScheduleNodeJobEventAssigned:
		typename = "JobEventAssigned"

		result := struct {
			TypeName string `json:"__typename"`
			*getPipelineScheduleNodeJobEventAssigned
		}{typename, v}
		return json.Marshal(result)
	case *getPipelineScheduleNodeJobEventBuildStepUploadCreated:
		typename = "JobEventBuildStepUploadCreated"

		result := struct {
			TypeName string `json:"__typename"`
			*getPipelineScheduleNodeJobEventBuildStepUploadCreated
		}{typename, v}
		return json.Marshal(result)
	case *getPipelineScheduleNodeJobEventCanceled:
		typename = "JobEventCanceled"

		result := struct {
			TypeName string `json:"__typename"`
			*getPipelineScheduleNodeJobEventCanceled
		}{typename, v}
		return json.Marshal(result)
	case *getPipelineScheduleNodeJobEventFinished:
		typename = "JobEventFinished"

		result := struct {
			TypeName string `json:"__typename"`
			*getPipelineScheduleNodeJobEventFinished
		}{typename, v}
		return json.Marshal(result)
	case *getPipelineScheduleNodeJobEventGeneric:
		typename = "JobEventGeneric"

		result := struct {
			TypeName string `json:"__typename"`
			*getPipelineScheduleNodeJobEventGeneric
		}{typename, v}
		return json.Marshal(result)
	case *getPipelineScheduleNodeJobEventReprioritized:
		typename = "JobEventReprioritized"

		result := struct {
			TypeName string `json:"__typename"`
			*getPipelineScheduleNodeJobEventReprioritized
		}{typename, v}
		return json.Marshal(result)
	case *getPipelineScheduleNodeJobEventRetried:
		typename = "JobEventRetried"

		result := struct {
			TypeName string `json:"__typename"`
			*getPipelineScheduleNodeJobEventRetried
		}{typename, v}
		return json.Marshal(result)
	case *getPipelineScheduleNodeJobEventRetryFailed:
		typename = "JobEventRetryFailed"

		result := struct {
			TypeName string `json:"__typename"`
			*getPipelineScheduleNodeJobEventRetryFailed
		}{typename, v}
		return json.Marshal(result)
	case *getPipelineScheduleNodeJobEventStackError:
		typename = "JobEventStackError"

		result := struct {
			TypeName string `json:"__typename"`
			*getPipelineScheduleNodeJobEventStackError
		}{typename, v}
		return json.Marshal(result)
	case *getPipelineScheduleNodeJobEventStackNotification:
		typename = "JobEventStackNotification"

		result := struct {
			TypeName string `json:"__typename"`
			*getPipelineScheduleNodeJobEventStackNotification
		}{typename, v}
		return json.Marshal(result)
	case *getPipelineScheduleNodeJobEventTimedOut:
		typename = "JobEventTimedOut"

		result := struct {
			TypeName string `json:"__typename"`
			*getPipelineScheduleNodeJobEventTimedOut
		}{typename, v}
		return json.Marshal(result)
	case *getPipelineScheduleNodeJobTypeBlock:
		typename = "JobTypeBlock"

		result := struct {
			TypeName string `json:"__typename"`
			*getPipelineScheduleNodeJobTypeBlock
		}{typename, v}
		return json.Marshal(result)
	case *getPipelineScheduleNodeJobTypeCommand:
		typename = "JobTypeCommand"

		result := struct {
			TypeName string `json:"__typename"`
			*getPipelineScheduleNodeJobTypeCommand
		}{typename, v}
		return json.Marshal(result)
	case *getPipelineScheduleNodeJobTypeTrigger:
		typename = "JobTypeTrigger"

		result := struct {
			TypeName string `json:"__typename"`
			*getPipelineScheduleNodeJobTypeTrigger
		}{typename, v}
		return json.Marshal(result)
	case *getPipelineScheduleNodeJobTypeWait:
		typename = "JobTypeWait"

		result := struct {
			TypeName string `json:"__typename"`
			*getPipelineScheduleNodeJobTypeWait
		}{typename, v}
		return json.Marshal(result)
	case *getPipelineScheduleNodeNotificationServiceSlack:
		typename = "NotificationServiceSlack"

		result := struct {
			TypeName string `json:"__typename"`
			*getPipelineScheduleNodeNotificationServiceSlack
		}{typename, v}
		return json.Marshal(result)
	case *getPipelineScheduleNodeOrganization:
		typename = "Organization"

		result := struct {
			TypeName string `json:"__typename"`
			*getPipelineScheduleNodeOrganization
		}{typename, v}
		return json.Marshal(result)
	case *getPipelineScheduleNodeOrganizationBanner:
		typename = "OrganizationBanner"

		result := struct {
			TypeName string `json:"__typename"`
			*getPipelineScheduleNodeOrganizationBanner
		}{typename, v}
		return json.Marshal(result)
	case *getPipelineScheduleNodeOrganizationInvitation:
		typename = "OrganizationInvitation"

		result := struct {
			TypeName string `json:"__typename"`
			*getPipelineScheduleNodeOrganizationInvitation
		}{typename, v}
		return json.Marshal(result)
	case *getPipelineScheduleNodeOrganizationMember:
		typename = "OrganizationMember"

		result := struct {
			TypeName string `json:"__typename"`
			*getPipelineScheduleNodeOrganizationMember
		}{typename, v}
		return json.Marshal(result)
	case *getPipelineScheduleNodeOrganizationRepositoryProviderGitHub:
		typename = "OrganizationRepositoryProviderGitHub"

		result := struct {
			TypeName string `json:"__typename"`
			*getPipelineScheduleNodeOrganizationRepositoryProviderGitHub
		}{typename, v}
		return json.Marshal(result)
	case *getPipelineScheduleNodeOrganizationRepositoryProviderGitHubEnterpriseServer:
		typename = "OrganizationRepositoryProviderGitHubEnterpriseServer"

		result := struct {
			TypeName string `json:"__typename"`
			*getPipelineScheduleNodeOrganizationRepositoryProviderGitHubEnterpriseServer
		}{typename, v}
		return json.Marshal(result)
	case *getPipelineScheduleNodePipeline:
		typename = "Pipeline"

		result := struct {
			TypeName string `json:"__typename"`
			*getPipelineScheduleNodePipeline
		}{typename, v}
		return json.Marshal(result)
	case *getPipelineScheduleNodePipelineMetric:
		typename = "PipelineMetric"

		result := struct {
			TypeName string `json:"__typename"`
			*getPipelineScheduleNodePipelineMetric
		}{typename, v}
		return json.Marshal(result)
	case *getPipelineScheduleNodePipelineSchedule:
		typename = "PipelineSchedule"

		premarshaled, err := v.__premarshalJSON()
		if err != nil {
			return nil, err
		}
		result := struct {
			TypeName string `json:"__typename"`
			*__premarshalgetPipelineScheduleNodePipelineSchedule
		}{typename, premarshaled}
		return json.Marshal(result)
	case *getPipelineScheduleNodePipelineTemplate:
		typename = "PipelineTemplate"

		result := struct {
			TypeName string `json:"__typename"`
			*getPipelineScheduleNodePipelineTemplate
		}{typename, v}
		return json.Marshal(result)
	case *getPipelineScheduleNodeRegistry:
		typename = "Registry"

		result := struct {
			TypeName string `json:"__typename"`
			*getPipelineScheduleNodeRegistry
		}{typename, v}
		return json.Marshal(result)
	case *getPipelineScheduleNodeRegistryToken:
		typename = "RegistryToken"

		result := struct {
			TypeName string `json:"__typename"`
			*getPipelineScheduleNodeRegistryToken
		}{typename, v}
		return json.Marshal(result)
	case *getPipelineScheduleNodeRule:
		typename = "Rule"

		result := struct {
			TypeName string `json:"__typename"`
			*getPipelineScheduleNodeRule
		}{typename, v}
		return json.Marshal(result)
	case *getPipelineScheduleNodeSSOProviderGitHubApp:
		typename = "SSOProviderGitHubApp"

		result := struct {
			TypeName string `json:"__typename"`
			*getPipelineScheduleNodeSSOProviderGitHubApp
		}{typename, v}
		return json.Marshal(result)
	case *getPipelineScheduleNodeSSOProviderGoogleGSuite:
		typename = "SSOProviderGoogleGSuite"

		result := struct {
			TypeName string `json:"__typename"`
			*getPipelineScheduleNodeSSOProviderGoogleGSuite
		}{typename, v}
		return json.Marshal(result)
	case *getPipelineScheduleNodeSSOProviderSAML:
		typename = "SSOProviderSAML"

		result := struct {
			TypeName string `json:"__typename"`
			*getPipelineScheduleNodeSSOProviderSAML
		}{typename, v}
		return json.Marshal(result)
	case *getPipelineScheduleNodeSecret:
		typename = "Secret"

		result := struct {
			TypeName string `json:"__typename"`
			*getPipelineScheduleNodeSecret
		}{typename, v}
		return json.Marshal(result)
	case *getPipelineScheduleNodeSuite:
		typename = "Suite"

		result := struct {
			TypeName string `json:"__typename"`
			*getPipelineScheduleNodeSuite
		}{typename, v}
		return json.Marshal(result)
	case *getPipelineScheduleNodeTeam:
		typename = "Team"

		result := struct {
			TypeName string `json:"__typename"`
			*getPipelineScheduleNodeTeam
		}{typename, v}
		return json.Marshal(result)
	case *getPipelineScheduleNodeTeamMember:
		typename = "TeamMember"

		result := struct {
			TypeName string `json:"__typename"`
			*getPipelineScheduleNodeTeamMember
		}{typename, v}
		return json.Marshal(result)
	case *getPipelineScheduleNodeTeamPipeline:
		typename = "TeamPipeline"

		result := struct {
			TypeName string `json:"__typename"`
			*getPipelineScheduleNodeTeamPipeline
		}{typename, v}
		return json.Marshal(result)
	case *getPipelineScheduleNodeTeamRegistry:
		typename = "TeamRegistry"

		result := struct {
			TypeName string `json:"__typename"`
			*getPipelineScheduleNodeTeamRegistry
		}{typename, v}
		return json.Marshal(result)
	case *getPipelineScheduleNodeTeamSuite:
		typename = "TeamSuite"

		result := struct {
			TypeName string `json:"__typename"`
			*getPipelineScheduleNodeTeamSuite
		}{typename, v}
		return json.Marshal(result)
	case *getPipelineScheduleNodeUser:
		typename = "User"

		result := struct {
			TypeName string `json:"__typename"`
			*getPipelineScheduleNodeUser
		}{typename, v}
		return json.Marshal(result)
	case *getPipelineScheduleNodeViewer:
		typename = "Viewer"

		result := struct {
			TypeName string `json:"__typename"`
			*getPipelineScheduleNodeViewer
		}{typename, v}
		return json.Marshal(result)
	case nil:
		return []byte("null"), nil
	default:
		return nil, fmt.Errorf(
			`unexpected concrete type for getPipelineScheduleNode: "%T"`, v)
	}
}

// getPipelineScheduleNodeAPIAccessToken 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 getPipelineScheduleNodeAPIAccessToken struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getPipelineScheduleNodeAPIAccessToken.Typename, and is useful for accessing the field via an interface.
func (v *getPipelineScheduleNodeAPIAccessToken) GetTypename() string { return v.Typename }

// getPipelineScheduleNodeAPIAccessTokenCode 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 getPipelineScheduleNodeAPIAccessTokenCode struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getPipelineScheduleNodeAPIAccessTokenCode.Typename, and is useful for accessing the field via an interface.
func (v *getPipelineScheduleNodeAPIAccessTokenCode) GetTypename() string { return v.Typename }

// getPipelineScheduleNodeAPIApplication includes the requested fields of the GraphQL type APIApplication.
// The GraphQL type's documentation follows.
//
// An API Application
type getPipelineScheduleNodeAPIApplication struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getPipelineScheduleNodeAPIApplication.Typename, and is useful for accessing the field via an interface.
func (v *getPipelineScheduleNodeAPIApplication) GetTypename() string { return v.Typename }

// getPipelineScheduleNodeAgent includes the requested fields of the GraphQL type Agent.
// The GraphQL type's documentation follows.
//
// An agent
type getPipelineScheduleNodeAgent struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getPipelineScheduleNodeAgent.Typename, and is useful for accessing the field via an interface.
func (v *getPipelineScheduleNodeAgent) GetTypename() string { return v.Typename }

// getPipelineScheduleNodeAgentToken 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 getPipelineScheduleNodeAgentToken struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getPipelineScheduleNodeAgentToken.Typename, and is useful for accessing the field via an interface.
func (v *getPipelineScheduleNodeAgentToken) GetTypename() string { return v.Typename }

// getPipelineScheduleNodeAnnotation 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 getPipelineScheduleNodeAnnotation struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getPipelineScheduleNodeAnnotation.Typename, and is useful for accessing the field via an interface.
func (v *getPipelineScheduleNodeAnnotation) GetTypename() string { return v.Typename }

// getPipelineScheduleNodeArtifact 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 getPipelineScheduleNodeArtifact struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getPipelineScheduleNodeArtifact.Typename, and is useful for accessing the field via an interface.
func (v *getPipelineScheduleNodeArtifact) GetTypename() string { return v.Typename }

// getPipelineScheduleNodeAuditEvent 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 getPipelineScheduleNodeAuditEvent struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getPipelineScheduleNodeAuditEvent.Typename, and is useful for accessing the field via an interface.
func (v *getPipelineScheduleNodeAuditEvent) GetTypename() string { return v.Typename }

// getPipelineScheduleNodeAuthorizationBitbucket includes the requested fields of the GraphQL type AuthorizationBitbucket.
// The GraphQL type's documentation follows.
//
// A Bitbucket account authorized with a Buildkite account
type getPipelineScheduleNodeAuthorizationBitbucket struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getPipelineScheduleNodeAuthorizationBitbucket.Typename, and is useful for accessing the field via an interface.
func (v *getPipelineScheduleNodeAuthorizationBitbucket) GetTypename() string { return v.Typename }

// getPipelineScheduleNodeAuthorizationGitHub includes the requested fields of the GraphQL type AuthorizationGitHub.
// The GraphQL type's documentation follows.
//
// A GitHub account authorized with a Buildkite account
type getPipelineScheduleNodeAuthorizationGitHub struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getPipelineScheduleNodeAuthorizationGitHub.Typename, and is useful for accessing the field via an interface.
func (v *getPipelineScheduleNodeAuthorizationGitHub) GetTypename() string { return v.Typename }

// getPipelineScheduleNodeAuthorizationGitHubApp includes the requested fields of the GraphQL type AuthorizationGitHubApp.
// The GraphQL type's documentation follows.
//
// A GitHub app authorized with a Buildkite account
type getPipelineScheduleNodeAuthorizationGitHubApp struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getPipelineScheduleNodeAuthorizationGitHubApp.Typename, and is useful for accessing the field via an interface.
func (v *getPipelineScheduleNodeAuthorizationGitHubApp) GetTypename() string { return v.Typename }

// getPipelineScheduleNodeAuthorizationGitHubEnterprise 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 getPipelineScheduleNodeAuthorizationGitHubEnterprise struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getPipelineScheduleNodeAuthorizationGitHubEnterprise.Typename, and is useful for accessing the field via an interface.
func (v *getPipelineScheduleNodeAuthorizationGitHubEnterprise) GetTypename() string {
	return v.Typename
}

// getPipelineScheduleNodeAuthorizationGoogle includes the requested fields of the GraphQL type AuthorizationGoogle.
// The GraphQL type's documentation follows.
//
// A Google account authorized with a Buildkite account
type getPipelineScheduleNodeAuthorizationGoogle struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getPipelineScheduleNodeAuthorizationGoogle.Typename, and is useful for accessing the field via an interface.
func (v *getPipelineScheduleNodeAuthorizationGoogle) GetTypename() string { return v.Typename }

// getPipelineScheduleNodeAuthorizationSAML includes the requested fields of the GraphQL type AuthorizationSAML.
// The GraphQL type's documentation follows.
//
// A SAML account authorized with a Buildkite account
type getPipelineScheduleNodeAuthorizationSAML struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getPipelineScheduleNodeAuthorizationSAML.Typename, and is useful for accessing the field via an interface.
func (v *getPipelineScheduleNodeAuthorizationSAML) GetTypename() string { return v.Typename }

// getPipelineScheduleNodeBuild includes the requested fields of the GraphQL type Build.
// The GraphQL type's documentation follows.
//
// A build from a pipeline
type getPipelineScheduleNodeBuild struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getPipelineScheduleNodeBuild.Typename, and is useful for accessing the field via an interface.
func (v *getPipelineScheduleNodeBuild) GetTypename() string { return v.Typename }

// getPipelineScheduleNodeCluster includes the requested fields of the GraphQL type Cluster.
type getPipelineScheduleNodeCluster struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getPipelineScheduleNodeCluster.Typename, and is useful for accessing the field via an interface.
func (v *getPipelineScheduleNodeCluster) GetTypename() string { return v.Typename }

// getPipelineScheduleNodeClusterQueue includes the requested fields of the GraphQL type ClusterQueue.
type getPipelineScheduleNodeClusterQueue struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getPipelineScheduleNodeClusterQueue.Typename, and is useful for accessing the field via an interface.
func (v *getPipelineScheduleNodeClusterQueue) GetTypename() string { return v.Typename }

// getPipelineScheduleNodeClusterQueueToken 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 getPipelineScheduleNodeClusterQueueToken struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getPipelineScheduleNodeClusterQueueToken.Typename, and is useful for accessing the field via an interface.
func (v *getPipelineScheduleNodeClusterQueueToken) GetTypename() string { return v.Typename }

// getPipelineScheduleNodeClusterToken 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 getPipelineScheduleNodeClusterToken struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getPipelineScheduleNodeClusterToken.Typename, and is useful for accessing the field via an interface.
func (v *getPipelineScheduleNodeClusterToken) GetTypename() string { return v.Typename }

// getPipelineScheduleNodeCompositeRegistryUpstream includes the requested fields of the GraphQL type CompositeRegistryUpstream.
// The GraphQL type's documentation follows.
//
// A composite registry's upstream
type getPipelineScheduleNodeCompositeRegistryUpstream struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getPipelineScheduleNodeCompositeRegistryUpstream.Typename, and is useful for accessing the field via an interface.
func (v *getPipelineScheduleNodeCompositeRegistryUpstream) GetTypename() string { return v.Typename }

// getPipelineScheduleNodeEmail includes the requested fields of the GraphQL type Email.
// The GraphQL type's documentation follows.
//
// An email address
type getPipelineScheduleNodeEmail struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getPipelineScheduleNodeEmail.Typename, and is useful for accessing the field via an interface.
func (v *getPipelineScheduleNodeEmail) GetTypename() string { return v.Typename }

// getPipelineScheduleNodeJobEventAssigned 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 getPipelineScheduleNodeJobEventAssigned struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getPipelineScheduleNodeJobEventAssigned.Typename, and is useful for accessing the field via an interface.
func (v *getPipelineScheduleNodeJobEventAssigned) GetTypename() string { return v.Typename }

// getPipelineScheduleNodeJobEventBuildStepUploadCreated 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 getPipelineScheduleNodeJobEventBuildStepUploadCreated struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getPipelineScheduleNodeJobEventBuildStepUploadCreated.Typename, and is useful for accessing the field via an interface.
func (v *getPipelineScheduleNodeJobEventBuildStepUploadCreated) GetTypename() string {
	return v.Typename
}

// getPipelineScheduleNodeJobEventCanceled includes the requested fields of the GraphQL type JobEventCanceled.
// The GraphQL type's documentation follows.
//
// An event created when the job is canceled
type getPipelineScheduleNodeJobEventCanceled struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getPipelineScheduleNodeJobEventCanceled.Typename, and is useful for accessing the field via an interface.
func (v *getPipelineScheduleNodeJobEventCanceled) GetTypename() string { return v.Typename }

// getPipelineScheduleNodeJobEventFinished includes the requested fields of the GraphQL type JobEventFinished.
// The GraphQL type's documentation follows.
//
// An event created when the job is finished
type getPipelineScheduleNodeJobEventFinished struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getPipelineScheduleNodeJobEventFinished.Typename, and is useful for accessing the field via an interface.
func (v *getPipelineScheduleNodeJobEventFinished) GetTypename() string { return v.Typename }

// getPipelineScheduleNodeJobEventGeneric 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 getPipelineScheduleNodeJobEventGeneric struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getPipelineScheduleNodeJobEventGeneric.Typename, and is useful for accessing the field via an interface.
func (v *getPipelineScheduleNodeJobEventGeneric) GetTypename() string { return v.Typename }

// getPipelineScheduleNodeJobEventReprioritized includes the requested fields of the GraphQL type JobEventReprioritized.
// The GraphQL type's documentation follows.
//
// A job event for when a job's priority has been changed
type getPipelineScheduleNodeJobEventReprioritized struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getPipelineScheduleNodeJobEventReprioritized.Typename, and is useful for accessing the field via an interface.
func (v *getPipelineScheduleNodeJobEventReprioritized) GetTypename() string { return v.Typename }

// getPipelineScheduleNodeJobEventRetried includes the requested fields of the GraphQL type JobEventRetried.
// The GraphQL type's documentation follows.
//
// An event created when the job is retried
type getPipelineScheduleNodeJobEventRetried struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getPipelineScheduleNodeJobEventRetried.Typename, and is useful for accessing the field via an interface.
func (v *getPipelineScheduleNodeJobEventRetried) GetTypename() string { return v.Typename }

// getPipelineScheduleNodeJobEventRetryFailed includes the requested fields of the GraphQL type JobEventRetryFailed.
// The GraphQL type's documentation follows.
//
// An event created when job fails to retry
type getPipelineScheduleNodeJobEventRetryFailed struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getPipelineScheduleNodeJobEventRetryFailed.Typename, and is useful for accessing the field via an interface.
func (v *getPipelineScheduleNodeJobEventRetryFailed) GetTypename() string { return v.Typename }

// getPipelineScheduleNodeJobEventStackError includes the requested fields of the GraphQL type JobEventStackError.
// The GraphQL type's documentation follows.
//
// An event created when a stack error is reported
type getPipelineScheduleNodeJobEventStackError struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getPipelineScheduleNodeJobEventStackError.Typename, and is useful for accessing the field via an interface.
func (v *getPipelineScheduleNodeJobEventStackError) GetTypename() string { return v.Typename }

// getPipelineScheduleNodeJobEventStackNotification includes the requested fields of the GraphQL type JobEventStackNotification.
// The GraphQL type's documentation follows.
//
// An event created when a stack notification is triggered
type getPipelineScheduleNodeJobEventStackNotification struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getPipelineScheduleNodeJobEventStackNotification.Typename, and is useful for accessing the field via an interface.
func (v *getPipelineScheduleNodeJobEventStackNotification) GetTypename() string { return v.Typename }

// getPipelineScheduleNodeJobEventTimedOut 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 getPipelineScheduleNodeJobEventTimedOut struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getPipelineScheduleNodeJobEventTimedOut.Typename, and is useful for accessing the field via an interface.
func (v *getPipelineScheduleNodeJobEventTimedOut) GetTypename() string { return v.Typename }

// getPipelineScheduleNodeJobTypeBlock 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 getPipelineScheduleNodeJobTypeBlock struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getPipelineScheduleNodeJobTypeBlock.Typename, and is useful for accessing the field via an interface.
func (v *getPipelineScheduleNodeJobTypeBlock) GetTypename() string { return v.Typename }

// getPipelineScheduleNodeJobTypeCommand 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 getPipelineScheduleNodeJobTypeCommand struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getPipelineScheduleNodeJobTypeCommand.Typename, and is useful for accessing the field via an interface.
func (v *getPipelineScheduleNodeJobTypeCommand) GetTypename() string { return v.Typename }

// getPipelineScheduleNodeJobTypeTrigger 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 getPipelineScheduleNodeJobTypeTrigger struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getPipelineScheduleNodeJobTypeTrigger.Typename, and is useful for accessing the field via an interface.
func (v *getPipelineScheduleNodeJobTypeTrigger) GetTypename() string { return v.Typename }

// getPipelineScheduleNodeJobTypeWait 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 getPipelineScheduleNodeJobTypeWait struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getPipelineScheduleNodeJobTypeWait.Typename, and is useful for accessing the field via an interface.
func (v *getPipelineScheduleNodeJobTypeWait) GetTypename() string { return v.Typename }

// getPipelineScheduleNodeNotificationServiceSlack includes the requested fields of the GraphQL type NotificationServiceSlack.
// The GraphQL type's documentation follows.
//
// Deliver notifications to Slack
type getPipelineScheduleNodeNotificationServiceSlack struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getPipelineScheduleNodeNotificationServiceSlack.Typename, and is useful for accessing the field via an interface.
func (v *getPipelineScheduleNodeNotificationServiceSlack) GetTypename() string { return v.Typename }

// getPipelineScheduleNodeOrganization includes the requested fields of the GraphQL type Organization.
// The GraphQL type's documentation follows.
//
// An organization
type getPipelineScheduleNodeOrganization struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getPipelineScheduleNodeOrganization.Typename, and is useful for accessing the field via an interface.
func (v *getPipelineScheduleNodeOrganization) GetTypename() string { return v.Typename }

// getPipelineScheduleNodeOrganizationBanner includes the requested fields of the GraphQL type OrganizationBanner.
// The GraphQL type's documentation follows.
//
// System banner of an organization
type getPipelineScheduleNodeOrganizationBanner struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getPipelineScheduleNodeOrganizationBanner.Typename, and is useful for accessing the field via an interface.
func (v *getPipelineScheduleNodeOrganizationBanner) GetTypename() string { return v.Typename }

// getPipelineScheduleNodeOrganizationInvitation 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 getPipelineScheduleNodeOrganizationInvitation struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getPipelineScheduleNodeOrganizationInvitation.Typename, and is useful for accessing the field via an interface.
func (v *getPipelineScheduleNodeOrganizationInvitation) GetTypename() string { return v.Typename }

// getPipelineScheduleNodeOrganizationMember includes the requested fields of the GraphQL type OrganizationMember.
// The GraphQL type's documentation follows.
//
// A member of an organization
type getPipelineScheduleNodeOrganizationMember struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getPipelineScheduleNodeOrganizationMember.Typename, and is useful for accessing the field via an interface.
func (v *getPipelineScheduleNodeOrganizationMember) GetTypename() string { return v.Typename }

// getPipelineScheduleNodeOrganizationRepositoryProviderGitHub includes the requested fields of the GraphQL type OrganizationRepositoryProviderGitHub.
// The GraphQL type's documentation follows.
//
// GitHub installation associated with this organization
type getPipelineScheduleNodeOrganizationRepositoryProviderGitHub struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getPipelineScheduleNodeOrganizationRepositoryProviderGitHub.Typename, and is useful for accessing the field via an interface.
func (v *getPipelineScheduleNodeOrganizationRepositoryProviderGitHub) GetTypename() string {
	return v.Typename
}

// getPipelineScheduleNodeOrganizationRepositoryProviderGitHubEnterpriseServer includes the requested fields of the GraphQL type OrganizationRepositoryProviderGitHubEnterpriseServer.
// The GraphQL type's documentation follows.
//
// GitHub Enterprise Server associated with this organization
type getPipelineScheduleNodeOrganizationRepositoryProviderGitHubEnterpriseServer struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getPipelineScheduleNodeOrganizationRepositoryProviderGitHubEnterpriseServer.Typename, and is useful for accessing the field via an interface.
func (v *getPipelineScheduleNodeOrganizationRepositoryProviderGitHubEnterpriseServer) GetTypename() string {
	return v.Typename
}

// getPipelineScheduleNodePipeline includes the requested fields of the GraphQL type Pipeline.
// The GraphQL type's documentation follows.
//
// A pipeline
type getPipelineScheduleNodePipeline struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getPipelineScheduleNodePipeline.Typename, and is useful for accessing the field via an interface.
func (v *getPipelineScheduleNodePipeline) GetTypename() string { return v.Typename }

// getPipelineScheduleNodePipelineMetric includes the requested fields of the GraphQL type PipelineMetric.
// The GraphQL type's documentation follows.
//
// A metric for a pipeline
type getPipelineScheduleNodePipelineMetric struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getPipelineScheduleNodePipelineMetric.Typename, and is useful for accessing the field via an interface.
func (v *getPipelineScheduleNodePipelineMetric) GetTypename() string { return v.Typename }

// getPipelineScheduleNodePipelineSchedule 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 getPipelineScheduleNodePipelineSchedule struct {
	Typename               string `json:"__typename"`
	PipelineScheduleValues `json:"-"`
}

// GetTypename returns getPipelineScheduleNodePipelineSchedule.Typename, and is useful for accessing the field via an interface.
func (v *getPipelineScheduleNodePipelineSchedule) GetTypename() string { return v.Typename }

// GetId returns getPipelineScheduleNodePipelineSchedule.Id, and is useful for accessing the field via an interface.
func (v *getPipelineScheduleNodePipelineSchedule) GetId() string { return v.PipelineScheduleValues.Id }

// GetUuid returns getPipelineScheduleNodePipelineSchedule.Uuid, and is useful for accessing the field via an interface.
func (v *getPipelineScheduleNodePipelineSchedule) GetUuid() string {
	return v.PipelineScheduleValues.Uuid
}

// GetLabel returns getPipelineScheduleNodePipelineSchedule.Label, and is useful for accessing the field via an interface.
func (v *getPipelineScheduleNodePipelineSchedule) GetLabel() *string {
	return v.PipelineScheduleValues.Label
}

// GetCronline returns getPipelineScheduleNodePipelineSchedule.Cronline, and is useful for accessing the field via an interface.
func (v *getPipelineScheduleNodePipelineSchedule) GetCronline() *string {
	return v.PipelineScheduleValues.Cronline
}

// GetMessage returns getPipelineScheduleNodePipelineSchedule.Message, and is useful for accessing the field via an interface.
func (v *getPipelineScheduleNodePipelineSchedule) GetMessage() *string {
	return v.PipelineScheduleValues.Message
}

// GetCommit returns getPipelineScheduleNodePipelineSchedule.Commit, and is useful for accessing the field via an interface.
func (v *getPipelineScheduleNodePipelineSchedule) GetCommit() *string {
	return v.PipelineScheduleValues.Commit
}

// GetBranch returns getPipelineScheduleNodePipelineSchedule.Branch, and is useful for accessing the field via an interface.
func (v *getPipelineScheduleNodePipelineSchedule) GetBranch() *string {
	return v.PipelineScheduleValues.Branch
}

// GetEnv returns getPipelineScheduleNodePipelineSchedule.Env, and is useful for accessing the field via an interface.
func (v *getPipelineScheduleNodePipelineSchedule) GetEnv() []*string {
	return v.PipelineScheduleValues.Env
}

// GetEnabled returns getPipelineScheduleNodePipelineSchedule.Enabled, and is useful for accessing the field via an interface.
func (v *getPipelineScheduleNodePipelineSchedule) GetEnabled() bool {
	return v.PipelineScheduleValues.Enabled
}

// GetPipeline returns getPipelineScheduleNodePipelineSchedule.Pipeline, and is useful for accessing the field via an interface.
func (v *getPipelineScheduleNodePipelineSchedule) GetPipeline() PipelineScheduleValuesPipeline {
	return v.PipelineScheduleValues.Pipeline
}

func (v *getPipelineScheduleNodePipelineSchedule) UnmarshalJSON(b []byte) error {

	if string(b) == "null" {
		return nil
	}

	var firstPass struct {
		*getPipelineScheduleNodePipelineSchedule
		graphql.NoUnmarshalJSON
	}
	firstPass.getPipelineScheduleNodePipelineSchedule = v

	err := json.Unmarshal(b, &firstPass)
	if err != nil {
		return err
	}

	err = json.Unmarshal(
		b, &v.PipelineScheduleValues)
	if err != nil {
		return err
	}
	return nil
}

type __premarshalgetPipelineScheduleNodePipelineSchedule struct {
	Typename string `json:"__typename"`

	Id string `json:"id"`

	Uuid string `json:"uuid"`

	Label *string `json:"label"`

	Cronline *string `json:"cronline"`

	Message *string `json:"message"`

	Commit *string `json:"commit"`

	Branch *string `json:"branch"`

	Env []*string `json:"env"`

	Enabled bool `json:"enabled"`

	Pipeline PipelineScheduleValuesPipeline `json:"pipeline"`
}

func (v *getPipelineScheduleNodePipelineSchedule) MarshalJSON() ([]byte, error) {
	premarshaled, err := v.__premarshalJSON()
	if err != nil {
		return nil, err
	}
	return json.Marshal(premarshaled)
}

func (v *getPipelineScheduleNodePipelineSchedule) __premarshalJSON() (*__premarshalgetPipelineScheduleNodePipelineSchedule, error) {
	var retval __premarshalgetPipelineScheduleNodePipelineSchedule

	retval.Typename = v.Typename
	retval.Id = v.PipelineScheduleValues.Id
	retval.Uuid = v.PipelineScheduleValues.Uuid
	retval.Label = v.PipelineScheduleValues.Label
	retval.Cronline = v.PipelineScheduleValues.Cronline
	retval.Message = v.PipelineScheduleValues.Message
	retval.Commit = v.PipelineScheduleValues.Commit
	retval.Branch = v.PipelineScheduleValues.Branch
	retval.Env = v.PipelineScheduleValues.Env
	retval.Enabled = v.PipelineScheduleValues.Enabled
	retval.Pipeline = v.PipelineScheduleValues.Pipeline
	return &retval, nil
}

// getPipelineScheduleNodePipelineTemplate 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 getPipelineScheduleNodePipelineTemplate struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getPipelineScheduleNodePipelineTemplate.Typename, and is useful for accessing the field via an interface.
func (v *getPipelineScheduleNodePipelineTemplate) GetTypename() string { return v.Typename }

// getPipelineScheduleNodeRegistry includes the requested fields of the GraphQL type Registry.
// The GraphQL type's documentation follows.
//
// A registry
type getPipelineScheduleNodeRegistry struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getPipelineScheduleNodeRegistry.Typename, and is useful for accessing the field via an interface.
func (v *getPipelineScheduleNodeRegistry) GetTypename() string { return v.Typename }

// getPipelineScheduleNodeRegistryToken includes the requested fields of the GraphQL type RegistryToken.
// The GraphQL type's documentation follows.
//
// A registry token
type getPipelineScheduleNodeRegistryToken struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getPipelineScheduleNodeRegistryToken.Typename, and is useful for accessing the field via an interface.
func (v *getPipelineScheduleNodeRegistryToken) GetTypename() string { return v.Typename }

// getPipelineScheduleNodeRule includes the requested fields of the GraphQL type Rule.
type getPipelineScheduleNodeRule struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getPipelineScheduleNodeRule.Typename, and is useful for accessing the field via an interface.
func (v *getPipelineScheduleNodeRule) GetTypename() string { return v.Typename }

// getPipelineScheduleNodeSSOProviderGitHubApp includes the requested fields of the GraphQL type SSOProviderGitHubApp.
// The GraphQL type's documentation follows.
//
// Single sign-on provided by GitHub
type getPipelineScheduleNodeSSOProviderGitHubApp struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getPipelineScheduleNodeSSOProviderGitHubApp.Typename, and is useful for accessing the field via an interface.
func (v *getPipelineScheduleNodeSSOProviderGitHubApp) GetTypename() string { return v.Typename }

// getPipelineScheduleNodeSSOProviderGoogleGSuite includes the requested fields of the GraphQL type SSOProviderGoogleGSuite.
// The GraphQL type's documentation follows.
//
// Single sign-on provided by Google
type getPipelineScheduleNodeSSOProviderGoogleGSuite struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getPipelineScheduleNodeSSOProviderGoogleGSuite.Typename, and is useful for accessing the field via an interface.
func (v *getPipelineScheduleNodeSSOProviderGoogleGSuite) GetTypename() string { return v.Typename }

// getPipelineScheduleNodeSSOProviderSAML includes the requested fields of the GraphQL type SSOProviderSAML.
// The GraphQL type's documentation follows.
//
// Single sign-on provided via SAML
type getPipelineScheduleNodeSSOProviderSAML struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getPipelineScheduleNodeSSOProviderSAML.Typename, and is useful for accessing the field via an interface.
func (v *getPipelineScheduleNodeSSOProviderSAML) GetTypename() string { return v.Typename }

// getPipelineScheduleNodeSecret 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 getPipelineScheduleNodeSecret struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getPipelineScheduleNodeSecret.Typename, and is useful for accessing the field via an interface.
func (v *getPipelineScheduleNodeSecret) GetTypename() string { return v.Typename }

// getPipelineScheduleNodeSuite includes the requested fields of the GraphQL type Suite.
// The GraphQL type's documentation follows.
//
// A suite
type getPipelineScheduleNodeSuite struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getPipelineScheduleNodeSuite.Typename, and is useful for accessing the field via an interface.
func (v *getPipelineScheduleNodeSuite) GetTypename() string { return v.Typename }

// getPipelineScheduleNodeTeam includes the requested fields of the GraphQL type Team.
// The GraphQL type's documentation follows.
//
// An organization team
type getPipelineScheduleNodeTeam struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getPipelineScheduleNodeTeam.Typename, and is useful for accessing the field via an interface.
func (v *getPipelineScheduleNodeTeam) GetTypename() string { return v.Typename }

// getPipelineScheduleNodeTeamMember includes the requested fields of the GraphQL type TeamMember.
// The GraphQL type's documentation follows.
//
// An member of a team
type getPipelineScheduleNodeTeamMember struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getPipelineScheduleNodeTeamMember.Typename, and is useful for accessing the field via an interface.
func (v *getPipelineScheduleNodeTeamMember) GetTypename() string { return v.Typename }

// getPipelineScheduleNodeTeamPipeline 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 getPipelineScheduleNodeTeamPipeline struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getPipelineScheduleNodeTeamPipeline.Typename, and is useful for accessing the field via an interface.
func (v *getPipelineScheduleNodeTeamPipeline) GetTypename() string { return v.Typename }

// getPipelineScheduleNodeTeamRegistry includes the requested fields of the GraphQL type TeamRegistry.
// The GraphQL type's documentation follows.
//
// A registry that's been assigned to a team
type getPipelineScheduleNodeTeamRegistry struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getPipelineScheduleNodeTeamRegistry.Typename, and is useful for accessing the field via an interface.
func (v *getPipelineScheduleNodeTeamRegistry) GetTypename() string { return v.Typename }

// getPipelineScheduleNodeTeamSuite 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 getPipelineScheduleNodeTeamSuite struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getPipelineScheduleNodeTeamSuite.Typename, and is useful for accessing the field via an interface.
func (v *getPipelineScheduleNodeTeamSuite) GetTypename() string { return v.Typename }

// getPipelineScheduleNodeUser includes the requested fields of the GraphQL type User.
// The GraphQL type's documentation follows.
//
// A user
type getPipelineScheduleNodeUser struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getPipelineScheduleNodeUser.Typename, and is useful for accessing the field via an interface.
func (v *getPipelineScheduleNodeUser) GetTypename() string { return v.Typename }

// getPipelineScheduleNodeViewer includes the requested fields of the GraphQL type Viewer.
// The GraphQL type's documentation follows.
//
// Represents the current user session
type getPipelineScheduleNodeViewer struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getPipelineScheduleNodeViewer.Typename, and is useful for accessing the field via an interface.
func (v *getPipelineScheduleNodeViewer) GetTypename() string { return v.Typename }

// getPipelineScheduleResponse is returned by getPipelineSchedule on success.
type getPipelineScheduleResponse struct {
	// Fetches an object given its ID.
	Node getPipelineScheduleNode `json:"-"`
}

// GetNode returns getPipelineScheduleResponse.Node, and is useful for accessing the field via an interface.
func (v *getPipelineScheduleResponse) GetNode() getPipelineScheduleNode { return v.Node }

func (v *getPipelineScheduleResponse) UnmarshalJSON(b []byte) error {

	if string(b) == "null" {
		return nil
	}

	var firstPass struct {
		*getPipelineScheduleResponse
		Node json.RawMessage `json:"node"`
		graphql.NoUnmarshalJSON
	}
	firstPass.getPipelineScheduleResponse = v

	err := json.Unmarshal(b, &firstPass)
	if err != nil {
		return err
	}

	{
		dst := &v.Node
		src := firstPass.Node
		if len(src) != 0 && string(src) != "null" {
			err = __unmarshalgetPipelineScheduleNode(
				src, dst)
			if err != nil {
				return fmt.Errorf(
					"unable to unmarshal getPipelineScheduleResponse.Node: %w", err)
			}
		}
	}
	return nil
}

type __premarshalgetPipelineScheduleResponse struct {
	Node json.RawMessage `json:"node"`
}

func (v *getPipelineScheduleResponse) MarshalJSON() ([]byte, error) {
	premarshaled, err := v.__premarshalJSON()
	if err != nil {
		return nil, err
	}
	return json.Marshal(premarshaled)
}

func (v *getPipelineScheduleResponse) __premarshalJSON() (*__premarshalgetPipelineScheduleResponse, error) {
	var retval __premarshalgetPipelineScheduleResponse

	{

		dst := &retval.Node
		src := v.Node
		var err error
		*dst, err = __marshalgetPipelineScheduleNode(
			&src)
		if err != nil {
			return nil, fmt.Errorf(
				"unable to marshal getPipelineScheduleResponse.Node: %w", err)
		}
	}
	return &retval, nil
}

// getPipelineTeamsPipeline includes the requested fields of the GraphQL type Pipeline.
// The GraphQL type's documentation follows.
//
// A pipeline
type getPipelineTeamsPipeline struct {
	// Teams associated with this pipeline
	Teams getPipelineTeamsPipelineTeamsTeamPipelineConnection `json:"teams"`
}

// GetTeams returns getPipelineTeamsPipeline.Teams, and is useful for accessing the field via an interface.
func (v *getPipelineTeamsPipeline) GetTeams() getPipelineTeamsPipelineTeamsTeamPipelineConnection {
	return v.Teams
}

// getPipelineTeamsPipelineTeamsTeamPipelineConnection includes the requested fields of the GraphQL type TeamPipelineConnection.
// The GraphQL type's documentation follows.
//
// A collection of TeamPipeline records
type getPipelineTeamsPipelineTeamsTeamPipelineConnection struct {
	PipelineTeam `json:"-"`
}

// GetPageInfo returns getPipelineTeamsPipelineTeamsTeamPipelineConnection.PageInfo, and is useful for accessing the field via an interface.
func (v *getPipelineTeamsPipelineTeamsTeamPipelineConnection) GetPageInfo() PipelineTeamPageInfo {
	return v.PipelineTeam.PageInfo
}

// GetCount returns getPipelineTeamsPipelineTeamsTeamPipelineConnection.Count, and is useful for accessing the field via an interface.
func (v *getPipelineTeamsPipelineTeamsTeamPipelineConnection) GetCount() int {
	return v.PipelineTeam.Count
}

// GetEdges returns getPipelineTeamsPipelineTeamsTeamPipelineConnection.Edges, and is useful for accessing the field via an interface.
func (v *getPipelineTeamsPipelineTeamsTeamPipelineConnection) GetEdges() []PipelineTeamEdgesTeamPipelineEdge {
	return v.PipelineTeam.Edges
}

func (v *getPipelineTeamsPipelineTeamsTeamPipelineConnection) UnmarshalJSON(b []byte) error {

	if string(b) == "null" {
		return nil
	}

	var firstPass struct {
		*getPipelineTeamsPipelineTeamsTeamPipelineConnection
		graphql.NoUnmarshalJSON
	}
	firstPass.getPipelineTeamsPipelineTeamsTeamPipelineConnection = v

	err := json.Unmarshal(b, &firstPass)
	if err != nil {
		return err
	}

	err = json.Unmarshal(
		b, &v.PipelineTeam)
	if err != nil {
		return err
	}
	return nil
}

type __premarshalgetPipelineTeamsPipelineTeamsTeamPipelineConnection struct {
	PageInfo PipelineTeamPageInfo `json:"pageInfo"`

	Count int `json:"count"`

	Edges []PipelineTeamEdgesTeamPipelineEdge `json:"edges"`
}

func (v *getPipelineTeamsPipelineTeamsTeamPipelineConnection) MarshalJSON() ([]byte, error) {
	premarshaled, err := v.__premarshalJSON()
	if err != nil {
		return nil, err
	}
	return json.Marshal(premarshaled)
}

func (v *getPipelineTeamsPipelineTeamsTeamPipelineConnection) __premarshalJSON() (*__premarshalgetPipelineTeamsPipelineTeamsTeamPipelineConnection, error) {
	var retval __premarshalgetPipelineTeamsPipelineTeamsTeamPipelineConnection

	retval.PageInfo = v.PipelineTeam.PageInfo
	retval.Count = v.PipelineTeam.Count
	retval.Edges = v.PipelineTeam.Edges
	return &retval, nil
}

// getPipelineTeamsResponse is returned by getPipelineTeams on success.
type getPipelineTeamsResponse struct {
	// Find a pipeline
	Pipeline getPipelineTeamsPipeline `json:"pipeline"`
}

// GetPipeline returns getPipelineTeamsResponse.Pipeline, and is useful for accessing the field via an interface.
func (v *getPipelineTeamsResponse) GetPipeline() getPipelineTeamsPipeline { return v.Pipeline }

// getPipelineTemplatesOrganization includes the requested fields of the GraphQL type Organization.
// The GraphQL type's documentation follows.
//
// An organization
type getPipelineTemplatesOrganization struct {
	// Return all the pipeline templates the current user has access to for this organization
	PipelineTemplates getPipelineTemplatesOrganizationPipelineTemplatesPipelineTemplateConnection `json:"pipelineTemplates"`
}

// GetPipelineTemplates returns getPipelineTemplatesOrganization.PipelineTemplates, and is useful for accessing the field via an interface.
func (v *getPipelineTemplatesOrganization) GetPipelineTemplates() getPipelineTemplatesOrganizationPipelineTemplatesPipelineTemplateConnection {
	return v.PipelineTemplates
}

// getPipelineTemplatesOrganizationPipelineTemplatesPipelineTemplateConnection includes the requested fields of the GraphQL type PipelineTemplateConnection.
type getPipelineTemplatesOrganizationPipelineTemplatesPipelineTemplateConnection struct {
	PageInfo getPipelineTemplatesOrganizationPipelineTemplatesPipelineTemplateConnectionPageInfo                    `json:"pageInfo"`
	Edges    []getPipelineTemplatesOrganizationPipelineTemplatesPipelineTemplateConnectionEdgesPipelineTemplateEdge `json:"edges"`
}

// GetPageInfo returns getPipelineTemplatesOrganizationPipelineTemplatesPipelineTemplateConnection.PageInfo, and is useful for accessing the field via an interface.
func (v *getPipelineTemplatesOrganizationPipelineTemplatesPipelineTemplateConnection) GetPageInfo() getPipelineTemplatesOrganizationPipelineTemplatesPipelineTemplateConnectionPageInfo {
	return v.PageInfo
}

// GetEdges returns getPipelineTemplatesOrganizationPipelineTemplatesPipelineTemplateConnection.Edges, and is useful for accessing the field via an interface.
func (v *getPipelineTemplatesOrganizationPipelineTemplatesPipelineTemplateConnection) GetEdges() []getPipelineTemplatesOrganizationPipelineTemplatesPipelineTemplateConnectionEdgesPipelineTemplateEdge {
	return v.Edges
}

// getPipelineTemplatesOrganizationPipelineTemplatesPipelineTemplateConnectionEdgesPipelineTemplateEdge includes the requested fields of the GraphQL type PipelineTemplateEdge.
type getPipelineTemplatesOrganizationPipelineTemplatesPipelineTemplateConnectionEdgesPipelineTemplateEdge struct {
	Node getPipelineTemplatesOrganizationPipelineTemplatesPipelineTemplateConnectionEdgesPipelineTemplateEdgeNodePipelineTemplate `json:"node"`
}

// GetNode returns getPipelineTemplatesOrganizationPipelineTemplatesPipelineTemplateConnectionEdgesPipelineTemplateEdge.Node, and is useful for accessing the field via an interface.
func (v *getPipelineTemplatesOrganizationPipelineTemplatesPipelineTemplateConnectionEdgesPipelineTemplateEdge) GetNode() getPipelineTemplatesOrganizationPipelineTemplatesPipelineTemplateConnectionEdgesPipelineTemplateEdgeNodePipelineTemplate {
	return v.Node
}

// getPipelineTemplatesOrganizationPipelineTemplatesPipelineTemplateConnectionEdgesPipelineTemplateEdgeNodePipelineTemplate 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 getPipelineTemplatesOrganizationPipelineTemplatesPipelineTemplateConnectionEdgesPipelineTemplateEdgeNodePipelineTemplate struct {
	PipelineTemplateFields `json:"-"`
}

// GetId returns getPipelineTemplatesOrganizationPipelineTemplatesPipelineTemplateConnectionEdgesPipelineTemplateEdgeNodePipelineTemplate.Id, and is useful for accessing the field via an interface.
func (v *getPipelineTemplatesOrganizationPipelineTemplatesPipelineTemplateConnectionEdgesPipelineTemplateEdgeNodePipelineTemplate) GetId() string {
	return v.PipelineTemplateFields.Id
}

// GetUuid returns getPipelineTemplatesOrganizationPipelineTemplatesPipelineTemplateConnectionEdgesPipelineTemplateEdgeNodePipelineTemplate.Uuid, and is useful for accessing the field via an interface.
func (v *getPipelineTemplatesOrganizationPipelineTemplatesPipelineTemplateConnectionEdgesPipelineTemplateEdgeNodePipelineTemplate) GetUuid() string {
	return v.PipelineTemplateFields.Uuid
}

// GetAvailable returns getPipelineTemplatesOrganizationPipelineTemplatesPipelineTemplateConnectionEdgesPipelineTemplateEdgeNodePipelineTemplate.Available, and is useful for accessing the field via an interface.
func (v *getPipelineTemplatesOrganizationPipelineTemplatesPipelineTemplateConnectionEdgesPipelineTemplateEdgeNodePipelineTemplate) GetAvailable() bool {
	return v.PipelineTemplateFields.Available
}

// GetConfiguration returns getPipelineTemplatesOrganizationPipelineTemplatesPipelineTemplateConnectionEdgesPipelineTemplateEdgeNodePipelineTemplate.Configuration, and is useful for accessing the field via an interface.
func (v *getPipelineTemplatesOrganizationPipelineTemplatesPipelineTemplateConnectionEdgesPipelineTemplateEdgeNodePipelineTemplate) GetConfiguration() string {
	return v.PipelineTemplateFields.Configuration
}

// GetDescription returns getPipelineTemplatesOrganizationPipelineTemplatesPipelineTemplateConnectionEdgesPipelineTemplateEdgeNodePipelineTemplate.Description, and is useful for accessing the field via an interface.
func (v *getPipelineTemplatesOrganizationPipelineTemplatesPipelineTemplateConnectionEdgesPipelineTemplateEdgeNodePipelineTemplate) GetDescription() *string {
	return v.PipelineTemplateFields.Description
}

// GetName returns getPipelineTemplatesOrganizationPipelineTemplatesPipelineTemplateConnectionEdgesPipelineTemplateEdgeNodePipelineTemplate.Name, and is useful for accessing the field via an interface.
func (v *getPipelineTemplatesOrganizationPipelineTemplatesPipelineTemplateConnectionEdgesPipelineTemplateEdgeNodePipelineTemplate) GetName() string {
	return v.PipelineTemplateFields.Name
}

func (v *getPipelineTemplatesOrganizationPipelineTemplatesPipelineTemplateConnectionEdgesPipelineTemplateEdgeNodePipelineTemplate) UnmarshalJSON(b []byte) error {

	if string(b) == "null" {
		return nil
	}

	var firstPass struct {
		*getPipelineTemplatesOrganizationPipelineTemplatesPipelineTemplateConnectionEdgesPipelineTemplateEdgeNodePipelineTemplate
		graphql.NoUnmarshalJSON
	}
	firstPass.getPipelineTemplatesOrganizationPipelineTemplatesPipelineTemplateConnectionEdgesPipelineTemplateEdgeNodePipelineTemplate = v

	err := json.Unmarshal(b, &firstPass)
	if err != nil {
		return err
	}

	err = json.Unmarshal(
		b, &v.PipelineTemplateFields)
	if err != nil {
		return err
	}
	return nil
}

type __premarshalgetPipelineTemplatesOrganizationPipelineTemplatesPipelineTemplateConnectionEdgesPipelineTemplateEdgeNodePipelineTemplate struct {
	Id string `json:"id"`

	Uuid string `json:"uuid"`

	Available bool `json:"available"`

	Configuration string `json:"configuration"`

	Description *string `json:"description"`

	Name string `json:"name"`
}

func (v *getPipelineTemplatesOrganizationPipelineTemplatesPipelineTemplateConnectionEdgesPipelineTemplateEdgeNodePipelineTemplate) MarshalJSON() ([]byte, error) {
	premarshaled, err := v.__premarshalJSON()
	if err != nil {
		return nil, err
	}
	return json.Marshal(premarshaled)
}

func (v *getPipelineTemplatesOrganizationPipelineTemplatesPipelineTemplateConnectionEdgesPipelineTemplateEdgeNodePipelineTemplate) __premarshalJSON() (*__premarshalgetPipelineTemplatesOrganizationPipelineTemplatesPipelineTemplateConnectionEdgesPipelineTemplateEdgeNodePipelineTemplate, error) {
	var retval __premarshalgetPipelineTemplatesOrganizationPipelineTemplatesPipelineTemplateConnectionEdgesPipelineTemplateEdgeNodePipelineTemplate

	retval.Id = v.PipelineTemplateFields.Id
	retval.Uuid = v.PipelineTemplateFields.Uuid
	retval.Available = v.PipelineTemplateFields.Available
	retval.Configuration = v.PipelineTemplateFields.Configuration
	retval.Description = v.PipelineTemplateFields.Description
	retval.Name = v.PipelineTemplateFields.Name
	return &retval, nil
}

// getPipelineTemplatesOrganizationPipelineTemplatesPipelineTemplateConnectionPageInfo includes the requested fields of the GraphQL type PageInfo.
// The GraphQL type's documentation follows.
//
// Information about pagination in a connection.
type getPipelineTemplatesOrganizationPipelineTemplatesPipelineTemplateConnectionPageInfo 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 getPipelineTemplatesOrganizationPipelineTemplatesPipelineTemplateConnectionPageInfo.EndCursor, and is useful for accessing the field via an interface.
func (v *getPipelineTemplatesOrganizationPipelineTemplatesPipelineTemplateConnectionPageInfo) GetEndCursor() string {
	return v.EndCursor
}

// GetHasNextPage returns getPipelineTemplatesOrganizationPipelineTemplatesPipelineTemplateConnectionPageInfo.HasNextPage, and is useful for accessing the field via an interface.
func (v *getPipelineTemplatesOrganizationPipelineTemplatesPipelineTemplateConnectionPageInfo) GetHasNextPage() bool {
	return v.HasNextPage
}

// getPipelineTemplatesResponse is returned by getPipelineTemplates on success.
type getPipelineTemplatesResponse struct {
	// Find an organization
	Organization getPipelineTemplatesOrganization `json:"organization"`
}

// GetOrganization returns getPipelineTemplatesResponse.Organization, and is useful for accessing the field via an interface.
func (v *getPipelineTemplatesResponse) GetOrganization() getPipelineTemplatesOrganization {
	return v.Organization
}

// getTestSuiteResponse is returned by getTestSuite on success.
type getTestSuiteResponse struct {
	// Fetches an object given its ID.
	Suite getTestSuiteSuiteNode `json:"-"`
}

// GetSuite returns getTestSuiteResponse.Suite, and is useful for accessing the field via an interface.
func (v *getTestSuiteResponse) GetSuite() getTestSuiteSuiteNode { return v.Suite }

func (v *getTestSuiteResponse) UnmarshalJSON(b []byte) error {

	if string(b) == "null" {
		return nil
	}

	var firstPass struct {
		*getTestSuiteResponse
		Suite json.RawMessage `json:"suite"`
		graphql.NoUnmarshalJSON
	}
	firstPass.getTestSuiteResponse = v

	err := json.Unmarshal(b, &firstPass)
	if err != nil {
		return err
	}

	{
		dst := &v.Suite
		src := firstPass.Suite
		if len(src) != 0 && string(src) != "null" {
			err = __unmarshalgetTestSuiteSuiteNode(
				src, dst)
			if err != nil {
				return fmt.Errorf(
					"unable to unmarshal getTestSuiteResponse.Suite: %w", err)
			}
		}
	}
	return nil
}

type __premarshalgetTestSuiteResponse struct {
	Suite json.RawMessage `json:"suite"`
}

func (v *getTestSuiteResponse) MarshalJSON() ([]byte, error) {
	premarshaled, err := v.__premarshalJSON()
	if err != nil {
		return nil, err
	}
	return json.Marshal(premarshaled)
}

func (v *getTestSuiteResponse) __premarshalJSON() (*__premarshalgetTestSuiteResponse, error) {
	var retval __premarshalgetTestSuiteResponse

	{

		dst := &retval.Suite
		src := v.Suite
		var err error
		*dst, err = __marshalgetTestSuiteSuiteNode(
			&src)
		if err != nil {
			return nil, fmt.Errorf(
				"unable to marshal getTestSuiteResponse.Suite: %w", err)
		}
	}
	return &retval, nil
}

// getTestSuiteSuite includes the requested fields of the GraphQL type Suite.
// The GraphQL type's documentation follows.
//
// A suite
type getTestSuiteSuite struct {
	Typename string `json:"__typename"`
	Id       string `json:"id"`
	Uuid     string `json:"uuid"`
	// The default branch for this suite
	DefaultBranch string `json:"defaultBranch"`
	// The emoji that will display as a suite navatar in the Test Suites page
	Emoji *string `json:"emoji"`
	// The name of the suite
	Name string `json:"name"`
	// The slug of the suite
	Slug string `json:"slug"`
	// Teams associated with this suite
	Teams getTestSuiteSuiteTeamsTeamSuiteConnection `json:"teams"`
}

// GetTypename returns getTestSuiteSuite.Typename, and is useful for accessing the field via an interface.
func (v *getTestSuiteSuite) GetTypename() string { return v.Typename }

// GetId returns getTestSuiteSuite.Id, and is useful for accessing the field via an interface.
func (v *getTestSuiteSuite) GetId() string { return v.Id }

// GetUuid returns getTestSuiteSuite.Uuid, and is useful for accessing the field via an interface.
func (v *getTestSuiteSuite) GetUuid() string { return v.Uuid }

// GetDefaultBranch returns getTestSuiteSuite.DefaultBranch, and is useful for accessing the field via an interface.
func (v *getTestSuiteSuite) GetDefaultBranch() string { return v.DefaultBranch }

// GetEmoji returns getTestSuiteSuite.Emoji, and is useful for accessing the field via an interface.
func (v *getTestSuiteSuite) GetEmoji() *string { return v.Emoji }

// GetName returns getTestSuiteSuite.Name, and is useful for accessing the field via an interface.
func (v *getTestSuiteSuite) GetName() string { return v.Name }

// GetSlug returns getTestSuiteSuite.Slug, and is useful for accessing the field via an interface.
func (v *getTestSuiteSuite) GetSlug() string { return v.Slug }

// GetTeams returns getTestSuiteSuite.Teams, and is useful for accessing the field via an interface.
func (v *getTestSuiteSuite) GetTeams() getTestSuiteSuiteTeamsTeamSuiteConnection { return v.Teams }

// getTestSuiteSuiteAPIAccessToken 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 getTestSuiteSuiteAPIAccessToken struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getTestSuiteSuiteAPIAccessToken.Typename, and is useful for accessing the field via an interface.
func (v *getTestSuiteSuiteAPIAccessToken) GetTypename() string { return v.Typename }

// getTestSuiteSuiteAPIAccessTokenCode 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 getTestSuiteSuiteAPIAccessTokenCode struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getTestSuiteSuiteAPIAccessTokenCode.Typename, and is useful for accessing the field via an interface.
func (v *getTestSuiteSuiteAPIAccessTokenCode) GetTypename() string { return v.Typename }

// getTestSuiteSuiteAPIApplication includes the requested fields of the GraphQL type APIApplication.
// The GraphQL type's documentation follows.
//
// An API Application
type getTestSuiteSuiteAPIApplication struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getTestSuiteSuiteAPIApplication.Typename, and is useful for accessing the field via an interface.
func (v *getTestSuiteSuiteAPIApplication) GetTypename() string { return v.Typename }

// getTestSuiteSuiteAgent includes the requested fields of the GraphQL type Agent.
// The GraphQL type's documentation follows.
//
// An agent
type getTestSuiteSuiteAgent struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getTestSuiteSuiteAgent.Typename, and is useful for accessing the field via an interface.
func (v *getTestSuiteSuiteAgent) GetTypename() string { return v.Typename }

// getTestSuiteSuiteAgentToken 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 getTestSuiteSuiteAgentToken struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getTestSuiteSuiteAgentToken.Typename, and is useful for accessing the field via an interface.
func (v *getTestSuiteSuiteAgentToken) GetTypename() string { return v.Typename }

// getTestSuiteSuiteAnnotation 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 getTestSuiteSuiteAnnotation struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getTestSuiteSuiteAnnotation.Typename, and is useful for accessing the field via an interface.
func (v *getTestSuiteSuiteAnnotation) GetTypename() string { return v.Typename }

// getTestSuiteSuiteArtifact 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 getTestSuiteSuiteArtifact struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getTestSuiteSuiteArtifact.Typename, and is useful for accessing the field via an interface.
func (v *getTestSuiteSuiteArtifact) GetTypename() string { return v.Typename }

// getTestSuiteSuiteAuditEvent 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 getTestSuiteSuiteAuditEvent struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getTestSuiteSuiteAuditEvent.Typename, and is useful for accessing the field via an interface.
func (v *getTestSuiteSuiteAuditEvent) GetTypename() string { return v.Typename }

// getTestSuiteSuiteAuthorizationBitbucket includes the requested fields of the GraphQL type AuthorizationBitbucket.
// The GraphQL type's documentation follows.
//
// A Bitbucket account authorized with a Buildkite account
type getTestSuiteSuiteAuthorizationBitbucket struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getTestSuiteSuiteAuthorizationBitbucket.Typename, and is useful for accessing the field via an interface.
func (v *getTestSuiteSuiteAuthorizationBitbucket) GetTypename() string { return v.Typename }

// getTestSuiteSuiteAuthorizationGitHub includes the requested fields of the GraphQL type AuthorizationGitHub.
// The GraphQL type's documentation follows.
//
// A GitHub account authorized with a Buildkite account
type getTestSuiteSuiteAuthorizationGitHub struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getTestSuiteSuiteAuthorizationGitHub.Typename, and is useful for accessing the field via an interface.
func (v *getTestSuiteSuiteAuthorizationGitHub) GetTypename() string { return v.Typename }

// getTestSuiteSuiteAuthorizationGitHubApp includes the requested fields of the GraphQL type AuthorizationGitHubApp.
// The GraphQL type's documentation follows.
//
// A GitHub app authorized with a Buildkite account
type getTestSuiteSuiteAuthorizationGitHubApp struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getTestSuiteSuiteAuthorizationGitHubApp.Typename, and is useful for accessing the field via an interface.
func (v *getTestSuiteSuiteAuthorizationGitHubApp) GetTypename() string { return v.Typename }

// getTestSuiteSuiteAuthorizationGitHubEnterprise 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 getTestSuiteSuiteAuthorizationGitHubEnterprise struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getTestSuiteSuiteAuthorizationGitHubEnterprise.Typename, and is useful for accessing the field via an interface.
func (v *getTestSuiteSuiteAuthorizationGitHubEnterprise) GetTypename() string { return v.Typename }

// getTestSuiteSuiteAuthorizationGoogle includes the requested fields of the GraphQL type AuthorizationGoogle.
// The GraphQL type's documentation follows.
//
// A Google account authorized with a Buildkite account
type getTestSuiteSuiteAuthorizationGoogle struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getTestSuiteSuiteAuthorizationGoogle.Typename, and is useful for accessing the field via an interface.
func (v *getTestSuiteSuiteAuthorizationGoogle) GetTypename() string { return v.Typename }

// getTestSuiteSuiteAuthorizationSAML includes the requested fields of the GraphQL type AuthorizationSAML.
// The GraphQL type's documentation follows.
//
// A SAML account authorized with a Buildkite account
type getTestSuiteSuiteAuthorizationSAML struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getTestSuiteSuiteAuthorizationSAML.Typename, and is useful for accessing the field via an interface.
func (v *getTestSuiteSuiteAuthorizationSAML) GetTypename() string { return v.Typename }

// getTestSuiteSuiteBuild includes the requested fields of the GraphQL type Build.
// The GraphQL type's documentation follows.
//
// A build from a pipeline
type getTestSuiteSuiteBuild struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getTestSuiteSuiteBuild.Typename, and is useful for accessing the field via an interface.
func (v *getTestSuiteSuiteBuild) GetTypename() string { return v.Typename }

// getTestSuiteSuiteCluster includes the requested fields of the GraphQL type Cluster.
type getTestSuiteSuiteCluster struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getTestSuiteSuiteCluster.Typename, and is useful for accessing the field via an interface.
func (v *getTestSuiteSuiteCluster) GetTypename() string { return v.Typename }

// getTestSuiteSuiteClusterQueue includes the requested fields of the GraphQL type ClusterQueue.
type getTestSuiteSuiteClusterQueue struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getTestSuiteSuiteClusterQueue.Typename, and is useful for accessing the field via an interface.
func (v *getTestSuiteSuiteClusterQueue) GetTypename() string { return v.Typename }

// getTestSuiteSuiteClusterQueueToken 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 getTestSuiteSuiteClusterQueueToken struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getTestSuiteSuiteClusterQueueToken.Typename, and is useful for accessing the field via an interface.
func (v *getTestSuiteSuiteClusterQueueToken) GetTypename() string { return v.Typename }

// getTestSuiteSuiteClusterToken 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 getTestSuiteSuiteClusterToken struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getTestSuiteSuiteClusterToken.Typename, and is useful for accessing the field via an interface.
func (v *getTestSuiteSuiteClusterToken) GetTypename() string { return v.Typename }

// getTestSuiteSuiteCompositeRegistryUpstream includes the requested fields of the GraphQL type CompositeRegistryUpstream.
// The GraphQL type's documentation follows.
//
// A composite registry's upstream
type getTestSuiteSuiteCompositeRegistryUpstream struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getTestSuiteSuiteCompositeRegistryUpstream.Typename, and is useful for accessing the field via an interface.
func (v *getTestSuiteSuiteCompositeRegistryUpstream) GetTypename() string { return v.Typename }

// getTestSuiteSuiteEmail includes the requested fields of the GraphQL type Email.
// The GraphQL type's documentation follows.
//
// An email address
type getTestSuiteSuiteEmail struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getTestSuiteSuiteEmail.Typename, and is useful for accessing the field via an interface.
func (v *getTestSuiteSuiteEmail) GetTypename() string { return v.Typename }

// getTestSuiteSuiteJobEventAssigned 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 getTestSuiteSuiteJobEventAssigned struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getTestSuiteSuiteJobEventAssigned.Typename, and is useful for accessing the field via an interface.
func (v *getTestSuiteSuiteJobEventAssigned) GetTypename() string { return v.Typename }

// getTestSuiteSuiteJobEventBuildStepUploadCreated 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 getTestSuiteSuiteJobEventBuildStepUploadCreated struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getTestSuiteSuiteJobEventBuildStepUploadCreated.Typename, and is useful for accessing the field via an interface.
func (v *getTestSuiteSuiteJobEventBuildStepUploadCreated) GetTypename() string { return v.Typename }

// getTestSuiteSuiteJobEventCanceled includes the requested fields of the GraphQL type JobEventCanceled.
// The GraphQL type's documentation follows.
//
// An event created when the job is canceled
type getTestSuiteSuiteJobEventCanceled struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getTestSuiteSuiteJobEventCanceled.Typename, and is useful for accessing the field via an interface.
func (v *getTestSuiteSuiteJobEventCanceled) GetTypename() string { return v.Typename }

// getTestSuiteSuiteJobEventFinished includes the requested fields of the GraphQL type JobEventFinished.
// The GraphQL type's documentation follows.
//
// An event created when the job is finished
type getTestSuiteSuiteJobEventFinished struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getTestSuiteSuiteJobEventFinished.Typename, and is useful for accessing the field via an interface.
func (v *getTestSuiteSuiteJobEventFinished) GetTypename() string { return v.Typename }

// getTestSuiteSuiteJobEventGeneric 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 getTestSuiteSuiteJobEventGeneric struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getTestSuiteSuiteJobEventGeneric.Typename, and is useful for accessing the field via an interface.
func (v *getTestSuiteSuiteJobEventGeneric) GetTypename() string { return v.Typename }

// getTestSuiteSuiteJobEventReprioritized includes the requested fields of the GraphQL type JobEventReprioritized.
// The GraphQL type's documentation follows.
//
// A job event for when a job's priority has been changed
type getTestSuiteSuiteJobEventReprioritized struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getTestSuiteSuiteJobEventReprioritized.Typename, and is useful for accessing the field via an interface.
func (v *getTestSuiteSuiteJobEventReprioritized) GetTypename() string { return v.Typename }

// getTestSuiteSuiteJobEventRetried includes the requested fields of the GraphQL type JobEventRetried.
// The GraphQL type's documentation follows.
//
// An event created when the job is retried
type getTestSuiteSuiteJobEventRetried struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getTestSuiteSuiteJobEventRetried.Typename, and is useful for accessing the field via an interface.
func (v *getTestSuiteSuiteJobEventRetried) GetTypename() string { return v.Typename }

// getTestSuiteSuiteJobEventRetryFailed includes the requested fields of the GraphQL type JobEventRetryFailed.
// The GraphQL type's documentation follows.
//
// An event created when job fails to retry
type getTestSuiteSuiteJobEventRetryFailed struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getTestSuiteSuiteJobEventRetryFailed.Typename, and is useful for accessing the field via an interface.
func (v *getTestSuiteSuiteJobEventRetryFailed) GetTypename() string { return v.Typename }

// getTestSuiteSuiteJobEventStackError includes the requested fields of the GraphQL type JobEventStackError.
// The GraphQL type's documentation follows.
//
// An event created when a stack error is reported
type getTestSuiteSuiteJobEventStackError struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getTestSuiteSuiteJobEventStackError.Typename, and is useful for accessing the field via an interface.
func (v *getTestSuiteSuiteJobEventStackError) GetTypename() string { return v.Typename }

// getTestSuiteSuiteJobEventStackNotification includes the requested fields of the GraphQL type JobEventStackNotification.
// The GraphQL type's documentation follows.
//
// An event created when a stack notification is triggered
type getTestSuiteSuiteJobEventStackNotification struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getTestSuiteSuiteJobEventStackNotification.Typename, and is useful for accessing the field via an interface.
func (v *getTestSuiteSuiteJobEventStackNotification) GetTypename() string { return v.Typename }

// getTestSuiteSuiteJobEventTimedOut 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 getTestSuiteSuiteJobEventTimedOut struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getTestSuiteSuiteJobEventTimedOut.Typename, and is useful for accessing the field via an interface.
func (v *getTestSuiteSuiteJobEventTimedOut) GetTypename() string { return v.Typename }

// getTestSuiteSuiteJobTypeBlock 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 getTestSuiteSuiteJobTypeBlock struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getTestSuiteSuiteJobTypeBlock.Typename, and is useful for accessing the field via an interface.
func (v *getTestSuiteSuiteJobTypeBlock) GetTypename() string { return v.Typename }

// getTestSuiteSuiteJobTypeCommand 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 getTestSuiteSuiteJobTypeCommand struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getTestSuiteSuiteJobTypeCommand.Typename, and is useful for accessing the field via an interface.
func (v *getTestSuiteSuiteJobTypeCommand) GetTypename() string { return v.Typename }

// getTestSuiteSuiteJobTypeTrigger 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 getTestSuiteSuiteJobTypeTrigger struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getTestSuiteSuiteJobTypeTrigger.Typename, and is useful for accessing the field via an interface.
func (v *getTestSuiteSuiteJobTypeTrigger) GetTypename() string { return v.Typename }

// getTestSuiteSuiteJobTypeWait 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 getTestSuiteSuiteJobTypeWait struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getTestSuiteSuiteJobTypeWait.Typename, and is useful for accessing the field via an interface.
func (v *getTestSuiteSuiteJobTypeWait) GetTypename() string { return v.Typename }

// getTestSuiteSuiteNode includes the requested fields of the GraphQL interface Node.
//
// getTestSuiteSuiteNode is implemented by the following types:
// getTestSuiteSuiteAPIAccessToken
// getTestSuiteSuiteAPIAccessTokenCode
// getTestSuiteSuiteAPIApplication
// getTestSuiteSuiteAgent
// getTestSuiteSuiteAgentToken
// getTestSuiteSuiteAnnotation
// getTestSuiteSuiteArtifact
// getTestSuiteSuiteAuditEvent
// getTestSuiteSuiteAuthorizationBitbucket
// getTestSuiteSuiteAuthorizationGitHub
// getTestSuiteSuiteAuthorizationGitHubApp
// getTestSuiteSuiteAuthorizationGitHubEnterprise
// getTestSuiteSuiteAuthorizationGoogle
// getTestSuiteSuiteAuthorizationSAML
// getTestSuiteSuiteBuild
// getTestSuiteSuiteCluster
// getTestSuiteSuiteClusterQueue
// getTestSuiteSuiteClusterQueueToken
// getTestSuiteSuiteClusterToken
// getTestSuiteSuiteCompositeRegistryUpstream
// getTestSuiteSuiteEmail
// getTestSuiteSuiteJobEventAssigned
// getTestSuiteSuiteJobEventBuildStepUploadCreated
// getTestSuiteSuiteJobEventCanceled
// getTestSuiteSuiteJobEventFinished
// getTestSuiteSuiteJobEventGeneric
// getTestSuiteSuiteJobEventReprioritized
// getTestSuiteSuiteJobEventRetried
// getTestSuiteSuiteJobEventRetryFailed
// getTestSuiteSuiteJobEventStackError
// getTestSuiteSuiteJobEventStackNotification
// getTestSuiteSuiteJobEventTimedOut
// getTestSuiteSuiteJobTypeBlock
// getTestSuiteSuiteJobTypeCommand
// getTestSuiteSuiteJobTypeTrigger
// getTestSuiteSuiteJobTypeWait
// getTestSuiteSuiteNotificationServiceSlack
// getTestSuiteSuiteOrganization
// getTestSuiteSuiteOrganizationBanner
// getTestSuiteSuiteOrganizationInvitation
// getTestSuiteSuiteOrganizationMember
// getTestSuiteSuiteOrganizationRepositoryProviderGitHub
// getTestSuiteSuiteOrganizationRepositoryProviderGitHubEnterpriseServer
// getTestSuiteSuitePipeline
// getTestSuiteSuitePipelineMetric
// getTestSuiteSuitePipelineSchedule
// getTestSuiteSuitePipelineTemplate
// getTestSuiteSuiteRegistry
// getTestSuiteSuiteRegistryToken
// getTestSuiteSuiteRule
// getTestSuiteSuiteSSOProviderGitHubApp
// getTestSuiteSuiteSSOProviderGoogleGSuite
// getTestSuiteSuiteSSOProviderSAML
// getTestSuiteSuiteSecret
// getTestSuiteSuite
// getTestSuiteSuiteTeam
// getTestSuiteSuiteTeamMember
// getTestSuiteSuiteTeamPipeline
// getTestSuiteSuiteTeamRegistry
// getTestSuiteSuiteTeamSuite
// getTestSuiteSuiteUser
// getTestSuiteSuiteViewer
// The GraphQL type's documentation follows.
//
// An object with an ID.
type getTestSuiteSuiteNode interface {
	implementsGraphQLInterfacegetTestSuiteSuiteNode()
	// GetTypename returns the receiver's concrete GraphQL type-name (see interface doc for possible values).
	GetTypename() string
}

func (v *getTestSuiteSuiteAPIAccessToken) implementsGraphQLInterfacegetTestSuiteSuiteNode()         {}
func (v *getTestSuiteSuiteAPIAccessTokenCode) implementsGraphQLInterfacegetTestSuiteSuiteNode()     {}
func (v *getTestSuiteSuiteAPIApplication) implementsGraphQLInterfacegetTestSuiteSuiteNode()         {}
func (v *getTestSuiteSuiteAgent) implementsGraphQLInterfacegetTestSuiteSuiteNode()                  {}
func (v *getTestSuiteSuiteAgentToken) implementsGraphQLInterfacegetTestSuiteSuiteNode()             {}
func (v *getTestSuiteSuiteAnnotation) implementsGraphQLInterfacegetTestSuiteSuiteNode()             {}
func (v *getTestSuiteSuiteArtifact) implementsGraphQLInterfacegetTestSuiteSuiteNode()               {}
func (v *getTestSuiteSuiteAuditEvent) implementsGraphQLInterfacegetTestSuiteSuiteNode()             {}
func (v *getTestSuiteSuiteAuthorizationBitbucket) implementsGraphQLInterfacegetTestSuiteSuiteNode() {}
func (v *getTestSuiteSuiteAuthorizationGitHub) implementsGraphQLInterfacegetTestSuiteSuiteNode()    {}
func (v *getTestSuiteSuiteAuthorizationGitHubApp) implementsGraphQLInterfacegetTestSuiteSuiteNode() {}
func (v *getTestSuiteSuiteAuthorizationGitHubEnterprise) implementsGraphQLInterfacegetTestSuiteSuiteNode() {
}
func (v *getTestSuiteSuiteAuthorizationGoogle) implementsGraphQLInterfacegetTestSuiteSuiteNode() {}
func (v *getTestSuiteSuiteAuthorizationSAML) implementsGraphQLInterfacegetTestSuiteSuiteNode()   {}
func (v *getTestSuiteSuiteBuild) implementsGraphQLInterfacegetTestSuiteSuiteNode()               {}
func (v *getTestSuiteSuiteCluster) implementsGraphQLInterfacegetTestSuiteSuiteNode()             {}
func (v *getTestSuiteSuiteClusterQueue) implementsGraphQLInterfacegetTestSuiteSuiteNode()        {}
func (v *getTestSuiteSuiteClusterQueueToken) implementsGraphQLInterfacegetTestSuiteSuiteNode()   {}
func (v *getTestSuiteSuiteClusterToken) implementsGraphQLInterfacegetTestSuiteSuiteNode()        {}
func (v *getTestSuiteSuiteCompositeRegistryUpstream) implementsGraphQLInterfacegetTestSuiteSuiteNode() {
}
func (v *getTestSuiteSuiteEmail) implementsGraphQLInterfacegetTestSuiteSuiteNode()            {}
func (v *getTestSuiteSuiteJobEventAssigned) implementsGraphQLInterfacegetTestSuiteSuiteNode() {}
func (v *getTestSuiteSuiteJobEventBuildStepUploadCreated) implementsGraphQLInterfacegetTestSuiteSuiteNode() {
}
func (v *getTestSuiteSuiteJobEventCanceled) implementsGraphQLInterfacegetTestSuiteSuiteNode()      {}
func (v *getTestSuiteSuiteJobEventFinished) implementsGraphQLInterfacegetTestSuiteSuiteNode()      {}
func (v *getTestSuiteSuiteJobEventGeneric) implementsGraphQLInterfacegetTestSuiteSuiteNode()       {}
func (v *getTestSuiteSuiteJobEventReprioritized) implementsGraphQLInterfacegetTestSuiteSuiteNode() {}
func (v *getTestSuiteSuiteJobEventRetried) implementsGraphQLInterfacegetTestSuiteSuiteNode()       {}
func (v *getTestSuiteSuiteJobEventRetryFailed) implementsGraphQLInterfacegetTestSuiteSuiteNode()   {}
func (v *getTestSuiteSuiteJobEventStackError) implementsGraphQLInterfacegetTestSuiteSuiteNode()    {}
func (v *getTestSuiteSuiteJobEventStackNotification) implementsGraphQLInterfacegetTestSuiteSuiteNode() {
}
func (v *getTestSuiteSuiteJobEventTimedOut) implementsGraphQLInterfacegetTestSuiteSuiteNode() {}
func (v *getTestSuiteSuiteJobTypeBlock) implementsGraphQLInterfacegetTestSuiteSuiteNode()     {}
func (v *getTestSuiteSuiteJobTypeCommand) implementsGraphQLInterfacegetTestSuiteSuiteNode()   {}
func (v *getTestSuiteSuiteJobTypeTrigger) implementsGraphQLInterfacegetTestSuiteSuiteNode()   {}
func (v *getTestSuiteSuiteJobTypeWait) implementsGraphQLInterfacegetTestSuiteSuiteNode()      {}
func (v *getTestSuiteSuiteNotificationServiceSlack) implementsGraphQLInterfacegetTestSuiteSuiteNode() {
}
func (v *getTestSuiteSuiteOrganization) implementsGraphQLInterfacegetTestSuiteSuiteNode()           {}
func (v *getTestSuiteSuiteOrganizationBanner) implementsGraphQLInterfacegetTestSuiteSuiteNode()     {}
func (v *getTestSuiteSuiteOrganizationInvitation) implementsGraphQLInterfacegetTestSuiteSuiteNode() {}
func (v *getTestSuiteSuiteOrganizationMember) implementsGraphQLInterfacegetTestSuiteSuiteNode()     {}
func (v *getTestSuiteSuiteOrganizationRepositoryProviderGitHub) implementsGraphQLInterfacegetTestSuiteSuiteNode() {
}
func (v *getTestSuiteSuiteOrganizationRepositoryProviderGitHubEnterpriseServer) implementsGraphQLInterfacegetTestSuiteSuiteNode() {
}
func (v *getTestSuiteSuitePipeline) implementsGraphQLInterfacegetTestSuiteSuiteNode()             {}
func (v *getTestSuiteSuitePipelineMetric) implementsGraphQLInterfacegetTestSuiteSuiteNode()       {}
func (v *getTestSuiteSuitePipelineSchedule) implementsGraphQLInterfacegetTestSuiteSuiteNode()     {}
func (v *getTestSuiteSuitePipelineTemplate) implementsGraphQLInterfacegetTestSuiteSuiteNode()     {}
func (v *getTestSuiteSuiteRegistry) implementsGraphQLInterfacegetTestSuiteSuiteNode()             {}
func (v *getTestSuiteSuiteRegistryToken) implementsGraphQLInterfacegetTestSuiteSuiteNode()        {}
func (v *getTestSuiteSuiteRule) implementsGraphQLInterfacegetTestSuiteSuiteNode()                 {}
func (v *getTestSuiteSuiteSSOProviderGitHubApp) implementsGraphQLInterfacegetTestSuiteSuiteNode() {}
func (v *getTestSuiteSuiteSSOProviderGoogleGSuite) implementsGraphQLInterfacegetTestSuiteSuiteNode() {
}
func (v *getTestSuiteSuiteSSOProviderSAML) implementsGraphQLInterfacegetTestSuiteSuiteNode() {}
func (v *getTestSuiteSuiteSecret) implementsGraphQLInterfacegetTestSuiteSuiteNode()          {}
func (v *getTestSuiteSuite) implementsGraphQLInterfacegetTestSuiteSuiteNode()                {}
func (v *getTestSuiteSuiteTeam) implementsGraphQLInterfacegetTestSuiteSuiteNode()            {}
func (v *getTestSuiteSuiteTeamMember) implementsGraphQLInterfacegetTestSuiteSuiteNode()      {}
func (v *getTestSuiteSuiteTeamPipeline) implementsGraphQLInterfacegetTestSuiteSuiteNode()    {}
func (v *getTestSuiteSuiteTeamRegistry) implementsGraphQLInterfacegetTestSuiteSuiteNode()    {}
func (v *getTestSuiteSuiteTeamSuite) implementsGraphQLInterfacegetTestSuiteSuiteNode()       {}
func (v *getTestSuiteSuiteUser) implementsGraphQLInterfacegetTestSuiteSuiteNode()            {}
func (v *getTestSuiteSuiteViewer) implementsGraphQLInterfacegetTestSuiteSuiteNode()          {}

func __unmarshalgetTestSuiteSuiteNode(b []byte, v *getTestSuiteSuiteNode) 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(getTestSuiteSuiteAPIAccessToken)
		return json.Unmarshal(b, *v)
	case "APIAccessTokenCode":
		*v = new(getTestSuiteSuiteAPIAccessTokenCode)
		return json.Unmarshal(b, *v)
	case "APIApplication":
		*v = new(getTestSuiteSuiteAPIApplication)
		return json.Unmarshal(b, *v)
	case "Agent":
		*v = new(getTestSuiteSuiteAgent)
		return json.Unmarshal(b, *v)
	case "AgentToken":
		*v = new(getTestSuiteSuiteAgentToken)
		return json.Unmarshal(b, *v)
	case "Annotation":
		*v = new(getTestSuiteSuiteAnnotation)
		return json.Unmarshal(b, *v)
	case "Artifact":
		*v = new(getTestSuiteSuiteArtifact)
		return json.Unmarshal(b, *v)
	case "AuditEvent":
		*v = new(getTestSuiteSuiteAuditEvent)
		return json.Unmarshal(b, *v)
	case "AuthorizationBitbucket":
		*v = new(getTestSuiteSuiteAuthorizationBitbucket)
		return json.Unmarshal(b, *v)
	case "AuthorizationGitHub":
		*v = new(getTestSuiteSuiteAuthorizationGitHub)
		return json.Unmarshal(b, *v)
	case "AuthorizationGitHubApp":
		*v = new(getTestSuiteSuiteAuthorizationGitHubApp)
		return json.Unmarshal(b, *v)
	case "AuthorizationGitHubEnterprise":
		*v = new(getTestSuiteSuiteAuthorizationGitHubEnterprise)
		return json.Unmarshal(b, *v)
	case "AuthorizationGoogle":
		*v = new(getTestSuiteSuiteAuthorizationGoogle)
		return json.Unmarshal(b, *v)
	case "AuthorizationSAML":
		*v = new(getTestSuiteSuiteAuthorizationSAML)
		return json.Unmarshal(b, *v)
	case "Build":
		*v = new(getTestSuiteSuiteBuild)
		return json.Unmarshal(b, *v)
	case "Cluster":
		*v = new(getTestSuiteSuiteCluster)
		return json.Unmarshal(b, *v)
	case "ClusterQueue":
		*v = new(getTestSuiteSuiteClusterQueue)
		return json.Unmarshal(b, *v)
	case "ClusterQueueToken":
		*v = new(getTestSuiteSuiteClusterQueueToken)
		return json.Unmarshal(b, *v)
	case "ClusterToken":
		*v = new(getTestSuiteSuiteClusterToken)
		return json.Unmarshal(b, *v)
	case "CompositeRegistryUpstream":
		*v = new(getTestSuiteSuiteCompositeRegistryUpstream)
		return json.Unmarshal(b, *v)
	case "Email":
		*v = new(getTestSuiteSuiteEmail)
		return json.Unmarshal(b, *v)
	case "JobEventAssigned":
		*v = new(getTestSuiteSuiteJobEventAssigned)
		return json.Unmarshal(b, *v)
	case "JobEventBuildStepUploadCreated":
		*v = new(getTestSuiteSuiteJobEventBuildStepUploadCreated)
		return json.Unmarshal(b, *v)
	case "JobEventCanceled":
		*v = new(getTestSuiteSuiteJobEventCanceled)
		return json.Unmarshal(b, *v)
	case "JobEventFinished":
		*v = new(getTestSuiteSuiteJobEventFinished)
		return json.Unmarshal(b, *v)
	case "JobEventGeneric":
		*v = new(getTestSuiteSuiteJobEventGeneric)
		return json.Unmarshal(b, *v)
	case "JobEventReprioritized":
		*v = new(getTestSuiteSuiteJobEventReprioritized)
		return json.Unmarshal(b, *v)
	case "JobEventRetried":
		*v = new(getTestSuiteSuiteJobEventRetried)
		return json.Unmarshal(b, *v)
	case "JobEventRetryFailed":
		*v = new(getTestSuiteSuiteJobEventRetryFailed)
		return json.Unmarshal(b, *v)
	case "JobEventStackError":
		*v = new(getTestSuiteSuiteJobEventStackError)
		return json.Unmarshal(b, *v)
	case "JobEventStackNotification":
		*v = new(getTestSuiteSuiteJobEventStackNotification)
		return json.Unmarshal(b, *v)
	case "JobEventTimedOut":
		*v = new(getTestSuiteSuiteJobEventTimedOut)
		return json.Unmarshal(b, *v)
	case "JobTypeBlock":
		*v = new(getTestSuiteSuiteJobTypeBlock)
		return json.Unmarshal(b, *v)
	case "JobTypeCommand":
		*v = new(getTestSuiteSuiteJobTypeCommand)
		return json.Unmarshal(b, *v)
	case "JobTypeTrigger":
		*v = new(getTestSuiteSuiteJobTypeTrigger)
		return json.Unmarshal(b, *v)
	case "JobTypeWait":
		*v = new(getTestSuiteSuiteJobTypeWait)
		return json.Unmarshal(b, *v)
	case "NotificationServiceSlack":
		*v = new(getTestSuiteSuiteNotificationServiceSlack)
		return json.Unmarshal(b, *v)
	case "Organization":
		*v = new(getTestSuiteSuiteOrganization)
		return json.Unmarshal(b, *v)
	case "OrganizationBanner":
		*v = new(getTestSuiteSuiteOrganizationBanner)
		return json.Unmarshal(b, *v)
	case "OrganizationInvitation":
		*v = new(getTestSuiteSuiteOrganizationInvitation)
		return json.Unmarshal(b, *v)
	case "OrganizationMember":
		*v = new(getTestSuiteSuiteOrganizationMember)
		return json.Unmarshal(b, *v)
	case "OrganizationRepositoryProviderGitHub":
		*v = new(getTestSuiteSuiteOrganizationRepositoryProviderGitHub)
		return json.Unmarshal(b, *v)
	case "OrganizationRepositoryProviderGitHubEnterpriseServer":
		*v = new(getTestSuiteSuiteOrganizationRepositoryProviderGitHubEnterpriseServer)
		return json.Unmarshal(b, *v)
	case "Pipeline":
		*v = new(getTestSuiteSuitePipeline)
		return json.Unmarshal(b, *v)
	case "PipelineMetric":
		*v = new(getTestSuiteSuitePipelineMetric)
		return json.Unmarshal(b, *v)
	case "PipelineSchedule":
		*v = new(getTestSuiteSuitePipelineSchedule)
		return json.Unmarshal(b, *v)
	case "PipelineTemplate":
		*v = new(getTestSuiteSuitePipelineTemplate)
		return json.Unmarshal(b, *v)
	case "Registry":
		*v = new(getTestSuiteSuiteRegistry)
		return json.Unmarshal(b, *v)
	case "RegistryToken":
		*v = new(getTestSuiteSuiteRegistryToken)
		return json.Unmarshal(b, *v)
	case "Rule":
		*v = new(getTestSuiteSuiteRule)
		return json.Unmarshal(b, *v)
	case "SSOProviderGitHubApp":
		*v = new(getTestSuiteSuiteSSOProviderGitHubApp)
		return json.Unmarshal(b, *v)
	case "SSOProviderGoogleGSuite":
		*v = new(getTestSuiteSuiteSSOProviderGoogleGSuite)
		return json.Unmarshal(b, *v)
	case "SSOProviderSAML":
		*v = new(getTestSuiteSuiteSSOProviderSAML)
		return json.Unmarshal(b, *v)
	case "Secret":
		*v = new(getTestSuiteSuiteSecret)
		return json.Unmarshal(b, *v)
	case "Suite":
		*v = new(getTestSuiteSuite)
		return json.Unmarshal(b, *v)
	case "Team":
		*v = new(getTestSuiteSuiteTeam)
		return json.Unmarshal(b, *v)
	case "TeamMember":
		*v = new(getTestSuiteSuiteTeamMember)
		return json.Unmarshal(b, *v)
	case "TeamPipeline":
		*v = new(getTestSuiteSuiteTeamPipeline)
		return json.Unmarshal(b, *v)
	case "TeamRegistry":
		*v = new(getTestSuiteSuiteTeamRegistry)
		return json.Unmarshal(b, *v)
	case "TeamSuite":
		*v = new(getTestSuiteSuiteTeamSuite)
		return json.Unmarshal(b, *v)
	case "User":
		*v = new(getTestSuiteSuiteUser)
		return json.Unmarshal(b, *v)
	case "Viewer":
		*v = new(getTestSuiteSuiteViewer)
		return json.Unmarshal(b, *v)
	case "":
		return fmt.Errorf(
			"response was missing Node.__typename")
	default:
		return fmt.Errorf(
			`unexpected concrete type for getTestSuiteSuiteNode: "%v"`, tn.TypeName)
	}
}

func __marshalgetTestSuiteSuiteNode(v *getTestSuiteSuiteNode) ([]byte, error) {

	var typename string
	switch v := (*v).(type) {
	case *getTestSuiteSuiteAPIAccessToken:
		typename = "APIAccessToken"

		result := struct {
			TypeName string `json:"__typename"`
			*getTestSuiteSuiteAPIAccessToken
		}{typename, v}
		return json.Marshal(result)
	case *getTestSuiteSuiteAPIAccessTokenCode:
		typename = "APIAccessTokenCode"

		result := struct {
			TypeName string `json:"__typename"`
			*getTestSuiteSuiteAPIAccessTokenCode
		}{typename, v}
		return json.Marshal(result)
	case *getTestSuiteSuiteAPIApplication:
		typename = "APIApplication"

		result := struct {
			TypeName string `json:"__typename"`
			*getTestSuiteSuiteAPIApplication
		}{typename, v}
		return json.Marshal(result)
	case *getTestSuiteSuiteAgent:
		typename = "Agent"

		result := struct {
			TypeName string `json:"__typename"`
			*getTestSuiteSuiteAgent
		}{typename, v}
		return json.Marshal(result)
	case *getTestSuiteSuiteAgentToken:
		typename = "AgentToken"

		result := struct {
			TypeName string `json:"__typename"`
			*getTestSuiteSuiteAgentToken
		}{typename, v}
		return json.Marshal(result)
	case *getTestSuiteSuiteAnnotation:
		typename = "Annotation"

		result := struct {
			TypeName string `json:"__typename"`
			*getTestSuiteSuiteAnnotation
		}{typename, v}
		return json.Marshal(result)
	case *getTestSuiteSuiteArtifact:
		typename = "Artifact"

		result := struct {
			TypeName string `json:"__typename"`
			*getTestSuiteSuiteArtifact
		}{typename, v}
		return json.Marshal(result)
	case *getTestSuiteSuiteAuditEvent:
		typename = "AuditEvent"

		result := struct {
			TypeName string `json:"__typename"`
			*getTestSuiteSuiteAuditEvent
		}{typename, v}
		return json.Marshal(result)
	case *getTestSuiteSuiteAuthorizationBitbucket:
		typename = "AuthorizationBitbucket"

		result := struct {
			TypeName string `json:"__typename"`
			*getTestSuiteSuiteAuthorizationBitbucket
		}{typename, v}
		return json.Marshal(result)
	case *getTestSuiteSuiteAuthorizationGitHub:
		typename = "AuthorizationGitHub"

		result := struct {
			TypeName string `json:"__typename"`
			*getTestSuiteSuiteAuthorizationGitHub
		}{typename, v}
		return json.Marshal(result)
	case *getTestSuiteSuiteAuthorizationGitHubApp:
		typename = "AuthorizationGitHubApp"

		result := struct {
			TypeName string `json:"__typename"`
			*getTestSuiteSuiteAuthorizationGitHubApp
		}{typename, v}
		return json.Marshal(result)
	case *getTestSuiteSuiteAuthorizationGitHubEnterprise:
		typename = "AuthorizationGitHubEnterprise"

		result := struct {
			TypeName string `json:"__typename"`
			*getTestSuiteSuiteAuthorizationGitHubEnterprise
		}{typename, v}
		return json.Marshal(result)
	case *getTestSuiteSuiteAuthorizationGoogle:
		typename = "AuthorizationGoogle"

		result := struct {
			TypeName string `json:"__typename"`
			*getTestSuiteSuiteAuthorizationGoogle
		}{typename, v}
		return json.Marshal(result)
	case *getTestSuiteSuiteAuthorizationSAML:
		typename = "AuthorizationSAML"

		result := struct {
			TypeName string `json:"__typename"`
			*getTestSuiteSuiteAuthorizationSAML
		}{typename, v}
		return json.Marshal(result)
	case *getTestSuiteSuiteBuild:
		typename = "Build"

		result := struct {
			TypeName string `json:"__typename"`
			*getTestSuiteSuiteBuild
		}{typename, v}
		return json.Marshal(result)
	case *getTestSuiteSuiteCluster:
		typename = "Cluster"

		result := struct {
			TypeName string `json:"__typename"`
			*getTestSuiteSuiteCluster
		}{typename, v}
		return json.Marshal(result)
	case *getTestSuiteSuiteClusterQueue:
		typename = "ClusterQueue"

		result := struct {
			TypeName string `json:"__typename"`
			*getTestSuiteSuiteClusterQueue
		}{typename, v}
		return json.Marshal(result)
	case *getTestSuiteSuiteClusterQueueToken:
		typename = "ClusterQueueToken"

		result := struct {
			TypeName string `json:"__typename"`
			*getTestSuiteSuiteClusterQueueToken
		}{typename, v}
		return json.Marshal(result)
	case *getTestSuiteSuiteClusterToken:
		typename = "ClusterToken"

		result := struct {
			TypeName string `json:"__typename"`
			*getTestSuiteSuiteClusterToken
		}{typename, v}
		return json.Marshal(result)
	case *getTestSuiteSuiteCompositeRegistryUpstream:
		typename = "CompositeRegistryUpstream"

		result := struct {
			TypeName string `json:"__typename"`
			*getTestSuiteSuiteCompositeRegistryUpstream
		}{typename, v}
		return json.Marshal(result)
	case *getTestSuiteSuiteEmail:
		typename = "Email"

		result := struct {
			TypeName string `json:"__typename"`
			*getTestSuiteSuiteEmail
		}{typename, v}
		return json.Marshal(result)
	case *getTestSuiteSuiteJobEventAssigned:
		typename = "JobEventAssigned"

		result := struct {
			TypeName string `json:"__typename"`
			*getTestSuiteSuiteJobEventAssigned
		}{typename, v}
		return json.Marshal(result)
	case *getTestSuiteSuiteJobEventBuildStepUploadCreated:
		typename = "JobEventBuildStepUploadCreated"

		result := struct {
			TypeName string `json:"__typename"`
			*getTestSuiteSuiteJobEventBuildStepUploadCreated
		}{typename, v}
		return json.Marshal(result)
	case *getTestSuiteSuiteJobEventCanceled:
		typename = "JobEventCanceled"

		result := struct {
			TypeName string `json:"__typename"`
			*getTestSuiteSuiteJobEventCanceled
		}{typename, v}
		return json.Marshal(result)
	case *getTestSuiteSuiteJobEventFinished:
		typename = "JobEventFinished"

		result := struct {
			TypeName string `json:"__typename"`
			*getTestSuiteSuiteJobEventFinished
		}{typename, v}
		return json.Marshal(result)
	case *getTestSuiteSuiteJobEventGeneric:
		typename = "JobEventGeneric"

		result := struct {
			TypeName string `json:"__typename"`
			*getTestSuiteSuiteJobEventGeneric
		}{typename, v}
		return json.Marshal(result)
	case *getTestSuiteSuiteJobEventReprioritized:
		typename = "JobEventReprioritized"

		result := struct {
			TypeName string `json:"__typename"`
			*getTestSuiteSuiteJobEventReprioritized
		}{typename, v}
		return json.Marshal(result)
	case *getTestSuiteSuiteJobEventRetried:
		typename = "JobEventRetried"

		result := struct {
			TypeName string `json:"__typename"`
			*getTestSuiteSuiteJobEventRetried
		}{typename, v}
		return json.Marshal(result)
	case *getTestSuiteSuiteJobEventRetryFailed:
		typename = "JobEventRetryFailed"

		result := struct {
			TypeName string `json:"__typename"`
			*getTestSuiteSuiteJobEventRetryFailed
		}{typename, v}
		return json.Marshal(result)
	case *getTestSuiteSuiteJobEventStackError:
		typename = "JobEventStackError"

		result := struct {
			TypeName string `json:"__typename"`
			*getTestSuiteSuiteJobEventStackError
		}{typename, v}
		return json.Marshal(result)
	case *getTestSuiteSuiteJobEventStackNotification:
		typename = "JobEventStackNotification"

		result := struct {
			TypeName string `json:"__typename"`
			*getTestSuiteSuiteJobEventStackNotification
		}{typename, v}
		return json.Marshal(result)
	case *getTestSuiteSuiteJobEventTimedOut:
		typename = "JobEventTimedOut"

		result := struct {
			TypeName string `json:"__typename"`
			*getTestSuiteSuiteJobEventTimedOut
		}{typename, v}
		return json.Marshal(result)
	case *getTestSuiteSuiteJobTypeBlock:
		typename = "JobTypeBlock"

		result := struct {
			TypeName string `json:"__typename"`
			*getTestSuiteSuiteJobTypeBlock
		}{typename, v}
		return json.Marshal(result)
	case *getTestSuiteSuiteJobTypeCommand:
		typename = "JobTypeCommand"

		result := struct {
			TypeName string `json:"__typename"`
			*getTestSuiteSuiteJobTypeCommand
		}{typename, v}
		return json.Marshal(result)
	case *getTestSuiteSuiteJobTypeTrigger:
		typename = "JobTypeTrigger"

		result := struct {
			TypeName string `json:"__typename"`
			*getTestSuiteSuiteJobTypeTrigger
		}{typename, v}
		return json.Marshal(result)
	case *getTestSuiteSuiteJobTypeWait:
		typename = "JobTypeWait"

		result := struct {
			TypeName string `json:"__typename"`
			*getTestSuiteSuiteJobTypeWait
		}{typename, v}
		return json.Marshal(result)
	case *getTestSuiteSuiteNotificationServiceSlack:
		typename = "NotificationServiceSlack"

		result := struct {
			TypeName string `json:"__typename"`
			*getTestSuiteSuiteNotificationServiceSlack
		}{typename, v}
		return json.Marshal(result)
	case *getTestSuiteSuiteOrganization:
		typename = "Organization"

		result := struct {
			TypeName string `json:"__typename"`
			*getTestSuiteSuiteOrganization
		}{typename, v}
		return json.Marshal(result)
	case *getTestSuiteSuiteOrganizationBanner:
		typename = "OrganizationBanner"

		result := struct {
			TypeName string `json:"__typename"`
			*getTestSuiteSuiteOrganizationBanner
		}{typename, v}
		return json.Marshal(result)
	case *getTestSuiteSuiteOrganizationInvitation:
		typename = "OrganizationInvitation"

		result := struct {
			TypeName string `json:"__typename"`
			*getTestSuiteSuiteOrganizationInvitation
		}{typename, v}
		return json.Marshal(result)
	case *getTestSuiteSuiteOrganizationMember:
		typename = "OrganizationMember"

		result := struct {
			TypeName string `json:"__typename"`
			*getTestSuiteSuiteOrganizationMember
		}{typename, v}
		return json.Marshal(result)
	case *getTestSuiteSuiteOrganizationRepositoryProviderGitHub:
		typename = "OrganizationRepositoryProviderGitHub"

		result := struct {
			TypeName string `json:"__typename"`
			*getTestSuiteSuiteOrganizationRepositoryProviderGitHub
		}{typename, v}
		return json.Marshal(result)
	case *getTestSuiteSuiteOrganizationRepositoryProviderGitHubEnterpriseServer:
		typename = "OrganizationRepositoryProviderGitHubEnterpriseServer"

		result := struct {
			TypeName string `json:"__typename"`
			*getTestSuiteSuiteOrganizationRepositoryProviderGitHubEnterpriseServer
		}{typename, v}
		return json.Marshal(result)
	case *getTestSuiteSuitePipeline:
		typename = "Pipeline"

		result := struct {
			TypeName string `json:"__typename"`
			*getTestSuiteSuitePipeline
		}{typename, v}
		return json.Marshal(result)
	case *getTestSuiteSuitePipelineMetric:
		typename = "PipelineMetric"

		result := struct {
			TypeName string `json:"__typename"`
			*getTestSuiteSuitePipelineMetric
		}{typename, v}
		return json.Marshal(result)
	case *getTestSuiteSuitePipelineSchedule:
		typename = "PipelineSchedule"

		result := struct {
			TypeName string `json:"__typename"`
			*getTestSuiteSuitePipelineSchedule
		}{typename, v}
		return json.Marshal(result)
	case *getTestSuiteSuitePipelineTemplate:
		typename = "PipelineTemplate"

		result := struct {
			TypeName string `json:"__typename"`
			*getTestSuiteSuitePipelineTemplate
		}{typename, v}
		return json.Marshal(result)
	case *getTestSuiteSuiteRegistry:
		typename = "Registry"

		result := struct {
			TypeName string `json:"__typename"`
			*getTestSuiteSuiteRegistry
		}{typename, v}
		return json.Marshal(result)
	case *getTestSuiteSuiteRegistryToken:
		typename = "RegistryToken"

		result := struct {
			TypeName string `json:"__typename"`
			*getTestSuiteSuiteRegistryToken
		}{typename, v}
		return json.Marshal(result)
	case *getTestSuiteSuiteRule:
		typename = "Rule"

		result := struct {
			TypeName string `json:"__typename"`
			*getTestSuiteSuiteRule
		}{typename, v}
		return json.Marshal(result)
	case *getTestSuiteSuiteSSOProviderGitHubApp:
		typename = "SSOProviderGitHubApp"

		result := struct {
			TypeName string `json:"__typename"`
			*getTestSuiteSuiteSSOProviderGitHubApp
		}{typename, v}
		return json.Marshal(result)
	case *getTestSuiteSuiteSSOProviderGoogleGSuite:
		typename = "SSOProviderGoogleGSuite"

		result := struct {
			TypeName string `json:"__typename"`
			*getTestSuiteSuiteSSOProviderGoogleGSuite
		}{typename, v}
		return json.Marshal(result)
	case *getTestSuiteSuiteSSOProviderSAML:
		typename = "SSOProviderSAML"

		result := struct {
			TypeName string `json:"__typename"`
			*getTestSuiteSuiteSSOProviderSAML
		}{typename, v}
		return json.Marshal(result)
	case *getTestSuiteSuiteSecret:
		typename = "Secret"

		result := struct {
			TypeName string `json:"__typename"`
			*getTestSuiteSuiteSecret
		}{typename, v}
		return json.Marshal(result)
	case *getTestSuiteSuite:
		typename = "Suite"

		result := struct {
			TypeName string `json:"__typename"`
			*getTestSuiteSuite
		}{typename, v}
		return json.Marshal(result)
	case *getTestSuiteSuiteTeam:
		typename = "Team"

		result := struct {
			TypeName string `json:"__typename"`
			*getTestSuiteSuiteTeam
		}{typename, v}
		return json.Marshal(result)
	case *getTestSuiteSuiteTeamMember:
		typename = "TeamMember"

		result := struct {
			TypeName string `json:"__typename"`
			*getTestSuiteSuiteTeamMember
		}{typename, v}
		return json.Marshal(result)
	case *getTestSuiteSuiteTeamPipeline:
		typename = "TeamPipeline"

		result := struct {
			TypeName string `json:"__typename"`
			*getTestSuiteSuiteTeamPipeline
		}{typename, v}
		return json.Marshal(result)
	case *getTestSuiteSuiteTeamRegistry:
		typename = "TeamRegistry"

		result := struct {
			TypeName string `json:"__typename"`
			*getTestSuiteSuiteTeamRegistry
		}{typename, v}
		return json.Marshal(result)
	case *getTestSuiteSuiteTeamSuite:
		typename = "TeamSuite"

		result := struct {
			TypeName string `json:"__typename"`
			*getTestSuiteSuiteTeamSuite
		}{typename, v}
		return json.Marshal(result)
	case *getTestSuiteSuiteUser:
		typename = "User"

		result := struct {
			TypeName string `json:"__typename"`
			*getTestSuiteSuiteUser
		}{typename, v}
		return json.Marshal(result)
	case *getTestSuiteSuiteViewer:
		typename = "Viewer"

		result := struct {
			TypeName string `json:"__typename"`
			*getTestSuiteSuiteViewer
		}{typename, v}
		return json.Marshal(result)
	case nil:
		return []byte("null"), nil
	default:
		return nil, fmt.Errorf(
			`unexpected concrete type for getTestSuiteSuiteNode: "%T"`, v)
	}
}

// getTestSuiteSuiteNotificationServiceSlack includes the requested fields of the GraphQL type NotificationServiceSlack.
// The GraphQL type's documentation follows.
//
// Deliver notifications to Slack
type getTestSuiteSuiteNotificationServiceSlack struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getTestSuiteSuiteNotificationServiceSlack.Typename, and is useful for accessing the field via an interface.
func (v *getTestSuiteSuiteNotificationServiceSlack) GetTypename() string { return v.Typename }

// getTestSuiteSuiteOrganization includes the requested fields of the GraphQL type Organization.
// The GraphQL type's documentation follows.
//
// An organization
type getTestSuiteSuiteOrganization struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getTestSuiteSuiteOrganization.Typename, and is useful for accessing the field via an interface.
func (v *getTestSuiteSuiteOrganization) GetTypename() string { return v.Typename }

// getTestSuiteSuiteOrganizationBanner includes the requested fields of the GraphQL type OrganizationBanner.
// The GraphQL type's documentation follows.
//
// System banner of an organization
type getTestSuiteSuiteOrganizationBanner struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getTestSuiteSuiteOrganizationBanner.Typename, and is useful for accessing the field via an interface.
func (v *getTestSuiteSuiteOrganizationBanner) GetTypename() string { return v.Typename }

// getTestSuiteSuiteOrganizationInvitation 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 getTestSuiteSuiteOrganizationInvitation struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getTestSuiteSuiteOrganizationInvitation.Typename, and is useful for accessing the field via an interface.
func (v *getTestSuiteSuiteOrganizationInvitation) GetTypename() string { return v.Typename }

// getTestSuiteSuiteOrganizationMember includes the requested fields of the GraphQL type OrganizationMember.
// The GraphQL type's documentation follows.
//
// A member of an organization
type getTestSuiteSuiteOrganizationMember struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getTestSuiteSuiteOrganizationMember.Typename, and is useful for accessing the field via an interface.
func (v *getTestSuiteSuiteOrganizationMember) GetTypename() string { return v.Typename }

// getTestSuiteSuiteOrganizationRepositoryProviderGitHub includes the requested fields of the GraphQL type OrganizationRepositoryProviderGitHub.
// The GraphQL type's documentation follows.
//
// GitHub installation associated with this organization
type getTestSuiteSuiteOrganizationRepositoryProviderGitHub struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getTestSuiteSuiteOrganizationRepositoryProviderGitHub.Typename, and is useful for accessing the field via an interface.
func (v *getTestSuiteSuiteOrganizationRepositoryProviderGitHub) GetTypename() string {
	return v.Typename
}

// getTestSuiteSuiteOrganizationRepositoryProviderGitHubEnterpriseServer includes the requested fields of the GraphQL type OrganizationRepositoryProviderGitHubEnterpriseServer.
// The GraphQL type's documentation follows.
//
// GitHub Enterprise Server associated with this organization
type getTestSuiteSuiteOrganizationRepositoryProviderGitHubEnterpriseServer struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getTestSuiteSuiteOrganizationRepositoryProviderGitHubEnterpriseServer.Typename, and is useful for accessing the field via an interface.
func (v *getTestSuiteSuiteOrganizationRepositoryProviderGitHubEnterpriseServer) GetTypename() string {
	return v.Typename
}

// getTestSuiteSuitePipeline includes the requested fields of the GraphQL type Pipeline.
// The GraphQL type's documentation follows.
//
// A pipeline
type getTestSuiteSuitePipeline struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getTestSuiteSuitePipeline.Typename, and is useful for accessing the field via an interface.
func (v *getTestSuiteSuitePipeline) GetTypename() string { return v.Typename }

// getTestSuiteSuitePipelineMetric includes the requested fields of the GraphQL type PipelineMetric.
// The GraphQL type's documentation follows.
//
// A metric for a pipeline
type getTestSuiteSuitePipelineMetric struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getTestSuiteSuitePipelineMetric.Typename, and is useful for accessing the field via an interface.
func (v *getTestSuiteSuitePipelineMetric) GetTypename() string { return v.Typename }

// getTestSuiteSuitePipelineSchedule 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 getTestSuiteSuitePipelineSchedule struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getTestSuiteSuitePipelineSchedule.Typename, and is useful for accessing the field via an interface.
func (v *getTestSuiteSuitePipelineSchedule) GetTypename() string { return v.Typename }

// getTestSuiteSuitePipelineTemplate 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 getTestSuiteSuitePipelineTemplate struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getTestSuiteSuitePipelineTemplate.Typename, and is useful for accessing the field via an interface.
func (v *getTestSuiteSuitePipelineTemplate) GetTypename() string { return v.Typename }

// getTestSuiteSuiteRegistry includes the requested fields of the GraphQL type Registry.
// The GraphQL type's documentation follows.
//
// A registry
type getTestSuiteSuiteRegistry struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getTestSuiteSuiteRegistry.Typename, and is useful for accessing the field via an interface.
func (v *getTestSuiteSuiteRegistry) GetTypename() string { return v.Typename }

// getTestSuiteSuiteRegistryToken includes the requested fields of the GraphQL type RegistryToken.
// The GraphQL type's documentation follows.
//
// A registry token
type getTestSuiteSuiteRegistryToken struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getTestSuiteSuiteRegistryToken.Typename, and is useful for accessing the field via an interface.
func (v *getTestSuiteSuiteRegistryToken) GetTypename() string { return v.Typename }

// getTestSuiteSuiteRule includes the requested fields of the GraphQL type Rule.
type getTestSuiteSuiteRule struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getTestSuiteSuiteRule.Typename, and is useful for accessing the field via an interface.
func (v *getTestSuiteSuiteRule) GetTypename() string { return v.Typename }

// getTestSuiteSuiteSSOProviderGitHubApp includes the requested fields of the GraphQL type SSOProviderGitHubApp.
// The GraphQL type's documentation follows.
//
// Single sign-on provided by GitHub
type getTestSuiteSuiteSSOProviderGitHubApp struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getTestSuiteSuiteSSOProviderGitHubApp.Typename, and is useful for accessing the field via an interface.
func (v *getTestSuiteSuiteSSOProviderGitHubApp) GetTypename() string { return v.Typename }

// getTestSuiteSuiteSSOProviderGoogleGSuite includes the requested fields of the GraphQL type SSOProviderGoogleGSuite.
// The GraphQL type's documentation follows.
//
// Single sign-on provided by Google
type getTestSuiteSuiteSSOProviderGoogleGSuite struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getTestSuiteSuiteSSOProviderGoogleGSuite.Typename, and is useful for accessing the field via an interface.
func (v *getTestSuiteSuiteSSOProviderGoogleGSuite) GetTypename() string { return v.Typename }

// getTestSuiteSuiteSSOProviderSAML includes the requested fields of the GraphQL type SSOProviderSAML.
// The GraphQL type's documentation follows.
//
// Single sign-on provided via SAML
type getTestSuiteSuiteSSOProviderSAML struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getTestSuiteSuiteSSOProviderSAML.Typename, and is useful for accessing the field via an interface.
func (v *getTestSuiteSuiteSSOProviderSAML) GetTypename() string { return v.Typename }

// getTestSuiteSuiteSecret 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 getTestSuiteSuiteSecret struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getTestSuiteSuiteSecret.Typename, and is useful for accessing the field via an interface.
func (v *getTestSuiteSuiteSecret) GetTypename() string { return v.Typename }

// getTestSuiteSuiteTeam includes the requested fields of the GraphQL type Team.
// The GraphQL type's documentation follows.
//
// An organization team
type getTestSuiteSuiteTeam struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getTestSuiteSuiteTeam.Typename, and is useful for accessing the field via an interface.
func (v *getTestSuiteSuiteTeam) GetTypename() string { return v.Typename }

// getTestSuiteSuiteTeamMember includes the requested fields of the GraphQL type TeamMember.
// The GraphQL type's documentation follows.
//
// An member of a team
type getTestSuiteSuiteTeamMember struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getTestSuiteSuiteTeamMember.Typename, and is useful for accessing the field via an interface.
func (v *getTestSuiteSuiteTeamMember) GetTypename() string { return v.Typename }

// getTestSuiteSuiteTeamPipeline 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 getTestSuiteSuiteTeamPipeline struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getTestSuiteSuiteTeamPipeline.Typename, and is useful for accessing the field via an interface.
func (v *getTestSuiteSuiteTeamPipeline) GetTypename() string { return v.Typename }

// getTestSuiteSuiteTeamRegistry includes the requested fields of the GraphQL type TeamRegistry.
// The GraphQL type's documentation follows.
//
// A registry that's been assigned to a team
type getTestSuiteSuiteTeamRegistry struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getTestSuiteSuiteTeamRegistry.Typename, and is useful for accessing the field via an interface.
func (v *getTestSuiteSuiteTeamRegistry) GetTypename() string { return v.Typename }

// getTestSuiteSuiteTeamSuite 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 getTestSuiteSuiteTeamSuite struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getTestSuiteSuiteTeamSuite.Typename, and is useful for accessing the field via an interface.
func (v *getTestSuiteSuiteTeamSuite) GetTypename() string { return v.Typename }

// getTestSuiteSuiteTeamsTeamSuiteConnection includes the requested fields of the GraphQL type TeamSuiteConnection.
// The GraphQL type's documentation follows.
//
// A collection of TeamSuite records
type getTestSuiteSuiteTeamsTeamSuiteConnection struct {
	Edges []getTestSuiteSuiteTeamsTeamSuiteConnectionEdgesTeamSuiteEdge `json:"edges"`
}

// GetEdges returns getTestSuiteSuiteTeamsTeamSuiteConnection.Edges, and is useful for accessing the field via an interface.
func (v *getTestSuiteSuiteTeamsTeamSuiteConnection) GetEdges() []getTestSuiteSuiteTeamsTeamSuiteConnectionEdgesTeamSuiteEdge {
	return v.Edges
}

// getTestSuiteSuiteTeamsTeamSuiteConnectionEdgesTeamSuiteEdge includes the requested fields of the GraphQL type TeamSuiteEdge.
type getTestSuiteSuiteTeamsTeamSuiteConnectionEdgesTeamSuiteEdge struct {
	Node getTestSuiteSuiteTeamsTeamSuiteConnectionEdgesTeamSuiteEdgeNodeTeamSuite `json:"node"`
}

// GetNode returns getTestSuiteSuiteTeamsTeamSuiteConnectionEdgesTeamSuiteEdge.Node, and is useful for accessing the field via an interface.
func (v *getTestSuiteSuiteTeamsTeamSuiteConnectionEdgesTeamSuiteEdge) GetNode() getTestSuiteSuiteTeamsTeamSuiteConnectionEdgesTeamSuiteEdgeNodeTeamSuite {
	return v.Node
}

// getTestSuiteSuiteTeamsTeamSuiteConnectionEdgesTeamSuiteEdgeNodeTeamSuite 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 getTestSuiteSuiteTeamsTeamSuiteConnectionEdgesTeamSuiteEdgeNodeTeamSuite struct {
	Id string `json:"id"`
	// The access level users have to this suite
	AccessLevel SuiteAccessLevels `json:"accessLevel"`
	// The team associated with this team member
	Team getTestSuiteSuiteTeamsTeamSuiteConnectionEdgesTeamSuiteEdgeNodeTeamSuiteTeam `json:"team"`
}

// GetId returns getTestSuiteSuiteTeamsTeamSuiteConnectionEdgesTeamSuiteEdgeNodeTeamSuite.Id, and is useful for accessing the field via an interface.
func (v *getTestSuiteSuiteTeamsTeamSuiteConnectionEdgesTeamSuiteEdgeNodeTeamSuite) GetId() string {
	return v.Id
}

// GetAccessLevel returns getTestSuiteSuiteTeamsTeamSuiteConnectionEdgesTeamSuiteEdgeNodeTeamSuite.AccessLevel, and is useful for accessing the field via an interface.
func (v *getTestSuiteSuiteTeamsTeamSuiteConnectionEdgesTeamSuiteEdgeNodeTeamSuite) GetAccessLevel() SuiteAccessLevels {
	return v.AccessLevel
}

// GetTeam returns getTestSuiteSuiteTeamsTeamSuiteConnectionEdgesTeamSuiteEdgeNodeTeamSuite.Team, and is useful for accessing the field via an interface.
func (v *getTestSuiteSuiteTeamsTeamSuiteConnectionEdgesTeamSuiteEdgeNodeTeamSuite) GetTeam() getTestSuiteSuiteTeamsTeamSuiteConnectionEdgesTeamSuiteEdgeNodeTeamSuiteTeam {
	return v.Team
}

// getTestSuiteSuiteTeamsTeamSuiteConnectionEdgesTeamSuiteEdgeNodeTeamSuiteTeam includes the requested fields of the GraphQL type Team.
// The GraphQL type's documentation follows.
//
// An organization team
type getTestSuiteSuiteTeamsTeamSuiteConnectionEdgesTeamSuiteEdgeNodeTeamSuiteTeam struct {
	Id string `json:"id"`
}

// GetId returns getTestSuiteSuiteTeamsTeamSuiteConnectionEdgesTeamSuiteEdgeNodeTeamSuiteTeam.Id, and is useful for accessing the field via an interface.
func (v *getTestSuiteSuiteTeamsTeamSuiteConnectionEdgesTeamSuiteEdgeNodeTeamSuiteTeam) GetId() string {
	return v.Id
}

// getTestSuiteSuiteUser includes the requested fields of the GraphQL type User.
// The GraphQL type's documentation follows.
//
// A user
type getTestSuiteSuiteUser struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getTestSuiteSuiteUser.Typename, and is useful for accessing the field via an interface.
func (v *getTestSuiteSuiteUser) GetTypename() string { return v.Typename }

// getTestSuiteSuiteViewer includes the requested fields of the GraphQL type Viewer.
// The GraphQL type's documentation follows.
//
// Represents the current user session
type getTestSuiteSuiteViewer struct {
	Typename string `json:"__typename"`
}

// GetTypename returns getTestSuiteSuiteViewer.Typename, and is useful for accessing the field via an interface.
func (v *getTestSuiteSuiteViewer) GetTypename() string { return v.Typename }

// pauseDispatchClusterQueueClusterQueuePauseDispatchClusterQueuePauseDispatchPayload includes the requested fields of the GraphQL type ClusterQueuePauseDispatchPayload.
// The GraphQL type's documentation follows.
//
// Autogenerated return type of ClusterQueuePauseDispatch.
type pauseDispatchClusterQueueClusterQueuePauseDispatchClusterQueuePauseDispatchPayload struct {
	// A unique identifier for the client performing the mutation.
	ClientMutationId string `json:"clientMutationId"`
}

// GetClientMutationId returns pauseDispatchClusterQueueClusterQueuePauseDispatchClusterQueuePauseDispatchPayload.ClientMutationId, and is useful for accessing the field via an interface.
func (v *pauseDispatchClusterQueueClusterQueuePauseDispatchClusterQueuePauseDispatchPayload) GetClientMutationId() string {
	return v.ClientMutationId
}

// pauseDispatchClusterQueueResponse is returned by pauseDispatchClusterQueue on success.
type pauseDispatchClusterQueueResponse struct {
	// This will prevent dispatch of jobs to agents on this queue. You can add an optional note describing the reason for pausing.
	ClusterQueuePauseDispatch pauseDispatchClusterQueueClusterQueuePauseDispatchClusterQueuePauseDispatchPayload `json:"clusterQueuePauseDispatch"`
}

// GetClusterQueuePauseDispatch returns pauseDispatchClusterQueueResponse.ClusterQueuePauseDispatch, and is useful for accessing the field via an interface.
func (v *pauseDispatchClusterQueueResponse) GetClusterQueuePauseDispatch() pauseDispatchClusterQueueClusterQueuePauseDispatchClusterQueuePauseDispatchPayload {
	return v.ClusterQueuePauseDispatch
}

// removeClusterDefaultQueueClusterUpdateClusterUpdatePayload includes the requested fields of the GraphQL type ClusterUpdatePayload.
// The GraphQL type's documentation follows.
//
// Autogenerated return type of ClusterUpdate.
type removeClusterDefaultQueueClusterUpdateClusterUpdatePayload struct {
	Cluster removeClusterDefaultQueueClusterUpdateClusterUpdatePayloadCluster `json:"cluster"`
}

// GetCluster returns removeClusterDefaultQueueClusterUpdateClusterUpdatePayload.Cluster, and is useful for accessing the field via an interface.
func (v *removeClusterDefaultQueueClusterUpdateClusterUpdatePayload) GetCluster() removeClusterDefaultQueueClusterUpdateClusterUpdatePayloadCluster {
	return v.Cluster
}

// removeClusterDefaultQueueClusterUpdateClusterUpdatePayloadCluster includes the requested fields of the GraphQL type Cluster.
type removeClusterDefaultQueueClusterUpdateClusterUpdatePayloadCluster struct {
	ClusterFields `json:"-"`
	// The default queue that agents connecting to the cluster without specifying a queue will accept jobs from
	DefaultQueue removeClusterDefaultQueueClusterUpdateClusterUpdatePayloadClusterDefaultQueueClusterQueue `json:"defaultQueue"`
}

// GetDefaultQueue returns removeClusterDefaultQueueClusterUpdateClusterUpdatePayloadCluster.DefaultQueue, and is useful for accessing the field via an interface.
func (v *removeClusterDefaultQueueClusterUpdateClusterUpdatePayloadCluster) GetDefaultQueue() removeClusterDefaultQueueClusterUpdateClusterUpdatePayloadClusterDefaultQueueClusterQueue {
	return v.DefaultQueue
}

// GetId returns removeClusterDefaultQueueClusterUpdateClusterUpdatePayloadCluster.Id, and is useful for accessing the field via an interface.
func (v *removeClusterDefaultQueueClusterUpdateClusterUpdatePayloadCluster) GetId() string {
	return v.ClusterFields.Id
}

// GetUuid returns removeClusterDefaultQueueClusterUpdateClusterUpdatePayloadCluster.Uuid, and is useful for accessing the field via an interface.
func (v *removeClusterDefaultQueueClusterUpdateClusterUpdatePayloadCluster) GetUuid() string {
	return v.ClusterFields.Uuid
}

// GetName returns removeClusterDefaultQueueClusterUpdateClusterUpdatePayloadCluster.Name, and is useful for accessing the field via an interface.
func (v *removeClusterDefaultQueueClusterUpdateClusterUpdatePayloadCluster) GetName() string {
	return v.ClusterFields.Name
}

// GetDescription returns removeClusterDefaultQueueClusterUpdateClusterUpdatePayloadCluster.Description, and is useful for accessing the field via an interface.
func (v *removeClusterDefaultQueueClusterUpdateClusterUpdatePayloadCluster) GetDescription() *string {
	return v.ClusterFields.Description
}

// GetEmoji returns removeClusterDefaultQueueClusterUpdateClusterUpdatePayloadCluster.Emoji, and is useful for accessing the field via an interface.
func (v *removeClusterDefaultQueueClusterUpdateClusterUpdatePayloadCluster) GetEmoji() *string {
	return v.ClusterFields.Emoji
}

// GetColor returns removeClusterDefaultQueueClusterUpdateClusterUpdatePayloadCluster.Color, and is useful for accessing the field via an interface.
func (v *removeClusterDefaultQueueClusterUpdateClusterUpdatePayloadCluster) GetColor() *string {
	return v.ClusterFields.Color
}

func (v *removeClusterDefaultQueueClusterUpdateClusterUpdatePayloadCluster) UnmarshalJSON(b []byte) error {

	if string(b) == "null" {
		return nil
	}

	var firstPass struct {
		*removeClusterDefaultQueueClusterUpdateClusterUpdatePayloadCluster
		graphql.NoUnmarshalJSON
	}
	firstPass.removeClusterDefaultQueueClusterUpdateClusterUpdatePayloadCluster = v

	err := json.Unmarshal(b, &firstPass)
	if err != nil {
		return err
	}

	err = json.Unmarshal(
		b, &v.ClusterFields)
	if err != nil {
		return err
	}
	return nil
}

type __premarshalremoveClusterDefaultQueueClusterUpdateClusterUpdatePayloadCluster struct {
	DefaultQueue removeClusterDefaultQueueClusterUpdateClusterUpdatePayloadClusterDefaultQueueClusterQueue `json:"defaultQueue"`

	Id string `json:"id"`

	Uuid string `json:"uuid"`

	Name string `json:"name"`

	Description *string `json:"description"`

	Emoji *string `json:"emoji"`

	Color *string `json:"color"`
}

func (v *removeClusterDefaultQueueClusterUpdateClusterUpdatePayloadCluster) MarshalJSON() ([]byte, error) {
	premarshaled, err := v.__premarshalJSON()
	if err != nil {
		return nil, err
	}
	return json.Marshal(premarshaled)
}

func (v *removeClusterDefaultQueueClusterUpdateClusterUpdatePayloadCluster) __premarshalJSON() (*__premarshalremoveClusterDefaultQueueClusterUpdateClusterUpdatePayloadCluster, error) {
	var retval __premarshalremoveClusterDefaultQueueClusterUpdateClusterUpdatePayloadCluster

	retval.DefaultQueue = v.DefaultQueue
	retval.Id = v.ClusterFields.Id
	retval.Uuid = v.ClusterFields.Uuid
	retval.Name = v.ClusterFields.Name
	retval.Description = v.ClusterFields.Description
	retval.Emoji = v.ClusterFields.Emoji
	retval.Color = v.ClusterFields.Color
	return &retval, nil
}

// removeClusterDefaultQueueClusterUpdateClusterUpdatePayloadClusterDefaultQueueClusterQueue includes the requested fields of the GraphQL type ClusterQueue.
type removeClusterDefaultQueueClusterUpdateClusterUpdatePayloadClusterDefaultQueueClusterQueue struct {
	Id string `json:"id"`
	// The public UUID for this cluster queue
	Uuid string `json:"uuid"`
	Key  string `json:"key"`
}

// GetId returns removeClusterDefaultQueueClusterUpdateClusterUpdatePayloadClusterDefaultQueueClusterQueue.Id, and is useful for accessing the field via an interface.
func (v *removeClusterDefaultQueueClusterUpdateClusterUpdatePayloadClusterDefaultQueueClusterQueue) GetId() string {
	return v.Id
}

// GetUuid returns removeClusterDefaultQueueClusterUpdateClusterUpdatePayloadClusterDefaultQueueClusterQueue.Uuid, and is useful for accessing the field via an interface.
func (v *removeClusterDefaultQueueClusterUpdateClusterUpdatePayloadClusterDefaultQueueClusterQueue) GetUuid() string {
	return v.Uuid
}

// GetKey returns removeClusterDefaultQueueClusterUpdateClusterUpdatePayloadClusterDefaultQueueClusterQueue.Key, and is useful for accessing the field via an interface.
func (v *removeClusterDefaultQueueClusterUpdateClusterUpdatePayloadClusterDefaultQueueClusterQueue) GetKey() string {
	return v.Key
}

// removeClusterDefaultQueueResponse is returned by removeClusterDefaultQueue on success.
type removeClusterDefaultQueueResponse struct {
	// Updates a cluster.
	ClusterUpdate removeClusterDefaultQueueClusterUpdateClusterUpdatePayload `json:"clusterUpdate"`
}

// GetClusterUpdate returns removeClusterDefaultQueueResponse.ClusterUpdate, and is useful for accessing the field via an interface.
func (v *removeClusterDefaultQueueResponse) GetClusterUpdate() removeClusterDefaultQueueClusterUpdateClusterUpdatePayload {
	return v.ClusterUpdate
}

// resumeDispatchClusterQueueClusterQueueResumeDispatchClusterQueueResumeDispatchPayload includes the requested fields of the GraphQL type ClusterQueueResumeDispatchPayload.
// The GraphQL type's documentation follows.
//
// Autogenerated return type of ClusterQueueResumeDispatch.
type resumeDispatchClusterQueueClusterQueueResumeDispatchClusterQueueResumeDispatchPayload struct {
	// A unique identifier for the client performing the mutation.
	ClientMutationId string `json:"clientMutationId"`
}

// GetClientMutationId returns resumeDispatchClusterQueueClusterQueueResumeDispatchClusterQueueResumeDispatchPayload.ClientMutationId, and is useful for accessing the field via an interface.
func (v *resumeDispatchClusterQueueClusterQueueResumeDispatchClusterQueueResumeDispatchPayload) GetClientMutationId() string {
	return v.ClientMutationId
}

// resumeDispatchClusterQueueResponse is returned by resumeDispatchClusterQueue on success.
type resumeDispatchClusterQueueResponse struct {
	// This will resume dispatch of jobs on this queue.
	ClusterQueueResumeDispatch resumeDispatchClusterQueueClusterQueueResumeDispatchClusterQueueResumeDispatchPayload `json:"clusterQueueResumeDispatch"`
}

// GetClusterQueueResumeDispatch returns resumeDispatchClusterQueueResponse.ClusterQueueResumeDispatch, and is useful for accessing the field via an interface.
func (v *resumeDispatchClusterQueueResponse) GetClusterQueueResumeDispatch() resumeDispatchClusterQueueClusterQueueResumeDispatchClusterQueueResumeDispatchPayload {
	return v.ClusterQueueResumeDispatch
}

// revokeAgentTokenAgentTokenRevokeAgentTokenRevokePayload includes the requested fields of the GraphQL type AgentTokenRevokePayload.
// The GraphQL type's documentation follows.
//
// Autogenerated return type of AgentTokenRevoke.
type revokeAgentTokenAgentTokenRevokeAgentTokenRevokePayload struct {
	AgentToken revokeAgentTokenAgentTokenRevokeAgentTokenRevokePayloadAgentToken `json:"agentToken"`
}

// GetAgentToken returns revokeAgentTokenAgentTokenRevokeAgentTokenRevokePayload.AgentToken, and is useful for accessing the field via an interface.
func (v *revokeAgentTokenAgentTokenRevokeAgentTokenRevokePayload) GetAgentToken() revokeAgentTokenAgentTokenRevokeAgentTokenRevokePayloadAgentToken {
	return v.AgentToken
}

// revokeAgentTokenAgentTokenRevokeAgentTokenRevokePayloadAgentToken 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 revokeAgentTokenAgentTokenRevokeAgentTokenRevokePayloadAgentToken struct {
	Id string `json:"id"`
	// A description about what this agent token is used for
	Description *string `json:"description"`
	// The public UUID for the agent
	Uuid string `json:"uuid"`
}

// GetId returns revokeAgentTokenAgentTokenRevokeAgentTokenRevokePayloadAgentToken.Id, and is useful for accessing the field via an interface.
func (v *revokeAgentTokenAgentTokenRevokeAgentTokenRevokePayloadAgentToken) GetId() string {
	return v.Id
}

// GetDescription returns revokeAgentTokenAgentTokenRevokeAgentTokenRevokePayloadAgentToken.Description, and is useful for accessing the field via an interface.
func (v *revokeAgentTokenAgentTokenRevokeAgentTokenRevokePayloadAgentToken) GetDescription() *string {
	return v.Description
}

// GetUuid returns revokeAgentTokenAgentTokenRevokeAgentTokenRevokePayloadAgentToken.Uuid, and is useful for accessing the field via an interface.
func (v *revokeAgentTokenAgentTokenRevokeAgentTokenRevokePayloadAgentToken) GetUuid() string {
	return v.Uuid
}

// revokeAgentTokenResponse is returned by revokeAgentToken on success.
type revokeAgentTokenResponse struct {
	// Revoke an unclustered agent token.
	AgentTokenRevoke revokeAgentTokenAgentTokenRevokeAgentTokenRevokePayload `json:"agentTokenRevoke"`
}

// GetAgentTokenRevoke returns revokeAgentTokenResponse.AgentTokenRevoke, and is useful for accessing the field via an interface.
func (v *revokeAgentTokenResponse) GetAgentTokenRevoke() revokeAgentTokenAgentTokenRevokeAgentTokenRevokePayload {
	return v.AgentTokenRevoke
}

// revokeClusterAgentTokenClusterAgentTokenRevokeClusterAgentTokenRevokePayload includes the requested fields of the GraphQL type ClusterAgentTokenRevokePayload.
// The GraphQL type's documentation follows.
//
// Autogenerated return type of ClusterAgentTokenRevoke.
type revokeClusterAgentTokenClusterAgentTokenRevokeClusterAgentTokenRevokePayload struct {
	DeletedClusterAgentTokenId string `json:"deletedClusterAgentTokenId"`
}

// GetDeletedClusterAgentTokenId returns revokeClusterAgentTokenClusterAgentTokenRevokeClusterAgentTokenRevokePayload.DeletedClusterAgentTokenId, and is useful for accessing the field via an interface.
func (v *revokeClusterAgentTokenClusterAgentTokenRevokeClusterAgentTokenRevokePayload) GetDeletedClusterAgentTokenId() string {
	return v.DeletedClusterAgentTokenId
}

// revokeClusterAgentTokenResponse is returned by revokeClusterAgentToken on success.
type revokeClusterAgentTokenResponse struct {
	// Revokes an agent token for a cluster.
	ClusterAgentTokenRevoke revokeClusterAgentTokenClusterAgentTokenRevokeClusterAgentTokenRevokePayload `json:"clusterAgentTokenRevoke"`
}

// GetClusterAgentTokenRevoke returns revokeClusterAgentTokenResponse.ClusterAgentTokenRevoke, and is useful for accessing the field via an interface.
func (v *revokeClusterAgentTokenResponse) GetClusterAgentTokenRevoke() revokeClusterAgentTokenClusterAgentTokenRevokeClusterAgentTokenRevokePayload {
	return v.ClusterAgentTokenRevoke
}

// setApiIpAddressesOrganizationApiIpAllowlistUpdateOrganizationAPIIPAllowlistUpdateMutationPayload includes the requested fields of the GraphQL type OrganizationAPIIPAllowlistUpdateMutationPayload.
// The GraphQL type's documentation follows.
//
// Autogenerated return type of OrganizationAPIIPAllowlistUpdateMutation.
type setApiIpAddressesOrganizationApiIpAllowlistUpdateOrganizationAPIIPAllowlistUpdateMutationPayload struct {
	Organization setApiIpAddressesOrganizationApiIpAllowlistUpdateOrganizationAPIIPAllowlistUpdateMutationPayloadOrganization `json:"organization"`
}

// GetOrganization returns setApiIpAddressesOrganizationApiIpAllowlistUpdateOrganizationAPIIPAllowlistUpdateMutationPayload.Organization, and is useful for accessing the field via an interface.
func (v *setApiIpAddressesOrganizationApiIpAllowlistUpdateOrganizationAPIIPAllowlistUpdateMutationPayload) GetOrganization() setApiIpAddressesOrganizationApiIpAllowlistUpdateOrganizationAPIIPAllowlistUpdateMutationPayloadOrganization {
	return v.Organization
}

// setApiIpAddressesOrganizationApiIpAllowlistUpdateOrganizationAPIIPAllowlistUpdateMutationPayloadOrganization includes the requested fields of the GraphQL type Organization.
// The GraphQL type's documentation follows.
//
// An organization
type setApiIpAddressesOrganizationApiIpAllowlistUpdateOrganizationAPIIPAllowlistUpdateMutationPayloadOrganization struct {
	// A space-separated allowlist of IP addresses that can access the organization via the GraphQL or REST API
	AllowedApiIpAddresses string `json:"allowedApiIpAddresses"`
	Id                    string `json:"id"`
	// The public UUID for this organization
	Uuid string `json:"uuid"`
	// Whether this organization requires 2FA to access (Please note that this is a beta feature and is not yet available to all organizations.)
	MembersRequireTwoFactorAuthentication bool `json:"membersRequireTwoFactorAuthentication"`
}

// GetAllowedApiIpAddresses returns setApiIpAddressesOrganizationApiIpAllowlistUpdateOrganizationAPIIPAllowlistUpdateMutationPayloadOrganization.AllowedApiIpAddresses, and is useful for accessing the field via an interface.
func (v *setApiIpAddressesOrganizationApiIpAllowlistUpdateOrganizationAPIIPAllowlistUpdateMutationPayloadOrganization) GetAllowedApiIpAddresses() string {
	return v.AllowedApiIpAddresses
}

// GetId returns setApiIpAddressesOrganizationApiIpAllowlistUpdateOrganizationAPIIPAllowlistUpdateMutationPayloadOrganization.Id, and is useful for accessing the field via an interface.
func (v *setApiIpAddressesOrganizationApiIpAllowlistUpdateOrganizationAPIIPAllowlistUpdateMutationPayloadOrganization) GetId() string {
	return v.Id
}

// GetUuid returns setApiIpAddressesOrganizationApiIpAllowlistUpdateOrganizationAPIIPAllowlistUpdateMutationPayloadOrganization.Uuid, and is useful for accessing the field via an interface.
func (v *setApiIpAddressesOrganizationApiIpAllowlistUpdateOrganizationAPIIPAllowlistUpdateMutationPayloadOrganization) GetUuid() string {
	return v.Uuid
}

// GetMembersRequireTwoFactorAuthentication returns setApiIpAddressesOrganizationApiIpAllowlistUpdateOrganizationAPIIPAllowlistUpdateMutationPayloadOrganization.MembersRequireTwoFactorAuthentication, and is useful for accessing the field via an interface.
func (v *setApiIpAddressesOrganizationApiIpAllowlistUpdateOrganizationAPIIPAllowlistUpdateMutationPayloadOrganization) GetMembersRequireTwoFactorAuthentication() bool {
	return v.MembersRequireTwoFactorAuthentication
}

// setApiIpAddressesResponse is returned by setApiIpAddresses on success.
type setApiIpAddressesResponse struct {
	// Sets an allowlist of IP addresses for API access to an organization. Please note that this is a beta feature and is not yet available to all organizations.
	OrganizationApiIpAllowlistUpdate setApiIpAddressesOrganizationApiIpAllowlistUpdateOrganizationAPIIPAllowlistUpdateMutationPayload `json:"organizationApiIpAllowlistUpdate"`
}

// GetOrganizationApiIpAllowlistUpdate returns setApiIpAddressesResponse.OrganizationApiIpAllowlistUpdate, and is useful for accessing the field via an interface.
func (v *setApiIpAddressesResponse) GetOrganizationApiIpAllowlistUpdate() setApiIpAddressesOrganizationApiIpAllowlistUpdateOrganizationAPIIPAllowlistUpdateMutationPayload {
	return v.OrganizationApiIpAllowlistUpdate
}

// setClusterDefaultQueueClusterUpdateClusterUpdatePayload includes the requested fields of the GraphQL type ClusterUpdatePayload.
// The GraphQL type's documentation follows.
//
// Autogenerated return type of ClusterUpdate.
type setClusterDefaultQueueClusterUpdateClusterUpdatePayload struct {
	Cluster setClusterDefaultQueueClusterUpdateClusterUpdatePayloadCluster `json:"cluster"`
}

// GetCluster returns setClusterDefaultQueueClusterUpdateClusterUpdatePayload.Cluster, and is useful for accessing the field via an interface.
func (v *setClusterDefaultQueueClusterUpdateClusterUpdatePayload) GetCluster() setClusterDefaultQueueClusterUpdateClusterUpdatePayloadCluster {
	return v.Cluster
}

// setClusterDefaultQueueClusterUpdateClusterUpdatePayloadCluster includes the requested fields of the GraphQL type Cluster.
type setClusterDefaultQueueClusterUpdateClusterUpdatePayloadCluster struct {
	ClusterFields `json:"-"`
	// The default queue that agents connecting to the cluster without specifying a queue will accept jobs from
	DefaultQueue setClusterDefaultQueueClusterUpdateClusterUpdatePayloadClusterDefaultQueueClusterQueue `json:"defaultQueue"`
}

// GetDefaultQueue returns setClusterDefaultQueueClusterUpdateClusterUpdatePayloadCluster.DefaultQueue, and is useful for accessing the field via an interface.
func (v *setClusterDefaultQueueClusterUpdateClusterUpdatePayloadCluster) GetDefaultQueue() setClusterDefaultQueueClusterUpdateClusterUpdatePayloadClusterDefaultQueueClusterQueue {
	return v.DefaultQueue
}

// GetId returns setClusterDefaultQueueClusterUpdateClusterUpdatePayloadCluster.Id, and is useful for accessing the field via an interface.
func (v *setClusterDefaultQueueClusterUpdateClusterUpdatePayloadCluster) GetId() string {
	return v.ClusterFields.Id
}

// GetUuid returns setClusterDefaultQueueClusterUpdateClusterUpdatePayloadCluster.Uuid, and is useful for accessing the field via an interface.
func (v *setClusterDefaultQueueClusterUpdateClusterUpdatePayloadCluster) GetUuid() string {
	return v.ClusterFields.Uuid
}

// GetName returns setClusterDefaultQueueClusterUpdateClusterUpdatePayloadCluster.Name, and is useful for accessing the field via an interface.
func (v *setClusterDefaultQueueClusterUpdateClusterUpdatePayloadCluster) GetName() string {
	return v.ClusterFields.Name
}

// GetDescription returns setClusterDefaultQueueClusterUpdateClusterUpdatePayloadCluster.Description, and is useful for accessing the field via an interface.
func (v *setClusterDefaultQueueClusterUpdateClusterUpdatePayloadCluster) GetDescription() *string {
	return v.ClusterFields.Description
}

// GetEmoji returns setClusterDefaultQueueClusterUpdateClusterUpdatePayloadCluster.Emoji, and is useful for accessing the field via an interface.
func (v *setClusterDefaultQueueClusterUpdateClusterUpdatePayloadCluster) GetEmoji() *string {
	return v.ClusterFields.Emoji
}

// GetColor returns setClusterDefaultQueueClusterUpdateClusterUpdatePayloadCluster.Color, and is useful for accessing the field via an interface.
func (v *setClusterDefaultQueueClusterUpdateClusterUpdatePayloadCluster) GetColor() *string {
	return v.ClusterFields.Color
}

func (v *setClusterDefaultQueueClusterUpdateClusterUpdatePayloadCluster) UnmarshalJSON(b []byte) error {

	if string(b) == "null" {
		return nil
	}

	var firstPass struct {
		*setClusterDefaultQueueClusterUpdateClusterUpdatePayloadCluster
		graphql.NoUnmarshalJSON
	}
	firstPass.setClusterDefaultQueueClusterUpdateClusterUpdatePayloadCluster = v

	err := json.Unmarshal(b, &firstPass)
	if err != nil {
		return err
	}

	err = json.Unmarshal(
		b, &v.ClusterFields)
	if err != nil {
		return err
	}
	return nil
}

type __premarshalsetClusterDefaultQueueClusterUpdateClusterUpdatePayloadCluster struct {
	DefaultQueue setClusterDefaultQueueClusterUpdateClusterUpdatePayloadClusterDefaultQueueClusterQueue `json:"defaultQueue"`

	Id string `json:"id"`

	Uuid string `json:"uuid"`

	Name string `json:"name"`

	Description *string `json:"description"`

	Emoji *string `json:"emoji"`

	Color *string `json:"color"`
}

func (v *setClusterDefaultQueueClusterUpdateClusterUpdatePayloadCluster) MarshalJSON() ([]byte, error) {
	premarshaled, err := v.__premarshalJSON()
	if err != nil {
		return nil, err
	}
	return json.Marshal(premarshaled)
}

func (v *setClusterDefaultQueueClusterUpdateClusterUpdatePayloadCluster) __premarshalJSON() (*__premarshalsetClusterDefaultQueueClusterUpdateClusterUpdatePayloadCluster, error) {
	var retval __premarshalsetClusterDefaultQueueClusterUpdateClusterUpdatePayloadCluster

	retval.DefaultQueue = v.DefaultQueue
	retval.Id = v.ClusterFields.Id
	retval.Uuid = v.ClusterFields.Uuid
	retval.Name = v.ClusterFields.Name
	retval.Description = v.ClusterFields.Description
	retval.Emoji = v.ClusterFields.Emoji
	retval.Color = v.ClusterFields.Color
	return &retval, nil
}

// setClusterDefaultQueueClusterUpdateClusterUpdatePayloadClusterDefaultQueueClusterQueue includes the requested fields of the GraphQL type ClusterQueue.
type setClusterDefaultQueueClusterUpdateClusterUpdatePayloadClusterDefaultQueueClusterQueue struct {
	Id string `json:"id"`
	// The public UUID for this cluster queue
	Uuid string `json:"uuid"`
	Key  string `json:"key"`
}

// GetId returns setClusterDefaultQueueClusterUpdateClusterUpdatePayloadClusterDefaultQueueClusterQueue.Id, and is useful for accessing the field via an interface.
func (v *setClusterDefaultQueueClusterUpdateClusterUpdatePayloadClusterDefaultQueueClusterQueue) GetId() string {
	return v.Id
}

// GetUuid returns setClusterDefaultQueueClusterUpdateClusterUpdatePayloadClusterDefaultQueueClusterQueue.Uuid, and is useful for accessing the field via an interface.
func (v *setClusterDefaultQueueClusterUpdateClusterUpdatePayloadClusterDefaultQueueClusterQueue) GetUuid() string {
	return v.Uuid
}

// GetKey returns setClusterDefaultQueueClusterUpdateClusterUpdatePayloadClusterDefaultQueueClusterQueue.Key, and is useful for accessing the field via an interface.
func (v *setClusterDefaultQueueClusterUpdateClusterUpdatePayloadClusterDefaultQueueClusterQueue) GetKey() string {
	return v.Key
}

// setClusterDefaultQueueResponse is returned by setClusterDefaultQueue on success.
type setClusterDefaultQueueResponse struct {
	// Updates a cluster.
	ClusterUpdate setClusterDefaultQueueClusterUpdateClusterUpdatePayload `json:"clusterUpdate"`
}

// GetClusterUpdate returns setClusterDefaultQueueResponse.ClusterUpdate, and is useful for accessing the field via an interface.
func (v *setClusterDefaultQueueResponse) GetClusterUpdate() setClusterDefaultQueueClusterUpdateClusterUpdatePayload {
	return v.ClusterUpdate
}

// setOrganization2FAOrganizationEnforceTwoFactorAuthenticationForMembersUpdateOrganizationEnforceTwoFactorAuthenticationForMembersUpdateMutationPayload includes the requested fields of the GraphQL type OrganizationEnforceTwoFactorAuthenticationForMembersUpdateMutationPayload.
// The GraphQL type's documentation follows.
//
// Autogenerated return type of OrganizationEnforceTwoFactorAuthenticationForMembersUpdateMutation.
type setOrganization2FAOrganizationEnforceTwoFactorAuthenticationForMembersUpdateOrganizationEnforceTwoFactorAuthenticationForMembersUpdateMutationPayload struct {
	Organization setOrganization2FAOrganizationEnforceTwoFactorAuthenticationForMembersUpdateOrganizationEnforceTwoFactorAuthenticationForMembersUpdateMutationPayloadOrganization `json:"organization"`
}

// GetOrganization returns setOrganization2FAOrganizationEnforceTwoFactorAuthenticationForMembersUpdateOrganizationEnforceTwoFactorAuthenticationForMembersUpdateMutationPayload.Organization, and is useful for accessing the field via an interface.
func (v *setOrganization2FAOrganizationEnforceTwoFactorAuthenticationForMembersUpdateOrganizationEnforceTwoFactorAuthenticationForMembersUpdateMutationPayload) GetOrganization() setOrganization2FAOrganizationEnforceTwoFactorAuthenticationForMembersUpdateOrganizationEnforceTwoFactorAuthenticationForMembersUpdateMutationPayloadOrganization {
	return v.Organization
}

// setOrganization2FAOrganizationEnforceTwoFactorAuthenticationForMembersUpdateOrganizationEnforceTwoFactorAuthenticationForMembersUpdateMutationPayloadOrganization includes the requested fields of the GraphQL type Organization.
// The GraphQL type's documentation follows.
//
// An organization
type setOrganization2FAOrganizationEnforceTwoFactorAuthenticationForMembersUpdateOrganizationEnforceTwoFactorAuthenticationForMembersUpdateMutationPayloadOrganization struct {
	// Whether this organization requires 2FA to access (Please note that this is a beta feature and is not yet available to all organizations.)
	MembersRequireTwoFactorAuthentication bool `json:"membersRequireTwoFactorAuthentication"`
}

// GetMembersRequireTwoFactorAuthentication returns setOrganization2FAOrganizationEnforceTwoFactorAuthenticationForMembersUpdateOrganizationEnforceTwoFactorAuthenticationForMembersUpdateMutationPayloadOrganization.MembersRequireTwoFactorAuthentication, and is useful for accessing the field via an interface.
func (v *setOrganization2FAOrganizationEnforceTwoFactorAuthenticationForMembersUpdateOrganizationEnforceTwoFactorAuthenticationForMembersUpdateMutationPayloadOrganization) GetMembersRequireTwoFactorAuthentication() bool {
	return v.MembersRequireTwoFactorAuthentication
}

// setOrganization2FAResponse is returned by setOrganization2FA on success.
type setOrganization2FAResponse struct {
	// Sets whether the organization requires two-factor authentication for all members.
	OrganizationEnforceTwoFactorAuthenticationForMembersUpdate setOrganization2FAOrganizationEnforceTwoFactorAuthenticationForMembersUpdateOrganizationEnforceTwoFactorAuthenticationForMembersUpdateMutationPayload `json:"organizationEnforceTwoFactorAuthenticationForMembersUpdate"`
}

// GetOrganizationEnforceTwoFactorAuthenticationForMembersUpdate returns setOrganization2FAResponse.OrganizationEnforceTwoFactorAuthenticationForMembersUpdate, and is useful for accessing the field via an interface.
func (v *setOrganization2FAResponse) GetOrganizationEnforceTwoFactorAuthenticationForMembersUpdate() setOrganization2FAOrganizationEnforceTwoFactorAuthenticationForMembersUpdateOrganizationEnforceTwoFactorAuthenticationForMembersUpdateMutationPayload {
	return v.OrganizationEnforceTwoFactorAuthenticationForMembersUpdate
}

// teamCreateResponse is returned by teamCreate on success.
type teamCreateResponse struct {
	// Create a team.
	TeamCreate teamCreateTeamCreateTeamCreatePayload `json:"teamCreate"`
}

// GetTeamCreate returns teamCreateResponse.TeamCreate, and is useful for accessing the field via an interface.
func (v *teamCreateResponse) GetTeamCreate() teamCreateTeamCreateTeamCreatePayload {
	return v.TeamCreate
}

// teamCreateTeamCreateTeamCreatePayload includes the requested fields of the GraphQL type TeamCreatePayload.
// The GraphQL type's documentation follows.
//
// Autogenerated return type of TeamCreate.
type teamCreateTeamCreateTeamCreatePayload struct {
	TeamEdge teamCreateTeamCreateTeamCreatePayloadTeamEdge `json:"teamEdge"`
}

// GetTeamEdge returns teamCreateTeamCreateTeamCreatePayload.TeamEdge, and is useful for accessing the field via an interface.
func (v *teamCreateTeamCreateTeamCreatePayload) GetTeamEdge() teamCreateTeamCreateTeamCreatePayloadTeamEdge {
	return v.TeamEdge
}

// teamCreateTeamCreateTeamCreatePayloadTeamEdge includes the requested fields of the GraphQL type TeamEdge.
type teamCreateTeamCreateTeamCreatePayloadTeamEdge struct {
	Node teamCreateTeamCreateTeamCreatePayloadTeamEdgeNodeTeam `json:"node"`
}

// GetNode returns teamCreateTeamCreateTeamCreatePayloadTeamEdge.Node, and is useful for accessing the field via an interface.
func (v *teamCreateTeamCreateTeamCreatePayloadTeamEdge) GetNode() teamCreateTeamCreateTeamCreatePayloadTeamEdgeNodeTeam {
	return v.Node
}

// teamCreateTeamCreateTeamCreatePayloadTeamEdgeNodeTeam includes the requested fields of the GraphQL type Team.
// The GraphQL type's documentation follows.
//
// An organization team
type teamCreateTeamCreateTeamCreatePayloadTeamEdgeNodeTeam struct {
	TeamFields `json:"-"`
}

// GetId returns teamCreateTeamCreateTeamCreatePayloadTeamEdgeNodeTeam.Id, and is useful for accessing the field via an interface.
func (v *teamCreateTeamCreateTeamCreatePayloadTeamEdgeNodeTeam) GetId() string {
	return v.TeamFields.Id
}

// GetUuid returns teamCreateTeamCreateTeamCreatePayloadTeamEdgeNodeTeam.Uuid, and is useful for accessing the field via an interface.
func (v *teamCreateTeamCreateTeamCreatePayloadTeamEdgeNodeTeam) GetUuid() string {
	return v.TeamFields.Uuid
}

// GetName returns teamCreateTeamCreateTeamCreatePayloadTeamEdgeNodeTeam.Name, and is useful for accessing the field via an interface.
func (v *teamCreateTeamCreateTeamCreatePayloadTeamEdgeNodeTeam) GetName() string {
	return v.TeamFields.Name
}

// GetDescription returns teamCreateTeamCreateTeamCreatePayloadTeamEdgeNodeTeam.Description, and is useful for accessing the field via an interface.
func (v *teamCreateTeamCreateTeamCreatePayloadTeamEdgeNodeTeam) GetDescription() string {
	return v.TeamFields.Description
}

// GetSlug returns teamCreateTeamCreateTeamCreatePayloadTeamEdgeNodeTeam.Slug, and is useful for accessing the field via an interface.
func (v *teamCreateTeamCreateTeamCreatePayloadTeamEdgeNodeTeam) GetSlug() string {
	return v.TeamFields.Slug
}

// GetPrivacy returns teamCreateTeamCreateTeamCreatePayloadTeamEdgeNodeTeam.Privacy, and is useful for accessing the field via an interface.
func (v *teamCreateTeamCreateTeamCreatePayloadTeamEdgeNodeTeam) GetPrivacy() string {
	return v.TeamFields.Privacy
}

// GetIsDefaultTeam returns teamCreateTeamCreateTeamCreatePayloadTeamEdgeNodeTeam.IsDefaultTeam, and is useful for accessing the field via an interface.
func (v *teamCreateTeamCreateTeamCreatePayloadTeamEdgeNodeTeam) GetIsDefaultTeam() bool {
	return v.TeamFields.IsDefaultTeam
}

// GetDefaultMemberRole returns teamCreateTeamCreateTeamCreatePayloadTeamEdgeNodeTeam.DefaultMemberRole, and is useful for accessing the field via an interface.
func (v *teamCreateTeamCreateTeamCreatePayloadTeamEdgeNodeTeam) GetDefaultMemberRole() string {
	return v.TeamFields.DefaultMemberRole
}

// GetMembersCanCreatePipelines returns teamCreateTeamCreateTeamCreatePayloadTeamEdgeNodeTeam.MembersCanCreatePipelines, and is useful for accessing the field via an interface.
func (v *teamCreateTeamCreateTeamCreatePayloadTeamEdgeNodeTeam) GetMembersCanCreatePipelines() bool {
	return v.TeamFields.MembersCanCreatePipelines
}

func (v *teamCreateTeamCreateTeamCreatePayloadTeamEdgeNodeTeam) UnmarshalJSON(b []byte) error {

	if string(b) == "null" {
		return nil
	}

	var firstPass struct {
		*teamCreateTeamCreateTeamCreatePayloadTeamEdgeNodeTeam
		graphql.NoUnmarshalJSON
	}
	firstPass.teamCreateTeamCreateTeamCreatePayloadTeamEdgeNodeTeam = v

	err := json.Unmarshal(b, &firstPass)
	if err != nil {
		return err
	}

	err = json.Unmarshal(
		b, &v.TeamFields)
	if err != nil {
		return err
	}
	return nil
}

type __premarshalteamCreateTeamCreateTeamCreatePayloadTeamEdgeNodeTeam struct {
	Id string `json:"id"`

	Uuid string `json:"uuid"`

	Name string `json:"name"`

	Description string `json:"description"`

	Slug string `json:"slug"`

	Privacy string `json:"privacy"`

	IsDefaultTeam bool `json:"isDefaultTeam"`

	DefaultMemberRole string `json:"defaultMemberRole"`

	MembersCanCreatePipelines bool `json:"membersCanCreatePipelines"`
}

func (v *teamCreateTeamCreateTeamCreatePayloadTeamEdgeNodeTeam) MarshalJSON() ([]byte, error) {
	premarshaled, err := v.__premarshalJSON()
	if err != nil {
		return nil, err
	}
	return json.Marshal(premarshaled)
}

func (v *teamCreateTeamCreateTeamCreatePayloadTeamEdgeNodeTeam) __premarshalJSON() (*__premarshalteamCreateTeamCreateTeamCreatePayloadTeamEdgeNodeTeam, error) {
	var retval __premarshalteamCreateTeamCreateTeamCreatePayloadTeamEdgeNodeTeam

	retval.Id = v.TeamFields.Id
	retval.Uuid = v.TeamFields.Uuid
	retval.Name = v.TeamFields.Name
	retval.Description = v.TeamFields.Description
	retval.Slug = v.TeamFields.Slug
	retval.Privacy = v.TeamFields.Privacy
	retval.IsDefaultTeam = v.TeamFields.IsDefaultTeam
	retval.DefaultMemberRole = v.TeamFields.DefaultMemberRole
	retval.MembersCanCreatePipelines = v.TeamFields.MembersCanCreatePipelines
	return &retval, nil
}

// teamDeleteResponse is returned by teamDelete on success.
type teamDeleteResponse struct {
	// Delete a team.
	TeamDelete teamDeleteTeamDeleteTeamDeletePayload `json:"teamDelete"`
}

// GetTeamDelete returns teamDeleteResponse.TeamDelete, and is useful for accessing the field via an interface.
func (v *teamDeleteResponse) GetTeamDelete() teamDeleteTeamDeleteTeamDeletePayload {
	return v.TeamDelete
}

// teamDeleteTeamDeleteTeamDeletePayload includes the requested fields of the GraphQL type TeamDeletePayload.
// The GraphQL type's documentation follows.
//
// Autogenerated return type of TeamDelete.
type teamDeleteTeamDeleteTeamDeletePayload struct {
	DeletedTeamID string `json:"deletedTeamID"`
}

// GetDeletedTeamID returns teamDeleteTeamDeleteTeamDeletePayload.DeletedTeamID, and is useful for accessing the field via an interface.
func (v *teamDeleteTeamDeleteTeamDeletePayload) GetDeletedTeamID() string { return v.DeletedTeamID }

// teamUpdateResponse is returned by teamUpdate on success.
type teamUpdateResponse struct {
	// Change the settings for a team.
	TeamUpdate teamUpdateTeamUpdateTeamUpdatePayload `json:"teamUpdate"`
}

// GetTeamUpdate returns teamUpdateResponse.TeamUpdate, and is useful for accessing the field via an interface.
func (v *teamUpdateResponse) GetTeamUpdate() teamUpdateTeamUpdateTeamUpdatePayload {
	return v.TeamUpdate
}

// teamUpdateTeamUpdateTeamUpdatePayload includes the requested fields of the GraphQL type TeamUpdatePayload.
// The GraphQL type's documentation follows.
//
// Autogenerated return type of TeamUpdate.
type teamUpdateTeamUpdateTeamUpdatePayload struct {
	Team teamUpdateTeamUpdateTeamUpdatePayloadTeam `json:"team"`
}

// GetTeam returns teamUpdateTeamUpdateTeamUpdatePayload.Team, and is useful for accessing the field via an interface.
func (v *teamUpdateTeamUpdateTeamUpdatePayload) GetTeam() teamUpdateTeamUpdateTeamUpdatePayloadTeam {
	return v.Team
}

// teamUpdateTeamUpdateTeamUpdatePayloadTeam includes the requested fields of the GraphQL type Team.
// The GraphQL type's documentation follows.
//
// An organization team
type teamUpdateTeamUpdateTeamUpdatePayloadTeam struct {
	TeamFields `json:"-"`
}

// GetId returns teamUpdateTeamUpdateTeamUpdatePayloadTeam.Id, and is useful for accessing the field via an interface.
func (v *teamUpdateTeamUpdateTeamUpdatePayloadTeam) GetId() string { return v.TeamFields.Id }

// GetUuid returns teamUpdateTeamUpdateTeamUpdatePayloadTeam.Uuid, and is useful for accessing the field via an interface.
func (v *teamUpdateTeamUpdateTeamUpdatePayloadTeam) GetUuid() string { return v.TeamFields.Uuid }

// GetName returns teamUpdateTeamUpdateTeamUpdatePayloadTeam.Name, and is useful for accessing the field via an interface.
func (v *teamUpdateTeamUpdateTeamUpdatePayloadTeam) GetName() string { return v.TeamFields.Name }

// GetDescription returns teamUpdateTeamUpdateTeamUpdatePayloadTeam.Description, and is useful for accessing the field via an interface.
func (v *teamUpdateTeamUpdateTeamUpdatePayloadTeam) GetDescription() string {
	return v.TeamFields.Description
}

// GetSlug returns teamUpdateTeamUpdateTeamUpdatePayloadTeam.Slug, and is useful for accessing the field via an interface.
func (v *teamUpdateTeamUpdateTeamUpdatePayloadTeam) GetSlug() string { return v.TeamFields.Slug }

// GetPrivacy returns teamUpdateTeamUpdateTeamUpdatePayloadTeam.Privacy, and is useful for accessing the field via an interface.
func (v *teamUpdateTeamUpdateTeamUpdatePayloadTeam) GetPrivacy() string { return v.TeamFields.Privacy }

// GetIsDefaultTeam returns teamUpdateTeamUpdateTeamUpdatePayloadTeam.IsDefaultTeam, and is useful for accessing the field via an interface.
func (v *teamUpdateTeamUpdateTeamUpdatePayloadTeam) GetIsDefaultTeam() bool {
	return v.TeamFields.IsDefaultTeam
}

// GetDefaultMemberRole returns teamUpdateTeamUpdateTeamUpdatePayloadTeam.DefaultMemberRole, and is useful for accessing the field via an interface.
func (v *teamUpdateTeamUpdateTeamUpdatePayloadTeam) GetDefaultMemberRole() string {
	return v.TeamFields.DefaultMemberRole
}

// GetMembersCanCreatePipelines returns teamUpdateTeamUpdateTeamUpdatePayloadTeam.MembersCanCreatePipelines, and is useful for accessing the field via an interface.
func (v *teamUpdateTeamUpdateTeamUpdatePayloadTeam) GetMembersCanCreatePipelines() bool {
	return v.TeamFields.MembersCanCreatePipelines
}

func (v *teamUpdateTeamUpdateTeamUpdatePayloadTeam) UnmarshalJSON(b []byte) error {

	if string(b) == "null" {
		return nil
	}

	var firstPass struct {
		*teamUpdateTeamUpdateTeamUpdatePayloadTeam
		graphql.NoUnmarshalJSON
	}
	firstPass.teamUpdateTeamUpdateTeamUpdatePayloadTeam = v

	err := json.Unmarshal(b, &firstPass)
	if err != nil {
		return err
	}

	err = json.Unmarshal(
		b, &v.TeamFields)
	if err != nil {
		return err
	}
	return nil
}

type __premarshalteamUpdateTeamUpdateTeamUpdatePayloadTeam struct {
	Id string `json:"id"`

	Uuid string `json:"uuid"`

	Name string `json:"name"`

	Description string `json:"description"`

	Slug string `json:"slug"`

	Privacy string `json:"privacy"`

	IsDefaultTeam bool `json:"isDefaultTeam"`

	DefaultMemberRole string `json:"defaultMemberRole"`

	MembersCanCreatePipelines bool `json:"membersCanCreatePipelines"`
}

func (v *teamUpdateTeamUpdateTeamUpdatePayloadTeam) MarshalJSON() ([]byte, error) {
	premarshaled, err := v.__premarshalJSON()
	if err != nil {
		return nil, err
	}
	return json.Marshal(premarshaled)
}

func (v *teamUpdateTeamUpdateTeamUpdatePayloadTeam) __premarshalJSON() (*__premarshalteamUpdateTeamUpdateTeamUpdatePayloadTeam, error) {
	var retval __premarshalteamUpdateTeamUpdateTeamUpdatePayloadTeam

	retval.Id = v.TeamFields.Id
	retval.Uuid = v.TeamFields.Uuid
	retval.Name = v.TeamFields.Name
	retval.Description = v.TeamFields.Description
	retval.Slug = v.TeamFields.Slug
	retval.Privacy = v.TeamFields.Privacy
	retval.IsDefaultTeam = v.TeamFields.IsDefaultTeam
	retval.DefaultMemberRole = v.TeamFields.DefaultMemberRole
	retval.MembersCanCreatePipelines = v.TeamFields.MembersCanCreatePipelines
	return &retval, nil
}

// updateClusterAgentTokenClusterAgentTokenUpdateClusterAgentTokenUpdatePayload includes the requested fields of the GraphQL type ClusterAgentTokenUpdatePayload.
// The GraphQL type's documentation follows.
//
// Autogenerated return type of ClusterAgentTokenUpdate.
type updateClusterAgentTokenClusterAgentTokenUpdateClusterAgentTokenUpdatePayload struct {
	ClusterAgentToken updateClusterAgentTokenClusterAgentTokenUpdateClusterAgentTokenUpdatePayloadClusterAgentTokenClusterToken `json:"clusterAgentToken"`
}

// GetClusterAgentToken returns updateClusterAgentTokenClusterAgentTokenUpdateClusterAgentTokenUpdatePayload.ClusterAgentToken, and is useful for accessing the field via an interface.
func (v *updateClusterAgentTokenClusterAgentTokenUpdateClusterAgentTokenUpdatePayload) GetClusterAgentToken() updateClusterAgentTokenClusterAgentTokenUpdateClusterAgentTokenUpdatePayloadClusterAgentTokenClusterToken {
	return v.ClusterAgentToken
}

// updateClusterAgentTokenClusterAgentTokenUpdateClusterAgentTokenUpdatePayloadClusterAgentTokenClusterToken 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 updateClusterAgentTokenClusterAgentTokenUpdateClusterAgentTokenUpdatePayloadClusterAgentTokenClusterToken struct {
	ClusterAgentTokenValues `json:"-"`
}

// GetAllowedIpAddresses returns updateClusterAgentTokenClusterAgentTokenUpdateClusterAgentTokenUpdatePayloadClusterAgentTokenClusterToken.AllowedIpAddresses, and is useful for accessing the field via an interface.
func (v *updateClusterAgentTokenClusterAgentTokenUpdateClusterAgentTokenUpdatePayloadClusterAgentTokenClusterToken) GetAllowedIpAddresses() string {
	return v.ClusterAgentTokenValues.AllowedIpAddresses
}

// GetCluster returns updateClusterAgentTokenClusterAgentTokenUpdateClusterAgentTokenUpdatePayloadClusterAgentTokenClusterToken.Cluster, and is useful for accessing the field via an interface.
func (v *updateClusterAgentTokenClusterAgentTokenUpdateClusterAgentTokenUpdatePayloadClusterAgentTokenClusterToken) GetCluster() ClusterAgentTokenValuesCluster {
	return v.ClusterAgentTokenValues.Cluster
}

// GetDescription returns updateClusterAgentTokenClusterAgentTokenUpdateClusterAgentTokenUpdatePayloadClusterAgentTokenClusterToken.Description, and is useful for accessing the field via an interface.
func (v *updateClusterAgentTokenClusterAgentTokenUpdateClusterAgentTokenUpdatePayloadClusterAgentTokenClusterToken) GetDescription() string {
	return v.ClusterAgentTokenValues.Description
}

// GetId returns updateClusterAgentTokenClusterAgentTokenUpdateClusterAgentTokenUpdatePayloadClusterAgentTokenClusterToken.Id, and is useful for accessing the field via an interface.
func (v *updateClusterAgentTokenClusterAgentTokenUpdateClusterAgentTokenUpdatePayloadClusterAgentTokenClusterToken) GetId() string {
	return v.ClusterAgentTokenValues.Id
}

// GetUuid returns updateClusterAgentTokenClusterAgentTokenUpdateClusterAgentTokenUpdatePayloadClusterAgentTokenClusterToken.Uuid, and is useful for accessing the field via an interface.
func (v *updateClusterAgentTokenClusterAgentTokenUpdateClusterAgentTokenUpdatePayloadClusterAgentTokenClusterToken) GetUuid() string {
	return v.ClusterAgentTokenValues.Uuid
}

func (v *updateClusterAgentTokenClusterAgentTokenUpdateClusterAgentTokenUpdatePayloadClusterAgentTokenClusterToken) UnmarshalJSON(b []byte) error {

	if string(b) == "null" {
		return nil
	}

	var firstPass struct {
		*updateClusterAgentTokenClusterAgentTokenUpdateClusterAgentTokenUpdatePayloadClusterAgentTokenClusterToken
		graphql.NoUnmarshalJSON
	}
	firstPass.updateClusterAgentTokenClusterAgentTokenUpdateClusterAgentTokenUpdatePayloadClusterAgentTokenClusterToken = v

	err := json.Unmarshal(b, &firstPass)
	if err != nil {
		return err
	}

	err = json.Unmarshal(
		b, &v.ClusterAgentTokenValues)
	if err != nil {
		return err
	}
	return nil
}

type __premarshalupdateClusterAgentTokenClusterAgentTokenUpdateClusterAgentTokenUpdatePayloadClusterAgentTokenClusterToken struct {
	AllowedIpAddresses string `json:"allowedIpAddresses"`

	Cluster ClusterAgentTokenValuesCluster `json:"cluster"`

	Description string `json:"description"`

	Id string `json:"id"`

	Uuid string `json:"uuid"`
}

func (v *updateClusterAgentTokenClusterAgentTokenUpdateClusterAgentTokenUpdatePayloadClusterAgentTokenClusterToken) MarshalJSON() ([]byte, error) {
	premarshaled, err := v.__premarshalJSON()
	if err != nil {
		return nil, err
	}
	return json.Marshal(premarshaled)
}

func (v *updateClusterAgentTokenClusterAgentTokenUpdateClusterAgentTokenUpdatePayloadClusterAgentTokenClusterToken) __premarshalJSON() (*__premarshalupdateClusterAgentTokenClusterAgentTokenUpdateClusterAgentTokenUpdatePayloadClusterAgentTokenClusterToken, error) {
	var retval __premarshalupdateClusterAgentTokenClusterAgentTokenUpdateClusterAgentTokenUpdatePayloadClusterAgentTokenClusterToken

	retval.AllowedIpAddresses = v.ClusterAgentTokenValues.AllowedIpAddresses
	retval.Cluster = v.ClusterAgentTokenValues.Cluster
	retval.Description = v.ClusterAgentTokenValues.Description
	retval.Id = v.ClusterAgentTokenValues.Id
	retval.Uuid = v.ClusterAgentTokenValues.Uuid
	return &retval, nil
}

// updateClusterAgentTokenResponse is returned by updateClusterAgentToken on success.
type updateClusterAgentTokenResponse struct {
	// Updates an agent token for a cluster.
	ClusterAgentTokenUpdate updateClusterAgentTokenClusterAgentTokenUpdateClusterAgentTokenUpdatePayload `json:"clusterAgentTokenUpdate"`
}

// GetClusterAgentTokenUpdate returns updateClusterAgentTokenResponse.ClusterAgentTokenUpdate, and is useful for accessing the field via an interface.
func (v *updateClusterAgentTokenResponse) GetClusterAgentTokenUpdate() updateClusterAgentTokenClusterAgentTokenUpdateClusterAgentTokenUpdatePayload {
	return v.ClusterAgentTokenUpdate
}

// updateClusterClusterUpdateClusterUpdatePayload includes the requested fields of the GraphQL type ClusterUpdatePayload.
// The GraphQL type's documentation follows.
//
// Autogenerated return type of ClusterUpdate.
type updateClusterClusterUpdateClusterUpdatePayload struct {
	// A unique identifier for the client performing the mutation.
	ClientMutationId string                                                `json:"clientMutationId"`
	Cluster          updateClusterClusterUpdateClusterUpdatePayloadCluster `json:"cluster"`
}

// GetClientMutationId returns updateClusterClusterUpdateClusterUpdatePayload.ClientMutationId, and is useful for accessing the field via an interface.
func (v *updateClusterClusterUpdateClusterUpdatePayload) GetClientMutationId() string {
	return v.ClientMutationId
}

// GetCluster returns updateClusterClusterUpdateClusterUpdatePayload.Cluster, and is useful for accessing the field via an interface.
func (v *updateClusterClusterUpdateClusterUpdatePayload) GetCluster() updateClusterClusterUpdateClusterUpdatePayloadCluster {
	return v.Cluster
}

// updateClusterClusterUpdateClusterUpdatePayloadCluster includes the requested fields of the GraphQL type Cluster.
type updateClusterClusterUpdateClusterUpdatePayloadCluster struct {
	ClusterFields `json:"-"`
}

// GetId returns updateClusterClusterUpdateClusterUpdatePayloadCluster.Id, and is useful for accessing the field via an interface.
func (v *updateClusterClusterUpdateClusterUpdatePayloadCluster) GetId() string {
	return v.ClusterFields.Id
}

// GetUuid returns updateClusterClusterUpdateClusterUpdatePayloadCluster.Uuid, and is useful for accessing the field via an interface.
func (v *updateClusterClusterUpdateClusterUpdatePayloadCluster) GetUuid() string {
	return v.ClusterFields.Uuid
}

// GetName returns updateClusterClusterUpdateClusterUpdatePayloadCluster.Name, and is useful for accessing the field via an interface.
func (v *updateClusterClusterUpdateClusterUpdatePayloadCluster) GetName() string {
	return v.ClusterFields.Name
}

// GetDescription returns updateClusterClusterUpdateClusterUpdatePayloadCluster.Description, and is useful for accessing the field via an interface.
func (v *updateClusterClusterUpdateClusterUpdatePayloadCluster) GetDescription() *string {
	return v.ClusterFields.Description
}

// GetEmoji returns updateClusterClusterUpdateClusterUpdatePayloadCluster.Emoji, and is useful for accessing the field via an interface.
func (v *updateClusterClusterUpdateClusterUpdatePayloadCluster) GetEmoji() *string {
	return v.ClusterFields.Emoji
}

// GetColor returns updateClusterClusterUpdateClusterUpdatePayloadCluster.Color, and is useful for accessing the field via an interface.
func (v *updateClusterClusterUpdateClusterUpdatePayloadCluster) GetColor() *string {
	return v.ClusterFields.Color
}

// GetDefaultQueue returns updateClusterClusterUpdateClusterUpdatePayloadCluster.DefaultQueue, and is useful for accessing the field via an interface.
func (v *updateClusterClusterUpdateClusterUpdatePayloadCluster) GetDefaultQueue() *ClusterFieldsDefaultQueueClusterQueue {
	return v.ClusterFields.DefaultQueue
}

func (v *updateClusterClusterUpdateClusterUpdatePayloadCluster) UnmarshalJSON(b []byte) error {

	if string(b) == "null" {
		return nil
	}

	var firstPass struct {
		*updateClusterClusterUpdateClusterUpdatePayloadCluster
		graphql.NoUnmarshalJSON
	}
	firstPass.updateClusterClusterUpdateClusterUpdatePayloadCluster = v

	err := json.Unmarshal(b, &firstPass)
	if err != nil {
		return err
	}

	err = json.Unmarshal(
		b, &v.ClusterFields)
	if err != nil {
		return err
	}
	return nil
}

type __premarshalupdateClusterClusterUpdateClusterUpdatePayloadCluster struct {
	Id string `json:"id"`

	Uuid string `json:"uuid"`

	Name string `json:"name"`

	Description *string `json:"description"`

	Emoji *string `json:"emoji"`

	Color *string `json:"color"`

	DefaultQueue *ClusterFieldsDefaultQueueClusterQueue `json:"defaultQueue"`
}

func (v *updateClusterClusterUpdateClusterUpdatePayloadCluster) MarshalJSON() ([]byte, error) {
	premarshaled, err := v.__premarshalJSON()
	if err != nil {
		return nil, err
	}
	return json.Marshal(premarshaled)
}

func (v *updateClusterClusterUpdateClusterUpdatePayloadCluster) __premarshalJSON() (*__premarshalupdateClusterClusterUpdateClusterUpdatePayloadCluster, error) {
	var retval __premarshalupdateClusterClusterUpdateClusterUpdatePayloadCluster

	retval.Id = v.ClusterFields.Id
	retval.Uuid = v.ClusterFields.Uuid
	retval.Name = v.ClusterFields.Name
	retval.Description = v.ClusterFields.Description
	retval.Emoji = v.ClusterFields.Emoji
	retval.Color = v.ClusterFields.Color
	retval.DefaultQueue = v.ClusterFields.DefaultQueue
	return &retval, nil
}

// updateClusterQueueClusterQueueUpdateClusterQueueUpdatePayload includes the requested fields of the GraphQL type ClusterQueueUpdatePayload.
// The GraphQL type's documentation follows.
//
// Autogenerated return type of ClusterQueueUpdate.
type updateClusterQueueClusterQueueUpdateClusterQueueUpdatePayload struct {
	ClusterQueue updateClusterQueueClusterQueueUpdateClusterQueueUpdatePayloadClusterQueue `json:"clusterQueue"`
}

// GetClusterQueue returns updateClusterQueueClusterQueueUpdateClusterQueueUpdatePayload.ClusterQueue, and is useful for accessing the field via an interface.
func (v *updateClusterQueueClusterQueueUpdateClusterQueueUpdatePayload) GetClusterQueue() updateClusterQueueClusterQueueUpdateClusterQueueUpdatePayloadClusterQueue {
	return v.ClusterQueue
}

// updateClusterQueueClusterQueueUpdateClusterQueueUpdatePayloadClusterQueue includes the requested fields of the GraphQL type ClusterQueue.
type updateClusterQueueClusterQueueUpdateClusterQueueUpdatePayloadClusterQueue struct {
	ClusterQueueValues `json:"-"`
	// States whether job dispatch is paused for this cluster queue
	DispatchPaused bool `json:"dispatchPaused"`
	// The time this queue was paused
	DispatchPausedAt *time.Time `json:"dispatchPausedAt"`
	// The user who paused this cluster queue
	DispatchPausedBy *updateClusterQueueClusterQueueUpdateClusterQueueUpdatePayloadClusterQueueDispatchPausedByUser `json:"dispatchPausedBy"`
	// Note describing why job dispatch was paused for this cluster queue
	DispatchPausedNote *string `json:"dispatchPausedNote"`
}

// GetDispatchPaused returns updateClusterQueueClusterQueueUpdateClusterQueueUpdatePayloadClusterQueue.DispatchPaused, and is useful for accessing the field via an interface.
func (v *updateClusterQueueClusterQueueUpdateClusterQueueUpdatePayloadClusterQueue) GetDispatchPaused() bool {
	return v.DispatchPaused
}

// GetDispatchPausedAt returns updateClusterQueueClusterQueueUpdateClusterQueueUpdatePayloadClusterQueue.DispatchPausedAt, and is useful for accessing the field via an interface.
func (v *updateClusterQueueClusterQueueUpdateClusterQueueUpdatePayloadClusterQueue) GetDispatchPausedAt() *time.Time {
	return v.DispatchPausedAt
}

// GetDispatchPausedBy returns updateClusterQueueClusterQueueUpdateClusterQueueUpdatePayloadClusterQueue.DispatchPausedBy, and is useful for accessing the field via an interface.
func (v *updateClusterQueueClusterQueueUpdateClusterQueueUpdatePayloadClusterQueue) GetDispatchPausedBy() *updateClusterQueueClusterQueueUpdateClusterQueueUpdatePayloadClusterQueueDispatchPausedByUser {
	return v.DispatchPausedBy
}

// GetDispatchPausedNote returns updateClusterQueueClusterQueueUpdateClusterQueueUpdatePayloadClusterQueue.DispatchPausedNote, and is useful for accessing the field via an interface.
func (v *updateClusterQueueClusterQueueUpdateClusterQueueUpdatePayloadClusterQueue) GetDispatchPausedNote() *string {
	return v.DispatchPausedNote
}

// GetId returns updateClusterQueueClusterQueueUpdateClusterQueueUpdatePayloadClusterQueue.Id, and is useful for accessing the field via an interface.
func (v *updateClusterQueueClusterQueueUpdateClusterQueueUpdatePayloadClusterQueue) GetId() string {
	return v.ClusterQueueValues.Id
}

// GetUuid returns updateClusterQueueClusterQueueUpdateClusterQueueUpdatePayloadClusterQueue.Uuid, and is useful for accessing the field via an interface.
func (v *updateClusterQueueClusterQueueUpdateClusterQueueUpdatePayloadClusterQueue) GetUuid() string {
	return v.ClusterQueueValues.Uuid
}

// GetKey returns updateClusterQueueClusterQueueUpdateClusterQueueUpdatePayloadClusterQueue.Key, and is useful for accessing the field via an interface.
func (v *updateClusterQueueClusterQueueUpdateClusterQueueUpdatePayloadClusterQueue) GetKey() string {
	return v.ClusterQueueValues.Key
}

// GetDescription returns updateClusterQueueClusterQueueUpdateClusterQueueUpdatePayloadClusterQueue.Description, and is useful for accessing the field via an interface.
func (v *updateClusterQueueClusterQueueUpdateClusterQueueUpdatePayloadClusterQueue) GetDescription() *string {
	return v.ClusterQueueValues.Description
}

// GetCluster returns updateClusterQueueClusterQueueUpdateClusterQueueUpdatePayloadClusterQueue.Cluster, and is useful for accessing the field via an interface.
func (v *updateClusterQueueClusterQueueUpdateClusterQueueUpdatePayloadClusterQueue) GetCluster() ClusterQueueValuesCluster {
	return v.ClusterQueueValues.Cluster
}

// GetHosted returns updateClusterQueueClusterQueueUpdateClusterQueueUpdatePayloadClusterQueue.Hosted, and is useful for accessing the field via an interface.
func (v *updateClusterQueueClusterQueueUpdateClusterQueueUpdatePayloadClusterQueue) GetHosted() bool {
	return v.ClusterQueueValues.Hosted
}

// GetHostedAgents returns updateClusterQueueClusterQueueUpdateClusterQueueUpdatePayloadClusterQueue.HostedAgents, and is useful for accessing the field via an interface.
func (v *updateClusterQueueClusterQueueUpdateClusterQueueUpdatePayloadClusterQueue) GetHostedAgents() ClusterQueueValuesHostedAgentsHostedAgentQueueSettings {
	return v.ClusterQueueValues.HostedAgents
}

func (v *updateClusterQueueClusterQueueUpdateClusterQueueUpdatePayloadClusterQueue) UnmarshalJSON(b []byte) error {

	if string(b) == "null" {
		return nil
	}

	var firstPass struct {
		*updateClusterQueueClusterQueueUpdateClusterQueueUpdatePayloadClusterQueue
		graphql.NoUnmarshalJSON
	}
	firstPass.updateClusterQueueClusterQueueUpdateClusterQueueUpdatePayloadClusterQueue = v

	err := json.Unmarshal(b, &firstPass)
	if err != nil {
		return err
	}

	err = json.Unmarshal(
		b, &v.ClusterQueueValues)
	if err != nil {
		return err
	}
	return nil
}

type __premarshalupdateClusterQueueClusterQueueUpdateClusterQueueUpdatePayloadClusterQueue struct {
	DispatchPaused bool `json:"dispatchPaused"`

	DispatchPausedAt *time.Time `json:"dispatchPausedAt"`

	DispatchPausedBy *updateClusterQueueClusterQueueUpdateClusterQueueUpdatePayloadClusterQueueDispatchPausedByUser `json:"dispatchPausedBy"`

	DispatchPausedNote *string `json:"dispatchPausedNote"`

	Id string `json:"id"`

	Uuid string `json:"uuid"`

	Key string `json:"key"`

	Description *string `json:"description"`

	Cluster ClusterQueueValuesCluster `json:"cluster"`

	Hosted bool `json:"hosted"`

	HostedAgents ClusterQueueValuesHostedAgentsHostedAgentQueueSettings `json:"hostedAgents"`
}

func (v *updateClusterQueueClusterQueueUpdateClusterQueueUpdatePayloadClusterQueue) MarshalJSON() ([]byte, error) {
	premarshaled, err := v.__premarshalJSON()
	if err != nil {
		return nil, err
	}
	return json.Marshal(premarshaled)
}

func (v *updateClusterQueueClusterQueueUpdateClusterQueueUpdatePayloadClusterQueue) __premarshalJSON() (*__premarshalupdateClusterQueueClusterQueueUpdateClusterQueueUpdatePayloadClusterQueue, error) {
	var retval __premarshalupdateClusterQueueClusterQueueUpdateClusterQueueUpdatePayloadClusterQueue

	retval.DispatchPaused = v.DispatchPaused
	retval.DispatchPausedAt = v.DispatchPausedAt
	retval.DispatchPausedBy = v.DispatchPausedBy
	retval.DispatchPausedNote = v.DispatchPausedNote
	retval.Id = v.ClusterQueueValues.Id
	retval.Uuid = v.ClusterQueueValues.Uuid
	retval.Key = v.ClusterQueueValues.Key
	retval.Description = v.ClusterQueueValues.Description
	retval.Cluster = v.ClusterQueueValues.Cluster
	retval.Hosted = v.ClusterQueueValues.Hosted
	retval.HostedAgents = v.ClusterQueueValues.HostedAgents
	return &retval, nil
}

// updateClusterQueueClusterQueueUpdateClusterQueueUpdatePayloadClusterQueueDispatchPausedByUser includes the requested fields of the GraphQL type User.
// The GraphQL type's documentation follows.
//
// A user
type updateClusterQueueClusterQueueUpdateClusterQueueUpdatePayloadClusterQueueDispatchPausedByUser struct {
	Id string `json:"id"`
}

// GetId returns updateClusterQueueClusterQueueUpdateClusterQueueUpdatePayloadClusterQueueDispatchPausedByUser.Id, and is useful for accessing the field via an interface.
func (v *updateClusterQueueClusterQueueUpdateClusterQueueUpdatePayloadClusterQueueDispatchPausedByUser) GetId() string {
	return v.Id
}

// updateClusterQueueResponse is returned by updateClusterQueue on success.
type updateClusterQueueResponse struct {
	// Updates a cluster queue.
	ClusterQueueUpdate updateClusterQueueClusterQueueUpdateClusterQueueUpdatePayload `json:"clusterQueueUpdate"`
}

// GetClusterQueueUpdate returns updateClusterQueueResponse.ClusterQueueUpdate, and is useful for accessing the field via an interface.
func (v *updateClusterQueueResponse) GetClusterQueueUpdate() updateClusterQueueClusterQueueUpdateClusterQueueUpdatePayload {
	return v.ClusterQueueUpdate
}

// updateClusterResponse is returned by updateCluster on success.
type updateClusterResponse struct {
	// Updates a cluster.
	ClusterUpdate updateClusterClusterUpdateClusterUpdatePayload `json:"clusterUpdate"`
}

// GetClusterUpdate returns updateClusterResponse.ClusterUpdate, and is useful for accessing the field via an interface.
func (v *updateClusterResponse) GetClusterUpdate() updateClusterClusterUpdateClusterUpdatePayload {
	return v.ClusterUpdate
}

// updateOrganizationRuleResponse is returned by updateOrganizationRule on success.
type updateOrganizationRuleResponse struct {
	// Update a rule.
	RuleUpdate updateOrganizationRuleRuleUpdateRuleUpdatePayload `json:"ruleUpdate"`
}

// GetRuleUpdate returns updateOrganizationRuleResponse.RuleUpdate, and is useful for accessing the field via an interface.
func (v *updateOrganizationRuleResponse) GetRuleUpdate() updateOrganizationRuleRuleUpdateRuleUpdatePayload {
	return v.RuleUpdate
}

// updateOrganizationRuleRuleUpdateRuleUpdatePayload includes the requested fields of the GraphQL type RuleUpdatePayload.
// The GraphQL type's documentation follows.
//
// Autogenerated return type of RuleUpdate.
type updateOrganizationRuleRuleUpdateRuleUpdatePayload struct {
	Rule updateOrganizationRuleRuleUpdateRuleUpdatePayloadRule `json:"rule"`
}

// GetRule returns updateOrganizationRuleRuleUpdateRuleUpdatePayload.Rule, and is useful for accessing the field via an interface.
func (v *updateOrganizationRuleRuleUpdateRuleUpdatePayload) GetRule() updateOrganizationRuleRuleUpdateRuleUpdatePayloadRule {
	return v.Rule
}

// updateOrganizationRuleRuleUpdateRuleUpdatePayloadRule includes the requested fields of the GraphQL type Rule.
type updateOrganizationRuleRuleUpdateRuleUpdatePayloadRule struct {
	OrganizationRuleFields `json:"-"`
}

// GetId returns updateOrganizationRuleRuleUpdateRuleUpdatePayloadRule.Id, and is useful for accessing the field via an interface.
func (v *updateOrganizationRuleRuleUpdateRuleUpdatePayloadRule) GetId() string {
	return v.OrganizationRuleFields.Id
}

// GetUuid returns updateOrganizationRuleRuleUpdateRuleUpdatePayloadRule.Uuid, and is useful for accessing the field via an interface.
func (v *updateOrganizationRuleRuleUpdateRuleUpdatePayloadRule) GetUuid() string {
	return v.OrganizationRuleFields.Uuid
}

// GetDescription returns updateOrganizationRuleRuleUpdateRuleUpdatePayloadRule.Description, and is useful for accessing the field via an interface.
func (v *updateOrganizationRuleRuleUpdateRuleUpdatePayloadRule) GetDescription() *string {
	return v.OrganizationRuleFields.Description
}

// GetDocument returns updateOrganizationRuleRuleUpdateRuleUpdatePayloadRule.Document, and is useful for accessing the field via an interface.
func (v *updateOrganizationRuleRuleUpdateRuleUpdatePayloadRule) GetDocument() string {
	return v.OrganizationRuleFields.Document
}

// GetType returns updateOrganizationRuleRuleUpdateRuleUpdatePayloadRule.Type, and is useful for accessing the field via an interface.
func (v *updateOrganizationRuleRuleUpdateRuleUpdatePayloadRule) GetType() string {
	return v.OrganizationRuleFields.Type
}

// GetSourceType returns updateOrganizationRuleRuleUpdateRuleUpdatePayloadRule.SourceType, and is useful for accessing the field via an interface.
func (v *updateOrganizationRuleRuleUpdateRuleUpdatePayloadRule) GetSourceType() RuleSourceType {
	return v.OrganizationRuleFields.SourceType
}

// GetTargetType returns updateOrganizationRuleRuleUpdateRuleUpdatePayloadRule.TargetType, and is useful for accessing the field via an interface.
func (v *updateOrganizationRuleRuleUpdateRuleUpdatePayloadRule) GetTargetType() RuleTargetType {
	return v.OrganizationRuleFields.TargetType
}

// GetEffect returns updateOrganizationRuleRuleUpdateRuleUpdatePayloadRule.Effect, and is useful for accessing the field via an interface.
func (v *updateOrganizationRuleRuleUpdateRuleUpdatePayloadRule) GetEffect() RuleEffect {
	return v.OrganizationRuleFields.Effect
}

// GetAction returns updateOrganizationRuleRuleUpdateRuleUpdatePayloadRule.Action, and is useful for accessing the field via an interface.
func (v *updateOrganizationRuleRuleUpdateRuleUpdatePayloadRule) GetAction() RuleAction {
	return v.OrganizationRuleFields.Action
}

// GetSource returns updateOrganizationRuleRuleUpdateRuleUpdatePayloadRule.Source, and is useful for accessing the field via an interface.
func (v *updateOrganizationRuleRuleUpdateRuleUpdatePayloadRule) GetSource() OrganizationRuleFieldsSourceRuleSource {
	return v.OrganizationRuleFields.Source
}

// GetTarget returns updateOrganizationRuleRuleUpdateRuleUpdatePayloadRule.Target, and is useful for accessing the field via an interface.
func (v *updateOrganizationRuleRuleUpdateRuleUpdatePayloadRule) GetTarget() OrganizationRuleFieldsTargetRuleTarget {
	return v.OrganizationRuleFields.Target
}

func (v *updateOrganizationRuleRuleUpdateRuleUpdatePayloadRule) UnmarshalJSON(b []byte) error {

	if string(b) == "null" {
		return nil
	}

	var firstPass struct {
		*updateOrganizationRuleRuleUpdateRuleUpdatePayloadRule
		graphql.NoUnmarshalJSON
	}
	firstPass.updateOrganizationRuleRuleUpdateRuleUpdatePayloadRule = v

	err := json.Unmarshal(b, &firstPass)
	if err != nil {
		return err
	}

	err = json.Unmarshal(
		b, &v.OrganizationRuleFields)
	if err != nil {
		return err
	}
	return nil
}

type __premarshalupdateOrganizationRuleRuleUpdateRuleUpdatePayloadRule struct {
	Id string `json:"id"`

	Uuid string `json:"uuid"`

	Description *string `json:"description"`

	Document string `json:"document"`

	Type string `json:"type"`

	SourceType RuleSourceType `json:"sourceType"`

	TargetType RuleTargetType `json:"targetType"`

	Effect RuleEffect `json:"effect"`

	Action RuleAction `json:"action"`

	Source json.RawMessage `json:"source"`

	Target json.RawMessage `json:"target"`
}

func (v *updateOrganizationRuleRuleUpdateRuleUpdatePayloadRule) MarshalJSON() ([]byte, error) {
	premarshaled, err := v.__premarshalJSON()
	if err != nil {
		return nil, err
	}
	return json.Marshal(premarshaled)
}

func (v *updateOrganizationRuleRuleUpdateRuleUpdatePayloadRule) __premarshalJSON() (*__premarshalupdateOrganizationRuleRuleUpdateRuleUpdatePayloadRule, error) {
	var retval __premarshalupdateOrganizationRuleRuleUpdateRuleUpdatePayloadRule

	retval.Id = v.OrganizationRuleFields.Id
	retval.Uuid = v.OrganizationRuleFields.Uuid
	retval.Description = v.OrganizationRuleFields.Description
	retval.Document = v.OrganizationRuleFields.Document
	retval.Type = v.OrganizationRuleFields.Type
	retval.SourceType = v.OrganizationRuleFields.SourceType
	retval.TargetType = v.OrganizationRuleFields.TargetType
	retval.Effect = v.OrganizationRuleFields.Effect
	retval.Action = v.OrganizationRuleFields.Action
	{

		dst := &retval.Source
		src := v.OrganizationRuleFields.Source
		var err error
		*dst, err = __marshalOrganizationRuleFieldsSourceRuleSource(
			&src)
		if err != nil {
			return nil, fmt.Errorf(
				"unable to marshal updateOrganizationRuleRuleUpdateRuleUpdatePayloadRule.OrganizationRuleFields.Source: %w", err)
		}
	}
	{

		dst := &retval.Target
		src := v.OrganizationRuleFields.Target
		var err error
		*dst, err = __marshalOrganizationRuleFieldsTargetRuleTarget(
			&src)
		if err != nil {
			return nil, fmt.Errorf(
				"unable to marshal updateOrganizationRuleRuleUpdateRuleUpdatePayloadRule.OrganizationRuleFields.Target: %w", err)
		}
	}
	return &retval, nil
}

// updatePipelinePipelineUpdatePipelineUpdatePayload includes the requested fields of the GraphQL type PipelineUpdatePayload.
// The GraphQL type's documentation follows.
//
// Autogenerated return type of PipelineUpdate.
type updatePipelinePipelineUpdatePipelineUpdatePayload struct {
	Pipeline updatePipelinePipelineUpdatePipelineUpdatePayloadPipeline `json:"pipeline"`
}

// GetPipeline returns updatePipelinePipelineUpdatePipelineUpdatePayload.Pipeline, and is useful for accessing the field via an interface.
func (v *updatePipelinePipelineUpdatePipelineUpdatePayload) GetPipeline() updatePipelinePipelineUpdatePipelineUpdatePayloadPipeline {
	return v.Pipeline
}

// updatePipelinePipelineUpdatePipelineUpdatePayloadPipeline includes the requested fields of the GraphQL type Pipeline.
// The GraphQL type's documentation follows.
//
// A pipeline
type updatePipelinePipelineUpdatePipelineUpdatePayloadPipeline struct {
	PipelineFields `json:"-"`
}

// GetId returns updatePipelinePipelineUpdatePipelineUpdatePayloadPipeline.Id, and is useful for accessing the field via an interface.
func (v *updatePipelinePipelineUpdatePipelineUpdatePayloadPipeline) GetId() string {
	return v.PipelineFields.Id
}

// GetPipelineUuid returns updatePipelinePipelineUpdatePipelineUpdatePayloadPipeline.PipelineUuid, and is useful for accessing the field via an interface.
func (v *updatePipelinePipelineUpdatePipelineUpdatePayloadPipeline) GetPipelineUuid() string {
	return v.PipelineFields.PipelineUuid
}

// GetAllowRebuilds returns updatePipelinePipelineUpdatePipelineUpdatePayloadPipeline.AllowRebuilds, and is useful for accessing the field via an interface.
func (v *updatePipelinePipelineUpdatePipelineUpdatePayloadPipeline) GetAllowRebuilds() bool {
	return v.PipelineFields.AllowRebuilds
}

// GetBadgeURL returns updatePipelinePipelineUpdatePipelineUpdatePayloadPipeline.BadgeURL, and is useful for accessing the field via an interface.
func (v *updatePipelinePipelineUpdatePipelineUpdatePayloadPipeline) GetBadgeURL() string {
	return v.PipelineFields.BadgeURL
}

// GetBranchConfiguration returns updatePipelinePipelineUpdatePipelineUpdatePayloadPipeline.BranchConfiguration, and is useful for accessing the field via an interface.
func (v *updatePipelinePipelineUpdatePipelineUpdatePayloadPipeline) GetBranchConfiguration() *string {
	return v.PipelineFields.BranchConfiguration
}

// GetCancelIntermediateBuilds returns updatePipelinePipelineUpdatePipelineUpdatePayloadPipeline.CancelIntermediateBuilds, and is useful for accessing the field via an interface.
func (v *updatePipelinePipelineUpdatePipelineUpdatePayloadPipeline) GetCancelIntermediateBuilds() bool {
	return v.PipelineFields.CancelIntermediateBuilds
}

// GetCancelIntermediateBuildsBranchFilter returns updatePipelinePipelineUpdatePipelineUpdatePayloadPipeline.CancelIntermediateBuildsBranchFilter, and is useful for accessing the field via an interface.
func (v *updatePipelinePipelineUpdatePipelineUpdatePayloadPipeline) GetCancelIntermediateBuildsBranchFilter() string {
	return v.PipelineFields.CancelIntermediateBuildsBranchFilter
}

// GetCluster returns updatePipelinePipelineUpdatePipelineUpdatePayloadPipeline.Cluster, and is useful for accessing the field via an interface.
func (v *updatePipelinePipelineUpdatePipelineUpdatePayloadPipeline) GetCluster() PipelineFieldsCluster {
	return v.PipelineFields.Cluster
}

// GetColor returns updatePipelinePipelineUpdatePipelineUpdatePayloadPipeline.Color, and is useful for accessing the field via an interface.
func (v *updatePipelinePipelineUpdatePipelineUpdatePayloadPipeline) GetColor() *string {
	return v.PipelineFields.Color
}

// GetDefaultBranch returns updatePipelinePipelineUpdatePipelineUpdatePayloadPipeline.DefaultBranch, and is useful for accessing the field via an interface.
func (v *updatePipelinePipelineUpdatePipelineUpdatePayloadPipeline) GetDefaultBranch() string {
	return v.PipelineFields.DefaultBranch
}

// GetDefaultTimeoutInMinutes returns updatePipelinePipelineUpdatePipelineUpdatePayloadPipeline.DefaultTimeoutInMinutes, and is useful for accessing the field via an interface.
func (v *updatePipelinePipelineUpdatePipelineUpdatePayloadPipeline) GetDefaultTimeoutInMinutes() *int {
	return v.PipelineFields.DefaultTimeoutInMinutes
}

// GetEmoji returns updatePipelinePipelineUpdatePipelineUpdatePayloadPipeline.Emoji, and is useful for accessing the field via an interface.
func (v *updatePipelinePipelineUpdatePipelineUpdatePayloadPipeline) GetEmoji() *string {
	return v.PipelineFields.Emoji
}

// GetMaximumTimeoutInMinutes returns updatePipelinePipelineUpdatePipelineUpdatePayloadPipeline.MaximumTimeoutInMinutes, and is useful for accessing the field via an interface.
func (v *updatePipelinePipelineUpdatePipelineUpdatePayloadPipeline) GetMaximumTimeoutInMinutes() *int {
	return v.PipelineFields.MaximumTimeoutInMinutes
}

// GetDescription returns updatePipelinePipelineUpdatePipelineUpdatePayloadPipeline.Description, and is useful for accessing the field via an interface.
func (v *updatePipelinePipelineUpdatePipelineUpdatePayloadPipeline) GetDescription() string {
	return v.PipelineFields.Description
}

// GetName returns updatePipelinePipelineUpdatePipelineUpdatePayloadPipeline.Name, and is useful for accessing the field via an interface.
func (v *updatePipelinePipelineUpdatePipelineUpdatePayloadPipeline) GetName() string {
	return v.PipelineFields.Name
}

// GetRepository returns updatePipelinePipelineUpdatePipelineUpdatePayloadPipeline.Repository, and is useful for accessing the field via an interface.
func (v *updatePipelinePipelineUpdatePipelineUpdatePayloadPipeline) GetRepository() PipelineFieldsRepository {
	return v.PipelineFields.Repository
}

// GetPipelineTemplate returns updatePipelinePipelineUpdatePipelineUpdatePayloadPipeline.PipelineTemplate, and is useful for accessing the field via an interface.
func (v *updatePipelinePipelineUpdatePipelineUpdatePayloadPipeline) GetPipelineTemplate() PipelineFieldsPipelineTemplate {
	return v.PipelineFields.PipelineTemplate
}

// GetSkipIntermediateBuilds returns updatePipelinePipelineUpdatePipelineUpdatePayloadPipeline.SkipIntermediateBuilds, and is useful for accessing the field via an interface.
func (v *updatePipelinePipelineUpdatePipelineUpdatePayloadPipeline) GetSkipIntermediateBuilds() bool {
	return v.PipelineFields.SkipIntermediateBuilds
}

// GetSkipIntermediateBuildsBranchFilter returns updatePipelinePipelineUpdatePipelineUpdatePayloadPipeline.SkipIntermediateBuildsBranchFilter, and is useful for accessing the field via an interface.
func (v *updatePipelinePipelineUpdatePipelineUpdatePayloadPipeline) GetSkipIntermediateBuildsBranchFilter() string {
	return v.PipelineFields.SkipIntermediateBuildsBranchFilter
}

// GetSlug returns updatePipelinePipelineUpdatePipelineUpdatePayloadPipeline.Slug, and is useful for accessing the field via an interface.
func (v *updatePipelinePipelineUpdatePipelineUpdatePayloadPipeline) GetSlug() string {
	return v.PipelineFields.Slug
}

// GetSteps returns updatePipelinePipelineUpdatePipelineUpdatePayloadPipeline.Steps, and is useful for accessing the field via an interface.
func (v *updatePipelinePipelineUpdatePipelineUpdatePayloadPipeline) GetSteps() PipelineFieldsStepsPipelineSteps {
	return v.PipelineFields.Steps
}

// GetTags returns updatePipelinePipelineUpdatePipelineUpdatePayloadPipeline.Tags, and is useful for accessing the field via an interface.
func (v *updatePipelinePipelineUpdatePipelineUpdatePayloadPipeline) GetTags() []PipelineFieldsTagsPipelineTag {
	return v.PipelineFields.Tags
}

// GetTeams returns updatePipelinePipelineUpdatePipelineUpdatePayloadPipeline.Teams, and is useful for accessing the field via an interface.
func (v *updatePipelinePipelineUpdatePipelineUpdatePayloadPipeline) GetTeams() PipelineFieldsTeamsTeamPipelineConnection {
	return v.PipelineFields.Teams
}

// GetWebhookURL returns updatePipelinePipelineUpdatePipelineUpdatePayloadPipeline.WebhookURL, and is useful for accessing the field via an interface.
func (v *updatePipelinePipelineUpdatePipelineUpdatePayloadPipeline) GetWebhookURL() string {
	return v.PipelineFields.WebhookURL
}

func (v *updatePipelinePipelineUpdatePipelineUpdatePayloadPipeline) UnmarshalJSON(b []byte) error {

	if string(b) == "null" {
		return nil
	}

	var firstPass struct {
		*updatePipelinePipelineUpdatePipelineUpdatePayloadPipeline
		graphql.NoUnmarshalJSON
	}
	firstPass.updatePipelinePipelineUpdatePipelineUpdatePayloadPipeline = v

	err := json.Unmarshal(b, &firstPass)
	if err != nil {
		return err
	}

	err = json.Unmarshal(
		b, &v.PipelineFields)
	if err != nil {
		return err
	}
	return nil
}

type __premarshalupdatePipelinePipelineUpdatePipelineUpdatePayloadPipeline struct {
	Id string `json:"id"`

	PipelineUuid string `json:"pipelineUuid"`

	AllowRebuilds bool `json:"allowRebuilds"`

	BadgeURL string `json:"badgeURL"`

	BranchConfiguration *string `json:"branchConfiguration"`

	CancelIntermediateBuilds bool `json:"cancelIntermediateBuilds"`

	CancelIntermediateBuildsBranchFilter string `json:"cancelIntermediateBuildsBranchFilter"`

	Cluster PipelineFieldsCluster `json:"cluster"`

	Color *string `json:"color"`

	DefaultBranch string `json:"defaultBranch"`

	DefaultTimeoutInMinutes *int `json:"defaultTimeoutInMinutes"`

	Emoji *string `json:"emoji"`

	MaximumTimeoutInMinutes *int `json:"maximumTimeoutInMinutes"`

	Description string `json:"description"`

	Name string `json:"name"`

	Repository PipelineFieldsRepository `json:"repository"`

	PipelineTemplate PipelineFieldsPipelineTemplate `json:"pipelineTemplate"`

	SkipIntermediateBuilds bool `json:"skipIntermediateBuilds"`

	SkipIntermediateBuildsBranchFilter string `json:"skipIntermediateBuildsBranchFilter"`

	Slug string `json:"slug"`

	Steps PipelineFieldsStepsPipelineSteps `json:"steps"`

	Tags []PipelineFieldsTagsPipelineTag `json:"tags"`

	Teams PipelineFieldsTeamsTeamPipelineConnection `json:"teams"`

	WebhookURL string `json:"webhookURL"`
}

func (v *updatePipelinePipelineUpdatePipelineUpdatePayloadPipeline) MarshalJSON() ([]byte, error) {
	premarshaled, err := v.__premarshalJSON()
	if err != nil {
		return nil, err
	}
	return json.Marshal(premarshaled)
}

func (v *updatePipelinePipelineUpdatePipelineUpdatePayloadPipeline) __premarshalJSON() (*__premarshalupdatePipelinePipelineUpdatePipelineUpdatePayloadPipeline, error) {
	var retval __premarshalupdatePipelinePipelineUpdatePipelineUpdatePayloadPipeline

	retval.Id = v.PipelineFields.Id
	retval.PipelineUuid = v.PipelineFields.PipelineUuid
	retval.AllowRebuilds = v.PipelineFields.AllowRebuilds
	retval.BadgeURL = v.PipelineFields.BadgeURL
	retval.BranchConfiguration = v.PipelineFields.BranchConfiguration
	retval.CancelIntermediateBuilds = v.PipelineFields.CancelIntermediateBuilds
	retval.CancelIntermediateBuildsBranchFilter = v.PipelineFields.CancelIntermediateBuildsBranchFilter
	retval.Cluster = v.PipelineFields.Cluster
	retval.Color = v.PipelineFields.Color
	retval.DefaultBranch = v.PipelineFields.DefaultBranch
	retval.DefaultTimeoutInMinutes = v.PipelineFields.DefaultTimeoutInMinutes
	retval.Emoji = v.PipelineFields.Emoji
	retval.MaximumTimeoutInMinutes = v.PipelineFields.MaximumTimeoutInMinutes
	retval.Description = v.PipelineFields.Description
	retval.Name = v.PipelineFields.Name
	retval.Repository = v.PipelineFields.Repository
	retval.PipelineTemplate = v.PipelineFields.PipelineTemplate
	retval.SkipIntermediateBuilds = v.PipelineFields.SkipIntermediateBuilds
	retval.SkipIntermediateBuildsBranchFilter = v.PipelineFields.SkipIntermediateBuildsBranchFilter
	retval.Slug = v.PipelineFields.Slug
	retval.Steps = v.PipelineFields.Steps
	retval.Tags = v.PipelineFields.Tags
	retval.Teams = v.PipelineFields.Teams
	retval.WebhookURL = v.PipelineFields.WebhookURL
	return &retval, nil
}

// updatePipelineResponse is returned by updatePipeline on success.
type updatePipelineResponse struct {
	// Change the settings for a pipeline.
	PipelineUpdate updatePipelinePipelineUpdatePipelineUpdatePayload `json:"pipelineUpdate"`
}

// GetPipelineUpdate returns updatePipelineResponse.PipelineUpdate, and is useful for accessing the field via an interface.
func (v *updatePipelineResponse) GetPipelineUpdate() updatePipelinePipelineUpdatePipelineUpdatePayload {
	return v.PipelineUpdate
}

// updatePipelineSchedulePipelineScheduleUpdatePipelineScheduleUpdatePayload includes the requested fields of the GraphQL type PipelineScheduleUpdatePayload.
// The GraphQL type's documentation follows.
//
// Autogenerated return type of PipelineScheduleUpdate.
type updatePipelineSchedulePipelineScheduleUpdatePipelineScheduleUpdatePayload struct {
	PipelineSchedule updatePipelineSchedulePipelineScheduleUpdatePipelineScheduleUpdatePayloadPipelineSchedule `json:"pipelineSchedule"`
}

// GetPipelineSchedule returns updatePipelineSchedulePipelineScheduleUpdatePipelineScheduleUpdatePayload.PipelineSchedule, and is useful for accessing the field via an interface.
func (v *updatePipelineSchedulePipelineScheduleUpdatePipelineScheduleUpdatePayload) GetPipelineSchedule() updatePipelineSchedulePipelineScheduleUpdatePipelineScheduleUpdatePayloadPipelineSchedule {
	return v.PipelineSchedule
}

// updatePipelineSchedulePipelineScheduleUpdatePipelineScheduleUpdatePayloadPipelineSchedule 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 updatePipelineSchedulePipelineScheduleUpdatePipelineScheduleUpdatePayloadPipelineSchedule struct {
	PipelineScheduleValues `json:"-"`
}

// GetId returns updatePipelineSchedulePipelineScheduleUpdatePipelineScheduleUpdatePayloadPipelineSchedule.Id, and is useful for accessing the field via an interface.
func (v *updatePipelineSchedulePipelineScheduleUpdatePipelineScheduleUpdatePayloadPipelineSchedule) GetId() string {
	return v.PipelineScheduleValues.Id
}

// GetUuid returns updatePipelineSchedulePipelineScheduleUpdatePipelineScheduleUpdatePayloadPipelineSchedule.Uuid, and is useful for accessing the field via an interface.
func (v *updatePipelineSchedulePipelineScheduleUpdatePipelineScheduleUpdatePayloadPipelineSchedule) GetUuid() string {
	return v.PipelineScheduleValues.Uuid
}

// GetLabel returns updatePipelineSchedulePipelineScheduleUpdatePipelineScheduleUpdatePayloadPipelineSchedule.Label, and is useful for accessing the field via an interface.
func (v *updatePipelineSchedulePipelineScheduleUpdatePipelineScheduleUpdatePayloadPipelineSchedule) GetLabel() *string {
	return v.PipelineScheduleValues.Label
}

// GetCronline returns updatePipelineSchedulePipelineScheduleUpdatePipelineScheduleUpdatePayloadPipelineSchedule.Cronline, and is useful for accessing the field via an interface.
func (v *updatePipelineSchedulePipelineScheduleUpdatePipelineScheduleUpdatePayloadPipelineSchedule) GetCronline() *string {
	return v.PipelineScheduleValues.Cronline
}

// GetMessage returns updatePipelineSchedulePipelineScheduleUpdatePipelineScheduleUpdatePayloadPipelineSchedule.Message, and is useful for accessing the field via an interface.
func (v *updatePipelineSchedulePipelineScheduleUpdatePipelineScheduleUpdatePayloadPipelineSchedule) GetMessage() *string {
	return v.PipelineScheduleValues.Message
}

// GetCommit returns updatePipelineSchedulePipelineScheduleUpdatePipelineScheduleUpdatePayloadPipelineSchedule.Commit, and is useful for accessing the field via an interface.
func (v *updatePipelineSchedulePipelineScheduleUpdatePipelineScheduleUpdatePayloadPipelineSchedule) GetCommit() *string {
	return v.PipelineScheduleValues.Commit
}

// GetBranch returns updatePipelineSchedulePipelineScheduleUpdatePipelineScheduleUpdatePayloadPipelineSchedule.Branch, and is useful for accessing the field via an interface.
func (v *updatePipelineSchedulePipelineScheduleUpdatePipelineScheduleUpdatePayloadPipelineSchedule) GetBranch() *string {
	return v.PipelineScheduleValues.Branch
}

// GetEnv returns updatePipelineSchedulePipelineScheduleUpdatePipelineScheduleUpdatePayloadPipelineSchedule.Env, and is useful for accessing the field via an interface.
func (v *updatePipelineSchedulePipelineScheduleUpdatePipelineScheduleUpdatePayloadPipelineSchedule) GetEnv() []*string {
	return v.PipelineScheduleValues.Env
}

// GetEnabled returns updatePipelineSchedulePipelineScheduleUpdatePipelineScheduleUpdatePayloadPipelineSchedule.Enabled, and is useful for accessing the field via an interface.
func (v *updatePipelineSchedulePipelineScheduleUpdatePipelineScheduleUpdatePayloadPipelineSchedule) GetEnabled() bool {
	return v.PipelineScheduleValues.Enabled
}

// GetPipeline returns updatePipelineSchedulePipelineScheduleUpdatePipelineScheduleUpdatePayloadPipelineSchedule.Pipeline, and is useful for accessing the field via an interface.
func (v *updatePipelineSchedulePipelineScheduleUpdatePipelineScheduleUpdatePayloadPipelineSchedule) GetPipeline() PipelineScheduleValuesPipeline {
	return v.PipelineScheduleValues.Pipeline
}

func (v *updatePipelineSchedulePipelineScheduleUpdatePipelineScheduleUpdatePayloadPipelineSchedule) UnmarshalJSON(b []byte) error {

	if string(b) == "null" {
		return nil
	}

	var firstPass struct {
		*updatePipelineSchedulePipelineScheduleUpdatePipelineScheduleUpdatePayloadPipelineSchedule
		graphql.NoUnmarshalJSON
	}
	firstPass.updatePipelineSchedulePipelineScheduleUpdatePipelineScheduleUpdatePayloadPipelineSchedule = v

	err := json.Unmarshal(b, &firstPass)
	if err != nil {
		return err
	}

	err = json.Unmarshal(
		b, &v.PipelineScheduleValues)
	if err != nil {
		return err
	}
	return nil
}

type __premarshalupdatePipelineSchedulePipelineScheduleUpdatePipelineScheduleUpdatePayloadPipelineSchedule struct {
	Id string `json:"id"`

	Uuid string `json:"uuid"`

	Label *string `json:"label"`

	Cronline *string `json:"cronline"`

	Message *string `json:"message"`

	Commit *string `json:"commit"`

	Branch *string `json:"branch"`

	Env []*string `json:"env"`

	Enabled bool `json:"enabled"`

	Pipeline PipelineScheduleValuesPipeline `json:"pipeline"`
}

func (v *updatePipelineSchedulePipelineScheduleUpdatePipelineScheduleUpdatePayloadPipelineSchedule) MarshalJSON() ([]byte, error) {
	premarshaled, err := v.__premarshalJSON()
	if err != nil {
		return nil, err
	}
	return json.Marshal(premarshaled)
}

func (v *updatePipelineSchedulePipelineScheduleUpdatePipelineScheduleUpdatePayloadPipelineSchedule) __premarshalJSON() (*__premarshalupdatePipelineSchedulePipelineScheduleUpdatePipelineScheduleUpdatePayloadPipelineSchedule, error) {
	var retval __premarshalupdatePipelineSchedulePipelineScheduleUpdatePipelineScheduleUpdatePayloadPipelineSchedule

	retval.Id = v.PipelineScheduleValues.Id
	retval.Uuid = v.PipelineScheduleValues.Uuid
	retval.Label = v.PipelineScheduleValues.Label
	retval.Cronline = v.PipelineScheduleValues.Cronline
	retval.Message = v.PipelineScheduleValues.Message
	retval.Commit = v.PipelineScheduleValues.Commit
	retval.Branch = v.PipelineScheduleValues.Branch
	retval.Env = v.PipelineScheduleValues.Env
	retval.Enabled = v.PipelineScheduleValues.Enabled
	retval.Pipeline = v.PipelineScheduleValues.Pipeline
	return &retval, nil
}

// updatePipelineScheduleResponse is returned by updatePipelineSchedule on success.
type updatePipelineScheduleResponse struct {
	// Update a scheduled build on pipeline.
	PipelineScheduleUpdate updatePipelineSchedulePipelineScheduleUpdatePipelineScheduleUpdatePayload `json:"pipelineScheduleUpdate"`
}

// GetPipelineScheduleUpdate returns updatePipelineScheduleResponse.PipelineScheduleUpdate, and is useful for accessing the field via an interface.
func (v *updatePipelineScheduleResponse) GetPipelineScheduleUpdate() updatePipelineSchedulePipelineScheduleUpdatePipelineScheduleUpdatePayload {
	return v.PipelineScheduleUpdate
}

// updatePipelineTemplatePipelineTemplateUpdatePipelineTemplateUpdatePayload includes the requested fields of the GraphQL type PipelineTemplateUpdatePayload.
// The GraphQL type's documentation follows.
//
// Autogenerated return type of PipelineTemplateUpdate.
type updatePipelineTemplatePipelineTemplateUpdatePipelineTemplateUpdatePayload struct {
	PipelineTemplate updatePipelineTemplatePipelineTemplateUpdatePipelineTemplateUpdatePayloadPipelineTemplate `json:"pipelineTemplate"`
}

// GetPipelineTemplate returns updatePipelineTemplatePipelineTemplateUpdatePipelineTemplateUpdatePayload.PipelineTemplate, and is useful for accessing the field via an interface.
func (v *updatePipelineTemplatePipelineTemplateUpdatePipelineTemplateUpdatePayload) GetPipelineTemplate() updatePipelineTemplatePipelineTemplateUpdatePipelineTemplateUpdatePayloadPipelineTemplate {
	return v.PipelineTemplate
}

// updatePipelineTemplatePipelineTemplateUpdatePipelineTemplateUpdatePayloadPipelineTemplate 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 updatePipelineTemplatePipelineTemplateUpdatePipelineTemplateUpdatePayloadPipelineTemplate struct {
	PipelineTemplateFields `json:"-"`
}

// GetId returns updatePipelineTemplatePipelineTemplateUpdatePipelineTemplateUpdatePayloadPipelineTemplate.Id, and is useful for accessing the field via an interface.
func (v *updatePipelineTemplatePipelineTemplateUpdatePipelineTemplateUpdatePayloadPipelineTemplate) GetId() string {
	return v.PipelineTemplateFields.Id
}

// GetUuid returns updatePipelineTemplatePipelineTemplateUpdatePipelineTemplateUpdatePayloadPipelineTemplate.Uuid, and is useful for accessing the field via an interface.
func (v *updatePipelineTemplatePipelineTemplateUpdatePipelineTemplateUpdatePayloadPipelineTemplate) GetUuid() string {
	return v.PipelineTemplateFields.Uuid
}

// GetAvailable returns updatePipelineTemplatePipelineTemplateUpdatePipelineTemplateUpdatePayloadPipelineTemplate.Available, and is useful for accessing the field via an interface.
func (v *updatePipelineTemplatePipelineTemplateUpdatePipelineTemplateUpdatePayloadPipelineTemplate) GetAvailable() bool {
	return v.PipelineTemplateFields.Available
}

// GetConfiguration returns updatePipelineTemplatePipelineTemplateUpdatePipelineTemplateUpdatePayloadPipelineTemplate.Configuration, and is useful for accessing the field via an interface.
func (v *updatePipelineTemplatePipelineTemplateUpdatePipelineTemplateUpdatePayloadPipelineTemplate) GetConfiguration() string {
	return v.PipelineTemplateFields.Configuration
}

// GetDescription returns updatePipelineTemplatePipelineTemplateUpdatePipelineTemplateUpdatePayloadPipelineTemplate.Description, and is useful for accessing the field via an interface.
func (v *updatePipelineTemplatePipelineTemplateUpdatePipelineTemplateUpdatePayloadPipelineTemplate) GetDescription() *string {
	return v.PipelineTemplateFields.Description
}

// GetName returns updatePipelineTemplatePipelineTemplateUpdatePipelineTemplateUpdatePayloadPipelineTemplate.Name, and is useful for accessing the field via an interface.
func (v *updatePipelineTemplatePipelineTemplateUpdatePipelineTemplateUpdatePayloadPipelineTemplate) GetName() string {
	return v.PipelineTemplateFields.Name
}

func (v *updatePipelineTemplatePipelineTemplateUpdatePipelineTemplateUpdatePayloadPipelineTemplate) UnmarshalJSON(b []byte) error {

	if string(b) == "null" {
		return nil
	}

	var firstPass struct {
		*updatePipelineTemplatePipelineTemplateUpdatePipelineTemplateUpdatePayloadPipelineTemplate
		graphql.NoUnmarshalJSON
	}
	firstPass.updatePipelineTemplatePipelineTemplateUpdatePipelineTemplateUpdatePayloadPipelineTemplate = v

	err := json.Unmarshal(b, &firstPass)
	if err != nil {
		return err
	}

	err = json.Unmarshal(
		b, &v.PipelineTemplateFields)
	if err != nil {
		return err
	}
	return nil
}

type __premarshalupdatePipelineTemplatePipelineTemplateUpdatePipelineTemplateUpdatePayloadPipelineTemplate struct {
	Id string `json:"id"`

	Uuid string `json:"uuid"`

	Available bool `json:"available"`

	Configuration string `json:"configuration"`

	Description *string `json:"description"`

	Name string `json:"name"`
}

func (v *updatePipelineTemplatePipelineTemplateUpdatePipelineTemplateUpdatePayloadPipelineTemplate) MarshalJSON() ([]byte, error) {
	premarshaled, err := v.__premarshalJSON()
	if err != nil {
		return nil, err
	}
	return json.Marshal(premarshaled)
}

func (v *updatePipelineTemplatePipelineTemplateUpdatePipelineTemplateUpdatePayloadPipelineTemplate) __premarshalJSON() (*__premarshalupdatePipelineTemplatePipelineTemplateUpdatePipelineTemplateUpdatePayloadPipelineTemplate, error) {
	var retval __premarshalupdatePipelineTemplatePipelineTemplateUpdatePipelineTemplateUpdatePayloadPipelineTemplate

	retval.Id = v.PipelineTemplateFields.Id
	retval.Uuid = v.PipelineTemplateFields.Uuid
	retval.Available = v.PipelineTemplateFields.Available
	retval.Configuration = v.PipelineTemplateFields.Configuration
	retval.Description = v.PipelineTemplateFields.Description
	retval.Name = v.PipelineTemplateFields.Name
	return &retval, nil
}

// updatePipelineTemplateResponse is returned by updatePipelineTemplate on success.
type updatePipelineTemplateResponse struct {
	// Update a pipeline template.
	PipelineTemplateUpdate updatePipelineTemplatePipelineTemplateUpdatePipelineTemplateUpdatePayload `json:"pipelineTemplateUpdate"`
}

// GetPipelineTemplateUpdate returns updatePipelineTemplateResponse.PipelineTemplateUpdate, and is useful for accessing the field via an interface.
func (v *updatePipelineTemplateResponse) GetPipelineTemplateUpdate() updatePipelineTemplatePipelineTemplateUpdatePipelineTemplateUpdatePayload {
	return v.PipelineTemplateUpdate
}

// updateTeamMemberResponse is returned by updateTeamMember on success.
type updateTeamMemberResponse struct {
	// Update a user's role in a team.
	TeamMemberUpdate updateTeamMemberTeamMemberUpdateTeamMemberUpdatePayload `json:"teamMemberUpdate"`
}

// GetTeamMemberUpdate returns updateTeamMemberResponse.TeamMemberUpdate, and is useful for accessing the field via an interface.
func (v *updateTeamMemberResponse) GetTeamMemberUpdate() updateTeamMemberTeamMemberUpdateTeamMemberUpdatePayload {
	return v.TeamMemberUpdate
}

// updateTeamMemberTeamMemberUpdateTeamMemberUpdatePayload includes the requested fields of the GraphQL type TeamMemberUpdatePayload.
// The GraphQL type's documentation follows.
//
// Autogenerated return type of TeamMemberUpdate.
type updateTeamMemberTeamMemberUpdateTeamMemberUpdatePayload struct {
	TeamMember updateTeamMemberTeamMemberUpdateTeamMemberUpdatePayloadTeamMember `json:"teamMember"`
}

// GetTeamMember returns updateTeamMemberTeamMemberUpdateTeamMemberUpdatePayload.TeamMember, and is useful for accessing the field via an interface.
func (v *updateTeamMemberTeamMemberUpdateTeamMemberUpdatePayload) GetTeamMember() updateTeamMemberTeamMemberUpdateTeamMemberUpdatePayloadTeamMember {
	return v.TeamMember
}

// updateTeamMemberTeamMemberUpdateTeamMemberUpdatePayloadTeamMember includes the requested fields of the GraphQL type TeamMember.
// The GraphQL type's documentation follows.
//
// An member of a team
type updateTeamMemberTeamMemberUpdateTeamMemberUpdatePayloadTeamMember struct {
	TeamMemberFields `json:"-"`
}

// GetId returns updateTeamMemberTeamMemberUpdateTeamMemberUpdatePayloadTeamMember.Id, and is useful for accessing the field via an interface.
func (v *updateTeamMemberTeamMemberUpdateTeamMemberUpdatePayloadTeamMember) GetId() string {
	return v.TeamMemberFields.Id
}

// GetUuid returns updateTeamMemberTeamMemberUpdateTeamMemberUpdatePayloadTeamMember.Uuid, and is useful for accessing the field via an interface.
func (v *updateTeamMemberTeamMemberUpdateTeamMemberUpdatePayloadTeamMember) GetUuid() string {
	return v.TeamMemberFields.Uuid
}

// GetTeam returns updateTeamMemberTeamMemberUpdateTeamMemberUpdatePayloadTeamMember.Team, and is useful for accessing the field via an interface.
func (v *updateTeamMemberTeamMemberUpdateTeamMemberUpdatePayloadTeamMember) GetTeam() TeamMemberFieldsTeam {
	return v.TeamMemberFields.Team
}

// GetUser returns updateTeamMemberTeamMemberUpdateTeamMemberUpdatePayloadTeamMember.User, and is useful for accessing the field via an interface.
func (v *updateTeamMemberTeamMemberUpdateTeamMemberUpdatePayloadTeamMember) GetUser() TeamMemberFieldsUser {
	return v.TeamMemberFields.User
}

// GetRole returns updateTeamMemberTeamMemberUpdateTeamMemberUpdatePayloadTeamMember.Role, and is useful for accessing the field via an interface.
func (v *updateTeamMemberTeamMemberUpdateTeamMemberUpdatePayloadTeamMember) GetRole() string {
	return v.TeamMemberFields.Role
}

func (v *updateTeamMemberTeamMemberUpdateTeamMemberUpdatePayloadTeamMember) UnmarshalJSON(b []byte) error {

	if string(b) == "null" {
		return nil
	}

	var firstPass struct {
		*updateTeamMemberTeamMemberUpdateTeamMemberUpdatePayloadTeamMember
		graphql.NoUnmarshalJSON
	}
	firstPass.updateTeamMemberTeamMemberUpdateTeamMemberUpdatePayloadTeamMember = v

	err := json.Unmarshal(b, &firstPass)
	if err != nil {
		return err
	}

	err = json.Unmarshal(
		b, &v.TeamMemberFields)
	if err != nil {
		return err
	}
	return nil
}

type __premarshalupdateTeamMemberTeamMemberUpdateTeamMemberUpdatePayloadTeamMember struct {
	Id string `json:"id"`

	Uuid string `json:"uuid"`

	Team TeamMemberFieldsTeam `json:"team"`

	User TeamMemberFieldsUser `json:"user"`

	Role string `json:"role"`
}

func (v *updateTeamMemberTeamMemberUpdateTeamMemberUpdatePayloadTeamMember) MarshalJSON() ([]byte, error) {
	premarshaled, err := v.__premarshalJSON()
	if err != nil {
		return nil, err
	}
	return json.Marshal(premarshaled)
}

func (v *updateTeamMemberTeamMemberUpdateTeamMemberUpdatePayloadTeamMember) __premarshalJSON() (*__premarshalupdateTeamMemberTeamMemberUpdateTeamMemberUpdatePayloadTeamMember, error) {
	var retval __premarshalupdateTeamMemberTeamMemberUpdateTeamMemberUpdatePayloadTeamMember

	retval.Id = v.TeamMemberFields.Id
	retval.Uuid = v.TeamMemberFields.Uuid
	retval.Team = v.TeamMemberFields.Team
	retval.User = v.TeamMemberFields.User
	retval.Role = v.TeamMemberFields.Role
	return &retval, nil
}

// updateTeamPipelineResponse is returned by updateTeamPipeline on success.
type updateTeamPipelineResponse struct {
	// Update a pipeline's access level within a team.
	TeamPipelineUpdate updateTeamPipelineTeamPipelineUpdateTeamPipelineUpdatePayload `json:"teamPipelineUpdate"`
}

// GetTeamPipelineUpdate returns updateTeamPipelineResponse.TeamPipelineUpdate, and is useful for accessing the field via an interface.
func (v *updateTeamPipelineResponse) GetTeamPipelineUpdate() updateTeamPipelineTeamPipelineUpdateTeamPipelineUpdatePayload {
	return v.TeamPipelineUpdate
}

// updateTeamPipelineTeamPipelineUpdateTeamPipelineUpdatePayload includes the requested fields of the GraphQL type TeamPipelineUpdatePayload.
// The GraphQL type's documentation follows.
//
// Autogenerated return type of TeamPipelineUpdate.
type updateTeamPipelineTeamPipelineUpdateTeamPipelineUpdatePayload struct {
	TeamPipeline updateTeamPipelineTeamPipelineUpdateTeamPipelineUpdatePayloadTeamPipeline `json:"teamPipeline"`
}

// GetTeamPipeline returns updateTeamPipelineTeamPipelineUpdateTeamPipelineUpdatePayload.TeamPipeline, and is useful for accessing the field via an interface.
func (v *updateTeamPipelineTeamPipelineUpdateTeamPipelineUpdatePayload) GetTeamPipeline() updateTeamPipelineTeamPipelineUpdateTeamPipelineUpdatePayloadTeamPipeline {
	return v.TeamPipeline
}

// updateTeamPipelineTeamPipelineUpdateTeamPipelineUpdatePayloadTeamPipeline 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 updateTeamPipelineTeamPipelineUpdateTeamPipelineUpdatePayloadTeamPipeline struct {
	TeamPipelineFields `json:"-"`
}

// GetId returns updateTeamPipelineTeamPipelineUpdateTeamPipelineUpdatePayloadTeamPipeline.Id, and is useful for accessing the field via an interface.
func (v *updateTeamPipelineTeamPipelineUpdateTeamPipelineUpdatePayloadTeamPipeline) GetId() string {
	return v.TeamPipelineFields.Id
}

// GetUuid returns updateTeamPipelineTeamPipelineUpdateTeamPipelineUpdatePayloadTeamPipeline.Uuid, and is useful for accessing the field via an interface.
func (v *updateTeamPipelineTeamPipelineUpdateTeamPipelineUpdatePayloadTeamPipeline) GetUuid() string {
	return v.TeamPipelineFields.Uuid
}

// GetPipelineAccessLevel returns updateTeamPipelineTeamPipelineUpdateTeamPipelineUpdatePayloadTeamPipeline.PipelineAccessLevel, and is useful for accessing the field via an interface.
func (v *updateTeamPipelineTeamPipelineUpdateTeamPipelineUpdatePayloadTeamPipeline) GetPipelineAccessLevel() PipelineAccessLevels {
	return v.TeamPipelineFields.PipelineAccessLevel
}

// GetTeam returns updateTeamPipelineTeamPipelineUpdateTeamPipelineUpdatePayloadTeamPipeline.Team, and is useful for accessing the field via an interface.
func (v *updateTeamPipelineTeamPipelineUpdateTeamPipelineUpdatePayloadTeamPipeline) GetTeam() TeamPipelineFieldsTeam {
	return v.TeamPipelineFields.Team
}

// GetPipeline returns updateTeamPipelineTeamPipelineUpdateTeamPipelineUpdatePayloadTeamPipeline.Pipeline, and is useful for accessing the field via an interface.
func (v *updateTeamPipelineTeamPipelineUpdateTeamPipelineUpdatePayloadTeamPipeline) GetPipeline() TeamPipelineFieldsPipeline {
	return v.TeamPipelineFields.Pipeline
}

func (v *updateTeamPipelineTeamPipelineUpdateTeamPipelineUpdatePayloadTeamPipeline) UnmarshalJSON(b []byte) error {

	if string(b) == "null" {
		return nil
	}

	var firstPass struct {
		*updateTeamPipelineTeamPipelineUpdateTeamPipelineUpdatePayloadTeamPipeline
		graphql.NoUnmarshalJSON
	}
	firstPass.updateTeamPipelineTeamPipelineUpdateTeamPipelineUpdatePayloadTeamPipeline = v

	err := json.Unmarshal(b, &firstPass)
	if err != nil {
		return err
	}

	err = json.Unmarshal(
		b, &v.TeamPipelineFields)
	if err != nil {
		return err
	}
	return nil
}

type __premarshalupdateTeamPipelineTeamPipelineUpdateTeamPipelineUpdatePayloadTeamPipeline struct {
	Id string `json:"id"`

	Uuid string `json:"uuid"`

	PipelineAccessLevel PipelineAccessLevels `json:"pipelineAccessLevel"`

	Team TeamPipelineFieldsTeam `json:"team"`

	Pipeline TeamPipelineFieldsPipeline `json:"pipeline"`
}

func (v *updateTeamPipelineTeamPipelineUpdateTeamPipelineUpdatePayloadTeamPipeline) MarshalJSON() ([]byte, error) {
	premarshaled, err := v.__premarshalJSON()
	if err != nil {
		return nil, err
	}
	return json.Marshal(premarshaled)
}

func (v *updateTeamPipelineTeamPipelineUpdateTeamPipelineUpdatePayloadTeamPipeline) __premarshalJSON() (*__premarshalupdateTeamPipelineTeamPipelineUpdateTeamPipelineUpdatePayloadTeamPipeline, error) {
	var retval __premarshalupdateTeamPipelineTeamPipelineUpdateTeamPipelineUpdatePayloadTeamPipeline

	retval.Id = v.TeamPipelineFields.Id
	retval.Uuid = v.TeamPipelineFields.Uuid
	retval.PipelineAccessLevel = v.TeamPipelineFields.PipelineAccessLevel
	retval.Team = v.TeamPipelineFields.Team
	retval.Pipeline = v.TeamPipelineFields.Pipeline
	return &retval, nil
}

// updateTestSuiteTeamResponse is returned by updateTestSuiteTeam on success.
type updateTestSuiteTeamResponse struct {
	// Update a suite's access level within a team.
	TeamSuiteUpdate updateTestSuiteTeamTeamSuiteUpdateTeamSuiteUpdatePayload `json:"teamSuiteUpdate"`
}

// GetTeamSuiteUpdate returns updateTestSuiteTeamResponse.TeamSuiteUpdate, and is useful for accessing the field via an interface.
func (v *updateTestSuiteTeamResponse) GetTeamSuiteUpdate() updateTestSuiteTeamTeamSuiteUpdateTeamSuiteUpdatePayload {
	return v.TeamSuiteUpdate
}

// updateTestSuiteTeamTeamSuiteUpdateTeamSuiteUpdatePayload includes the requested fields of the GraphQL type TeamSuiteUpdatePayload.
// The GraphQL type's documentation follows.
//
// Autogenerated return type of TeamSuiteUpdate.
type updateTestSuiteTeamTeamSuiteUpdateTeamSuiteUpdatePayload struct {
	TeamSuite updateTestSuiteTeamTeamSuiteUpdateTeamSuiteUpdatePayloadTeamSuite `json:"teamSuite"`
}

// GetTeamSuite returns updateTestSuiteTeamTeamSuiteUpdateTeamSuiteUpdatePayload.TeamSuite, and is useful for accessing the field via an interface.
func (v *updateTestSuiteTeamTeamSuiteUpdateTeamSuiteUpdatePayload) GetTeamSuite() updateTestSuiteTeamTeamSuiteUpdateTeamSuiteUpdatePayloadTeamSuite {
	return v.TeamSuite
}

// updateTestSuiteTeamTeamSuiteUpdateTeamSuiteUpdatePayloadTeamSuite 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 updateTestSuiteTeamTeamSuiteUpdateTeamSuiteUpdatePayloadTeamSuite struct {
	// The access level users have to this suite
	AccessLevel SuiteAccessLevels `json:"accessLevel"`
	Id          string            `json:"id"`
	// The public UUID for this team suite
	Uuid string `json:"uuid"`
}

// GetAccessLevel returns updateTestSuiteTeamTeamSuiteUpdateTeamSuiteUpdatePayloadTeamSuite.AccessLevel, and is useful for accessing the field via an interface.
func (v *updateTestSuiteTeamTeamSuiteUpdateTeamSuiteUpdatePayloadTeamSuite) GetAccessLevel() SuiteAccessLevels {
	return v.AccessLevel
}

// GetId returns updateTestSuiteTeamTeamSuiteUpdateTeamSuiteUpdatePayloadTeamSuite.Id, and is useful for accessing the field via an interface.
func (v *updateTestSuiteTeamTeamSuiteUpdateTeamSuiteUpdatePayloadTeamSuite) GetId() string {
	return v.Id
}

// GetUuid returns updateTestSuiteTeamTeamSuiteUpdateTeamSuiteUpdatePayloadTeamSuite.Uuid, and is useful for accessing the field via an interface.
func (v *updateTestSuiteTeamTeamSuiteUpdateTeamSuiteUpdatePayloadTeamSuite) GetUuid() string {
	return v.Uuid
}

// upsertBannerOrganizationBannerUpsertOrganizationBannerUpsertPayload includes the requested fields of the GraphQL type OrganizationBannerUpsertPayload.
// The GraphQL type's documentation follows.
//
// Autogenerated return type of OrganizationBannerUpsert.
type upsertBannerOrganizationBannerUpsertOrganizationBannerUpsertPayload struct {
	// A unique identifier for the client performing the mutation.
	ClientMutationId string                                                                                      `json:"clientMutationId"`
	Banner           upsertBannerOrganizationBannerUpsertOrganizationBannerUpsertPayloadBannerOrganizationBanner `json:"banner"`
}

// GetClientMutationId returns upsertBannerOrganizationBannerUpsertOrganizationBannerUpsertPayload.ClientMutationId, and is useful for accessing the field via an interface.
func (v *upsertBannerOrganizationBannerUpsertOrganizationBannerUpsertPayload) GetClientMutationId() string {
	return v.ClientMutationId
}

// GetBanner returns upsertBannerOrganizationBannerUpsertOrganizationBannerUpsertPayload.Banner, and is useful for accessing the field via an interface.
func (v *upsertBannerOrganizationBannerUpsertOrganizationBannerUpsertPayload) GetBanner() upsertBannerOrganizationBannerUpsertOrganizationBannerUpsertPayloadBannerOrganizationBanner {
	return v.Banner
}

// upsertBannerOrganizationBannerUpsertOrganizationBannerUpsertPayloadBannerOrganizationBanner includes the requested fields of the GraphQL type OrganizationBanner.
// The GraphQL type's documentation follows.
//
// System banner of an organization
type upsertBannerOrganizationBannerUpsertOrganizationBannerUpsertPayloadBannerOrganizationBanner struct {
	OrganizationBannerFields `json:"-"`
}

// GetId returns upsertBannerOrganizationBannerUpsertOrganizationBannerUpsertPayloadBannerOrganizationBanner.Id, and is useful for accessing the field via an interface.
func (v *upsertBannerOrganizationBannerUpsertOrganizationBannerUpsertPayloadBannerOrganizationBanner) GetId() string {
	return v.OrganizationBannerFields.Id
}

// GetUuid returns upsertBannerOrganizationBannerUpsertOrganizationBannerUpsertPayloadBannerOrganizationBanner.Uuid, and is useful for accessing the field via an interface.
func (v *upsertBannerOrganizationBannerUpsertOrganizationBannerUpsertPayloadBannerOrganizationBanner) GetUuid() string {
	return v.OrganizationBannerFields.Uuid
}

// GetMessage returns upsertBannerOrganizationBannerUpsertOrganizationBannerUpsertPayloadBannerOrganizationBanner.Message, and is useful for accessing the field via an interface.
func (v *upsertBannerOrganizationBannerUpsertOrganizationBannerUpsertPayloadBannerOrganizationBanner) GetMessage() string {
	return v.OrganizationBannerFields.Message
}

func (v *upsertBannerOrganizationBannerUpsertOrganizationBannerUpsertPayloadBannerOrganizationBanner) UnmarshalJSON(b []byte) error {

	if string(b) == "null" {
		return nil
	}

	var firstPass struct {
		*upsertBannerOrganizationBannerUpsertOrganizationBannerUpsertPayloadBannerOrganizationBanner
		graphql.NoUnmarshalJSON
	}
	firstPass.upsertBannerOrganizationBannerUpsertOrganizationBannerUpsertPayloadBannerOrganizationBanner = v

	err := json.Unmarshal(b, &firstPass)
	if err != nil {
		return err
	}

	err = json.Unmarshal(
		b, &v.OrganizationBannerFields)
	if err != nil {
		return err
	}
	return nil
}

type __premarshalupsertBannerOrganizationBannerUpsertOrganizationBannerUpsertPayloadBannerOrganizationBanner struct {
	Id string `json:"id"`

	Uuid string `json:"uuid"`

	Message string `json:"message"`
}

func (v *upsertBannerOrganizationBannerUpsertOrganizationBannerUpsertPayloadBannerOrganizationBanner) MarshalJSON() ([]byte, error) {
	premarshaled, err := v.__premarshalJSON()
	if err != nil {
		return nil, err
	}
	return json.Marshal(premarshaled)
}

func (v *upsertBannerOrganizationBannerUpsertOrganizationBannerUpsertPayloadBannerOrganizationBanner) __premarshalJSON() (*__premarshalupsertBannerOrganizationBannerUpsertOrganizationBannerUpsertPayloadBannerOrganizationBanner, error) {
	var retval __premarshalupsertBannerOrganizationBannerUpsertOrganizationBannerUpsertPayloadBannerOrganizationBanner

	retval.Id = v.OrganizationBannerFields.Id
	retval.Uuid = v.OrganizationBannerFields.Uuid
	retval.Message = v.OrganizationBannerFields.Message
	return &retval, nil
}

// upsertBannerResponse is returned by upsertBanner on success.
type upsertBannerResponse struct {
	// Retrieves the active system banner for provided organization, then updates it with input data. If active banner is not found, a new banner is created with the provided input.
	OrganizationBannerUpsert upsertBannerOrganizationBannerUpsertOrganizationBannerUpsertPayload `json:"organizationBannerUpsert"`
}

// GetOrganizationBannerUpsert returns upsertBannerResponse.OrganizationBannerUpsert, and is useful for accessing the field via an interface.
func (v *upsertBannerResponse) GetOrganizationBannerUpsert() upsertBannerOrganizationBannerUpsertOrganizationBannerUpsertPayload {
	return v.OrganizationBannerUpsert
}

// The query executed by GetOrganizationClusters.
const GetOrganizationClusters_Operation = `
query GetOrganizationClusters ($slug: ID!, $cursor: String) {
	organization(slug: $slug) {
		clusters(first: 500, after: $cursor) {
			pageInfo {
				endCursor
				hasNextPage
			}
			edges {
				node {
					id
					uuid
					name
					description
					emoji
					color
					defaultQueue {
						id
						uuid
						key
						description
					}
				}
			}
		}
	}
}
`

func GetOrganizationClusters(
	ctx_ context.Context,
	client_ graphql.Client,
	slug string,
	cursor *string,
) (data_ *GetOrganizationClustersResponse, err_ error) {
	req_ := &graphql.Request{
		OpName: "GetOrganizationClusters",
		Query:  GetOrganizationClusters_Operation,
		Variables: &__GetOrganizationClustersInput{
			Slug:   slug,
			Cursor: cursor,
		},
	}

	data_ = &GetOrganizationClustersResponse{}
	resp_ := &graphql.Response{Data: data_}

	err_ = client_.MakeRequest(
		ctx_,
		req_,
		resp_,
	)

	return data_, err_
}

// The query executed by GetOrganizationMemberByEmail.
const GetOrganizationMemberByEmail_Operation = `
query GetOrganizationMemberByEmail ($slug: ID!, $email: String) {
	organization(slug: $slug) {
		members(first: 1, email: $email) {
			edges {
				node {
					user {
						id
						uuid
						name
						email
					}
				}
			}
		}
	}
}
`

func GetOrganizationMemberByEmail(
	ctx_ context.Context,
	client_ graphql.Client,
	slug string,
	email string,
) (data_ *GetOrganizationMemberByEmailResponse, err_ error) {
	req_ := &graphql.Request{
		OpName: "GetOrganizationMemberByEmail",
		Query:  GetOrganizationMemberByEmail_Operation,
		Variables: &__GetOrganizationMemberByEmailInput{
			Slug:  slug,
			Email: email,
		},
	}

	data_ = &GetOrganizationMemberByEmailResponse{}
	resp_ := &graphql.Response{Data: data_}

	err_ = client_.MakeRequest(
		ctx_,
		req_,
		resp_,
	)

	return data_, err_
}

// The query executed by GetOrganizationMembers.
const GetOrganizationMembers_Operation = `
query GetOrganizationMembers ($slug: ID!, $cursor: String) {
	organization(slug: $slug) {
		members(first: 500, after: $cursor) {
			pageInfo {
				endCursor
				hasNextPage
			}
			edges {
				node {
					user {
						id
						uuid
						name
						email
					}
				}
			}
		}
	}
}
`

func GetOrganizationMembers(
	ctx_ context.Context,
	client_ graphql.Client,
	slug string,
	cursor *string,
) (data_ *GetOrganizationMembersResponse, err_ error) {
	req_ := &graphql.Request{
		OpName: "GetOrganizationMembers",
		Query:  GetOrganizationMembers_Operation,
		Variables: &__GetOrganizationMembersInput{
			Slug:   slug,
			Cursor: cursor,
		},
	}

	data_ = &GetOrganizationMembersResponse{}
	resp_ := &graphql.Response{Data: data_}

	err_ = client_.MakeRequest(
		ctx_,
		req_,
		resp_,
	)

	return data_, err_
}

// The query executed by GetOrganizationTeams.
const GetOrganizationTeams_Operation = `
query GetOrganizationTeams ($slug: ID!, $cursor: String) {
	organization(slug: $slug) {
		teams(first: 500, after: $cursor) {
			pageInfo {
				endCursor
				hasNextPage
			}
			edges {
				node {
					id
					uuid
					name
					description
					slug
					privacy
					isDefaultTeam
					defaultMemberRole
					membersCanCreatePipelines
				}
			}
		}
	}
}
`

func GetOrganizationTeams(
	ctx_ context.Context,
	client_ graphql.Client,
	slug string,
	cursor *string,
) (data_ *GetOrganizationTeamsResponse, err_ error) {
	req_ := &graphql.Request{
		OpName: "GetOrganizationTeams",
		Query:  GetOrganizationTeams_Operation,
		Variables: &__GetOrganizationTeamsInput{
			Slug:   slug,
			Cursor: cursor,
		},
	}

	data_ = &GetOrganizationTeamsResponse{}
	resp_ := &graphql.Response{Data: data_}

	err_ = client_.MakeRequest(
		ctx_,
		req_,
		resp_,
	)

	return data_, err_
}

// The query executed by GetRegistryID.
const GetRegistryID_Operation = `
query GetRegistryID ($slug: ID) {
	registry(slug: $slug) {
		id
	}
}
`

func GetRegistryID(
	ctx_ context.Context,
	client_ graphql.Client,
	slug string,
) (data_ *GetRegistryIDResponse, err_ error) {
	req_ := &graphql.Request{
		OpName: "GetRegistryID",
		Query:  GetRegistryID_Operation,
		Variables: &__GetRegistryIDInput{
			Slug: slug,
		},
	}

	data_ = &GetRegistryIDResponse{}
	resp_ := &graphql.Response{Data: data_}

	err_ = client_.MakeRequest(
		ctx_,
		req_,
		resp_,
	)

	return data_, err_
}

// The query executed by GetTeamFromSlug.
const GetTeamFromSlug_Operation = `
query GetTeamFromSlug ($slug: ID!) {
	team(slug: $slug) {
		... TeamFields
	}
}
fragment TeamFields on Team {
	id
	uuid
	name
	description
	slug
	privacy
	isDefaultTeam
	defaultMemberRole
	membersCanCreatePipelines
}
`

func GetTeamFromSlug(
	ctx_ context.Context,
	client_ graphql.Client,
	slug string,
) (data_ *GetTeamFromSlugResponse, err_ error) {
	req_ := &graphql.Request{
		OpName: "GetTeamFromSlug",
		Query:  GetTeamFromSlug_Operation,
		Variables: &__GetTeamFromSlugInput{
			Slug: slug,
		},
	}

	data_ = &GetTeamFromSlugResponse{}
	resp_ := &graphql.Response{Data: data_}

	err_ = client_.MakeRequest(
		ctx_,
		req_,
		resp_,
	)

	return data_, err_
}

// The mutation executed by archivePipeline.
const archivePipeline_Operation = `
mutation archivePipeline ($id: ID!) {
	pipelineArchive(input: {id:$id}) {
		clientMutationId
	}
}
`

func archivePipeline(
	ctx_ context.Context,
	client_ graphql.Client,
	id string,
) (data_ *archivePipelineResponse, err_ error) {
	req_ := &graphql.Request{
		OpName: "archivePipeline",
		Query:  archivePipeline_Operation,
		Variables: &__archivePipelineInput{
			Id: id,
		},
	}

	data_ = &archivePipelineResponse{}
	resp_ := &graphql.Response{Data: data_}

	err_ = client_.MakeRequest(
		ctx_,
		req_,
		resp_,
	)

	return data_, err_
}

// The mutation executed by createAgentToken.
const createAgentToken_Operation = `
mutation createAgentToken ($organizationId: ID!, $description: String) {
	agentTokenCreate(input: {organizationID:$organizationId,description:$description}) {
		tokenValue
		agentTokenEdge {
			node {
				id
				description
				uuid
			}
		}
	}
}
`

func createAgentToken(
	ctx_ context.Context,
	client_ graphql.Client,
	organizationId string,
	description *string,
) (data_ *createAgentTokenResponse, err_ error) {
	req_ := &graphql.Request{
		OpName: "createAgentToken",
		Query:  createAgentToken_Operation,
		Variables: &__createAgentTokenInput{
			OrganizationId: organizationId,
			Description:    description,
		},
	}

	data_ = &createAgentTokenResponse{}
	resp_ := &graphql.Response{Data: data_}

	err_ = client_.MakeRequest(
		ctx_,
		req_,
		resp_,
	)

	return data_, err_
}

// The mutation executed by createCluster.
const createCluster_Operation = `
mutation createCluster ($organizationId: ID!, $name: String!, $description: String, $emoji: String, $color: String) {
	clusterCreate(input: {organizationId:$organizationId,name:$name,description:$description,emoji:$emoji,color:$color}) {
		clientMutationId
		cluster {
			... ClusterFields
		}
	}
}
fragment ClusterFields on Cluster {
	id
	uuid
	name
	description
	emoji
	color
	defaultQueue {
		id
		uuid
		key
		description
	}
}
`

func createCluster(
	ctx_ context.Context,
	client_ graphql.Client,
	organizationId string,
	name string,
	description *string,
	emoji *string,
	color *string,
) (data_ *createClusterResponse, err_ error) {
	req_ := &graphql.Request{
		OpName: "createCluster",
		Query:  createCluster_Operation,
		Variables: &__createClusterInput{
			OrganizationId: organizationId,
			Name:           name,
			Description:    description,
			Emoji:          emoji,
			Color:          color,
		},
	}

	data_ = &createClusterResponse{}
	resp_ := &graphql.Response{Data: data_}

	err_ = client_.MakeRequest(
		ctx_,
		req_,
		resp_,
	)

	return data_, err_
}

// The mutation executed by createClusterAgentToken.
const createClusterAgentToken_Operation = `
mutation createClusterAgentToken ($organizationId: ID!, $clusterId: ID!, $description: String!, $allowedIpAddresses: String) {
	clusterAgentTokenCreate(input: {organizationId:$organizationId,clusterId:$clusterId,description:$description,allowedIpAddresses:$allowedIpAddresses}) {
		clusterAgentToken {
			... ClusterAgentTokenValues
		}
		tokenValue
	}
}
fragment ClusterAgentTokenValues on ClusterToken {
	allowedIpAddresses
	cluster {
		id
		uuid
	}
	description
	id
	uuid
}
`

func createClusterAgentToken(
	ctx_ context.Context,
	client_ graphql.Client,
	organizationId string,
	clusterId string,
	description string,
	allowedIpAddresses string,
) (data_ *createClusterAgentTokenResponse, err_ error) {
	req_ := &graphql.Request{
		OpName: "createClusterAgentToken",
		Query:  createClusterAgentToken_Operation,
		Variables: &__createClusterAgentTokenInput{
			OrganizationId:     organizationId,
			ClusterId:          clusterId,
			Description:        description,
			AllowedIpAddresses: allowedIpAddresses,
		},
	}

	data_ = &createClusterAgentTokenResponse{}
	resp_ := &graphql.Response{Data: data_}

	err_ = client_.MakeRequest(
		ctx_,
		req_,
		resp_,
	)

	return data_, err_
}

// The mutation executed by createClusterQueue.
const createClusterQueue_Operation = `
mutation createClusterQueue ($organizationId: ID!, $clusterId: ID!, $key: String!, $description: String, $hostedAgents: HostedAgentsQueueSettingsCreateInput) {
	clusterQueueCreate(input: {organizationId:$organizationId,clusterId:$clusterId,key:$key,description:$description,hostedAgents:$hostedAgents}) {
		clusterQueue {
			... ClusterQueueValues
		}
	}
}
fragment ClusterQueueValues on ClusterQueue {
	id
	uuid
	key
	description
	cluster {
		id
		uuid
	}
	hosted
	hostedAgents {
		... HostedAgentsQueueSettingsValues
	}
}
fragment HostedAgentsQueueSettingsValues on HostedAgentQueueSettings {
	instanceShape {
		architecture
		machineType
		memory
		name
		size
		vcpu
	}
	platformSettings {
		linux {
			agentImageRef
		}
		macos {
			xcodeVersion
			macosVersion
		}
	}
}
`

func createClusterQueue(
	ctx_ context.Context,
	client_ graphql.Client,
	organizationId string,
	clusterId string,
	key string,
	description *string,
	hostedAgents *HostedAgentsQueueSettingsCreateInput,
) (data_ *createClusterQueueResponse, err_ error) {
	req_ := &graphql.Request{
		OpName: "createClusterQueue",
		Query:  createClusterQueue_Operation,
		Variables: &__createClusterQueueInput{
			OrganizationId: organizationId,
			ClusterId:      clusterId,
			Key:            key,
			Description:    description,
			HostedAgents:   hostedAgents,
		},
	}

	data_ = &createClusterQueueResponse{}
	resp_ := &graphql.Response{Data: data_}

	err_ = client_.MakeRequest(
		ctx_,
		req_,
		resp_,
	)

	return data_, err_
}

// The mutation executed by createOrganizationRule.
const createOrganizationRule_Operation = `
mutation createOrganizationRule ($organizationId: ID!, $description: String, $ruleType: String!, $value: JSON!) {
	ruleCreate(input: {organizationId:$organizationId,description:$description,type:$ruleType,value:$value}) {
		rule {
			... OrganizationRuleFields
		}
	}
}
fragment OrganizationRuleFields on Rule {
	id
	uuid
	description
	document
	type
	sourceType
	targetType
	effect
	action
	source {
		__typename
		... on Pipeline {
			uuid
		}
	}
	target {
		__typename
		... on Pipeline {
			uuid
		}
	}
}
`

func createOrganizationRule(
	ctx_ context.Context,
	client_ graphql.Client,
	organizationId string,
	description *string,
	ruleType string,
	value string,
) (data_ *createOrganizationRuleResponse, err_ error) {
	req_ := &graphql.Request{
		OpName: "createOrganizationRule",
		Query:  createOrganizationRule_Operation,
		Variables: &__createOrganizationRuleInput{
			OrganizationId: organizationId,
			Description:    description,
			RuleType:       ruleType,
			Value:          value,
		},
	}

	data_ = &createOrganizationRuleResponse{}
	resp_ := &graphql.Response{Data: data_}

	err_ = client_.MakeRequest(
		ctx_,
		req_,
		resp_,
	)

	return data_, err_
}

// The mutation executed by createPipeline.
const createPipeline_Operation = `
mutation createPipeline ($input: PipelineCreateInput!) {
	pipelineCreate(input: $input) {
		pipeline {
			... PipelineFields
		}
	}
}
fragment PipelineFields on Pipeline {
	id
	pipelineUuid: uuid
	allowRebuilds
	badgeURL
	branchConfiguration
	cancelIntermediateBuilds
	cancelIntermediateBuildsBranchFilter
	cluster {
		id
		name
	}
	color
	defaultBranch
	defaultTimeoutInMinutes
	emoji
	maximumTimeoutInMinutes
	description
	name
	repository {
		url
	}
	pipelineTemplate {
		id
	}
	skipIntermediateBuilds
	skipIntermediateBuildsBranchFilter
	slug
	steps {
		yaml
	}
	tags {
		label
	}
	teams(first: 5, order: NAME) {
		... PipelineTeam
	}
	webhookURL
}
fragment PipelineTeam on TeamPipelineConnection {
	pageInfo {
		endCursor
		hasNextPage
	}
	count
	edges {
		cursor
		node {
			id
			accessLevel
			team {
				id
			}
		}
	}
}
`

func createPipeline(
	ctx_ context.Context,
	client_ graphql.Client,
	input PipelineCreateInput,
) (data_ *createPipelineResponse, err_ error) {
	req_ := &graphql.Request{
		OpName: "createPipeline",
		Query:  createPipeline_Operation,
		Variables: &__createPipelineInput{
			Input: input,
		},
	}

	data_ = &createPipelineResponse{}
	resp_ := &graphql.Response{Data: data_}

	err_ = client_.MakeRequest(
		ctx_,
		req_,
		resp_,
	)

	return data_, err_
}

// The mutation executed by createPipelineSchedule.
const createPipelineSchedule_Operation = `
mutation createPipelineSchedule ($pipelineId: ID!, $label: String, $cronline: String, $message: String, $commit: String, $branch: String, $env: String, $enabled: Boolean) {
	pipelineScheduleCreate(input: {pipelineID:$pipelineId,label:$label,cronline:$cronline,message:$message,commit:$commit,branch:$branch,env:$env,enabled:$enabled}) {
		pipeline {
			id
		}
		pipelineScheduleEdge {
			node {
				... PipelineScheduleValues
			}
		}
	}
}
fragment PipelineScheduleValues on PipelineSchedule {
	id
	uuid
	label
	cronline
	message
	commit
	branch
	env
	enabled
	pipeline {
		id
	}
}
`

func createPipelineSchedule(
	ctx_ context.Context,
	client_ graphql.Client,
	pipelineId string,
	label *string,
	cronline *string,
	message *string,
	commit *string,
	branch *string,
	env *string,
	enabled bool,
) (data_ *createPipelineScheduleResponse, err_ error) {
	req_ := &graphql.Request{
		OpName: "createPipelineSchedule",
		Query:  createPipelineSchedule_Operation,
		Variables: &__createPipelineScheduleInput{
			PipelineId: pipelineId,
			Label:      label,
			Cronline:   cronline,
			Message:    message,
			Commit:     commit,
			Branch:     branch,
			Env:        env,
			Enabled:    enabled,
		},
	}

	data_ = &createPipelineScheduleResponse{}
	resp_ := &graphql.Response{Data: data_}

	err_ = client_.MakeRequest(
		ctx_,
		req_,
		resp_,
	)

	return data_, err_
}

// The mutation executed by createPipelineTemplate.
const createPipelineTemplate_Operation = `
mutation createPipelineTemplate ($organizationId: ID!, $name: String!, $configuration: String!, $description: String, $available: Boolean) {
	pipelineTemplateCreate(input: {organizationId:$organizationId,name:$name,configuration:$configuration,description:$description,available:$available}) {
		pipelineTemplate {
			... PipelineTemplateFields
		}
	}
}
fragment PipelineTemplateFields on PipelineTemplate {
	id
	uuid
	available
	configuration
	description
	name
}
`

func createPipelineTemplate(
	ctx_ context.Context,
	client_ graphql.Client,
	organizationId string,
	name string,
	configuration string,
	description *string,
	available bool,
) (data_ *createPipelineTemplateResponse, err_ error) {
	req_ := &graphql.Request{
		OpName: "createPipelineTemplate",
		Query:  createPipelineTemplate_Operation,
		Variables: &__createPipelineTemplateInput{
			OrganizationId: organizationId,
			Name:           name,
			Configuration:  configuration,
			Description:    description,
			Available:      available,
		},
	}

	data_ = &createPipelineTemplateResponse{}
	resp_ := &graphql.Response{Data: data_}

	err_ = client_.MakeRequest(
		ctx_,
		req_,
		resp_,
	)

	return data_, err_
}

// The mutation executed by createTeamMember.
const createTeamMember_Operation = `
mutation createTeamMember ($teamID: ID!, $userID: ID!, $role: TeamMemberRole) {
	teamMemberCreate(input: {teamID:$teamID,userID:$userID,role:$role}) {
		teamMemberEdge {
			node {
				... TeamMemberFields
			}
		}
	}
}
fragment TeamMemberFields on TeamMember {
	id
	uuid
	team {
		id
	}
	user {
		id
	}
	role
}
`

func createTeamMember(
	ctx_ context.Context,
	client_ graphql.Client,
	teamID string,
	userID string,
	role string,
) (data_ *createTeamMemberResponse, err_ error) {
	req_ := &graphql.Request{
		OpName: "createTeamMember",
		Query:  createTeamMember_Operation,
		Variables: &__createTeamMemberInput{
			TeamID: teamID,
			UserID: userID,
			Role:   role,
		},
	}

	data_ = &createTeamMemberResponse{}
	resp_ := &graphql.Response{Data: data_}

	err_ = client_.MakeRequest(
		ctx_,
		req_,
		resp_,
	)

	return data_, err_
}

// The mutation executed by createTeamPipeline.
const createTeamPipeline_Operation = `
mutation createTeamPipeline ($teamID: ID!, $pipelineID: ID!, $accessLevel: PipelineAccessLevels) {
	teamPipelineCreate(input: {teamID:$teamID,pipelineID:$pipelineID,accessLevel:$accessLevel}) {
		teamPipelineEdge {
			node {
				... TeamPipelineFields
			}
		}
	}
}
fragment TeamPipelineFields on TeamPipeline {
	id
	uuid
	pipelineAccessLevel: accessLevel
	team {
		id
	}
	pipeline {
		id
	}
}
`

func createTeamPipeline(
	ctx_ context.Context,
	client_ graphql.Client,
	teamID string,
	pipelineID string,
	accessLevel PipelineAccessLevels,
) (data_ *createTeamPipelineResponse, err_ error) {
	req_ := &graphql.Request{
		OpName: "createTeamPipeline",
		Query:  createTeamPipeline_Operation,
		Variables: &__createTeamPipelineInput{
			TeamID:      teamID,
			PipelineID:  pipelineID,
			AccessLevel: accessLevel,
		},
	}

	data_ = &createTeamPipelineResponse{}
	resp_ := &graphql.Response{Data: data_}

	err_ = client_.MakeRequest(
		ctx_,
		req_,
		resp_,
	)

	return data_, err_
}

// The mutation executed by createTestSuiteTeam.
const createTestSuiteTeam_Operation = `
mutation createTestSuiteTeam ($teamId: ID!, $suiteId: ID!, $accessLevel: SuiteAccessLevels!) {
	teamSuiteCreate(input: {teamID:$teamId,suiteID:$suiteId,accessLevel:$accessLevel}) {
		suite {
			teams(order: NAME, first: 50) {
				edges {
					node {
						id
						uuid
						team {
							id
						}
					}
				}
			}
		}
		teamSuite {
			... TeamSuiteFields
		}
	}
}
fragment TeamSuiteFields on TeamSuite {
	id
	teamSuiteUuid: uuid
	accessLevel
	team {
		id
	}
	suite {
		id
	}
}
`

func createTestSuiteTeam(
	ctx_ context.Context,
	client_ graphql.Client,
	teamId string,
	suiteId string,
	accessLevel SuiteAccessLevels,
) (data_ *createTestSuiteTeamResponse, err_ error) {
	req_ := &graphql.Request{
		OpName: "createTestSuiteTeam",
		Query:  createTestSuiteTeam_Operation,
		Variables: &__createTestSuiteTeamInput{
			TeamId:      teamId,
			SuiteId:     suiteId,
			AccessLevel: accessLevel,
		},
	}

	data_ = &createTestSuiteTeamResponse{}
	resp_ := &graphql.Response{Data: data_}

	err_ = client_.MakeRequest(
		ctx_,
		req_,
		resp_,
	)

	return data_, err_
}

// The mutation executed by deleteBanner.
const deleteBanner_Operation = `
mutation deleteBanner ($organizationId: ID!) {
	organizationBannerDelete(input: {organizationId:$organizationId}) {
		clientMutationId
	}
}
`

func deleteBanner(
	ctx_ context.Context,
	client_ graphql.Client,
	organizationId string,
) (data_ *deleteBannerResponse, err_ error) {
	req_ := &graphql.Request{
		OpName: "deleteBanner",
		Query:  deleteBanner_Operation,
		Variables: &__deleteBannerInput{
			OrganizationId: organizationId,
		},
	}

	data_ = &deleteBannerResponse{}
	resp_ := &graphql.Response{Data: data_}

	err_ = client_.MakeRequest(
		ctx_,
		req_,
		resp_,
	)

	return data_, err_
}

// The mutation executed by deleteCluster.
const deleteCluster_Operation = `
mutation deleteCluster ($organizationId: ID!, $id: ID!) {
	clusterDelete(input: {organizationId:$organizationId,id:$id}) {
		clientMutationId
	}
}
`

func deleteCluster(
	ctx_ context.Context,
	client_ graphql.Client,
	organizationId string,
	id string,
) (data_ *deleteClusterResponse, err_ error) {
	req_ := &graphql.Request{
		OpName: "deleteCluster",
		Query:  deleteCluster_Operation,
		Variables: &__deleteClusterInput{
			OrganizationId: organizationId,
			Id:             id,
		},
	}

	data_ = &deleteClusterResponse{}
	resp_ := &graphql.Response{Data: data_}

	err_ = client_.MakeRequest(
		ctx_,
		req_,
		resp_,
	)

	return data_, err_
}

// The mutation executed by deleteClusterQueue.
const deleteClusterQueue_Operation = `
mutation deleteClusterQueue ($organizationId: ID!, $id: ID!) {
	clusterQueueDelete(input: {organizationId:$organizationId,id:$id}) {
		clientMutationId
	}
}
`

func deleteClusterQueue(
	ctx_ context.Context,
	client_ graphql.Client,
	organizationId string,
	id string,
) (data_ *deleteClusterQueueResponse, err_ error) {
	req_ := &graphql.Request{
		OpName: "deleteClusterQueue",
		Query:  deleteClusterQueue_Operation,
		Variables: &__deleteClusterQueueInput{
			OrganizationId: organizationId,
			Id:             id,
		},
	}

	data_ = &deleteClusterQueueResponse{}
	resp_ := &graphql.Response{Data: data_}

	err_ = client_.MakeRequest(
		ctx_,
		req_,
		resp_,
	)

	return data_, err_
}

// The mutation executed by deleteOrganizationRule.
const deleteOrganizationRule_Operation = `
mutation deleteOrganizationRule ($organizationId: ID!, $id: ID!) {
	ruleDelete(input: {organizationId:$organizationId,id:$id}) {
		clientMutationId
	}
}
`

func deleteOrganizationRule(
	ctx_ context.Context,
	client_ graphql.Client,
	organizationId string,
	id string,
) (data_ *deleteOrganizationRuleResponse, err_ error) {
	req_ := &graphql.Request{
		OpName: "deleteOrganizationRule",
		Query:  deleteOrganizationRule_Operation,
		Variables: &__deleteOrganizationRuleInput{
			OrganizationId: organizationId,
			Id:             id,
		},
	}

	data_ = &deleteOrganizationRuleResponse{}
	resp_ := &graphql.Response{Data: data_}

	err_ = client_.MakeRequest(
		ctx_,
		req_,
		resp_,
	)

	return data_, err_
}

// The mutation executed by deletePipeline.
const deletePipeline_Operation = `
mutation deletePipeline ($id: ID!) {
	pipelineDelete(input: {id:$id}) {
		clientMutationId
	}
}
`

func deletePipeline(
	ctx_ context.Context,
	client_ graphql.Client,
	id string,
) (data_ *deletePipelineResponse, err_ error) {
	req_ := &graphql.Request{
		OpName: "deletePipeline",
		Query:  deletePipeline_Operation,
		Variables: &__deletePipelineInput{
			Id: id,
		},
	}

	data_ = &deletePipelineResponse{}
	resp_ := &graphql.Response{Data: data_}

	err_ = client_.MakeRequest(
		ctx_,
		req_,
		resp_,
	)

	return data_, err_
}

// The mutation executed by deletePipelineSchedule.
const deletePipelineSchedule_Operation = `
mutation deletePipelineSchedule ($id: ID!) {
	pipelineScheduleDelete(input: {id:$id}) {
		deletedPipelineScheduleID
	}
}
`

func deletePipelineSchedule(
	ctx_ context.Context,
	client_ graphql.Client,
	id string,
) (data_ *deletePipelineScheduleResponse, err_ error) {
	req_ := &graphql.Request{
		OpName: "deletePipelineSchedule",
		Query:  deletePipelineSchedule_Operation,
		Variables: &__deletePipelineScheduleInput{
			Id: id,
		},
	}

	data_ = &deletePipelineScheduleResponse{}
	resp_ := &graphql.Response{Data: data_}

	err_ = client_.MakeRequest(
		ctx_,
		req_,
		resp_,
	)

	return data_, err_
}

// The mutation executed by deletePipelineTemplate.
const deletePipelineTemplate_Operation = `
mutation deletePipelineTemplate ($organizationId: ID!, $id: ID!) {
	pipelineTemplateDelete(input: {organizationId:$organizationId,id:$id}) {
		clientMutationId
	}
}
`

func deletePipelineTemplate(
	ctx_ context.Context,
	client_ graphql.Client,
	organizationId string,
	id string,
) (data_ *deletePipelineTemplateResponse, err_ error) {
	req_ := &graphql.Request{
		OpName: "deletePipelineTemplate",
		Query:  deletePipelineTemplate_Operation,
		Variables: &__deletePipelineTemplateInput{
			OrganizationId: organizationId,
			Id:             id,
		},
	}

	data_ = &deletePipelineTemplateResponse{}
	resp_ := &graphql.Response{Data: data_}

	err_ = client_.MakeRequest(
		ctx_,
		req_,
		resp_,
	)

	return data_, err_
}

// The mutation executed by deleteTeamMember.
const deleteTeamMember_Operation = `
mutation deleteTeamMember ($id: ID!) {
	teamMemberDelete(input: {id:$id}) {
		clientMutationId
	}
}
`

func deleteTeamMember(
	ctx_ context.Context,
	client_ graphql.Client,
	id string,
) (data_ *deleteTeamMemberResponse, err_ error) {
	req_ := &graphql.Request{
		OpName: "deleteTeamMember",
		Query:  deleteTeamMember_Operation,
		Variables: &__deleteTeamMemberInput{
			Id: id,
		},
	}

	data_ = &deleteTeamMemberResponse{}
	resp_ := &graphql.Response{Data: data_}

	err_ = client_.MakeRequest(
		ctx_,
		req_,
		resp_,
	)

	return data_, err_
}

// The mutation executed by deleteTeamPipeline.
const deleteTeamPipeline_Operation = `
mutation deleteTeamPipeline ($id: ID!) {
	teamPipelineDelete(input: {id:$id}) {
		deletedTeamPipelineID
		clientMutationId
	}
}
`

func deleteTeamPipeline(
	ctx_ context.Context,
	client_ graphql.Client,
	id string,
) (data_ *deleteTeamPipelineResponse, err_ error) {
	req_ := &graphql.Request{
		OpName: "deleteTeamPipeline",
		Query:  deleteTeamPipeline_Operation,
		Variables: &__deleteTeamPipelineInput{
			Id: id,
		},
	}

	data_ = &deleteTeamPipelineResponse{}
	resp_ := &graphql.Response{Data: data_}

	err_ = client_.MakeRequest(
		ctx_,
		req_,
		resp_,
	)

	return data_, err_
}

// The mutation executed by deleteTestSuiteTeam.
const deleteTestSuiteTeam_Operation = `
mutation deleteTestSuiteTeam ($id: ID!) {
	teamSuiteDelete(input: {id:$id,force:true}) {
		deletedTeamSuiteID
		team {
			id
		}
	}
}
`

func deleteTestSuiteTeam(
	ctx_ context.Context,
	client_ graphql.Client,
	id string,
) (data_ *deleteTestSuiteTeamResponse, err_ error) {
	req_ := &graphql.Request{
		OpName: "deleteTestSuiteTeam",
		Query:  deleteTestSuiteTeam_Operation,
		Variables: &__deleteTestSuiteTeamInput{
			Id: id,
		},
	}

	data_ = &deleteTestSuiteTeamResponse{}
	resp_ := &graphql.Response{Data: data_}

	err_ = client_.MakeRequest(
		ctx_,
		req_,
		resp_,
	)

	return data_, err_
}

// The query executed by getAgentToken.
const getAgentToken_Operation = `
query getAgentToken ($slug: ID!) {
	agentToken(slug: $slug) {
		id
		description
		uuid
	}
}
`

func getAgentToken(
	ctx_ context.Context,
	client_ graphql.Client,
	slug string,
) (data_ *getAgentTokenResponse, err_ error) {
	req_ := &graphql.Request{
		OpName: "getAgentToken",
		Query:  getAgentToken_Operation,
		Variables: &__getAgentTokenInput{
			Slug: slug,
		},
	}

	data_ = &getAgentTokenResponse{}
	resp_ := &graphql.Response{Data: data_}

	err_ = client_.MakeRequest(
		ctx_,
		req_,
		resp_,
	)

	return data_, err_
}

// The query executed by getClusterAgentTokens.
const getClusterAgentTokens_Operation = `
query getClusterAgentTokens ($orgSlug: ID!, $id: ID!) {
	organization(slug: $orgSlug) {
		cluster(id: $id) {
			agentTokens(first: 50) {
				edges {
					node {
						... ClusterAgentTokenValues
					}
				}
			}
		}
	}
}
fragment ClusterAgentTokenValues on ClusterToken {
	allowedIpAddresses
	cluster {
		id
		uuid
	}
	description
	id
	uuid
}
`

func getClusterAgentTokens(
	ctx_ context.Context,
	client_ graphql.Client,
	orgSlug string,
	id string,
) (data_ *getClusterAgentTokensResponse, err_ error) {
	req_ := &graphql.Request{
		OpName: "getClusterAgentTokens",
		Query:  getClusterAgentTokens_Operation,
		Variables: &__getClusterAgentTokensInput{
			OrgSlug: orgSlug,
			Id:      id,
		},
	}

	data_ = &getClusterAgentTokensResponse{}
	resp_ := &graphql.Response{Data: data_}

	err_ = client_.MakeRequest(
		ctx_,
		req_,
		resp_,
	)

	return data_, err_
}

// The query executed by getClusterByName.
const getClusterByName_Operation = `
query getClusterByName ($orgSlug: ID!, $cursor: String) {
	organization(slug: $orgSlug) {
		clusters(order: NAME, first: 50, after: $cursor) {
			pageInfo {
				endCursor
				hasNextPage
			}
			edges {
				node {
					... ClusterFields
				}
			}
		}
	}
}
fragment ClusterFields on Cluster {
	id
	uuid
	name
	description
	emoji
	color
	defaultQueue {
		id
		uuid
		key
		description
	}
}
`

func getClusterByName(
	ctx_ context.Context,
	client_ graphql.Client,
	orgSlug string,
	cursor *string,
) (data_ *getClusterByNameResponse, err_ error) {
	req_ := &graphql.Request{
		OpName: "getClusterByName",
		Query:  getClusterByName_Operation,
		Variables: &__getClusterByNameInput{
			OrgSlug: orgSlug,
			Cursor:  cursor,
		},
	}

	data_ = &getClusterByNameResponse{}
	resp_ := &graphql.Response{Data: data_}

	err_ = client_.MakeRequest(
		ctx_,
		req_,
		resp_,
	)

	return data_, err_
}

// The query executed by getClusterQueueByNode.
const getClusterQueueByNode_Operation = `
query getClusterQueueByNode ($id: ID!) {
	node(id: $id) {
		__typename
		... on ClusterQueue {
			... ClusterQueueValues
			dispatchPaused
			dispatchPausedAt
			dispatchPausedBy {
				id
			}
			dispatchPausedNote
		}
	}
}
fragment ClusterQueueValues on ClusterQueue {
	id
	uuid
	key
	description
	cluster {
		id
		uuid
	}
	hosted
	hostedAgents {
		... HostedAgentsQueueSettingsValues
	}
}
fragment HostedAgentsQueueSettingsValues on HostedAgentQueueSettings {
	instanceShape {
		architecture
		machineType
		memory
		name
		size
		vcpu
	}
	platformSettings {
		linux {
			agentImageRef
		}
		macos {
			xcodeVersion
			macosVersion
		}
	}
}
`

func getClusterQueueByNode(
	ctx_ context.Context,
	client_ graphql.Client,
	id string,
) (data_ *getClusterQueueByNodeResponse, err_ error) {
	req_ := &graphql.Request{
		OpName: "getClusterQueueByNode",
		Query:  getClusterQueueByNode_Operation,
		Variables: &__getClusterQueueByNodeInput{
			Id: id,
		},
	}

	data_ = &getClusterQueueByNodeResponse{}
	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!, $id: ID!, $cursor: String) {
	organization(slug: $orgSlug) {
		cluster(id: $id) {
			queues(order: KEY, first: 100, after: $cursor) {
				pageInfo {
					endCursor
					hasNextPage
				}
				edges {
					node {
						... ClusterQueueValues
						dispatchPaused
						dispatchPausedAt
						dispatchPausedBy {
							id
						}
						dispatchPausedNote
					}
				}
			}
		}
	}
}
fragment ClusterQueueValues on ClusterQueue {
	id
	uuid
	key
	description
	cluster {
		id
		uuid
	}
	hosted
	hostedAgents {
		... HostedAgentsQueueSettingsValues
	}
}
fragment HostedAgentsQueueSettingsValues on HostedAgentQueueSettings {
	instanceShape {
		architecture
		machineType
		memory
		name
		size
		vcpu
	}
	platformSettings {
		linux {
			agentImageRef
		}
		macos {
			xcodeVersion
			macosVersion
		}
	}
}
`

func getClusterQueues(
	ctx_ context.Context,
	client_ graphql.Client,
	orgSlug string,
	id string,
	cursor *string,
) (data_ *getClusterQueuesResponse, err_ error) {
	req_ := &graphql.Request{
		OpName: "getClusterQueues",
		Query:  getClusterQueues_Operation,
		Variables: &__getClusterQueuesInput{
			OrgSlug: orgSlug,
			Id:      id,
			Cursor:  cursor,
		},
	}

	data_ = &getClusterQueuesResponse{}
	resp_ := &graphql.Response{Data: data_}

	err_ = client_.MakeRequest(
		ctx_,
		req_,
		resp_,
	)

	return data_, err_
}

// The query executed by getNode.
const getNode_Operation = `
query getNode ($id: ID!) {
	node(id: $id) {
		__typename
		... on Pipeline {
			... PipelineFields
		}
		... on PipelineTemplate {
			... PipelineTemplateFields
		}
		... on Rule {
			... OrganizationRuleFields
		}
		... on TeamMember {
			... TeamMemberFields
		}
		... on Team {
			... TeamFields
		}
		... on TeamSuite {
			... TeamSuiteFields
		}
		... on TeamPipeline {
			... TeamPipelineFields
		}
		... on Cluster {
			... ClusterFields
		}
	}
}
fragment PipelineFields on Pipeline {
	id
	pipelineUuid: uuid
	allowRebuilds
	badgeURL
	branchConfiguration
	cancelIntermediateBuilds
	cancelIntermediateBuildsBranchFilter
	cluster {
		id
		name
	}
	color
	defaultBranch
	defaultTimeoutInMinutes
	emoji
	maximumTimeoutInMinutes
	description
	name
	repository {
		url
	}
	pipelineTemplate {
		id
	}
	skipIntermediateBuilds
	skipIntermediateBuildsBranchFilter
	slug
	steps {
		yaml
	}
	tags {
		label
	}
	teams(first: 5, order: NAME) {
		... PipelineTeam
	}
	webhookURL
}
fragment PipelineTemplateFields on PipelineTemplate {
	id
	uuid
	available
	configuration
	description
	name
}
fragment OrganizationRuleFields on Rule {
	id
	uuid
	description
	document
	type
	sourceType
	targetType
	effect
	action
	source {
		__typename
		... on Pipeline {
			uuid
		}
	}
	target {
		__typename
		... on Pipeline {
			uuid
		}
	}
}
fragment TeamMemberFields on TeamMember {
	id
	uuid
	team {
		id
	}
	user {
		id
	}
	role
}
fragment TeamFields on Team {
	id
	uuid
	name
	description
	slug
	privacy
	isDefaultTeam
	defaultMemberRole
	membersCanCreatePipelines
}
fragment TeamSuiteFields on TeamSuite {
	id
	teamSuiteUuid: uuid
	accessLevel
	team {
		id
	}
	suite {
		id
	}
}
fragment TeamPipelineFields on TeamPipeline {
	id
	uuid
	pipelineAccessLevel: accessLevel
	team {
		id
	}
	pipeline {
		id
	}
}
fragment ClusterFields on Cluster {
	id
	uuid
	name
	description
	emoji
	color
	defaultQueue {
		id
		uuid
		key
		description
	}
}
fragment PipelineTeam on TeamPipelineConnection {
	pageInfo {
		endCursor
		hasNextPage
	}
	count
	edges {
		cursor
		node {
			id
			accessLevel
			team {
				id
			}
		}
	}
}
`

func getNode(
	ctx_ context.Context,
	client_ graphql.Client,
	id string,
) (data_ *getNodeResponse, err_ error) {
	req_ := &graphql.Request{
		OpName: "getNode",
		Query:  getNode_Operation,
		Variables: &__getNodeInput{
			Id: id,
		},
	}

	data_ = &getNodeResponse{}
	resp_ := &graphql.Response{Data: data_}

	err_ = client_.MakeRequest(
		ctx_,
		req_,
		resp_,
	)

	return data_, err_
}

// The query executed by getOrganization.
const getOrganization_Operation = `
query getOrganization ($slug: ID!) {
	organization(slug: $slug) {
		allowedApiIpAddresses
		id
		uuid
		membersRequireTwoFactorAuthentication
	}
}
`

func getOrganization(
	ctx_ context.Context,
	client_ graphql.Client,
	slug string,
) (data_ *getOrganizationResponse, err_ error) {
	req_ := &graphql.Request{
		OpName: "getOrganization",
		Query:  getOrganization_Operation,
		Variables: &__getOrganizationInput{
			Slug: slug,
		},
	}

	data_ = &getOrganizationResponse{}
	resp_ := &graphql.Response{Data: data_}

	err_ = client_.MakeRequest(
		ctx_,
		req_,
		resp_,
	)

	return data_, err_
}

// The query executed by getOrganizationRule.
const getOrganizationRule_Operation = `
query getOrganizationRule ($uuid: ID!) {
	rule(uuid: $uuid) {
		... OrganizationRuleFields
	}
}
fragment OrganizationRuleFields on Rule {
	id
	uuid
	description
	document
	type
	sourceType
	targetType
	effect
	action
	source {
		__typename
		... on Pipeline {
			uuid
		}
	}
	target {
		__typename
		... on Pipeline {
			uuid
		}
	}
}
`

func getOrganizationRule(
	ctx_ context.Context,
	client_ graphql.Client,
	uuid string,
) (data_ *getOrganizationRuleResponse, err_ error) {
	req_ := &graphql.Request{
		OpName: "getOrganizationRule",
		Query:  getOrganizationRule_Operation,
		Variables: &__getOrganizationRuleInput{
			Uuid: uuid,
		},
	}

	data_ = &getOrganizationRuleResponse{}
	resp_ := &graphql.Response{Data: data_}

	err_ = client_.MakeRequest(
		ctx_,
		req_,
		resp_,
	)

	return data_, err_
}

// The query executed by getOrganiztionBanner.
const getOrganiztionBanner_Operation = `
query getOrganiztionBanner ($orgSlug: ID!) {
	organization(slug: $orgSlug) {
		banners(first: 1) {
			edges {
				node {
					... OrganizationBannerFields
				}
			}
		}
	}
}
fragment OrganizationBannerFields on OrganizationBanner {
	id
	uuid
	message
}
`

func getOrganiztionBanner(
	ctx_ context.Context,
	client_ graphql.Client,
	orgSlug string,
) (data_ *getOrganiztionBannerResponse, err_ error) {
	req_ := &graphql.Request{
		OpName: "getOrganiztionBanner",
		Query:  getOrganiztionBanner_Operation,
		Variables: &__getOrganiztionBannerInput{
			OrgSlug: orgSlug,
		},
	}

	data_ = &getOrganiztionBannerResponse{}
	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) {
		... PipelineFields
	}
}
fragment PipelineFields on Pipeline {
	id
	pipelineUuid: uuid
	allowRebuilds
	badgeURL
	branchConfiguration
	cancelIntermediateBuilds
	cancelIntermediateBuildsBranchFilter
	cluster {
		id
		name
	}
	color
	defaultBranch
	defaultTimeoutInMinutes
	emoji
	maximumTimeoutInMinutes
	description
	name
	repository {
		url
	}
	pipelineTemplate {
		id
	}
	skipIntermediateBuilds
	skipIntermediateBuildsBranchFilter
	slug
	steps {
		yaml
	}
	tags {
		label
	}
	teams(first: 5, order: NAME) {
		... PipelineTeam
	}
	webhookURL
}
fragment PipelineTeam on TeamPipelineConnection {
	pageInfo {
		endCursor
		hasNextPage
	}
	count
	edges {
		cursor
		node {
			id
			accessLevel
			team {
				id
			}
		}
	}
}
`

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 query executed by getPipelineSchedule.
const getPipelineSchedule_Operation = `
query getPipelineSchedule ($id: ID!) {
	node(id: $id) {
		__typename
		... on PipelineSchedule {
			... PipelineScheduleValues
		}
	}
}
fragment PipelineScheduleValues on PipelineSchedule {
	id
	uuid
	label
	cronline
	message
	commit
	branch
	env
	enabled
	pipeline {
		id
	}
}
`

func getPipelineSchedule(
	ctx_ context.Context,
	client_ graphql.Client,
	id string,
) (data_ *getPipelineScheduleResponse, err_ error) {
	req_ := &graphql.Request{
		OpName: "getPipelineSchedule",
		Query:  getPipelineSchedule_Operation,
		Variables: &__getPipelineScheduleInput{
			Id: id,
		},
	}

	data_ = &getPipelineScheduleResponse{}
	resp_ := &graphql.Response{Data: data_}

	err_ = client_.MakeRequest(
		ctx_,
		req_,
		resp_,
	)

	return data_, err_
}

// The query executed by getPipelineScheduleBySlug.
const getPipelineScheduleBySlug_Operation = `
query getPipelineScheduleBySlug ($slug: ID!) {
	pipelineSchedule(slug: $slug) {
		... PipelineScheduleValues
	}
}
fragment PipelineScheduleValues on PipelineSchedule {
	id
	uuid
	label
	cronline
	message
	commit
	branch
	env
	enabled
	pipeline {
		id
	}
}
`

func getPipelineScheduleBySlug(
	ctx_ context.Context,
	client_ graphql.Client,
	slug string,
) (data_ *getPipelineScheduleBySlugResponse, err_ error) {
	req_ := &graphql.Request{
		OpName: "getPipelineScheduleBySlug",
		Query:  getPipelineScheduleBySlug_Operation,
		Variables: &__getPipelineScheduleBySlugInput{
			Slug: slug,
		},
	}

	data_ = &getPipelineScheduleBySlugResponse{}
	resp_ := &graphql.Response{Data: data_}

	err_ = client_.MakeRequest(
		ctx_,
		req_,
		resp_,
	)

	return data_, err_
}

// The query executed by getPipelineTeams.
const getPipelineTeams_Operation = `
query getPipelineTeams ($slug: ID!, $cursor: String) {
	pipeline(slug: $slug) {
		teams(order: NAME, first: 50, after: $cursor) {
			... PipelineTeam
		}
	}
}
fragment PipelineTeam on TeamPipelineConnection {
	pageInfo {
		endCursor
		hasNextPage
	}
	count
	edges {
		cursor
		node {
			id
			accessLevel
			team {
				id
			}
		}
	}
}
`

func getPipelineTeams(
	ctx_ context.Context,
	client_ graphql.Client,
	slug string,
	cursor string,
) (data_ *getPipelineTeamsResponse, err_ error) {
	req_ := &graphql.Request{
		OpName: "getPipelineTeams",
		Query:  getPipelineTeams_Operation,
		Variables: &__getPipelineTeamsInput{
			Slug:   slug,
			Cursor: cursor,
		},
	}

	data_ = &getPipelineTeamsResponse{}
	resp_ := &graphql.Response{Data: data_}

	err_ = client_.MakeRequest(
		ctx_,
		req_,
		resp_,
	)

	return data_, err_
}

// The query executed by getPipelineTemplates.
const getPipelineTemplates_Operation = `
query getPipelineTemplates ($orgSlug: ID!, $cursor: String) {
	organization(slug: $orgSlug) {
		pipelineTemplates(order: NAME, first: 50, after: $cursor) {
			pageInfo {
				endCursor
				hasNextPage
			}
			edges {
				node {
					... PipelineTemplateFields
				}
			}
		}
	}
}
fragment PipelineTemplateFields on PipelineTemplate {
	id
	uuid
	available
	configuration
	description
	name
}
`

func getPipelineTemplates(
	ctx_ context.Context,
	client_ graphql.Client,
	orgSlug string,
	cursor *string,
) (data_ *getPipelineTemplatesResponse, err_ error) {
	req_ := &graphql.Request{
		OpName: "getPipelineTemplates",
		Query:  getPipelineTemplates_Operation,
		Variables: &__getPipelineTemplatesInput{
			OrgSlug: orgSlug,
			Cursor:  cursor,
		},
	}

	data_ = &getPipelineTemplatesResponse{}
	resp_ := &graphql.Response{Data: data_}

	err_ = client_.MakeRequest(
		ctx_,
		req_,
		resp_,
	)

	return data_, err_
}

// The query executed by getTestSuite.
const getTestSuite_Operation = `
query getTestSuite ($id: ID!, $teamCount: Int) {
	suite: node(id: $id) {
		__typename
		... on Suite {
			id
			uuid
			defaultBranch
			emoji
			name
			slug
			teams(first: $teamCount, order: NAME) {
				edges {
					node {
						id
						accessLevel
						team {
							id
						}
					}
				}
			}
		}
	}
}
`

func getTestSuite(
	ctx_ context.Context,
	client_ graphql.Client,
	id string,
	teamCount int,
) (data_ *getTestSuiteResponse, err_ error) {
	req_ := &graphql.Request{
		OpName: "getTestSuite",
		Query:  getTestSuite_Operation,
		Variables: &__getTestSuiteInput{
			Id:        id,
			TeamCount: teamCount,
		},
	}

	data_ = &getTestSuiteResponse{}
	resp_ := &graphql.Response{Data: data_}

	err_ = client_.MakeRequest(
		ctx_,
		req_,
		resp_,
	)

	return data_, err_
}

// The mutation executed by pauseDispatchClusterQueue.
const pauseDispatchClusterQueue_Operation = `
mutation pauseDispatchClusterQueue ($id: ID!) {
	clusterQueuePauseDispatch(input: {id:$id}) {
		clientMutationId
	}
}
`

func pauseDispatchClusterQueue(
	ctx_ context.Context,
	client_ graphql.Client,
	id string,
) (data_ *pauseDispatchClusterQueueResponse, err_ error) {
	req_ := &graphql.Request{
		OpName: "pauseDispatchClusterQueue",
		Query:  pauseDispatchClusterQueue_Operation,
		Variables: &__pauseDispatchClusterQueueInput{
			Id: id,
		},
	}

	data_ = &pauseDispatchClusterQueueResponse{}
	resp_ := &graphql.Response{Data: data_}

	err_ = client_.MakeRequest(
		ctx_,
		req_,
		resp_,
	)

	return data_, err_
}

// The mutation executed by removeClusterDefaultQueue.
const removeClusterDefaultQueue_Operation = `
mutation removeClusterDefaultQueue ($organizationId: ID!, $clusterId: ID!) {
	clusterUpdate(input: {organizationId:$organizationId,id:$clusterId,defaultQueueId:null}) {
		cluster {
			... ClusterFields
			defaultQueue {
				id
				uuid
				key
			}
		}
	}
}
fragment ClusterFields on Cluster {
	id
	uuid
	name
	description
	emoji
	color
	defaultQueue {
		id
		uuid
		key
		description
	}
}
`

func removeClusterDefaultQueue(
	ctx_ context.Context,
	client_ graphql.Client,
	organizationId string,
	clusterId string,
) (data_ *removeClusterDefaultQueueResponse, err_ error) {
	req_ := &graphql.Request{
		OpName: "removeClusterDefaultQueue",
		Query:  removeClusterDefaultQueue_Operation,
		Variables: &__removeClusterDefaultQueueInput{
			OrganizationId: organizationId,
			ClusterId:      clusterId,
		},
	}

	data_ = &removeClusterDefaultQueueResponse{}
	resp_ := &graphql.Response{Data: data_}

	err_ = client_.MakeRequest(
		ctx_,
		req_,
		resp_,
	)

	return data_, err_
}

// The mutation executed by resumeDispatchClusterQueue.
const resumeDispatchClusterQueue_Operation = `
mutation resumeDispatchClusterQueue ($id: ID!) {
	clusterQueueResumeDispatch(input: {id:$id}) {
		clientMutationId
	}
}
`

func resumeDispatchClusterQueue(
	ctx_ context.Context,
	client_ graphql.Client,
	id string,
) (data_ *resumeDispatchClusterQueueResponse, err_ error) {
	req_ := &graphql.Request{
		OpName: "resumeDispatchClusterQueue",
		Query:  resumeDispatchClusterQueue_Operation,
		Variables: &__resumeDispatchClusterQueueInput{
			Id: id,
		},
	}

	data_ = &resumeDispatchClusterQueueResponse{}
	resp_ := &graphql.Response{Data: data_}

	err_ = client_.MakeRequest(
		ctx_,
		req_,
		resp_,
	)

	return data_, err_
}

// The mutation executed by revokeAgentToken.
const revokeAgentToken_Operation = `
mutation revokeAgentToken ($id: ID!, $reason: String!) {
	agentTokenRevoke(input: {id:$id,reason:$reason}) {
		agentToken {
			id
			description
			uuid
		}
	}
}
`

func revokeAgentToken(
	ctx_ context.Context,
	client_ graphql.Client,
	id string,
	reason string,
) (data_ *revokeAgentTokenResponse, err_ error) {
	req_ := &graphql.Request{
		OpName: "revokeAgentToken",
		Query:  revokeAgentToken_Operation,
		Variables: &__revokeAgentTokenInput{
			Id:     id,
			Reason: reason,
		},
	}

	data_ = &revokeAgentTokenResponse{}
	resp_ := &graphql.Response{Data: data_}

	err_ = client_.MakeRequest(
		ctx_,
		req_,
		resp_,
	)

	return data_, err_
}

// The mutation executed by revokeClusterAgentToken.
const revokeClusterAgentToken_Operation = `
mutation revokeClusterAgentToken ($organizationId: ID!, $id: ID!) {
	clusterAgentTokenRevoke(input: {organizationId:$organizationId,id:$id}) {
		deletedClusterAgentTokenId
	}
}
`

func revokeClusterAgentToken(
	ctx_ context.Context,
	client_ graphql.Client,
	organizationId string,
	id string,
) (data_ *revokeClusterAgentTokenResponse, err_ error) {
	req_ := &graphql.Request{
		OpName: "revokeClusterAgentToken",
		Query:  revokeClusterAgentToken_Operation,
		Variables: &__revokeClusterAgentTokenInput{
			OrganizationId: organizationId,
			Id:             id,
		},
	}

	data_ = &revokeClusterAgentTokenResponse{}
	resp_ := &graphql.Response{Data: data_}

	err_ = client_.MakeRequest(
		ctx_,
		req_,
		resp_,
	)

	return data_, err_
}

// The mutation executed by setApiIpAddresses.
const setApiIpAddresses_Operation = `
mutation setApiIpAddresses ($organizationID: ID!, $ipAddresses: String!) {
	organizationApiIpAllowlistUpdate(input: {organizationID:$organizationID,ipAddresses:$ipAddresses}) {
		organization {
			allowedApiIpAddresses
			id
			uuid
			membersRequireTwoFactorAuthentication
		}
	}
}
`

func setApiIpAddresses(
	ctx_ context.Context,
	client_ graphql.Client,
	organizationID string,
	ipAddresses string,
) (data_ *setApiIpAddressesResponse, err_ error) {
	req_ := &graphql.Request{
		OpName: "setApiIpAddresses",
		Query:  setApiIpAddresses_Operation,
		Variables: &__setApiIpAddressesInput{
			OrganizationID: organizationID,
			IpAddresses:    ipAddresses,
		},
	}

	data_ = &setApiIpAddressesResponse{}
	resp_ := &graphql.Response{Data: data_}

	err_ = client_.MakeRequest(
		ctx_,
		req_,
		resp_,
	)

	return data_, err_
}

// The mutation executed by setClusterDefaultQueue.
const setClusterDefaultQueue_Operation = `
mutation setClusterDefaultQueue ($organizationId: ID!, $clusterId: ID!, $queueId: ID) {
	clusterUpdate(input: {organizationId:$organizationId,id:$clusterId,defaultQueueId:$queueId}) {
		cluster {
			... ClusterFields
			defaultQueue {
				id
				uuid
				key
			}
		}
	}
}
fragment ClusterFields on Cluster {
	id
	uuid
	name
	description
	emoji
	color
	defaultQueue {
		id
		uuid
		key
		description
	}
}
`

func setClusterDefaultQueue(
	ctx_ context.Context,
	client_ graphql.Client,
	organizationId string,
	clusterId string,
	queueId string,
) (data_ *setClusterDefaultQueueResponse, err_ error) {
	req_ := &graphql.Request{
		OpName: "setClusterDefaultQueue",
		Query:  setClusterDefaultQueue_Operation,
		Variables: &__setClusterDefaultQueueInput{
			OrganizationId: organizationId,
			ClusterId:      clusterId,
			QueueId:        queueId,
		},
	}

	data_ = &setClusterDefaultQueueResponse{}
	resp_ := &graphql.Response{Data: data_}

	err_ = client_.MakeRequest(
		ctx_,
		req_,
		resp_,
	)

	return data_, err_
}

// The mutation executed by setOrganization2FA.
const setOrganization2FA_Operation = `
mutation setOrganization2FA ($organizationID: ID!, $value: Boolean!) {
	organizationEnforceTwoFactorAuthenticationForMembersUpdate(input: {organizationId:$organizationID,membersRequireTwoFactorAuthentication:$value}) {
		organization {
			membersRequireTwoFactorAuthentication
		}
	}
}
`

func setOrganization2FA(
	ctx_ context.Context,
	client_ graphql.Client,
	organizationID string,
	value bool,
) (data_ *setOrganization2FAResponse, err_ error) {
	req_ := &graphql.Request{
		OpName: "setOrganization2FA",
		Query:  setOrganization2FA_Operation,
		Variables: &__setOrganization2FAInput{
			OrganizationID: organizationID,
			Value:          value,
		},
	}

	data_ = &setOrganization2FAResponse{}
	resp_ := &graphql.Response{Data: data_}

	err_ = client_.MakeRequest(
		ctx_,
		req_,
		resp_,
	)

	return data_, err_
}

// The mutation executed by teamCreate.
const teamCreate_Operation = `
mutation teamCreate ($organizationID: ID!, $name: String!, $description: String, $privacy: TeamPrivacy!, $isDefaultTeam: Boolean!, $defaultMemberRole: TeamMemberRole!, $membersCanCreatePipelines: Boolean) {
	teamCreate(input: {organizationID:$organizationID,name:$name,description:$description,privacy:$privacy,isDefaultTeam:$isDefaultTeam,defaultMemberRole:$defaultMemberRole,membersCanCreatePipelines:$membersCanCreatePipelines}) {
		teamEdge {
			node {
				... TeamFields
			}
		}
	}
}
fragment TeamFields on Team {
	id
	uuid
	name
	description
	slug
	privacy
	isDefaultTeam
	defaultMemberRole
	membersCanCreatePipelines
}
`

func teamCreate(
	ctx_ context.Context,
	client_ graphql.Client,
	organizationID string,
	name string,
	description string,
	privacy string,
	isDefaultTeam bool,
	defaultMemberRole string,
	membersCanCreatePipelines bool,
) (data_ *teamCreateResponse, err_ error) {
	req_ := &graphql.Request{
		OpName: "teamCreate",
		Query:  teamCreate_Operation,
		Variables: &__teamCreateInput{
			OrganizationID:            organizationID,
			Name:                      name,
			Description:               description,
			Privacy:                   privacy,
			IsDefaultTeam:             isDefaultTeam,
			DefaultMemberRole:         defaultMemberRole,
			MembersCanCreatePipelines: membersCanCreatePipelines,
		},
	}

	data_ = &teamCreateResponse{}
	resp_ := &graphql.Response{Data: data_}

	err_ = client_.MakeRequest(
		ctx_,
		req_,
		resp_,
	)

	return data_, err_
}

// The mutation executed by teamDelete.
const teamDelete_Operation = `
mutation teamDelete ($id: ID!) {
	teamDelete(input: {id:$id}) {
		deletedTeamID
	}
}
`

func teamDelete(
	ctx_ context.Context,
	client_ graphql.Client,
	id string,
) (data_ *teamDeleteResponse, err_ error) {
	req_ := &graphql.Request{
		OpName: "teamDelete",
		Query:  teamDelete_Operation,
		Variables: &__teamDeleteInput{
			Id: id,
		},
	}

	data_ = &teamDeleteResponse{}
	resp_ := &graphql.Response{Data: data_}

	err_ = client_.MakeRequest(
		ctx_,
		req_,
		resp_,
	)

	return data_, err_
}

// The mutation executed by teamUpdate.
const teamUpdate_Operation = `
mutation teamUpdate ($id: ID!, $name: String!, $description: String, $privacy: TeamPrivacy!, $isDefaultTeam: Boolean!, $defaultMemberRole: TeamMemberRole!, $membersCanCreatePipelines: Boolean) {
	teamUpdate(input: {id:$id,name:$name,description:$description,privacy:$privacy,isDefaultTeam:$isDefaultTeam,defaultMemberRole:$defaultMemberRole,membersCanCreatePipelines:$membersCanCreatePipelines}) {
		team {
			... TeamFields
		}
	}
}
fragment TeamFields on Team {
	id
	uuid
	name
	description
	slug
	privacy
	isDefaultTeam
	defaultMemberRole
	membersCanCreatePipelines
}
`

func teamUpdate(
	ctx_ context.Context,
	client_ graphql.Client,
	id string,
	name string,
	description string,
	privacy string,
	isDefaultTeam bool,
	defaultMemberRole string,
	membersCanCreatePipelines bool,
) (data_ *teamUpdateResponse, err_ error) {
	req_ := &graphql.Request{
		OpName: "teamUpdate",
		Query:  teamUpdate_Operation,
		Variables: &__teamUpdateInput{
			Id:                        id,
			Name:                      name,
			Description:               description,
			Privacy:                   privacy,
			IsDefaultTeam:             isDefaultTeam,
			DefaultMemberRole:         defaultMemberRole,
			MembersCanCreatePipelines: membersCanCreatePipelines,
		},
	}

	data_ = &teamUpdateResponse{}
	resp_ := &graphql.Response{Data: data_}

	err_ = client_.MakeRequest(
		ctx_,
		req_,
		resp_,
	)

	return data_, err_
}

// The mutation executed by updateCluster.
const updateCluster_Operation = `
mutation updateCluster ($organizationId: ID!, $id: ID!, $name: String, $description: String, $emoji: String, $color: String) {
	clusterUpdate(input: {organizationId:$organizationId,id:$id,name:$name,description:$description,emoji:$emoji,color:$color}) {
		clientMutationId
		cluster {
			... ClusterFields
		}
	}
}
fragment ClusterFields on Cluster {
	id
	uuid
	name
	description
	emoji
	color
	defaultQueue {
		id
		uuid
		key
		description
	}
}
`

func updateCluster(
	ctx_ context.Context,
	client_ graphql.Client,
	organizationId string,
	id string,
	name string,
	description *string,
	emoji *string,
	color *string,
) (data_ *updateClusterResponse, err_ error) {
	req_ := &graphql.Request{
		OpName: "updateCluster",
		Query:  updateCluster_Operation,
		Variables: &__updateClusterInput{
			OrganizationId: organizationId,
			Id:             id,
			Name:           name,
			Description:    description,
			Emoji:          emoji,
			Color:          color,
		},
	}

	data_ = &updateClusterResponse{}
	resp_ := &graphql.Response{Data: data_}

	err_ = client_.MakeRequest(
		ctx_,
		req_,
		resp_,
	)

	return data_, err_
}

// The mutation executed by updateClusterAgentToken.
const updateClusterAgentToken_Operation = `
mutation updateClusterAgentToken ($organizationId: ID!, $id: ID!, $description: String!, $allowedIpAddresses: String) {
	clusterAgentTokenUpdate(input: {organizationId:$organizationId,id:$id,description:$description,allowedIpAddresses:$allowedIpAddresses}) {
		clusterAgentToken {
			... ClusterAgentTokenValues
		}
	}
}
fragment ClusterAgentTokenValues on ClusterToken {
	allowedIpAddresses
	cluster {
		id
		uuid
	}
	description
	id
	uuid
}
`

func updateClusterAgentToken(
	ctx_ context.Context,
	client_ graphql.Client,
	organizationId string,
	id string,
	description string,
	allowedIpAddresses string,
) (data_ *updateClusterAgentTokenResponse, err_ error) {
	req_ := &graphql.Request{
		OpName: "updateClusterAgentToken",
		Query:  updateClusterAgentToken_Operation,
		Variables: &__updateClusterAgentTokenInput{
			OrganizationId:     organizationId,
			Id:                 id,
			Description:        description,
			AllowedIpAddresses: allowedIpAddresses,
		},
	}

	data_ = &updateClusterAgentTokenResponse{}
	resp_ := &graphql.Response{Data: data_}

	err_ = client_.MakeRequest(
		ctx_,
		req_,
		resp_,
	)

	return data_, err_
}

// The mutation executed by updateClusterQueue.
const updateClusterQueue_Operation = `
mutation updateClusterQueue ($organizationId: ID!, $id: ID!, $description: String, $hostedAgents: HostedAgentsQueueSettingsUpdateInput) {
	clusterQueueUpdate(input: {organizationId:$organizationId,id:$id,description:$description,hostedAgents:$hostedAgents}) {
		clusterQueue {
			... ClusterQueueValues
			dispatchPaused
			dispatchPausedAt
			dispatchPausedBy {
				id
			}
			dispatchPausedNote
		}
	}
}
fragment ClusterQueueValues on ClusterQueue {
	id
	uuid
	key
	description
	cluster {
		id
		uuid
	}
	hosted
	hostedAgents {
		... HostedAgentsQueueSettingsValues
	}
}
fragment HostedAgentsQueueSettingsValues on HostedAgentQueueSettings {
	instanceShape {
		architecture
		machineType
		memory
		name
		size
		vcpu
	}
	platformSettings {
		linux {
			agentImageRef
		}
		macos {
			xcodeVersion
			macosVersion
		}
	}
}
`

func updateClusterQueue(
	ctx_ context.Context,
	client_ graphql.Client,
	organizationId string,
	id string,
	description *string,
	hostedAgents *HostedAgentsQueueSettingsUpdateInput,
) (data_ *updateClusterQueueResponse, err_ error) {
	req_ := &graphql.Request{
		OpName: "updateClusterQueue",
		Query:  updateClusterQueue_Operation,
		Variables: &__updateClusterQueueInput{
			OrganizationId: organizationId,
			Id:             id,
			Description:    description,
			HostedAgents:   hostedAgents,
		},
	}

	data_ = &updateClusterQueueResponse{}
	resp_ := &graphql.Response{Data: data_}

	err_ = client_.MakeRequest(
		ctx_,
		req_,
		resp_,
	)

	return data_, err_
}

// The mutation executed by updateOrganizationRule.
const updateOrganizationRule_Operation = `
mutation updateOrganizationRule ($organizationId: ID!, $id: ID!, $description: String, $value: JSON!) {
	ruleUpdate(input: {organizationId:$organizationId,id:$id,description:$description,value:$value}) {
		rule {
			... OrganizationRuleFields
		}
	}
}
fragment OrganizationRuleFields on Rule {
	id
	uuid
	description
	document
	type
	sourceType
	targetType
	effect
	action
	source {
		__typename
		... on Pipeline {
			uuid
		}
	}
	target {
		__typename
		... on Pipeline {
			uuid
		}
	}
}
`

func updateOrganizationRule(
	ctx_ context.Context,
	client_ graphql.Client,
	organizationId string,
	id string,
	description *string,
	value string,
) (data_ *updateOrganizationRuleResponse, err_ error) {
	req_ := &graphql.Request{
		OpName: "updateOrganizationRule",
		Query:  updateOrganizationRule_Operation,
		Variables: &__updateOrganizationRuleInput{
			OrganizationId: organizationId,
			Id:             id,
			Description:    description,
			Value:          value,
		},
	}

	data_ = &updateOrganizationRuleResponse{}
	resp_ := &graphql.Response{Data: data_}

	err_ = client_.MakeRequest(
		ctx_,
		req_,
		resp_,
	)

	return data_, err_
}

// The mutation executed by updatePipeline.
const updatePipeline_Operation = `
mutation updatePipeline ($input: PipelineUpdateInput!) {
	pipelineUpdate(input: $input) {
		pipeline {
			... PipelineFields
		}
	}
}
fragment PipelineFields on Pipeline {
	id
	pipelineUuid: uuid
	allowRebuilds
	badgeURL
	branchConfiguration
	cancelIntermediateBuilds
	cancelIntermediateBuildsBranchFilter
	cluster {
		id
		name
	}
	color
	defaultBranch
	defaultTimeoutInMinutes
	emoji
	maximumTimeoutInMinutes
	description
	name
	repository {
		url
	}
	pipelineTemplate {
		id
	}
	skipIntermediateBuilds
	skipIntermediateBuildsBranchFilter
	slug
	steps {
		yaml
	}
	tags {
		label
	}
	teams(first: 5, order: NAME) {
		... PipelineTeam
	}
	webhookURL
}
fragment PipelineTeam on TeamPipelineConnection {
	pageInfo {
		endCursor
		hasNextPage
	}
	count
	edges {
		cursor
		node {
			id
			accessLevel
			team {
				id
			}
		}
	}
}
`

func updatePipeline(
	ctx_ context.Context,
	client_ graphql.Client,
	input PipelineUpdateInput,
) (data_ *updatePipelineResponse, err_ error) {
	req_ := &graphql.Request{
		OpName: "updatePipeline",
		Query:  updatePipeline_Operation,
		Variables: &__updatePipelineInput{
			Input: input,
		},
	}

	data_ = &updatePipelineResponse{}
	resp_ := &graphql.Response{Data: data_}

	err_ = client_.MakeRequest(
		ctx_,
		req_,
		resp_,
	)

	return data_, err_
}

// The mutation executed by updatePipelineSchedule.
const updatePipelineSchedule_Operation = `
mutation updatePipelineSchedule ($input: PipelineScheduleUpdateInput!) {
	pipelineScheduleUpdate(input: $input) {
		pipelineSchedule {
			... PipelineScheduleValues
		}
	}
}
fragment PipelineScheduleValues on PipelineSchedule {
	id
	uuid
	label
	cronline
	message
	commit
	branch
	env
	enabled
	pipeline {
		id
	}
}
`

func updatePipelineSchedule(
	ctx_ context.Context,
	client_ graphql.Client,
	input PipelineScheduleUpdateInput,
) (data_ *updatePipelineScheduleResponse, err_ error) {
	req_ := &graphql.Request{
		OpName: "updatePipelineSchedule",
		Query:  updatePipelineSchedule_Operation,
		Variables: &__updatePipelineScheduleInput{
			Input: input,
		},
	}

	data_ = &updatePipelineScheduleResponse{}
	resp_ := &graphql.Response{Data: data_}

	err_ = client_.MakeRequest(
		ctx_,
		req_,
		resp_,
	)

	return data_, err_
}

// The mutation executed by updatePipelineTemplate.
const updatePipelineTemplate_Operation = `
mutation updatePipelineTemplate ($organizationId: ID!, $id: ID!, $name: String, $configuration: String, $description: String, $available: Boolean) {
	pipelineTemplateUpdate(input: {organizationId:$organizationId,id:$id,name:$name,configuration:$configuration,description:$description,available:$available}) {
		pipelineTemplate {
			... PipelineTemplateFields
		}
	}
}
fragment PipelineTemplateFields on PipelineTemplate {
	id
	uuid
	available
	configuration
	description
	name
}
`

func updatePipelineTemplate(
	ctx_ context.Context,
	client_ graphql.Client,
	organizationId string,
	id string,
	name string,
	configuration string,
	description string,
	available bool,
) (data_ *updatePipelineTemplateResponse, err_ error) {
	req_ := &graphql.Request{
		OpName: "updatePipelineTemplate",
		Query:  updatePipelineTemplate_Operation,
		Variables: &__updatePipelineTemplateInput{
			OrganizationId: organizationId,
			Id:             id,
			Name:           name,
			Configuration:  configuration,
			Description:    description,
			Available:      available,
		},
	}

	data_ = &updatePipelineTemplateResponse{}
	resp_ := &graphql.Response{Data: data_}

	err_ = client_.MakeRequest(
		ctx_,
		req_,
		resp_,
	)

	return data_, err_
}

// The mutation executed by updateTeamMember.
const updateTeamMember_Operation = `
mutation updateTeamMember ($id: ID!, $role: TeamMemberRole!) {
	teamMemberUpdate(input: {id:$id,role:$role}) {
		teamMember {
			... TeamMemberFields
		}
	}
}
fragment TeamMemberFields on TeamMember {
	id
	uuid
	team {
		id
	}
	user {
		id
	}
	role
}
`

func updateTeamMember(
	ctx_ context.Context,
	client_ graphql.Client,
	id string,
	role string,
) (data_ *updateTeamMemberResponse, err_ error) {
	req_ := &graphql.Request{
		OpName: "updateTeamMember",
		Query:  updateTeamMember_Operation,
		Variables: &__updateTeamMemberInput{
			Id:   id,
			Role: role,
		},
	}

	data_ = &updateTeamMemberResponse{}
	resp_ := &graphql.Response{Data: data_}

	err_ = client_.MakeRequest(
		ctx_,
		req_,
		resp_,
	)

	return data_, err_
}

// The mutation executed by updateTeamPipeline.
const updateTeamPipeline_Operation = `
mutation updateTeamPipeline ($id: ID!, $accessLevel: PipelineAccessLevels!) {
	teamPipelineUpdate(input: {id:$id,accessLevel:$accessLevel}) {
		teamPipeline {
			... TeamPipelineFields
		}
	}
}
fragment TeamPipelineFields on TeamPipeline {
	id
	uuid
	pipelineAccessLevel: accessLevel
	team {
		id
	}
	pipeline {
		id
	}
}
`

func updateTeamPipeline(
	ctx_ context.Context,
	client_ graphql.Client,
	id string,
	accessLevel PipelineAccessLevels,
) (data_ *updateTeamPipelineResponse, err_ error) {
	req_ := &graphql.Request{
		OpName: "updateTeamPipeline",
		Query:  updateTeamPipeline_Operation,
		Variables: &__updateTeamPipelineInput{
			Id:          id,
			AccessLevel: accessLevel,
		},
	}

	data_ = &updateTeamPipelineResponse{}
	resp_ := &graphql.Response{Data: data_}

	err_ = client_.MakeRequest(
		ctx_,
		req_,
		resp_,
	)

	return data_, err_
}

// The mutation executed by updateTestSuiteTeam.
const updateTestSuiteTeam_Operation = `
mutation updateTestSuiteTeam ($id: ID!, $accessLevel: SuiteAccessLevels!) {
	teamSuiteUpdate(input: {id:$id,accessLevel:$accessLevel}) {
		teamSuite {
			accessLevel
			id
			uuid
		}
	}
}
`

func updateTestSuiteTeam(
	ctx_ context.Context,
	client_ graphql.Client,
	id string,
	accessLevel SuiteAccessLevels,
) (data_ *updateTestSuiteTeamResponse, err_ error) {
	req_ := &graphql.Request{
		OpName: "updateTestSuiteTeam",
		Query:  updateTestSuiteTeam_Operation,
		Variables: &__updateTestSuiteTeamInput{
			Id:          id,
			AccessLevel: accessLevel,
		},
	}

	data_ = &updateTestSuiteTeamResponse{}
	resp_ := &graphql.Response{Data: data_}

	err_ = client_.MakeRequest(
		ctx_,
		req_,
		resp_,
	)

	return data_, err_
}

// The mutation executed by upsertBanner.
const upsertBanner_Operation = `
mutation upsertBanner ($organizationId: ID!, $message: String!) {
	organizationBannerUpsert(input: {organizationId:$organizationId,message:$message}) {
		clientMutationId
		banner {
			... OrganizationBannerFields
		}
	}
}
fragment OrganizationBannerFields on OrganizationBanner {
	id
	uuid
	message
}
`

func upsertBanner(
	ctx_ context.Context,
	client_ graphql.Client,
	organizationId string,
	message string,
) (data_ *upsertBannerResponse, err_ error) {
	req_ := &graphql.Request{
		OpName: "upsertBanner",
		Query:  upsertBanner_Operation,
		Variables: &__upsertBannerInput{
			OrganizationId: organizationId,
			Message:        message,
		},
	}

	data_ = &upsertBannerResponse{}
	resp_ := &graphql.Response{Data: data_}

	err_ = client_.MakeRequest(
		ctx_,
		req_,
		resp_,
	)

	return data_, err_
}
