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

package gql

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

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

// AddOnData includes the GraphQL fields of AddOn requested by the fragment AddOnData.
type AddOnData struct {
	Id string `json:"id"`
	// The service name according to the provider
	Name string `json:"name"`
	// Region where the primary instance is deployed
	PrimaryRegion string `json:"primaryRegion"`
	// Status of the add-on
	Status string `json:"status"`
}

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

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

// GetPrimaryRegion returns AddOnData.PrimaryRegion, and is useful for accessing the field via an interface.
func (v *AddOnData) GetPrimaryRegion() string { return v.PrimaryRegion }

// GetStatus returns AddOnData.Status, and is useful for accessing the field via an interface.
func (v *AddOnData) GetStatus() string { return v.Status }

type AddOnType string

const (
	// A Logtail log receiver
	AddOnTypeLogtail AddOnType = "logtail"
	// A PlanetScale database
	AddOnTypePlanetscale AddOnType = "planetscale"
	// An Upstash Redis database
	AddOnTypeRedis AddOnType = "redis"
	// A Sentry project endpoint
	AddOnTypeSentry AddOnType = "sentry"
	// An Upstash Redis database
	AddOnTypeUpstashRedis AddOnType = "upstash_redis"
)

// AgentGetInstancesApp includes the requested fields of the GraphQL type App.
type AgentGetInstancesApp struct {
	// Organization that owns this app
	Organization AgentGetInstancesAppOrganization `json:"organization"`
	// Unique application ID
	Id string `json:"id"`
	// The unique application name
	Name        string                                        `json:"name"`
	Allocations []AgentGetInstancesAppAllocationsAllocation   `json:"allocations"`
	Machines    AgentGetInstancesAppMachinesMachineConnection `json:"machines"`
}

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

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

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

// GetAllocations returns AgentGetInstancesApp.Allocations, and is useful for accessing the field via an interface.
func (v *AgentGetInstancesApp) GetAllocations() []AgentGetInstancesAppAllocationsAllocation {
	return v.Allocations
}

// GetMachines returns AgentGetInstancesApp.Machines, and is useful for accessing the field via an interface.
func (v *AgentGetInstancesApp) GetMachines() AgentGetInstancesAppMachinesMachineConnection {
	return v.Machines
}

// AgentGetInstancesAppAllocationsAllocation includes the requested fields of the GraphQL type Allocation.
type AgentGetInstancesAppAllocationsAllocation struct {
	// Unique ID for this instance
	Id string `json:"id"`
	// Region this allocation is running in
	Region string `json:"region"`
	// Private IPv6 address for this instance
	PrivateIP string `json:"privateIP"`
}

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

// GetRegion returns AgentGetInstancesAppAllocationsAllocation.Region, and is useful for accessing the field via an interface.
func (v *AgentGetInstancesAppAllocationsAllocation) GetRegion() string { return v.Region }

// GetPrivateIP returns AgentGetInstancesAppAllocationsAllocation.PrivateIP, and is useful for accessing the field via an interface.
func (v *AgentGetInstancesAppAllocationsAllocation) GetPrivateIP() string { return v.PrivateIP }

// AgentGetInstancesAppMachinesMachineConnection includes the requested fields of the GraphQL type MachineConnection.
// The GraphQL type's documentation follows.
//
// The connection type for Machine.
type AgentGetInstancesAppMachinesMachineConnection struct {
	// A list of nodes.
	Nodes []AgentGetInstancesAppMachinesMachineConnectionNodesMachine `json:"nodes"`
}

// GetNodes returns AgentGetInstancesAppMachinesMachineConnection.Nodes, and is useful for accessing the field via an interface.
func (v *AgentGetInstancesAppMachinesMachineConnection) GetNodes() []AgentGetInstancesAppMachinesMachineConnectionNodesMachine {
	return v.Nodes
}

// AgentGetInstancesAppMachinesMachineConnectionNodesMachine includes the requested fields of the GraphQL type Machine.
type AgentGetInstancesAppMachinesMachineConnectionNodesMachine struct {
	State  string                                                                          `json:"state"`
	Id     string                                                                          `json:"id"`
	Region string                                                                          `json:"region"`
	Ips    AgentGetInstancesAppMachinesMachineConnectionNodesMachineIpsMachineIPConnection `json:"ips"`
}

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

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

// GetRegion returns AgentGetInstancesAppMachinesMachineConnectionNodesMachine.Region, and is useful for accessing the field via an interface.
func (v *AgentGetInstancesAppMachinesMachineConnectionNodesMachine) GetRegion() string {
	return v.Region
}

// GetIps returns AgentGetInstancesAppMachinesMachineConnectionNodesMachine.Ips, and is useful for accessing the field via an interface.
func (v *AgentGetInstancesAppMachinesMachineConnectionNodesMachine) GetIps() AgentGetInstancesAppMachinesMachineConnectionNodesMachineIpsMachineIPConnection {
	return v.Ips
}

// AgentGetInstancesAppMachinesMachineConnectionNodesMachineIpsMachineIPConnection includes the requested fields of the GraphQL type MachineIPConnection.
// The GraphQL type's documentation follows.
//
// The connection type for MachineIP.
type AgentGetInstancesAppMachinesMachineConnectionNodesMachineIpsMachineIPConnection struct {
	// A list of nodes.
	Nodes []AgentGetInstancesAppMachinesMachineConnectionNodesMachineIpsMachineIPConnectionNodesMachineIP `json:"nodes"`
}

// GetNodes returns AgentGetInstancesAppMachinesMachineConnectionNodesMachineIpsMachineIPConnection.Nodes, and is useful for accessing the field via an interface.
func (v *AgentGetInstancesAppMachinesMachineConnectionNodesMachineIpsMachineIPConnection) GetNodes() []AgentGetInstancesAppMachinesMachineConnectionNodesMachineIpsMachineIPConnectionNodesMachineIP {
	return v.Nodes
}

// AgentGetInstancesAppMachinesMachineConnectionNodesMachineIpsMachineIPConnectionNodesMachineIP includes the requested fields of the GraphQL type MachineIP.
type AgentGetInstancesAppMachinesMachineConnectionNodesMachineIpsMachineIPConnectionNodesMachineIP struct {
	Kind   string `json:"kind"`
	Family string `json:"family"`
	Ip     string `json:"ip"`
}

// GetKind returns AgentGetInstancesAppMachinesMachineConnectionNodesMachineIpsMachineIPConnectionNodesMachineIP.Kind, and is useful for accessing the field via an interface.
func (v *AgentGetInstancesAppMachinesMachineConnectionNodesMachineIpsMachineIPConnectionNodesMachineIP) GetKind() string {
	return v.Kind
}

// GetFamily returns AgentGetInstancesAppMachinesMachineConnectionNodesMachineIpsMachineIPConnectionNodesMachineIP.Family, and is useful for accessing the field via an interface.
func (v *AgentGetInstancesAppMachinesMachineConnectionNodesMachineIpsMachineIPConnectionNodesMachineIP) GetFamily() string {
	return v.Family
}

// GetIp returns AgentGetInstancesAppMachinesMachineConnectionNodesMachineIpsMachineIPConnectionNodesMachineIP.Ip, and is useful for accessing the field via an interface.
func (v *AgentGetInstancesAppMachinesMachineConnectionNodesMachineIpsMachineIPConnectionNodesMachineIP) GetIp() string {
	return v.Ip
}

// AgentGetInstancesAppOrganization includes the requested fields of the GraphQL type Organization.
type AgentGetInstancesAppOrganization struct {
	// Unique organization slug
	Slug string `json:"slug"`
}

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

// AgentGetInstancesResponse is returned by AgentGetInstances on success.
type AgentGetInstancesResponse struct {
	// Find an app by name
	App AgentGetInstancesApp `json:"app"`
}

// GetApp returns AgentGetInstancesResponse.App, and is useful for accessing the field via an interface.
func (v *AgentGetInstancesResponse) GetApp() AgentGetInstancesApp { return v.App }

// AgreedToProviderTosOrganization includes the requested fields of the GraphQL type Organization.
type AgreedToProviderTosOrganization struct {
	// Check if the organization has agreed to the extension provider terms of service
	AgreedToProviderTos bool `json:"agreedToProviderTos"`
}

// GetAgreedToProviderTos returns AgreedToProviderTosOrganization.AgreedToProviderTos, and is useful for accessing the field via an interface.
func (v *AgreedToProviderTosOrganization) GetAgreedToProviderTos() bool { return v.AgreedToProviderTos }

// AgreedToProviderTosResponse is returned by AgreedToProviderTos on success.
type AgreedToProviderTosResponse struct {
	// Find an organization by ID
	Organization AgreedToProviderTosOrganization `json:"organization"`
}

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

// AllAppsOrganization includes the requested fields of the GraphQL type Organization.
type AllAppsOrganization struct {
	Apps AllAppsOrganizationAppsAppConnection `json:"apps"`
}

// GetApps returns AllAppsOrganization.Apps, and is useful for accessing the field via an interface.
func (v *AllAppsOrganization) GetApps() AllAppsOrganizationAppsAppConnection { return v.Apps }

// AllAppsOrganizationAppsAppConnection includes the requested fields of the GraphQL type AppConnection.
// The GraphQL type's documentation follows.
//
// The connection type for App.
type AllAppsOrganizationAppsAppConnection struct {
	// A list of nodes.
	Nodes []AllAppsOrganizationAppsAppConnectionNodesApp `json:"nodes"`
}

// GetNodes returns AllAppsOrganizationAppsAppConnection.Nodes, and is useful for accessing the field via an interface.
func (v *AllAppsOrganizationAppsAppConnection) GetNodes() []AllAppsOrganizationAppsAppConnectionNodesApp {
	return v.Nodes
}

// AllAppsOrganizationAppsAppConnectionNodesApp includes the requested fields of the GraphQL type App.
type AllAppsOrganizationAppsAppConnectionNodesApp struct {
	// Unique application ID
	Id        string    `json:"id"`
	CreatedAt time.Time `json:"createdAt"`
}

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

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

// AllAppsResponse is returned by AllApps on success.
type AllAppsResponse struct {
	// Find an organization by ID
	Organization AllAppsOrganization `json:"organization"`
}

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

// AppData includes the GraphQL fields of App requested by the fragment AppData.
type AppData struct {
	// Unique application ID
	Id string `json:"id"`
	// The unique application name
	Name     string `json:"name"`
	Deployed bool   `json:"deployed"`
	// Fly platform version
	PlatformVersion PlatformVersionEnum `json:"platformVersion"`
	// Organization that owns this app
	Organization AppDataOrganization `json:"organization"`
}

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

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

// GetDeployed returns AppData.Deployed, and is useful for accessing the field via an interface.
func (v *AppData) GetDeployed() bool { return v.Deployed }

// GetPlatformVersion returns AppData.PlatformVersion, and is useful for accessing the field via an interface.
func (v *AppData) GetPlatformVersion() PlatformVersionEnum { return v.PlatformVersion }

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

// AppDataOrganization includes the requested fields of the GraphQL type Organization.
type AppDataOrganization struct {
	Id string `json:"id"`
	// Unique organization slug
	Slug string `json:"slug"`
	// Unmodified unique org slug
	RawSlug  string `json:"rawSlug"`
	PaidPlan bool   `json:"paidPlan"`
	// Whether the organization can provision beta extensions
	ProvisionsBetaExtensions bool `json:"provisionsBetaExtensions"`
}

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

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

// GetRawSlug returns AppDataOrganization.RawSlug, and is useful for accessing the field via an interface.
func (v *AppDataOrganization) GetRawSlug() string { return v.RawSlug }

// GetPaidPlan returns AppDataOrganization.PaidPlan, and is useful for accessing the field via an interface.
func (v *AppDataOrganization) GetPaidPlan() bool { return v.PaidPlan }

// GetProvisionsBetaExtensions returns AppDataOrganization.ProvisionsBetaExtensions, and is useful for accessing the field via an interface.
func (v *AppDataOrganization) GetProvisionsBetaExtensions() bool { return v.ProvisionsBetaExtensions }

type BuildFinalImageInput struct {
	// Sha256 id of docker image
	Id string `json:"id"`
	// Size in bytes of the docker image
	SizeBytes int64 `json:"sizeBytes"`
	// Tag used for docker image
	Tag string `json:"tag"`
}

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

// GetSizeBytes returns BuildFinalImageInput.SizeBytes, and is useful for accessing the field via an interface.
func (v *BuildFinalImageInput) GetSizeBytes() int64 { return v.SizeBytes }

// GetTag returns BuildFinalImageInput.Tag, and is useful for accessing the field via an interface.
func (v *BuildFinalImageInput) GetTag() string { return v.Tag }

type BuildImageOptsInput struct {
	// Set of build time variables passed to cli
	BuildArgs interface{} `json:"buildArgs"`
	// Fly.toml build.buildpacks setting
	BuildPacks []string `json:"buildPacks"`
	// Fly.toml build.builder setting
	Builder string `json:"builder"`
	// Builtin builder to use
	BuiltIn string `json:"builtIn"`
	// Builtin builder settings
	BuiltInSettings interface{} `json:"builtInSettings"`
	// Path to dockerfile, if one exists
	DockerfilePath string `json:"dockerfilePath"`
	// Unused in cli?
	ExtraBuildArgs interface{} `json:"extraBuildArgs"`
	// Image label to use when tagging and pushing to the fly registry
	ImageLabel string `json:"imageLabel"`
	// Unused in cli?
	ImageRef string `json:"imageRef"`
	// Do not use the build cache when building the image
	NoCache bool `json:"noCache"`
	// Whether publishing to the registry was requested
	Publish bool `json:"publish"`
	// Docker tag used to publish image to registry
	Tag string `json:"tag"`
	// Set the target build stage to build if the Dockerfile has more than one stage
	Target string `json:"target"`
}

// GetBuildArgs returns BuildImageOptsInput.BuildArgs, and is useful for accessing the field via an interface.
func (v *BuildImageOptsInput) GetBuildArgs() interface{} { return v.BuildArgs }

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

// GetBuilder returns BuildImageOptsInput.Builder, and is useful for accessing the field via an interface.
func (v *BuildImageOptsInput) GetBuilder() string { return v.Builder }

// GetBuiltIn returns BuildImageOptsInput.BuiltIn, and is useful for accessing the field via an interface.
func (v *BuildImageOptsInput) GetBuiltIn() string { return v.BuiltIn }

// GetBuiltInSettings returns BuildImageOptsInput.BuiltInSettings, and is useful for accessing the field via an interface.
func (v *BuildImageOptsInput) GetBuiltInSettings() interface{} { return v.BuiltInSettings }

// GetDockerfilePath returns BuildImageOptsInput.DockerfilePath, and is useful for accessing the field via an interface.
func (v *BuildImageOptsInput) GetDockerfilePath() string { return v.DockerfilePath }

// GetExtraBuildArgs returns BuildImageOptsInput.ExtraBuildArgs, and is useful for accessing the field via an interface.
func (v *BuildImageOptsInput) GetExtraBuildArgs() interface{} { return v.ExtraBuildArgs }

// GetImageLabel returns BuildImageOptsInput.ImageLabel, and is useful for accessing the field via an interface.
func (v *BuildImageOptsInput) GetImageLabel() string { return v.ImageLabel }

// GetImageRef returns BuildImageOptsInput.ImageRef, and is useful for accessing the field via an interface.
func (v *BuildImageOptsInput) GetImageRef() string { return v.ImageRef }

// GetNoCache returns BuildImageOptsInput.NoCache, and is useful for accessing the field via an interface.
func (v *BuildImageOptsInput) GetNoCache() bool { return v.NoCache }

// GetPublish returns BuildImageOptsInput.Publish, and is useful for accessing the field via an interface.
func (v *BuildImageOptsInput) GetPublish() bool { return v.Publish }

// GetTag returns BuildImageOptsInput.Tag, and is useful for accessing the field via an interface.
func (v *BuildImageOptsInput) GetTag() string { return v.Tag }

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

type BuildStrategyAttemptInput struct {
	// Optional error message from strategy
	Error string `json:"error"`
	// Optional note about this strategy or its result
	Note string `json:"note"`
	// Result attempting this strategy
	Result string `json:"result"`
	// Build strategy attempted
	Strategy string `json:"strategy"`
}

// GetError returns BuildStrategyAttemptInput.Error, and is useful for accessing the field via an interface.
func (v *BuildStrategyAttemptInput) GetError() string { return v.Error }

// GetNote returns BuildStrategyAttemptInput.Note, and is useful for accessing the field via an interface.
func (v *BuildStrategyAttemptInput) GetNote() string { return v.Note }

// GetResult returns BuildStrategyAttemptInput.Result, and is useful for accessing the field via an interface.
func (v *BuildStrategyAttemptInput) GetResult() string { return v.Result }

// GetStrategy returns BuildStrategyAttemptInput.Strategy, and is useful for accessing the field via an interface.
func (v *BuildStrategyAttemptInput) GetStrategy() string { return v.Strategy }

type BuildTimingsInput struct {
	// Time to build and push the image, measured by flyctl
	BuildAndPushMs int64 `json:"buildAndPushMs"`
	// Time to build the image including create context, measured by flyctl
	BuildMs int64 `json:"buildMs"`
	// Time to initialize client used to connect to either remote or local builder
	BuilderInitMs int64 `json:"builderInitMs"`
	// Time to create the build context tar file, measured by flyctl
	ContextBuildMs int64 `json:"contextBuildMs"`
	// Time for builder to build image after receiving context, measured by flyctl
	ImageBuildMs int64 `json:"imageBuildMs"`
	// Time to push completed image to registry, measured by flyctl
	PushMs int64 `json:"pushMs"`
}

// GetBuildAndPushMs returns BuildTimingsInput.BuildAndPushMs, and is useful for accessing the field via an interface.
func (v *BuildTimingsInput) GetBuildAndPushMs() int64 { return v.BuildAndPushMs }

// GetBuildMs returns BuildTimingsInput.BuildMs, and is useful for accessing the field via an interface.
func (v *BuildTimingsInput) GetBuildMs() int64 { return v.BuildMs }

// GetBuilderInitMs returns BuildTimingsInput.BuilderInitMs, and is useful for accessing the field via an interface.
func (v *BuildTimingsInput) GetBuilderInitMs() int64 { return v.BuilderInitMs }

// GetContextBuildMs returns BuildTimingsInput.ContextBuildMs, and is useful for accessing the field via an interface.
func (v *BuildTimingsInput) GetContextBuildMs() int64 { return v.ContextBuildMs }

// GetImageBuildMs returns BuildTimingsInput.ImageBuildMs, and is useful for accessing the field via an interface.
func (v *BuildTimingsInput) GetImageBuildMs() int64 { return v.ImageBuildMs }

// GetPushMs returns BuildTimingsInput.PushMs, and is useful for accessing the field via an interface.
func (v *BuildTimingsInput) GetPushMs() int64 { return v.PushMs }

type BuilderMetaInput struct {
	// Local or remote builder type
	BuilderType string `json:"builderType"`
	// Whther or not buildkit is enabled on builder
	BuildkitEnabled bool `json:"buildkitEnabled"`
	// Docker version reported by builder
	DockerVersion string `json:"dockerVersion"`
	// Platform reported by the builder
	Platform string `json:"platform"`
	// Remote builder app used
	RemoteAppName string `json:"remoteAppName"`
	// Remote builder machine used
	RemoteMachineId string `json:"remoteMachineId"`
}

// GetBuilderType returns BuilderMetaInput.BuilderType, and is useful for accessing the field via an interface.
func (v *BuilderMetaInput) GetBuilderType() string { return v.BuilderType }

// GetBuildkitEnabled returns BuilderMetaInput.BuildkitEnabled, and is useful for accessing the field via an interface.
func (v *BuilderMetaInput) GetBuildkitEnabled() bool { return v.BuildkitEnabled }

// GetDockerVersion returns BuilderMetaInput.DockerVersion, and is useful for accessing the field via an interface.
func (v *BuilderMetaInput) GetDockerVersion() string { return v.DockerVersion }

// GetPlatform returns BuilderMetaInput.Platform, and is useful for accessing the field via an interface.
func (v *BuilderMetaInput) GetPlatform() string { return v.Platform }

// GetRemoteAppName returns BuilderMetaInput.RemoteAppName, and is useful for accessing the field via an interface.
func (v *BuilderMetaInput) GetRemoteAppName() string { return v.RemoteAppName }

// GetRemoteMachineId returns BuilderMetaInput.RemoteMachineId, and is useful for accessing the field via an interface.
func (v *BuilderMetaInput) GetRemoteMachineId() string { return v.RemoteMachineId }

// CreateAddOnCreateAddOnCreateAddOnPayload includes the requested fields of the GraphQL type CreateAddOnPayload.
// The GraphQL type's documentation follows.
//
// Autogenerated return type of CreateAddOn.
type CreateAddOnCreateAddOnCreateAddOnPayload struct {
	AddOn CreateAddOnCreateAddOnCreateAddOnPayloadAddOn `json:"addOn"`
}

// GetAddOn returns CreateAddOnCreateAddOnCreateAddOnPayload.AddOn, and is useful for accessing the field via an interface.
func (v *CreateAddOnCreateAddOnCreateAddOnPayload) GetAddOn() CreateAddOnCreateAddOnCreateAddOnPayloadAddOn {
	return v.AddOn
}

// CreateAddOnCreateAddOnCreateAddOnPayloadAddOn includes the requested fields of the GraphQL type AddOn.
type CreateAddOnCreateAddOnCreateAddOnPayloadAddOn struct {
	// The service name according to the provider
	Name string `json:"name"`
	// Public URL for this service
	PublicUrl string `json:"publicUrl"`
	// Single sign-on link to the add-on dashboard
	SsoLink string `json:"ssoLink"`
	// Environment variables for the add-on
	Environment interface{} `json:"environment"`
	// Region where the primary instance is deployed
	PrimaryRegion string `json:"primaryRegion"`
}

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

// GetPublicUrl returns CreateAddOnCreateAddOnCreateAddOnPayloadAddOn.PublicUrl, and is useful for accessing the field via an interface.
func (v *CreateAddOnCreateAddOnCreateAddOnPayloadAddOn) GetPublicUrl() string { return v.PublicUrl }

// GetSsoLink returns CreateAddOnCreateAddOnCreateAddOnPayloadAddOn.SsoLink, and is useful for accessing the field via an interface.
func (v *CreateAddOnCreateAddOnCreateAddOnPayloadAddOn) GetSsoLink() string { return v.SsoLink }

// GetEnvironment returns CreateAddOnCreateAddOnCreateAddOnPayloadAddOn.Environment, and is useful for accessing the field via an interface.
func (v *CreateAddOnCreateAddOnCreateAddOnPayloadAddOn) GetEnvironment() interface{} {
	return v.Environment
}

// GetPrimaryRegion returns CreateAddOnCreateAddOnCreateAddOnPayloadAddOn.PrimaryRegion, and is useful for accessing the field via an interface.
func (v *CreateAddOnCreateAddOnCreateAddOnPayloadAddOn) GetPrimaryRegion() string {
	return v.PrimaryRegion
}

// Autogenerated input type of CreateAddOn
type CreateAddOnInput struct {
	// An optional application ID to attach the add-on to after provisioning
	AppId string `json:"appId"`
	// A unique identifier for the client performing the mutation.
	ClientMutationId string `json:"clientMutationId"`
	// An optional name for the add-on
	Name string `json:"name"`
	// Options specific to the add-on
	Options interface{} `json:"options"`
	// The organization which owns the add-on
	OrganizationId string `json:"organizationId"`
	// The add-on plan ID
	PlanId string `json:"planId"`
	// Desired primary region for the add-on
	PrimaryRegion string `json:"primaryRegion"`
	// Desired regions to place replicas in
	ReadRegions []string `json:"readRegions"`
	// The add-on type to provision
	Type AddOnType `json:"type"`
}

// GetAppId returns CreateAddOnInput.AppId, and is useful for accessing the field via an interface.
func (v *CreateAddOnInput) GetAppId() string { return v.AppId }

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

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

// GetOptions returns CreateAddOnInput.Options, and is useful for accessing the field via an interface.
func (v *CreateAddOnInput) GetOptions() interface{} { return v.Options }

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

// GetPlanId returns CreateAddOnInput.PlanId, and is useful for accessing the field via an interface.
func (v *CreateAddOnInput) GetPlanId() string { return v.PlanId }

// GetPrimaryRegion returns CreateAddOnInput.PrimaryRegion, and is useful for accessing the field via an interface.
func (v *CreateAddOnInput) GetPrimaryRegion() string { return v.PrimaryRegion }

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

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

// CreateAddOnResponse is returned by CreateAddOn on success.
type CreateAddOnResponse struct {
	CreateAddOn CreateAddOnCreateAddOnCreateAddOnPayload `json:"createAddOn"`
}

// GetCreateAddOn returns CreateAddOnResponse.CreateAddOn, and is useful for accessing the field via an interface.
func (v *CreateAddOnResponse) GetCreateAddOn() CreateAddOnCreateAddOnCreateAddOnPayload {
	return v.CreateAddOn
}

// CreateAppCreateAppCreateAppPayload includes the requested fields of the GraphQL type CreateAppPayload.
// The GraphQL type's documentation follows.
//
// Autogenerated return type of CreateApp.
type CreateAppCreateAppCreateAppPayload struct {
	App CreateAppCreateAppCreateAppPayloadApp `json:"app"`
}

// GetApp returns CreateAppCreateAppCreateAppPayload.App, and is useful for accessing the field via an interface.
func (v *CreateAppCreateAppCreateAppPayload) GetApp() CreateAppCreateAppCreateAppPayloadApp {
	return v.App
}

// CreateAppCreateAppCreateAppPayloadApp includes the requested fields of the GraphQL type App.
type CreateAppCreateAppCreateAppPayloadApp struct {
	AppData `json:"-"`
	Config  CreateAppCreateAppCreateAppPayloadAppConfig          `json:"config"`
	Regions []CreateAppCreateAppCreateAppPayloadAppRegionsRegion `json:"regions"`
}

// GetConfig returns CreateAppCreateAppCreateAppPayloadApp.Config, and is useful for accessing the field via an interface.
func (v *CreateAppCreateAppCreateAppPayloadApp) GetConfig() CreateAppCreateAppCreateAppPayloadAppConfig {
	return v.Config
}

// GetRegions returns CreateAppCreateAppCreateAppPayloadApp.Regions, and is useful for accessing the field via an interface.
func (v *CreateAppCreateAppCreateAppPayloadApp) GetRegions() []CreateAppCreateAppCreateAppPayloadAppRegionsRegion {
	return v.Regions
}

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

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

// GetDeployed returns CreateAppCreateAppCreateAppPayloadApp.Deployed, and is useful for accessing the field via an interface.
func (v *CreateAppCreateAppCreateAppPayloadApp) GetDeployed() bool { return v.AppData.Deployed }

// GetPlatformVersion returns CreateAppCreateAppCreateAppPayloadApp.PlatformVersion, and is useful for accessing the field via an interface.
func (v *CreateAppCreateAppCreateAppPayloadApp) GetPlatformVersion() PlatformVersionEnum {
	return v.AppData.PlatformVersion
}

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

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

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

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

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

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

type __premarshalCreateAppCreateAppCreateAppPayloadApp struct {
	Config CreateAppCreateAppCreateAppPayloadAppConfig `json:"config"`

	Regions []CreateAppCreateAppCreateAppPayloadAppRegionsRegion `json:"regions"`

	Id string `json:"id"`

	Name string `json:"name"`

	Deployed bool `json:"deployed"`

	PlatformVersion PlatformVersionEnum `json:"platformVersion"`

	Organization AppDataOrganization `json:"organization"`
}

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

func (v *CreateAppCreateAppCreateAppPayloadApp) __premarshalJSON() (*__premarshalCreateAppCreateAppCreateAppPayloadApp, error) {
	var retval __premarshalCreateAppCreateAppCreateAppPayloadApp

	retval.Config = v.Config
	retval.Regions = v.Regions
	retval.Id = v.AppData.Id
	retval.Name = v.AppData.Name
	retval.Deployed = v.AppData.Deployed
	retval.PlatformVersion = v.AppData.PlatformVersion
	retval.Organization = v.AppData.Organization
	return &retval, nil
}

// CreateAppCreateAppCreateAppPayloadAppConfig includes the requested fields of the GraphQL type AppConfig.
type CreateAppCreateAppCreateAppPayloadAppConfig struct {
	Definition interface{} `json:"definition"`
}

// GetDefinition returns CreateAppCreateAppCreateAppPayloadAppConfig.Definition, and is useful for accessing the field via an interface.
func (v *CreateAppCreateAppCreateAppPayloadAppConfig) GetDefinition() interface{} {
	return v.Definition
}

// CreateAppCreateAppCreateAppPayloadAppRegionsRegion includes the requested fields of the GraphQL type Region.
type CreateAppCreateAppCreateAppPayloadAppRegionsRegion struct {
	// The name of this region
	Name string `json:"name"`
	// The IATA airport code for this region
	Code string `json:"code"`
}

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

// GetCode returns CreateAppCreateAppCreateAppPayloadAppRegionsRegion.Code, and is useful for accessing the field via an interface.
func (v *CreateAppCreateAppCreateAppPayloadAppRegionsRegion) GetCode() string { return v.Code }

// Autogenerated input type of CreateApp
type CreateAppInput struct {
	AppRoleId string `json:"appRoleId"`
	// A unique identifier for the client performing the mutation.
	ClientMutationId string `json:"clientMutationId"`
	Heroku           bool   `json:"heroku"`
	Machines         bool   `json:"machines"`
	// The name of the new application. Defaults to a random name.
	Name    string `json:"name"`
	Network string `json:"network"`
	// The node ID of the organization
	OrganizationId  string `json:"organizationId"`
	PreferredRegion string `json:"preferredRegion"`
	// The application runtime
	Runtime RuntimeType `json:"runtime"`
}

// GetAppRoleId returns CreateAppInput.AppRoleId, and is useful for accessing the field via an interface.
func (v *CreateAppInput) GetAppRoleId() string { return v.AppRoleId }

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

// GetHeroku returns CreateAppInput.Heroku, and is useful for accessing the field via an interface.
func (v *CreateAppInput) GetHeroku() bool { return v.Heroku }

// GetMachines returns CreateAppInput.Machines, and is useful for accessing the field via an interface.
func (v *CreateAppInput) GetMachines() bool { return v.Machines }

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

// GetNetwork returns CreateAppInput.Network, and is useful for accessing the field via an interface.
func (v *CreateAppInput) GetNetwork() string { return v.Network }

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

// GetPreferredRegion returns CreateAppInput.PreferredRegion, and is useful for accessing the field via an interface.
func (v *CreateAppInput) GetPreferredRegion() string { return v.PreferredRegion }

// GetRuntime returns CreateAppInput.Runtime, and is useful for accessing the field via an interface.
func (v *CreateAppInput) GetRuntime() RuntimeType { return v.Runtime }

// CreateAppResponse is returned by CreateApp on success.
type CreateAppResponse struct {
	CreateApp CreateAppCreateAppCreateAppPayload `json:"createApp"`
}

// GetCreateApp returns CreateAppResponse.CreateApp, and is useful for accessing the field via an interface.
func (v *CreateAppResponse) GetCreateApp() CreateAppCreateAppCreateAppPayload { return v.CreateApp }

// Autogenerated input type of CreateBuild
type CreateBuildInput struct {
	// The name of the app being built
	AppName string `json:"appName"`
	// Whether builder is remote or local
	BuilderType string `json:"builderType"`
	// A unique identifier for the client performing the mutation.
	ClientMutationId string `json:"clientMutationId"`
	// Options set for building image
	ImageOpts BuildImageOptsInput `json:"imageOpts"`
	// The ID of the machine being built (only set for machine builds)
	MachineId string `json:"machineId"`
	// List of available build strategies that will be attempted
	StrategiesAvailable []string `json:"strategiesAvailable"`
}

// GetAppName returns CreateBuildInput.AppName, and is useful for accessing the field via an interface.
func (v *CreateBuildInput) GetAppName() string { return v.AppName }

// GetBuilderType returns CreateBuildInput.BuilderType, and is useful for accessing the field via an interface.
func (v *CreateBuildInput) GetBuilderType() string { return v.BuilderType }

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

// GetImageOpts returns CreateBuildInput.ImageOpts, and is useful for accessing the field via an interface.
func (v *CreateBuildInput) GetImageOpts() BuildImageOptsInput { return v.ImageOpts }

// GetMachineId returns CreateBuildInput.MachineId, and is useful for accessing the field via an interface.
func (v *CreateBuildInput) GetMachineId() string { return v.MachineId }

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

// CreateExtensionCreateAddOnCreateAddOnPayload includes the requested fields of the GraphQL type CreateAddOnPayload.
// The GraphQL type's documentation follows.
//
// Autogenerated return type of CreateAddOn.
type CreateExtensionCreateAddOnCreateAddOnPayload struct {
	AddOn CreateExtensionCreateAddOnCreateAddOnPayloadAddOn `json:"addOn"`
}

// GetAddOn returns CreateExtensionCreateAddOnCreateAddOnPayload.AddOn, and is useful for accessing the field via an interface.
func (v *CreateExtensionCreateAddOnCreateAddOnPayload) GetAddOn() CreateExtensionCreateAddOnCreateAddOnPayloadAddOn {
	return v.AddOn
}

// CreateExtensionCreateAddOnCreateAddOnPayloadAddOn includes the requested fields of the GraphQL type AddOn.
type CreateExtensionCreateAddOnCreateAddOnPayloadAddOn struct {
	ExtensionData `json:"-"`
}

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

// GetSsoLink returns CreateExtensionCreateAddOnCreateAddOnPayloadAddOn.SsoLink, and is useful for accessing the field via an interface.
func (v *CreateExtensionCreateAddOnCreateAddOnPayloadAddOn) GetSsoLink() string {
	return v.ExtensionData.SsoLink
}

// GetEnvironment returns CreateExtensionCreateAddOnCreateAddOnPayloadAddOn.Environment, and is useful for accessing the field via an interface.
func (v *CreateExtensionCreateAddOnCreateAddOnPayloadAddOn) GetEnvironment() interface{} {
	return v.ExtensionData.Environment
}

// GetPrimaryRegion returns CreateExtensionCreateAddOnCreateAddOnPayloadAddOn.PrimaryRegion, and is useful for accessing the field via an interface.
func (v *CreateExtensionCreateAddOnCreateAddOnPayloadAddOn) GetPrimaryRegion() string {
	return v.ExtensionData.PrimaryRegion
}

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

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

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

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

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

type __premarshalCreateExtensionCreateAddOnCreateAddOnPayloadAddOn struct {
	Name string `json:"name"`

	SsoLink string `json:"ssoLink"`

	Environment interface{} `json:"environment"`

	PrimaryRegion string `json:"primaryRegion"`
}

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

func (v *CreateExtensionCreateAddOnCreateAddOnPayloadAddOn) __premarshalJSON() (*__premarshalCreateExtensionCreateAddOnCreateAddOnPayloadAddOn, error) {
	var retval __premarshalCreateExtensionCreateAddOnCreateAddOnPayloadAddOn

	retval.Name = v.ExtensionData.Name
	retval.SsoLink = v.ExtensionData.SsoLink
	retval.Environment = v.ExtensionData.Environment
	retval.PrimaryRegion = v.ExtensionData.PrimaryRegion
	return &retval, nil
}

// CreateExtensionResponse is returned by CreateExtension on success.
type CreateExtensionResponse struct {
	CreateAddOn CreateExtensionCreateAddOnCreateAddOnPayload `json:"createAddOn"`
}

// GetCreateAddOn returns CreateExtensionResponse.CreateAddOn, and is useful for accessing the field via an interface.
func (v *CreateExtensionResponse) GetCreateAddOn() CreateExtensionCreateAddOnCreateAddOnPayload {
	return v.CreateAddOn
}

// Autogenerated input type of CreateExtensionTosAgreement
type CreateExtensionTosAgreementInput struct {
	// The add-on provider name
	AddOnProviderName string `json:"addOnProviderName"`
	// A unique identifier for the client performing the mutation.
	ClientMutationId string `json:"clientMutationId"`
	// The organization that agrees to the ToS
	OrganizationId string `json:"organizationId"`
}

// GetAddOnProviderName returns CreateExtensionTosAgreementInput.AddOnProviderName, and is useful for accessing the field via an interface.
func (v *CreateExtensionTosAgreementInput) GetAddOnProviderName() string { return v.AddOnProviderName }

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

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

// CreateLimitedAccessTokenCreateLimitedAccessTokenCreateLimitedAccessTokenPayload includes the requested fields of the GraphQL type CreateLimitedAccessTokenPayload.
// The GraphQL type's documentation follows.
//
// Autogenerated return type of CreateLimitedAccessToken.
type CreateLimitedAccessTokenCreateLimitedAccessTokenCreateLimitedAccessTokenPayload struct {
	LimitedAccessToken CreateLimitedAccessTokenCreateLimitedAccessTokenCreateLimitedAccessTokenPayloadLimitedAccessToken `json:"limitedAccessToken"`
}

// GetLimitedAccessToken returns CreateLimitedAccessTokenCreateLimitedAccessTokenCreateLimitedAccessTokenPayload.LimitedAccessToken, and is useful for accessing the field via an interface.
func (v *CreateLimitedAccessTokenCreateLimitedAccessTokenCreateLimitedAccessTokenPayload) GetLimitedAccessToken() CreateLimitedAccessTokenCreateLimitedAccessTokenCreateLimitedAccessTokenPayloadLimitedAccessToken {
	return v.LimitedAccessToken
}

// CreateLimitedAccessTokenCreateLimitedAccessTokenCreateLimitedAccessTokenPayloadLimitedAccessToken includes the requested fields of the GraphQL type LimitedAccessToken.
type CreateLimitedAccessTokenCreateLimitedAccessTokenCreateLimitedAccessTokenPayloadLimitedAccessToken struct {
	TokenHeader string `json:"tokenHeader"`
}

// GetTokenHeader returns CreateLimitedAccessTokenCreateLimitedAccessTokenCreateLimitedAccessTokenPayloadLimitedAccessToken.TokenHeader, and is useful for accessing the field via an interface.
func (v *CreateLimitedAccessTokenCreateLimitedAccessTokenCreateLimitedAccessTokenPayloadLimitedAccessToken) GetTokenHeader() string {
	return v.TokenHeader
}

// CreateLimitedAccessTokenResponse is returned by CreateLimitedAccessToken on success.
type CreateLimitedAccessTokenResponse struct {
	CreateLimitedAccessToken CreateLimitedAccessTokenCreateLimitedAccessTokenCreateLimitedAccessTokenPayload `json:"createLimitedAccessToken"`
}

// GetCreateLimitedAccessToken returns CreateLimitedAccessTokenResponse.CreateLimitedAccessToken, and is useful for accessing the field via an interface.
func (v *CreateLimitedAccessTokenResponse) GetCreateLimitedAccessToken() CreateLimitedAccessTokenCreateLimitedAccessTokenCreateLimitedAccessTokenPayload {
	return v.CreateLimitedAccessToken
}

// Autogenerated input type of CreateRelease
type CreateReleaseInput struct {
	// The ID of the app
	AppId string `json:"appId"`
	// A unique identifier for the client performing the mutation.
	ClientMutationId string `json:"clientMutationId"`
	// app definition
	Definition interface{} `json:"definition"`
	// The image to deploy
	Image string `json:"image"`
	// nomad or machines
	PlatformVersion string `json:"platformVersion"`
	// The strategy for replacing existing instances. Defaults to canary.
	Strategy DeploymentStrategy `json:"strategy"`
}

// GetAppId returns CreateReleaseInput.AppId, and is useful for accessing the field via an interface.
func (v *CreateReleaseInput) GetAppId() string { return v.AppId }

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

// GetDefinition returns CreateReleaseInput.Definition, and is useful for accessing the field via an interface.
func (v *CreateReleaseInput) GetDefinition() interface{} { return v.Definition }

// GetImage returns CreateReleaseInput.Image, and is useful for accessing the field via an interface.
func (v *CreateReleaseInput) GetImage() string { return v.Image }

// GetPlatformVersion returns CreateReleaseInput.PlatformVersion, and is useful for accessing the field via an interface.
func (v *CreateReleaseInput) GetPlatformVersion() string { return v.PlatformVersion }

// GetStrategy returns CreateReleaseInput.Strategy, and is useful for accessing the field via an interface.
func (v *CreateReleaseInput) GetStrategy() DeploymentStrategy { return v.Strategy }

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

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

// CreateTosAgreementResponse is returned by CreateTosAgreement on success.
type CreateTosAgreementResponse struct {
	CreateExtensionTosAgreement CreateTosAgreementCreateExtensionTosAgreementCreateExtensionTosAgreementPayload `json:"createExtensionTosAgreement"`
}

// GetCreateExtensionTosAgreement returns CreateTosAgreementResponse.CreateExtensionTosAgreement, and is useful for accessing the field via an interface.
func (v *CreateTosAgreementResponse) GetCreateExtensionTosAgreement() CreateTosAgreementCreateExtensionTosAgreementCreateExtensionTosAgreementPayload {
	return v.CreateExtensionTosAgreement
}

// DeleteAddOnDeleteAddOnDeleteAddOnPayload includes the requested fields of the GraphQL type DeleteAddOnPayload.
// The GraphQL type's documentation follows.
//
// Autogenerated return type of DeleteAddOn.
type DeleteAddOnDeleteAddOnDeleteAddOnPayload struct {
	DeletedAddOnName string `json:"deletedAddOnName"`
}

// GetDeletedAddOnName returns DeleteAddOnDeleteAddOnDeleteAddOnPayload.DeletedAddOnName, and is useful for accessing the field via an interface.
func (v *DeleteAddOnDeleteAddOnDeleteAddOnPayload) GetDeletedAddOnName() string {
	return v.DeletedAddOnName
}

// DeleteAddOnResponse is returned by DeleteAddOn on success.
type DeleteAddOnResponse struct {
	DeleteAddOn DeleteAddOnDeleteAddOnDeleteAddOnPayload `json:"deleteAddOn"`
}

// GetDeleteAddOn returns DeleteAddOnResponse.DeleteAddOn, and is useful for accessing the field via an interface.
func (v *DeleteAddOnResponse) GetDeleteAddOn() DeleteAddOnDeleteAddOnDeleteAddOnPayload {
	return v.DeleteAddOn
}

type DeploymentStrategy string

const (
	// Launch all new instances before shutting down previous instances
	DeploymentStrategyBluegreen DeploymentStrategy = "BLUEGREEN"
	// Ensure new instances are healthy before continuing with a rolling deployment
	DeploymentStrategyCanary DeploymentStrategy = "CANARY"
	// Deploy new instances all at once
	DeploymentStrategyImmediate DeploymentStrategy = "IMMEDIATE"
	// Incrementally replace old instances with new ones
	DeploymentStrategyRolling DeploymentStrategy = "ROLLING"
	// Incrementally replace old instances with new ones, 1 by 1
	DeploymentStrategyRollingOne DeploymentStrategy = "ROLLING_ONE"
	// Deploy new instances all at once
	DeploymentStrategySimple DeploymentStrategy = "SIMPLE"
)

// ExtensionData includes the GraphQL fields of AddOn requested by the fragment ExtensionData.
type ExtensionData struct {
	// The service name according to the provider
	Name string `json:"name"`
	// Single sign-on link to the add-on dashboard
	SsoLink string `json:"ssoLink"`
	// Environment variables for the add-on
	Environment interface{} `json:"environment"`
	// Region where the primary instance is deployed
	PrimaryRegion string `json:"primaryRegion"`
}

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

// GetSsoLink returns ExtensionData.SsoLink, and is useful for accessing the field via an interface.
func (v *ExtensionData) GetSsoLink() string { return v.SsoLink }

// GetEnvironment returns ExtensionData.Environment, and is useful for accessing the field via an interface.
func (v *ExtensionData) GetEnvironment() interface{} { return v.Environment }

// GetPrimaryRegion returns ExtensionData.PrimaryRegion, and is useful for accessing the field via an interface.
func (v *ExtensionData) GetPrimaryRegion() string { return v.PrimaryRegion }

// ExtensionProviderData includes the GraphQL fields of AddOnProvider requested by the fragment ExtensionProviderData.
type ExtensionProviderData struct {
	Id                       string                                       `json:"id"`
	Name                     string                                       `json:"name"`
	DisplayName              string                                       `json:"displayName"`
	TosUrl                   string                                       `json:"tosUrl"`
	AsyncProvisioning        bool                                         `json:"asyncProvisioning"`
	AutoProvision            bool                                         `json:"autoProvision"`
	SelectName               bool                                         `json:"selectName"`
	SelectRegion             bool                                         `json:"selectRegion"`
	SelectReplicaRegions     bool                                         `json:"selectReplicaRegions"`
	DetectPlatform           bool                                         `json:"detectPlatform"`
	ResourceName             string                                       `json:"resourceName"`
	NameSuffix               string                                       `json:"nameSuffix"`
	Beta                     bool                                         `json:"beta"`
	TosAgreement             string                                       `json:"tosAgreement"`
	ProvisioningInstructions string                                       `json:"provisioningInstructions"`
	ExcludedRegions          []ExtensionProviderDataExcludedRegionsRegion `json:"excludedRegions"`
}

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

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

// GetDisplayName returns ExtensionProviderData.DisplayName, and is useful for accessing the field via an interface.
func (v *ExtensionProviderData) GetDisplayName() string { return v.DisplayName }

// GetTosUrl returns ExtensionProviderData.TosUrl, and is useful for accessing the field via an interface.
func (v *ExtensionProviderData) GetTosUrl() string { return v.TosUrl }

// GetAsyncProvisioning returns ExtensionProviderData.AsyncProvisioning, and is useful for accessing the field via an interface.
func (v *ExtensionProviderData) GetAsyncProvisioning() bool { return v.AsyncProvisioning }

// GetAutoProvision returns ExtensionProviderData.AutoProvision, and is useful for accessing the field via an interface.
func (v *ExtensionProviderData) GetAutoProvision() bool { return v.AutoProvision }

// GetSelectName returns ExtensionProviderData.SelectName, and is useful for accessing the field via an interface.
func (v *ExtensionProviderData) GetSelectName() bool { return v.SelectName }

// GetSelectRegion returns ExtensionProviderData.SelectRegion, and is useful for accessing the field via an interface.
func (v *ExtensionProviderData) GetSelectRegion() bool { return v.SelectRegion }

// GetSelectReplicaRegions returns ExtensionProviderData.SelectReplicaRegions, and is useful for accessing the field via an interface.
func (v *ExtensionProviderData) GetSelectReplicaRegions() bool { return v.SelectReplicaRegions }

// GetDetectPlatform returns ExtensionProviderData.DetectPlatform, and is useful for accessing the field via an interface.
func (v *ExtensionProviderData) GetDetectPlatform() bool { return v.DetectPlatform }

// GetResourceName returns ExtensionProviderData.ResourceName, and is useful for accessing the field via an interface.
func (v *ExtensionProviderData) GetResourceName() string { return v.ResourceName }

// GetNameSuffix returns ExtensionProviderData.NameSuffix, and is useful for accessing the field via an interface.
func (v *ExtensionProviderData) GetNameSuffix() string { return v.NameSuffix }

// GetBeta returns ExtensionProviderData.Beta, and is useful for accessing the field via an interface.
func (v *ExtensionProviderData) GetBeta() bool { return v.Beta }

// GetTosAgreement returns ExtensionProviderData.TosAgreement, and is useful for accessing the field via an interface.
func (v *ExtensionProviderData) GetTosAgreement() string { return v.TosAgreement }

// GetProvisioningInstructions returns ExtensionProviderData.ProvisioningInstructions, and is useful for accessing the field via an interface.
func (v *ExtensionProviderData) GetProvisioningInstructions() string {
	return v.ProvisioningInstructions
}

// GetExcludedRegions returns ExtensionProviderData.ExcludedRegions, and is useful for accessing the field via an interface.
func (v *ExtensionProviderData) GetExcludedRegions() []ExtensionProviderDataExcludedRegionsRegion {
	return v.ExcludedRegions
}

// ExtensionProviderDataExcludedRegionsRegion includes the requested fields of the GraphQL type Region.
type ExtensionProviderDataExcludedRegionsRegion struct {
	// The IATA airport code for this region
	Code string `json:"code"`
}

// GetCode returns ExtensionProviderDataExcludedRegionsRegion.Code, and is useful for accessing the field via an interface.
func (v *ExtensionProviderDataExcludedRegionsRegion) GetCode() string { return v.Code }

// Autogenerated input type of FinishBuild
type FinishBuildInput struct {
	// The name of the app being built
	AppName string `json:"appName"`
	// Build id returned by createBuild() mutation
	BuildId string `json:"buildId"`
	// Metadata about the builder
	BuilderMeta BuilderMetaInput `json:"builderMeta"`
	// A unique identifier for the client performing the mutation.
	ClientMutationId string `json:"clientMutationId"`
	// Information about the docker image that was built
	FinalImage BuildFinalImageInput `json:"finalImage"`
	// Log or error output
	Logs string `json:"logs"`
	// The ID of the machine being built (only set for machine builds)
	MachineId string `json:"machineId"`
	// Indicate whether build completed or failed
	Status string `json:"status"`
	// Build strategies attempted and their result, should be in order of attempt
	StrategiesAttempted []BuildStrategyAttemptInput `json:"strategiesAttempted"`
	// Timings for different phases of the build
	Timings BuildTimingsInput `json:"timings"`
}

// GetAppName returns FinishBuildInput.AppName, and is useful for accessing the field via an interface.
func (v *FinishBuildInput) GetAppName() string { return v.AppName }

// GetBuildId returns FinishBuildInput.BuildId, and is useful for accessing the field via an interface.
func (v *FinishBuildInput) GetBuildId() string { return v.BuildId }

// GetBuilderMeta returns FinishBuildInput.BuilderMeta, and is useful for accessing the field via an interface.
func (v *FinishBuildInput) GetBuilderMeta() BuilderMetaInput { return v.BuilderMeta }

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

// GetFinalImage returns FinishBuildInput.FinalImage, and is useful for accessing the field via an interface.
func (v *FinishBuildInput) GetFinalImage() BuildFinalImageInput { return v.FinalImage }

// GetLogs returns FinishBuildInput.Logs, and is useful for accessing the field via an interface.
func (v *FinishBuildInput) GetLogs() string { return v.Logs }

// GetMachineId returns FinishBuildInput.MachineId, and is useful for accessing the field via an interface.
func (v *FinishBuildInput) GetMachineId() string { return v.MachineId }

// GetStatus returns FinishBuildInput.Status, and is useful for accessing the field via an interface.
func (v *FinishBuildInput) GetStatus() string { return v.Status }

// GetStrategiesAttempted returns FinishBuildInput.StrategiesAttempted, and is useful for accessing the field via an interface.
func (v *FinishBuildInput) GetStrategiesAttempted() []BuildStrategyAttemptInput {
	return v.StrategiesAttempted
}

// GetTimings returns FinishBuildInput.Timings, and is useful for accessing the field via an interface.
func (v *FinishBuildInput) GetTimings() BuildTimingsInput { return v.Timings }

// FlyctlConfigCurrentReleaseApp includes the requested fields of the GraphQL type App.
type FlyctlConfigCurrentReleaseApp struct {
	// The latest release of this application, without any config processing
	CurrentReleaseUnprocessed FlyctlConfigCurrentReleaseAppCurrentReleaseUnprocessed `json:"currentReleaseUnprocessed"`
}

// GetCurrentReleaseUnprocessed returns FlyctlConfigCurrentReleaseApp.CurrentReleaseUnprocessed, and is useful for accessing the field via an interface.
func (v *FlyctlConfigCurrentReleaseApp) GetCurrentReleaseUnprocessed() FlyctlConfigCurrentReleaseAppCurrentReleaseUnprocessed {
	return v.CurrentReleaseUnprocessed
}

// FlyctlConfigCurrentReleaseAppCurrentReleaseUnprocessed includes the requested fields of the GraphQL type ReleaseUnprocessed.
type FlyctlConfigCurrentReleaseAppCurrentReleaseUnprocessed struct {
	ConfigDefinition interface{} `json:"configDefinition"`
}

// GetConfigDefinition returns FlyctlConfigCurrentReleaseAppCurrentReleaseUnprocessed.ConfigDefinition, and is useful for accessing the field via an interface.
func (v *FlyctlConfigCurrentReleaseAppCurrentReleaseUnprocessed) GetConfigDefinition() interface{} {
	return v.ConfigDefinition
}

// FlyctlConfigCurrentReleaseResponse is returned by FlyctlConfigCurrentRelease on success.
type FlyctlConfigCurrentReleaseResponse struct {
	// Find an app by name
	App FlyctlConfigCurrentReleaseApp `json:"app"`
}

// GetApp returns FlyctlConfigCurrentReleaseResponse.App, and is useful for accessing the field via an interface.
func (v *FlyctlConfigCurrentReleaseResponse) GetApp() FlyctlConfigCurrentReleaseApp { return v.App }

// FlyctlDeployGetLatestImageApp includes the requested fields of the GraphQL type App.
type FlyctlDeployGetLatestImageApp struct {
	// The latest release of this application, without any config processing
	CurrentReleaseUnprocessed FlyctlDeployGetLatestImageAppCurrentReleaseUnprocessed `json:"currentReleaseUnprocessed"`
}

// GetCurrentReleaseUnprocessed returns FlyctlDeployGetLatestImageApp.CurrentReleaseUnprocessed, and is useful for accessing the field via an interface.
func (v *FlyctlDeployGetLatestImageApp) GetCurrentReleaseUnprocessed() FlyctlDeployGetLatestImageAppCurrentReleaseUnprocessed {
	return v.CurrentReleaseUnprocessed
}

// FlyctlDeployGetLatestImageAppCurrentReleaseUnprocessed includes the requested fields of the GraphQL type ReleaseUnprocessed.
type FlyctlDeployGetLatestImageAppCurrentReleaseUnprocessed struct {
	// Unique ID
	Id string `json:"id"`
	// The version of the release
	Version int `json:"version"`
	// Docker image URI
	ImageRef string `json:"imageRef"`
}

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

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

// GetImageRef returns FlyctlDeployGetLatestImageAppCurrentReleaseUnprocessed.ImageRef, and is useful for accessing the field via an interface.
func (v *FlyctlDeployGetLatestImageAppCurrentReleaseUnprocessed) GetImageRef() string {
	return v.ImageRef
}

// FlyctlDeployGetLatestImageResponse is returned by FlyctlDeployGetLatestImage on success.
type FlyctlDeployGetLatestImageResponse struct {
	// Find an app by name
	App FlyctlDeployGetLatestImageApp `json:"app"`
}

// GetApp returns FlyctlDeployGetLatestImageResponse.App, and is useful for accessing the field via an interface.
func (v *FlyctlDeployGetLatestImageResponse) GetApp() FlyctlDeployGetLatestImageApp { return v.App }

// GetAddOnAddOn includes the requested fields of the GraphQL type AddOn.
type GetAddOnAddOn struct {
	AddOnData `json:"-"`
	// Public URL for this service
	PublicUrl string `json:"publicUrl"`
	// Private flycast IP address of the add-on
	PrivateIp string `json:"privateIp"`
	// Password for the add-on
	Password string `json:"password"`
	// Status of the add-on
	Status string `json:"status"`
	// Region where the primary instance is deployed
	PrimaryRegion string `json:"primaryRegion"`
	// Regions where replica instances are deployed
	ReadRegions []string `json:"readRegions"`
	// Add-on options
	Options interface{} `json:"options"`
	// Single sign-on link to the add-on dashboard
	SsoLink string `json:"ssoLink"`
	// Organization that owns this service
	Organization GetAddOnAddOnOrganization `json:"organization"`
	// An app associated with this add-on
	App GetAddOnAddOnApp `json:"app"`
	// The add-on plan
	AddOnPlan GetAddOnAddOnAddOnPlan `json:"addOnPlan"`
}

// GetPublicUrl returns GetAddOnAddOn.PublicUrl, and is useful for accessing the field via an interface.
func (v *GetAddOnAddOn) GetPublicUrl() string { return v.PublicUrl }

// GetPrivateIp returns GetAddOnAddOn.PrivateIp, and is useful for accessing the field via an interface.
func (v *GetAddOnAddOn) GetPrivateIp() string { return v.PrivateIp }

// GetPassword returns GetAddOnAddOn.Password, and is useful for accessing the field via an interface.
func (v *GetAddOnAddOn) GetPassword() string { return v.Password }

// GetStatus returns GetAddOnAddOn.Status, and is useful for accessing the field via an interface.
func (v *GetAddOnAddOn) GetStatus() string { return v.Status }

// GetPrimaryRegion returns GetAddOnAddOn.PrimaryRegion, and is useful for accessing the field via an interface.
func (v *GetAddOnAddOn) GetPrimaryRegion() string { return v.PrimaryRegion }

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

// GetOptions returns GetAddOnAddOn.Options, and is useful for accessing the field via an interface.
func (v *GetAddOnAddOn) GetOptions() interface{} { return v.Options }

// GetSsoLink returns GetAddOnAddOn.SsoLink, and is useful for accessing the field via an interface.
func (v *GetAddOnAddOn) GetSsoLink() string { return v.SsoLink }

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

// GetApp returns GetAddOnAddOn.App, and is useful for accessing the field via an interface.
func (v *GetAddOnAddOn) GetApp() GetAddOnAddOnApp { return v.App }

// GetAddOnPlan returns GetAddOnAddOn.AddOnPlan, and is useful for accessing the field via an interface.
func (v *GetAddOnAddOn) GetAddOnPlan() GetAddOnAddOnAddOnPlan { return v.AddOnPlan }

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

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

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

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

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

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

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

type __premarshalGetAddOnAddOn struct {
	PublicUrl string `json:"publicUrl"`

	PrivateIp string `json:"privateIp"`

	Password string `json:"password"`

	Status string `json:"status"`

	PrimaryRegion string `json:"primaryRegion"`

	ReadRegions []string `json:"readRegions"`

	Options interface{} `json:"options"`

	SsoLink string `json:"ssoLink"`

	Organization GetAddOnAddOnOrganization `json:"organization"`

	App GetAddOnAddOnApp `json:"app"`

	AddOnPlan GetAddOnAddOnAddOnPlan `json:"addOnPlan"`

	Id string `json:"id"`

	Name string `json:"name"`
}

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

func (v *GetAddOnAddOn) __premarshalJSON() (*__premarshalGetAddOnAddOn, error) {
	var retval __premarshalGetAddOnAddOn

	retval.PublicUrl = v.PublicUrl
	retval.PrivateIp = v.PrivateIp
	retval.Password = v.Password
	retval.Status = v.Status
	retval.PrimaryRegion = v.PrimaryRegion
	retval.ReadRegions = v.ReadRegions
	retval.Options = v.Options
	retval.SsoLink = v.SsoLink
	retval.Organization = v.Organization
	retval.App = v.App
	retval.AddOnPlan = v.AddOnPlan
	retval.Id = v.AddOnData.Id
	retval.Name = v.AddOnData.Name
	return &retval, nil
}

// GetAddOnAddOnAddOnPlan includes the requested fields of the GraphQL type AddOnPlan.
type GetAddOnAddOnAddOnPlan struct {
	Id          string `json:"id"`
	Name        string `json:"name"`
	DisplayName string `json:"displayName"`
}

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

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

// GetDisplayName returns GetAddOnAddOnAddOnPlan.DisplayName, and is useful for accessing the field via an interface.
func (v *GetAddOnAddOnAddOnPlan) GetDisplayName() string { return v.DisplayName }

// GetAddOnAddOnApp includes the requested fields of the GraphQL type App.
type GetAddOnAddOnApp struct {
	AppData `json:"-"`
}

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

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

// GetDeployed returns GetAddOnAddOnApp.Deployed, and is useful for accessing the field via an interface.
func (v *GetAddOnAddOnApp) GetDeployed() bool { return v.AppData.Deployed }

// GetPlatformVersion returns GetAddOnAddOnApp.PlatformVersion, and is useful for accessing the field via an interface.
func (v *GetAddOnAddOnApp) GetPlatformVersion() PlatformVersionEnum { return v.AppData.PlatformVersion }

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

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

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

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

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

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

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

	Name string `json:"name"`

	Deployed bool `json:"deployed"`

	PlatformVersion PlatformVersionEnum `json:"platformVersion"`

	Organization AppDataOrganization `json:"organization"`
}

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

func (v *GetAddOnAddOnApp) __premarshalJSON() (*__premarshalGetAddOnAddOnApp, error) {
	var retval __premarshalGetAddOnAddOnApp

	retval.Id = v.AppData.Id
	retval.Name = v.AppData.Name
	retval.Deployed = v.AppData.Deployed
	retval.PlatformVersion = v.AppData.PlatformVersion
	retval.Organization = v.AppData.Organization
	return &retval, nil
}

// GetAddOnAddOnOrganization includes the requested fields of the GraphQL type Organization.
type GetAddOnAddOnOrganization struct {
	// Unique organization slug
	Slug     string `json:"slug"`
	PaidPlan bool   `json:"paidPlan"`
}

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

// GetPaidPlan returns GetAddOnAddOnOrganization.PaidPlan, and is useful for accessing the field via an interface.
func (v *GetAddOnAddOnOrganization) GetPaidPlan() bool { return v.PaidPlan }

// GetAddOnProviderAddOnProvider includes the requested fields of the GraphQL type AddOnProvider.
type GetAddOnProviderAddOnProvider struct {
	ExtensionProviderData `json:"-"`
}

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

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

// GetDisplayName returns GetAddOnProviderAddOnProvider.DisplayName, and is useful for accessing the field via an interface.
func (v *GetAddOnProviderAddOnProvider) GetDisplayName() string {
	return v.ExtensionProviderData.DisplayName
}

// GetTosUrl returns GetAddOnProviderAddOnProvider.TosUrl, and is useful for accessing the field via an interface.
func (v *GetAddOnProviderAddOnProvider) GetTosUrl() string { return v.ExtensionProviderData.TosUrl }

// GetAsyncProvisioning returns GetAddOnProviderAddOnProvider.AsyncProvisioning, and is useful for accessing the field via an interface.
func (v *GetAddOnProviderAddOnProvider) GetAsyncProvisioning() bool {
	return v.ExtensionProviderData.AsyncProvisioning
}

// GetAutoProvision returns GetAddOnProviderAddOnProvider.AutoProvision, and is useful for accessing the field via an interface.
func (v *GetAddOnProviderAddOnProvider) GetAutoProvision() bool {
	return v.ExtensionProviderData.AutoProvision
}

// GetSelectName returns GetAddOnProviderAddOnProvider.SelectName, and is useful for accessing the field via an interface.
func (v *GetAddOnProviderAddOnProvider) GetSelectName() bool {
	return v.ExtensionProviderData.SelectName
}

// GetSelectRegion returns GetAddOnProviderAddOnProvider.SelectRegion, and is useful for accessing the field via an interface.
func (v *GetAddOnProviderAddOnProvider) GetSelectRegion() bool {
	return v.ExtensionProviderData.SelectRegion
}

// GetSelectReplicaRegions returns GetAddOnProviderAddOnProvider.SelectReplicaRegions, and is useful for accessing the field via an interface.
func (v *GetAddOnProviderAddOnProvider) GetSelectReplicaRegions() bool {
	return v.ExtensionProviderData.SelectReplicaRegions
}

// GetDetectPlatform returns GetAddOnProviderAddOnProvider.DetectPlatform, and is useful for accessing the field via an interface.
func (v *GetAddOnProviderAddOnProvider) GetDetectPlatform() bool {
	return v.ExtensionProviderData.DetectPlatform
}

// GetResourceName returns GetAddOnProviderAddOnProvider.ResourceName, and is useful for accessing the field via an interface.
func (v *GetAddOnProviderAddOnProvider) GetResourceName() string {
	return v.ExtensionProviderData.ResourceName
}

// GetNameSuffix returns GetAddOnProviderAddOnProvider.NameSuffix, and is useful for accessing the field via an interface.
func (v *GetAddOnProviderAddOnProvider) GetNameSuffix() string {
	return v.ExtensionProviderData.NameSuffix
}

// GetBeta returns GetAddOnProviderAddOnProvider.Beta, and is useful for accessing the field via an interface.
func (v *GetAddOnProviderAddOnProvider) GetBeta() bool { return v.ExtensionProviderData.Beta }

// GetTosAgreement returns GetAddOnProviderAddOnProvider.TosAgreement, and is useful for accessing the field via an interface.
func (v *GetAddOnProviderAddOnProvider) GetTosAgreement() string {
	return v.ExtensionProviderData.TosAgreement
}

// GetProvisioningInstructions returns GetAddOnProviderAddOnProvider.ProvisioningInstructions, and is useful for accessing the field via an interface.
func (v *GetAddOnProviderAddOnProvider) GetProvisioningInstructions() string {
	return v.ExtensionProviderData.ProvisioningInstructions
}

// GetExcludedRegions returns GetAddOnProviderAddOnProvider.ExcludedRegions, and is useful for accessing the field via an interface.
func (v *GetAddOnProviderAddOnProvider) GetExcludedRegions() []ExtensionProviderDataExcludedRegionsRegion {
	return v.ExtensionProviderData.ExcludedRegions
}

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

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

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

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

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

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

	Name string `json:"name"`

	DisplayName string `json:"displayName"`

	TosUrl string `json:"tosUrl"`

	AsyncProvisioning bool `json:"asyncProvisioning"`

	AutoProvision bool `json:"autoProvision"`

	SelectName bool `json:"selectName"`

	SelectRegion bool `json:"selectRegion"`

	SelectReplicaRegions bool `json:"selectReplicaRegions"`

	DetectPlatform bool `json:"detectPlatform"`

	ResourceName string `json:"resourceName"`

	NameSuffix string `json:"nameSuffix"`

	Beta bool `json:"beta"`

	TosAgreement string `json:"tosAgreement"`

	ProvisioningInstructions string `json:"provisioningInstructions"`

	ExcludedRegions []ExtensionProviderDataExcludedRegionsRegion `json:"excludedRegions"`
}

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

func (v *GetAddOnProviderAddOnProvider) __premarshalJSON() (*__premarshalGetAddOnProviderAddOnProvider, error) {
	var retval __premarshalGetAddOnProviderAddOnProvider

	retval.Id = v.ExtensionProviderData.Id
	retval.Name = v.ExtensionProviderData.Name
	retval.DisplayName = v.ExtensionProviderData.DisplayName
	retval.TosUrl = v.ExtensionProviderData.TosUrl
	retval.AsyncProvisioning = v.ExtensionProviderData.AsyncProvisioning
	retval.AutoProvision = v.ExtensionProviderData.AutoProvision
	retval.SelectName = v.ExtensionProviderData.SelectName
	retval.SelectRegion = v.ExtensionProviderData.SelectRegion
	retval.SelectReplicaRegions = v.ExtensionProviderData.SelectReplicaRegions
	retval.DetectPlatform = v.ExtensionProviderData.DetectPlatform
	retval.ResourceName = v.ExtensionProviderData.ResourceName
	retval.NameSuffix = v.ExtensionProviderData.NameSuffix
	retval.Beta = v.ExtensionProviderData.Beta
	retval.TosAgreement = v.ExtensionProviderData.TosAgreement
	retval.ProvisioningInstructions = v.ExtensionProviderData.ProvisioningInstructions
	retval.ExcludedRegions = v.ExtensionProviderData.ExcludedRegions
	return &retval, nil
}

// GetAddOnProviderResponse is returned by GetAddOnProvider on success.
type GetAddOnProviderResponse struct {
	AddOnProvider GetAddOnProviderAddOnProvider `json:"addOnProvider"`
}

// GetAddOnProvider returns GetAddOnProviderResponse.AddOnProvider, and is useful for accessing the field via an interface.
func (v *GetAddOnProviderResponse) GetAddOnProvider() GetAddOnProviderAddOnProvider {
	return v.AddOnProvider
}

// GetAddOnResponse is returned by GetAddOn on success.
type GetAddOnResponse struct {
	// Find an add-on by ID or name
	AddOn GetAddOnAddOn `json:"addOn"`
}

// GetAddOn returns GetAddOnResponse.AddOn, and is useful for accessing the field via an interface.
func (v *GetAddOnResponse) GetAddOn() GetAddOnAddOn { return v.AddOn }

// GetAppApp includes the requested fields of the GraphQL type App.
type GetAppApp struct {
	AppData `json:"-"`
}

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

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

// GetDeployed returns GetAppApp.Deployed, and is useful for accessing the field via an interface.
func (v *GetAppApp) GetDeployed() bool { return v.AppData.Deployed }

// GetPlatformVersion returns GetAppApp.PlatformVersion, and is useful for accessing the field via an interface.
func (v *GetAppApp) GetPlatformVersion() PlatformVersionEnum { return v.AppData.PlatformVersion }

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

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

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

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

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

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

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

	Name string `json:"name"`

	Deployed bool `json:"deployed"`

	PlatformVersion PlatformVersionEnum `json:"platformVersion"`

	Organization AppDataOrganization `json:"organization"`
}

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

func (v *GetAppApp) __premarshalJSON() (*__premarshalGetAppApp, error) {
	var retval __premarshalGetAppApp

	retval.Id = v.AppData.Id
	retval.Name = v.AppData.Name
	retval.Deployed = v.AppData.Deployed
	retval.PlatformVersion = v.AppData.PlatformVersion
	retval.Organization = v.AppData.Organization
	return &retval, nil
}

// GetAppLockApp includes the requested fields of the GraphQL type App.
type GetAppLockApp struct {
	CurrentLock *GetAppLockAppCurrentLockAppLock `json:"currentLock"`
}

// GetCurrentLock returns GetAppLockApp.CurrentLock, and is useful for accessing the field via an interface.
func (v *GetAppLockApp) GetCurrentLock() *GetAppLockAppCurrentLockAppLock { return v.CurrentLock }

// GetAppLockAppCurrentLockAppLock includes the requested fields of the GraphQL type AppLock.
// The GraphQL type's documentation follows.
//
// app lock
type GetAppLockAppCurrentLockAppLock struct {
	// Lock ID
	LockId string `json:"lockId"`
	// Time when the lock expires
	Expiration time.Time `json:"expiration"`
}

// GetLockId returns GetAppLockAppCurrentLockAppLock.LockId, and is useful for accessing the field via an interface.
func (v *GetAppLockAppCurrentLockAppLock) GetLockId() string { return v.LockId }

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

// GetAppLockResponse is returned by GetAppLock on success.
type GetAppLockResponse struct {
	// Find an app by name
	App GetAppLockApp `json:"app"`
}

// GetApp returns GetAppLockResponse.App, and is useful for accessing the field via an interface.
func (v *GetAppLockResponse) GetApp() GetAppLockApp { return v.App }

// GetAppResponse is returned by GetApp on success.
type GetAppResponse struct {
	// Find an app by name
	App GetAppApp `json:"app"`
}

// GetApp returns GetAppResponse.App, and is useful for accessing the field via an interface.
func (v *GetAppResponse) GetApp() GetAppApp { return v.App }

// GetAppWithAddonsApp includes the requested fields of the GraphQL type App.
type GetAppWithAddonsApp struct {
	AppData `json:"-"`
	AddOns  GetAppWithAddonsAppAddOnsAddOnConnection `json:"addOns"`
}

// GetAddOns returns GetAppWithAddonsApp.AddOns, and is useful for accessing the field via an interface.
func (v *GetAppWithAddonsApp) GetAddOns() GetAppWithAddonsAppAddOnsAddOnConnection { return v.AddOns }

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

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

// GetDeployed returns GetAppWithAddonsApp.Deployed, and is useful for accessing the field via an interface.
func (v *GetAppWithAddonsApp) GetDeployed() bool { return v.AppData.Deployed }

// GetPlatformVersion returns GetAppWithAddonsApp.PlatformVersion, and is useful for accessing the field via an interface.
func (v *GetAppWithAddonsApp) GetPlatformVersion() PlatformVersionEnum {
	return v.AppData.PlatformVersion
}

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

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

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

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

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

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

type __premarshalGetAppWithAddonsApp struct {
	AddOns GetAppWithAddonsAppAddOnsAddOnConnection `json:"addOns"`

	Id string `json:"id"`

	Name string `json:"name"`

	Deployed bool `json:"deployed"`

	PlatformVersion PlatformVersionEnum `json:"platformVersion"`

	Organization AppDataOrganization `json:"organization"`
}

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

func (v *GetAppWithAddonsApp) __premarshalJSON() (*__premarshalGetAppWithAddonsApp, error) {
	var retval __premarshalGetAppWithAddonsApp

	retval.AddOns = v.AddOns
	retval.Id = v.AppData.Id
	retval.Name = v.AppData.Name
	retval.Deployed = v.AppData.Deployed
	retval.PlatformVersion = v.AppData.PlatformVersion
	retval.Organization = v.AppData.Organization
	return &retval, nil
}

// GetAppWithAddonsAppAddOnsAddOnConnection includes the requested fields of the GraphQL type AddOnConnection.
// The GraphQL type's documentation follows.
//
// The connection type for AddOn.
type GetAppWithAddonsAppAddOnsAddOnConnection struct {
	// A list of nodes.
	Nodes []GetAppWithAddonsAppAddOnsAddOnConnectionNodesAddOn `json:"nodes"`
}

// GetNodes returns GetAppWithAddonsAppAddOnsAddOnConnection.Nodes, and is useful for accessing the field via an interface.
func (v *GetAppWithAddonsAppAddOnsAddOnConnection) GetNodes() []GetAppWithAddonsAppAddOnsAddOnConnectionNodesAddOn {
	return v.Nodes
}

// GetAppWithAddonsAppAddOnsAddOnConnectionNodesAddOn includes the requested fields of the GraphQL type AddOn.
type GetAppWithAddonsAppAddOnsAddOnConnectionNodesAddOn struct {
	AddOnData `json:"-"`
}

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

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

// GetPrimaryRegion returns GetAppWithAddonsAppAddOnsAddOnConnectionNodesAddOn.PrimaryRegion, and is useful for accessing the field via an interface.
func (v *GetAppWithAddonsAppAddOnsAddOnConnectionNodesAddOn) GetPrimaryRegion() string {
	return v.AddOnData.PrimaryRegion
}

// GetStatus returns GetAppWithAddonsAppAddOnsAddOnConnectionNodesAddOn.Status, and is useful for accessing the field via an interface.
func (v *GetAppWithAddonsAppAddOnsAddOnConnectionNodesAddOn) GetStatus() string {
	return v.AddOnData.Status
}

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

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

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

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

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

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

	Name string `json:"name"`

	PrimaryRegion string `json:"primaryRegion"`

	Status string `json:"status"`
}

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

func (v *GetAppWithAddonsAppAddOnsAddOnConnectionNodesAddOn) __premarshalJSON() (*__premarshalGetAppWithAddonsAppAddOnsAddOnConnectionNodesAddOn, error) {
	var retval __premarshalGetAppWithAddonsAppAddOnsAddOnConnectionNodesAddOn

	retval.Id = v.AddOnData.Id
	retval.Name = v.AddOnData.Name
	retval.PrimaryRegion = v.AddOnData.PrimaryRegion
	retval.Status = v.AddOnData.Status
	return &retval, nil
}

// GetAppWithAddonsResponse is returned by GetAppWithAddons on success.
type GetAppWithAddonsResponse struct {
	// Find an app by name
	App GetAppWithAddonsApp `json:"app"`
}

// GetApp returns GetAppWithAddonsResponse.App, and is useful for accessing the field via an interface.
func (v *GetAppWithAddonsResponse) GetApp() GetAppWithAddonsApp { return v.App }

// GetAppsByRoleAppsAppConnection includes the requested fields of the GraphQL type AppConnection.
// The GraphQL type's documentation follows.
//
// The connection type for App.
type GetAppsByRoleAppsAppConnection struct {
	// A list of nodes.
	Nodes []GetAppsByRoleAppsAppConnectionNodesApp `json:"nodes"`
}

// GetNodes returns GetAppsByRoleAppsAppConnection.Nodes, and is useful for accessing the field via an interface.
func (v *GetAppsByRoleAppsAppConnection) GetNodes() []GetAppsByRoleAppsAppConnectionNodesApp {
	return v.Nodes
}

// GetAppsByRoleAppsAppConnectionNodesApp includes the requested fields of the GraphQL type App.
type GetAppsByRoleAppsAppConnectionNodesApp struct {
	AppData `json:"-"`
}

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

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

// GetDeployed returns GetAppsByRoleAppsAppConnectionNodesApp.Deployed, and is useful for accessing the field via an interface.
func (v *GetAppsByRoleAppsAppConnectionNodesApp) GetDeployed() bool { return v.AppData.Deployed }

// GetPlatformVersion returns GetAppsByRoleAppsAppConnectionNodesApp.PlatformVersion, and is useful for accessing the field via an interface.
func (v *GetAppsByRoleAppsAppConnectionNodesApp) GetPlatformVersion() PlatformVersionEnum {
	return v.AppData.PlatformVersion
}

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

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

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

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

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

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

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

	Name string `json:"name"`

	Deployed bool `json:"deployed"`

	PlatformVersion PlatformVersionEnum `json:"platformVersion"`

	Organization AppDataOrganization `json:"organization"`
}

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

func (v *GetAppsByRoleAppsAppConnectionNodesApp) __premarshalJSON() (*__premarshalGetAppsByRoleAppsAppConnectionNodesApp, error) {
	var retval __premarshalGetAppsByRoleAppsAppConnectionNodesApp

	retval.Id = v.AppData.Id
	retval.Name = v.AppData.Name
	retval.Deployed = v.AppData.Deployed
	retval.PlatformVersion = v.AppData.PlatformVersion
	retval.Organization = v.AppData.Organization
	return &retval, nil
}

// GetAppsByRoleResponse is returned by GetAppsByRole on success.
type GetAppsByRoleResponse struct {
	// List apps
	Apps GetAppsByRoleAppsAppConnection `json:"apps"`
}

// GetApps returns GetAppsByRoleResponse.Apps, and is useful for accessing the field via an interface.
func (v *GetAppsByRoleResponse) GetApps() GetAppsByRoleAppsAppConnection { return v.Apps }

// GetNearestRegionNearestRegion includes the requested fields of the GraphQL type Region.
type GetNearestRegionNearestRegion struct {
	// The IATA airport code for this region
	Code string `json:"code"`
	// The name of this region
	Name             string `json:"name"`
	GatewayAvailable bool   `json:"gatewayAvailable"`
}

// GetCode returns GetNearestRegionNearestRegion.Code, and is useful for accessing the field via an interface.
func (v *GetNearestRegionNearestRegion) GetCode() string { return v.Code }

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

// GetGatewayAvailable returns GetNearestRegionNearestRegion.GatewayAvailable, and is useful for accessing the field via an interface.
func (v *GetNearestRegionNearestRegion) GetGatewayAvailable() bool { return v.GatewayAvailable }

// GetNearestRegionResponse is returned by GetNearestRegion on success.
type GetNearestRegionResponse struct {
	NearestRegion GetNearestRegionNearestRegion `json:"nearestRegion"`
}

// GetNearestRegion returns GetNearestRegionResponse.NearestRegion, and is useful for accessing the field via an interface.
func (v *GetNearestRegionResponse) GetNearestRegion() GetNearestRegionNearestRegion {
	return v.NearestRegion
}

// GetOrganizationOrganization includes the requested fields of the GraphQL type Organization.
type GetOrganizationOrganization struct {
	Id string `json:"id"`
	// Organization name
	Name string `json:"name"`
	// Unique organization slug
	Slug string `json:"slug"`
	// Single sign-on link for the given integration type
	AddOnSsoLink string `json:"addOnSsoLink"`
}

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

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

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

// GetAddOnSsoLink returns GetOrganizationOrganization.AddOnSsoLink, and is useful for accessing the field via an interface.
func (v *GetOrganizationOrganization) GetAddOnSsoLink() string { return v.AddOnSsoLink }

// GetOrganizationResponse is returned by GetOrganization on success.
type GetOrganizationResponse struct {
	// Find an organization by ID
	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
}

// ListAddOnPlansAddOnPlansAddOnPlanConnection includes the requested fields of the GraphQL type AddOnPlanConnection.
// The GraphQL type's documentation follows.
//
// The connection type for AddOnPlan.
type ListAddOnPlansAddOnPlansAddOnPlanConnection struct {
	// A list of nodes.
	Nodes []ListAddOnPlansAddOnPlansAddOnPlanConnectionNodesAddOnPlan `json:"nodes"`
}

// GetNodes returns ListAddOnPlansAddOnPlansAddOnPlanConnection.Nodes, and is useful for accessing the field via an interface.
func (v *ListAddOnPlansAddOnPlansAddOnPlanConnection) GetNodes() []ListAddOnPlansAddOnPlansAddOnPlanConnectionNodesAddOnPlan {
	return v.Nodes
}

// ListAddOnPlansAddOnPlansAddOnPlanConnectionNodesAddOnPlan includes the requested fields of the GraphQL type AddOnPlan.
type ListAddOnPlansAddOnPlansAddOnPlanConnectionNodesAddOnPlan struct {
	Id            string `json:"id"`
	DisplayName   string `json:"displayName"`
	MaxDataSize   string `json:"maxDataSize"`
	PricePerMonth int    `json:"pricePerMonth"`
}

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

// GetDisplayName returns ListAddOnPlansAddOnPlansAddOnPlanConnectionNodesAddOnPlan.DisplayName, and is useful for accessing the field via an interface.
func (v *ListAddOnPlansAddOnPlansAddOnPlanConnectionNodesAddOnPlan) GetDisplayName() string {
	return v.DisplayName
}

// GetMaxDataSize returns ListAddOnPlansAddOnPlansAddOnPlanConnectionNodesAddOnPlan.MaxDataSize, and is useful for accessing the field via an interface.
func (v *ListAddOnPlansAddOnPlansAddOnPlanConnectionNodesAddOnPlan) GetMaxDataSize() string {
	return v.MaxDataSize
}

// GetPricePerMonth returns ListAddOnPlansAddOnPlansAddOnPlanConnectionNodesAddOnPlan.PricePerMonth, and is useful for accessing the field via an interface.
func (v *ListAddOnPlansAddOnPlansAddOnPlanConnectionNodesAddOnPlan) GetPricePerMonth() int {
	return v.PricePerMonth
}

// ListAddOnPlansResponse is returned by ListAddOnPlans on success.
type ListAddOnPlansResponse struct {
	// List add-on service plans
	AddOnPlans ListAddOnPlansAddOnPlansAddOnPlanConnection `json:"addOnPlans"`
}

// GetAddOnPlans returns ListAddOnPlansResponse.AddOnPlans, and is useful for accessing the field via an interface.
func (v *ListAddOnPlansResponse) GetAddOnPlans() ListAddOnPlansAddOnPlansAddOnPlanConnection {
	return v.AddOnPlans
}

// ListAddOnsAddOnsAddOnConnection includes the requested fields of the GraphQL type AddOnConnection.
// The GraphQL type's documentation follows.
//
// The connection type for AddOn.
type ListAddOnsAddOnsAddOnConnection struct {
	// A list of nodes.
	Nodes []ListAddOnsAddOnsAddOnConnectionNodesAddOn `json:"nodes"`
}

// GetNodes returns ListAddOnsAddOnsAddOnConnection.Nodes, and is useful for accessing the field via an interface.
func (v *ListAddOnsAddOnsAddOnConnection) GetNodes() []ListAddOnsAddOnsAddOnConnectionNodesAddOn {
	return v.Nodes
}

// ListAddOnsAddOnsAddOnConnectionNodesAddOn includes the requested fields of the GraphQL type AddOn.
type ListAddOnsAddOnsAddOnConnectionNodesAddOn struct {
	Id string `json:"id"`
	// The service name according to the provider
	Name string `json:"name"`
	// The add-on plan
	AddOnPlan ListAddOnsAddOnsAddOnConnectionNodesAddOnAddOnPlan `json:"addOnPlan"`
	// Private flycast IP address of the add-on
	PrivateIp string `json:"privateIp"`
	// Region where the primary instance is deployed
	PrimaryRegion string `json:"primaryRegion"`
	// Regions where replica instances are deployed
	ReadRegions []string `json:"readRegions"`
	// Add-on options
	Options interface{} `json:"options"`
	// Organization that owns this service
	Organization ListAddOnsAddOnsAddOnConnectionNodesAddOnOrganization `json:"organization"`
}

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

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

// GetAddOnPlan returns ListAddOnsAddOnsAddOnConnectionNodesAddOn.AddOnPlan, and is useful for accessing the field via an interface.
func (v *ListAddOnsAddOnsAddOnConnectionNodesAddOn) GetAddOnPlan() ListAddOnsAddOnsAddOnConnectionNodesAddOnAddOnPlan {
	return v.AddOnPlan
}

// GetPrivateIp returns ListAddOnsAddOnsAddOnConnectionNodesAddOn.PrivateIp, and is useful for accessing the field via an interface.
func (v *ListAddOnsAddOnsAddOnConnectionNodesAddOn) GetPrivateIp() string { return v.PrivateIp }

// GetPrimaryRegion returns ListAddOnsAddOnsAddOnConnectionNodesAddOn.PrimaryRegion, and is useful for accessing the field via an interface.
func (v *ListAddOnsAddOnsAddOnConnectionNodesAddOn) GetPrimaryRegion() string { return v.PrimaryRegion }

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

// GetOptions returns ListAddOnsAddOnsAddOnConnectionNodesAddOn.Options, and is useful for accessing the field via an interface.
func (v *ListAddOnsAddOnsAddOnConnectionNodesAddOn) GetOptions() interface{} { return v.Options }

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

// ListAddOnsAddOnsAddOnConnectionNodesAddOnAddOnPlan includes the requested fields of the GraphQL type AddOnPlan.
type ListAddOnsAddOnsAddOnConnectionNodesAddOnAddOnPlan struct {
	DisplayName string `json:"displayName"`
}

// GetDisplayName returns ListAddOnsAddOnsAddOnConnectionNodesAddOnAddOnPlan.DisplayName, and is useful for accessing the field via an interface.
func (v *ListAddOnsAddOnsAddOnConnectionNodesAddOnAddOnPlan) GetDisplayName() string {
	return v.DisplayName
}

// ListAddOnsAddOnsAddOnConnectionNodesAddOnOrganization includes the requested fields of the GraphQL type Organization.
type ListAddOnsAddOnsAddOnConnectionNodesAddOnOrganization struct {
	Id string `json:"id"`
	// Unique organization slug
	Slug string `json:"slug"`
}

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

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

// ListAddOnsResponse is returned by ListAddOns on success.
type ListAddOnsResponse struct {
	// List add-ons associated with an organization
	AddOns ListAddOnsAddOnsAddOnConnection `json:"addOns"`
}

// GetAddOns returns ListAddOnsResponse.AddOns, and is useful for accessing the field via an interface.
func (v *ListAddOnsResponse) GetAddOns() ListAddOnsAddOnsAddOnConnection { return v.AddOns }

// Autogenerated input type of LockApp
type LockAppInput struct {
	// The ID of the app
	AppId string `json:"appId"`
	// A unique identifier for the client performing the mutation.
	ClientMutationId string `json:"clientMutationId"`
}

// GetAppId returns LockAppInput.AppId, and is useful for accessing the field via an interface.
func (v *LockAppInput) GetAppId() string { return v.AppId }

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

// LockAppLockAppLockAppPayload includes the requested fields of the GraphQL type LockAppPayload.
// The GraphQL type's documentation follows.
//
// Autogenerated return type of LockApp.
type LockAppLockAppLockAppPayload struct {
	// Unique lock ID
	LockId string `json:"lockId"`
	// When this lock automatically expires
	Expiration time.Time `json:"expiration"`
}

// GetLockId returns LockAppLockAppLockAppPayload.LockId, and is useful for accessing the field via an interface.
func (v *LockAppLockAppLockAppPayload) GetLockId() string { return v.LockId }

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

// LockAppResponse is returned by LockApp on success.
type LockAppResponse struct {
	LockApp LockAppLockAppLockAppPayload `json:"lockApp"`
}

// GetLockApp returns LockAppResponse.LockApp, and is useful for accessing the field via an interface.
func (v *LockAppResponse) GetLockApp() LockAppLockAppLockAppPayload { return v.LockApp }

// MachinesCreateReleaseCreateReleaseCreateReleasePayload includes the requested fields of the GraphQL type CreateReleasePayload.
// The GraphQL type's documentation follows.
//
// Autogenerated return type of CreateRelease.
type MachinesCreateReleaseCreateReleaseCreateReleasePayload struct {
	Release MachinesCreateReleaseCreateReleaseCreateReleasePayloadRelease `json:"release"`
}

// GetRelease returns MachinesCreateReleaseCreateReleaseCreateReleasePayload.Release, and is useful for accessing the field via an interface.
func (v *MachinesCreateReleaseCreateReleaseCreateReleasePayload) GetRelease() MachinesCreateReleaseCreateReleaseCreateReleasePayloadRelease {
	return v.Release
}

// MachinesCreateReleaseCreateReleaseCreateReleasePayloadRelease includes the requested fields of the GraphQL type Release.
type MachinesCreateReleaseCreateReleaseCreateReleasePayloadRelease struct {
	// Unique ID
	Id string `json:"id"`
	// The version of the release
	Version int `json:"version"`
}

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

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

// MachinesCreateReleaseResponse is returned by MachinesCreateRelease on success.
type MachinesCreateReleaseResponse struct {
	CreateRelease MachinesCreateReleaseCreateReleaseCreateReleasePayload `json:"createRelease"`
}

// GetCreateRelease returns MachinesCreateReleaseResponse.CreateRelease, and is useful for accessing the field via an interface.
func (v *MachinesCreateReleaseResponse) GetCreateRelease() MachinesCreateReleaseCreateReleaseCreateReleasePayload {
	return v.CreateRelease
}

// MachinesUpdateReleaseResponse is returned by MachinesUpdateRelease on success.
type MachinesUpdateReleaseResponse struct {
	UpdateRelease MachinesUpdateReleaseUpdateReleaseUpdateReleasePayload `json:"updateRelease"`
}

// GetUpdateRelease returns MachinesUpdateReleaseResponse.UpdateRelease, and is useful for accessing the field via an interface.
func (v *MachinesUpdateReleaseResponse) GetUpdateRelease() MachinesUpdateReleaseUpdateReleaseUpdateReleasePayload {
	return v.UpdateRelease
}

// MachinesUpdateReleaseUpdateReleaseUpdateReleasePayload includes the requested fields of the GraphQL type UpdateReleasePayload.
// The GraphQL type's documentation follows.
//
// Autogenerated return type of UpdateRelease.
type MachinesUpdateReleaseUpdateReleaseUpdateReleasePayload struct {
	Release MachinesUpdateReleaseUpdateReleaseUpdateReleasePayloadRelease `json:"release"`
}

// GetRelease returns MachinesUpdateReleaseUpdateReleaseUpdateReleasePayload.Release, and is useful for accessing the field via an interface.
func (v *MachinesUpdateReleaseUpdateReleaseUpdateReleasePayload) GetRelease() MachinesUpdateReleaseUpdateReleaseUpdateReleasePayloadRelease {
	return v.Release
}

// MachinesUpdateReleaseUpdateReleaseUpdateReleasePayloadRelease includes the requested fields of the GraphQL type Release.
type MachinesUpdateReleaseUpdateReleaseUpdateReleasePayloadRelease struct {
	// Unique ID
	Id string `json:"id"`
}

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

// MigrateMachinesCreateReleaseCreateReleaseCreateReleasePayload includes the requested fields of the GraphQL type CreateReleasePayload.
// The GraphQL type's documentation follows.
//
// Autogenerated return type of CreateRelease.
type MigrateMachinesCreateReleaseCreateReleaseCreateReleasePayload struct {
	Release MigrateMachinesCreateReleaseCreateReleaseCreateReleasePayloadRelease `json:"release"`
}

// GetRelease returns MigrateMachinesCreateReleaseCreateReleaseCreateReleasePayload.Release, and is useful for accessing the field via an interface.
func (v *MigrateMachinesCreateReleaseCreateReleaseCreateReleasePayload) GetRelease() MigrateMachinesCreateReleaseCreateReleaseCreateReleasePayloadRelease {
	return v.Release
}

// MigrateMachinesCreateReleaseCreateReleaseCreateReleasePayloadRelease includes the requested fields of the GraphQL type Release.
type MigrateMachinesCreateReleaseCreateReleaseCreateReleasePayloadRelease struct {
	// Unique ID
	Id string `json:"id"`
	// The version of the release
	Version int `json:"version"`
}

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

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

// MigrateMachinesCreateReleaseResponse is returned by MigrateMachinesCreateRelease on success.
type MigrateMachinesCreateReleaseResponse struct {
	CreateRelease MigrateMachinesCreateReleaseCreateReleaseCreateReleasePayload `json:"createRelease"`
}

// GetCreateRelease returns MigrateMachinesCreateReleaseResponse.CreateRelease, and is useful for accessing the field via an interface.
func (v *MigrateMachinesCreateReleaseResponse) GetCreateRelease() MigrateMachinesCreateReleaseCreateReleaseCreateReleasePayload {
	return v.CreateRelease
}

type PlatformVersionEnum string

const (
	// App in migration between nomad and machines
	PlatformVersionEnumDetached PlatformVersionEnum = "detached"
	// App with only machines
	PlatformVersionEnumMachines PlatformVersionEnum = "machines"
	// Nomad managed application
	PlatformVersionEnumNomad PlatformVersionEnum = "nomad"
)

// ResetAddOnPasswordResetAddOnPasswordResetAddOnPasswordPayload includes the requested fields of the GraphQL type ResetAddOnPasswordPayload.
// The GraphQL type's documentation follows.
//
// Autogenerated return type of ResetAddOnPassword.
type ResetAddOnPasswordResetAddOnPasswordResetAddOnPasswordPayload struct {
	AddOn ResetAddOnPasswordResetAddOnPasswordResetAddOnPasswordPayloadAddOn `json:"addOn"`
}

// GetAddOn returns ResetAddOnPasswordResetAddOnPasswordResetAddOnPasswordPayload.AddOn, and is useful for accessing the field via an interface.
func (v *ResetAddOnPasswordResetAddOnPasswordResetAddOnPasswordPayload) GetAddOn() ResetAddOnPasswordResetAddOnPasswordResetAddOnPasswordPayloadAddOn {
	return v.AddOn
}

// ResetAddOnPasswordResetAddOnPasswordResetAddOnPasswordPayloadAddOn includes the requested fields of the GraphQL type AddOn.
type ResetAddOnPasswordResetAddOnPasswordResetAddOnPasswordPayloadAddOn struct {
	// Public URL for this service
	PublicUrl string `json:"publicUrl"`
}

// GetPublicUrl returns ResetAddOnPasswordResetAddOnPasswordResetAddOnPasswordPayloadAddOn.PublicUrl, and is useful for accessing the field via an interface.
func (v *ResetAddOnPasswordResetAddOnPasswordResetAddOnPasswordPayloadAddOn) GetPublicUrl() string {
	return v.PublicUrl
}

// ResetAddOnPasswordResponse is returned by ResetAddOnPassword on success.
type ResetAddOnPasswordResponse struct {
	ResetAddOnPassword ResetAddOnPasswordResetAddOnPasswordResetAddOnPasswordPayload `json:"resetAddOnPassword"`
}

// GetResetAddOnPassword returns ResetAddOnPasswordResponse.ResetAddOnPassword, and is useful for accessing the field via an interface.
func (v *ResetAddOnPasswordResponse) GetResetAddOnPassword() ResetAddOnPasswordResetAddOnPasswordResetAddOnPasswordPayload {
	return v.ResetAddOnPassword
}

// ResolverCreateBuildCreateBuildCreateBuildPayload includes the requested fields of the GraphQL type CreateBuildPayload.
// The GraphQL type's documentation follows.
//
// Autogenerated return type of CreateBuild.
type ResolverCreateBuildCreateBuildCreateBuildPayload struct {
	// build id
	Id string `json:"id"`
	// stored build status
	Status string `json:"status"`
}

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

// GetStatus returns ResolverCreateBuildCreateBuildCreateBuildPayload.Status, and is useful for accessing the field via an interface.
func (v *ResolverCreateBuildCreateBuildCreateBuildPayload) GetStatus() string { return v.Status }

// ResolverCreateBuildResponse is returned by ResolverCreateBuild on success.
type ResolverCreateBuildResponse struct {
	CreateBuild ResolverCreateBuildCreateBuildCreateBuildPayload `json:"createBuild"`
}

// GetCreateBuild returns ResolverCreateBuildResponse.CreateBuild, and is useful for accessing the field via an interface.
func (v *ResolverCreateBuildResponse) GetCreateBuild() ResolverCreateBuildCreateBuildCreateBuildPayload {
	return v.CreateBuild
}

// ResolverFinishBuildFinishBuildFinishBuildPayload includes the requested fields of the GraphQL type FinishBuildPayload.
// The GraphQL type's documentation follows.
//
// Autogenerated return type of FinishBuild.
type ResolverFinishBuildFinishBuildFinishBuildPayload struct {
	// build id
	Id string `json:"id"`
	// stored build status
	Status string `json:"status"`
	// wall clock time for this build
	WallclockTimeMs int `json:"wallclockTimeMs"`
}

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

// GetStatus returns ResolverFinishBuildFinishBuildFinishBuildPayload.Status, and is useful for accessing the field via an interface.
func (v *ResolverFinishBuildFinishBuildFinishBuildPayload) GetStatus() string { return v.Status }

// GetWallclockTimeMs returns ResolverFinishBuildFinishBuildFinishBuildPayload.WallclockTimeMs, and is useful for accessing the field via an interface.
func (v *ResolverFinishBuildFinishBuildFinishBuildPayload) GetWallclockTimeMs() int {
	return v.WallclockTimeMs
}

// ResolverFinishBuildResponse is returned by ResolverFinishBuild on success.
type ResolverFinishBuildResponse struct {
	FinishBuild ResolverFinishBuildFinishBuildFinishBuildPayload `json:"finishBuild"`
}

// GetFinishBuild returns ResolverFinishBuildResponse.FinishBuild, and is useful for accessing the field via an interface.
func (v *ResolverFinishBuildResponse) GetFinishBuild() ResolverFinishBuildFinishBuildFinishBuildPayload {
	return v.FinishBuild
}

type RuntimeType string

const (
	// Fly Container Runtime
	RuntimeTypeFirecracker RuntimeType = "FIRECRACKER"
	// Fly JavaScript Runtime
	RuntimeTypeNodeproxy RuntimeType = "NODEPROXY"
)

// A secure configuration value
type SecretInput struct {
	// The unqiue key for this secret
	Key string `json:"key"`
	// The value of this secret
	Value string `json:"value"`
}

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

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

// SelfServiceSetPlatformVersionResponse is returned by SelfServiceSetPlatformVersion on success.
type SelfServiceSetPlatformVersionResponse struct {
	SetPlatformVersion SelfServiceSetPlatformVersionSetPlatformVersionSetPlatformVersionPayload `json:"setPlatformVersion"`
}

// GetSetPlatformVersion returns SelfServiceSetPlatformVersionResponse.SetPlatformVersion, and is useful for accessing the field via an interface.
func (v *SelfServiceSetPlatformVersionResponse) GetSetPlatformVersion() SelfServiceSetPlatformVersionSetPlatformVersionSetPlatformVersionPayload {
	return v.SetPlatformVersion
}

// SelfServiceSetPlatformVersionSetPlatformVersionSetPlatformVersionPayload includes the requested fields of the GraphQL type SetPlatformVersionPayload.
// The GraphQL type's documentation follows.
//
// Autogenerated return type of SetPlatformVersion.
type SelfServiceSetPlatformVersionSetPlatformVersionSetPlatformVersionPayload struct {
	App SelfServiceSetPlatformVersionSetPlatformVersionSetPlatformVersionPayloadApp `json:"app"`
}

// GetApp returns SelfServiceSetPlatformVersionSetPlatformVersionSetPlatformVersionPayload.App, and is useful for accessing the field via an interface.
func (v *SelfServiceSetPlatformVersionSetPlatformVersionSetPlatformVersionPayload) GetApp() SelfServiceSetPlatformVersionSetPlatformVersionSetPlatformVersionPayloadApp {
	return v.App
}

// SelfServiceSetPlatformVersionSetPlatformVersionSetPlatformVersionPayloadApp includes the requested fields of the GraphQL type App.
type SelfServiceSetPlatformVersionSetPlatformVersionSetPlatformVersionPayloadApp struct {
	// Unique application ID
	Id string `json:"id"`
}

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

// Autogenerated input type of SetAppsv2DefaultOn
type SetAppsv2DefaultOnInput struct {
	// A unique identifier for the client performing the mutation.
	ClientMutationId string `json:"clientMutationId"`
	// Whether or not new apps in this org use Apps V2 by default
	DefaultOn bool `json:"defaultOn"`
	// The organization slug
	OrganizationSlug string `json:"organizationSlug"`
}

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

// GetDefaultOn returns SetAppsv2DefaultOnInput.DefaultOn, and is useful for accessing the field via an interface.
func (v *SetAppsv2DefaultOnInput) GetDefaultOn() bool { return v.DefaultOn }

// GetOrganizationSlug returns SetAppsv2DefaultOnInput.OrganizationSlug, and is useful for accessing the field via an interface.
func (v *SetAppsv2DefaultOnInput) GetOrganizationSlug() string { return v.OrganizationSlug }

// SetNomadVMCountResponse is returned by SetNomadVMCount on success.
type SetNomadVMCountResponse struct {
	SetVmCount SetNomadVMCountSetVmCountSetVMCountPayload `json:"setVmCount"`
}

// GetSetVmCount returns SetNomadVMCountResponse.SetVmCount, and is useful for accessing the field via an interface.
func (v *SetNomadVMCountResponse) GetSetVmCount() SetNomadVMCountSetVmCountSetVMCountPayload {
	return v.SetVmCount
}

// SetNomadVMCountSetVmCountSetVMCountPayload includes the requested fields of the GraphQL type SetVMCountPayload.
// The GraphQL type's documentation follows.
//
// Autogenerated return type of SetVMCount.
type SetNomadVMCountSetVmCountSetVMCountPayload struct {
	TaskGroupCounts []SetNomadVMCountSetVmCountSetVMCountPayloadTaskGroupCountsTaskGroupCount `json:"taskGroupCounts"`
	Warnings        []string                                                                  `json:"warnings"`
}

// GetTaskGroupCounts returns SetNomadVMCountSetVmCountSetVMCountPayload.TaskGroupCounts, and is useful for accessing the field via an interface.
func (v *SetNomadVMCountSetVmCountSetVMCountPayload) GetTaskGroupCounts() []SetNomadVMCountSetVmCountSetVMCountPayloadTaskGroupCountsTaskGroupCount {
	return v.TaskGroupCounts
}

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

// SetNomadVMCountSetVmCountSetVMCountPayloadTaskGroupCountsTaskGroupCount includes the requested fields of the GraphQL type TaskGroupCount.
type SetNomadVMCountSetVmCountSetVMCountPayloadTaskGroupCountsTaskGroupCount struct {
	Name  string `json:"name"`
	Count int    `json:"count"`
}

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

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

// SetOrgSettingsResponse is returned by SetOrgSettings on success.
type SetOrgSettingsResponse struct {
	SetAppsV2DefaultOn SetOrgSettingsSetAppsV2DefaultOnSetAppsv2DefaultOnPayload `json:"setAppsV2DefaultOn"`
}

// GetSetAppsV2DefaultOn returns SetOrgSettingsResponse.SetAppsV2DefaultOn, and is useful for accessing the field via an interface.
func (v *SetOrgSettingsResponse) GetSetAppsV2DefaultOn() SetOrgSettingsSetAppsV2DefaultOnSetAppsv2DefaultOnPayload {
	return v.SetAppsV2DefaultOn
}

// SetOrgSettingsSetAppsV2DefaultOnSetAppsv2DefaultOnPayload includes the requested fields of the GraphQL type SetAppsv2DefaultOnPayload.
// The GraphQL type's documentation follows.
//
// Autogenerated return type of SetAppsv2DefaultOn.
type SetOrgSettingsSetAppsV2DefaultOnSetAppsv2DefaultOnPayload struct {
	Organization SetOrgSettingsSetAppsV2DefaultOnSetAppsv2DefaultOnPayloadOrganization `json:"organization"`
}

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

// SetOrgSettingsSetAppsV2DefaultOnSetAppsv2DefaultOnPayloadOrganization includes the requested fields of the GraphQL type Organization.
type SetOrgSettingsSetAppsV2DefaultOnSetAppsv2DefaultOnPayloadOrganization struct {
	Settings interface{} `json:"settings"`
}

// GetSettings returns SetOrgSettingsSetAppsV2DefaultOnSetAppsv2DefaultOnPayloadOrganization.Settings, and is useful for accessing the field via an interface.
func (v *SetOrgSettingsSetAppsV2DefaultOnSetAppsv2DefaultOnPayloadOrganization) GetSettings() interface{} {
	return v.Settings
}

// Autogenerated input type of SetPlatformVersion
type SetPlatformVersionInput struct {
	// The ID of the app
	AppId string `json:"appId"`
	// A unique identifier for the client performing the mutation.
	ClientMutationId string `json:"clientMutationId"`
	// Unique lock ID
	LockId string `json:"lockId"`
	// nomad or machines
	PlatformVersion string `json:"platformVersion"`
}

// GetAppId returns SetPlatformVersionInput.AppId, and is useful for accessing the field via an interface.
func (v *SetPlatformVersionInput) GetAppId() string { return v.AppId }

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

// GetLockId returns SetPlatformVersionInput.LockId, and is useful for accessing the field via an interface.
func (v *SetPlatformVersionInput) GetLockId() string { return v.LockId }

// GetPlatformVersion returns SetPlatformVersionInput.PlatformVersion, and is useful for accessing the field via an interface.
func (v *SetPlatformVersionInput) GetPlatformVersion() string { return v.PlatformVersion }

// SetPlatformVersionResponse is returned by SetPlatformVersion on success.
type SetPlatformVersionResponse struct {
	SetPlatformVersion SetPlatformVersionSetPlatformVersionSetPlatformVersionPayload `json:"setPlatformVersion"`
}

// GetSetPlatformVersion returns SetPlatformVersionResponse.SetPlatformVersion, and is useful for accessing the field via an interface.
func (v *SetPlatformVersionResponse) GetSetPlatformVersion() SetPlatformVersionSetPlatformVersionSetPlatformVersionPayload {
	return v.SetPlatformVersion
}

// SetPlatformVersionSetPlatformVersionSetPlatformVersionPayload includes the requested fields of the GraphQL type SetPlatformVersionPayload.
// The GraphQL type's documentation follows.
//
// Autogenerated return type of SetPlatformVersion.
type SetPlatformVersionSetPlatformVersionSetPlatformVersionPayload struct {
	App SetPlatformVersionSetPlatformVersionSetPlatformVersionPayloadApp `json:"app"`
}

// GetApp returns SetPlatformVersionSetPlatformVersionSetPlatformVersionPayload.App, and is useful for accessing the field via an interface.
func (v *SetPlatformVersionSetPlatformVersionSetPlatformVersionPayload) GetApp() SetPlatformVersionSetPlatformVersionSetPlatformVersionPayloadApp {
	return v.App
}

// SetPlatformVersionSetPlatformVersionSetPlatformVersionPayloadApp includes the requested fields of the GraphQL type App.
type SetPlatformVersionSetPlatformVersionSetPlatformVersionPayloadApp struct {
	// Unique application ID
	Id string `json:"id"`
}

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

// Autogenerated input type of SetSecrets
type SetSecretsInput struct {
	// The ID of the app
	AppId string `json:"appId"`
	// A unique identifier for the client performing the mutation.
	ClientMutationId string `json:"clientMutationId"`
	// By default, we set only the secrets you specify. Set this to true to replace all secrets.
	ReplaceAll bool `json:"replaceAll"`
	// Secrets to set
	Secrets []SecretInput `json:"secrets"`
}

// GetAppId returns SetSecretsInput.AppId, and is useful for accessing the field via an interface.
func (v *SetSecretsInput) GetAppId() string { return v.AppId }

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

// GetReplaceAll returns SetSecretsInput.ReplaceAll, and is useful for accessing the field via an interface.
func (v *SetSecretsInput) GetReplaceAll() bool { return v.ReplaceAll }

// GetSecrets returns SetSecretsInput.Secrets, and is useful for accessing the field via an interface.
func (v *SetSecretsInput) GetSecrets() []SecretInput { return v.Secrets }

// SetSecretsResponse is returned by SetSecrets on success.
type SetSecretsResponse struct {
	SetSecrets SetSecretsSetSecretsSetSecretsPayload `json:"setSecrets"`
}

// GetSetSecrets returns SetSecretsResponse.SetSecrets, and is useful for accessing the field via an interface.
func (v *SetSecretsResponse) GetSetSecrets() SetSecretsSetSecretsSetSecretsPayload {
	return v.SetSecrets
}

// SetSecretsSetSecretsSetSecretsPayload includes the requested fields of the GraphQL type SetSecretsPayload.
// The GraphQL type's documentation follows.
//
// Autogenerated return type of SetSecrets.
type SetSecretsSetSecretsSetSecretsPayload struct {
	Release SetSecretsSetSecretsSetSecretsPayloadRelease `json:"release"`
}

// GetRelease returns SetSecretsSetSecretsSetSecretsPayload.Release, and is useful for accessing the field via an interface.
func (v *SetSecretsSetSecretsSetSecretsPayload) GetRelease() SetSecretsSetSecretsSetSecretsPayloadRelease {
	return v.Release
}

// SetSecretsSetSecretsSetSecretsPayloadRelease includes the requested fields of the GraphQL type Release.
type SetSecretsSetSecretsSetSecretsPayloadRelease struct {
	// Unique ID
	Id string `json:"id"`
	// The version of the release
	Version int `json:"version"`
	// The reason for the release
	Reason string `json:"reason"`
	// A description of the release
	Description string `json:"description"`
	// The user who created the release
	User         SetSecretsSetSecretsSetSecretsPayloadReleaseUser `json:"user"`
	EvaluationId string                                           `json:"evaluationId"`
	CreatedAt    time.Time                                        `json:"createdAt"`
}

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

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

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

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

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

// GetEvaluationId returns SetSecretsSetSecretsSetSecretsPayloadRelease.EvaluationId, and is useful for accessing the field via an interface.
func (v *SetSecretsSetSecretsSetSecretsPayloadRelease) GetEvaluationId() string {
	return v.EvaluationId
}

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

// SetSecretsSetSecretsSetSecretsPayloadReleaseUser includes the requested fields of the GraphQL type User.
type SetSecretsSetSecretsSetSecretsPayloadReleaseUser struct {
	Id string `json:"id"`
	// Email address for user (private)
	Email string `json:"email"`
	// Display / full name for user (private)
	Name string `json:"name"`
}

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

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

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

// Autogenerated input type of SetVMCount
type SetVMCountInput struct {
	// The ID of the app
	AppId string `json:"appId"`
	// A unique identifier for the client performing the mutation.
	ClientMutationId string `json:"clientMutationId"`
	// Counts for VM groups
	GroupCounts []VMCountInput `json:"groupCounts"`
	// Unique lock ID
	LockId string `json:"lockId"`
}

// GetAppId returns SetVMCountInput.AppId, and is useful for accessing the field via an interface.
func (v *SetVMCountInput) GetAppId() string { return v.AppId }

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

// GetGroupCounts returns SetVMCountInput.GroupCounts, and is useful for accessing the field via an interface.
func (v *SetVMCountInput) GetGroupCounts() []VMCountInput { return v.GroupCounts }

// GetLockId returns SetVMCountInput.LockId, and is useful for accessing the field via an interface.
func (v *SetVMCountInput) GetLockId() string { return v.LockId }

// Autogenerated input type of UnlockApp
type UnlockAppInput struct {
	// The ID of the app
	AppId string `json:"appId"`
	// A unique identifier for the client performing the mutation.
	ClientMutationId string `json:"clientMutationId"`
	// Unique lock ID
	LockId string `json:"lockId"`
}

// GetAppId returns UnlockAppInput.AppId, and is useful for accessing the field via an interface.
func (v *UnlockAppInput) GetAppId() string { return v.AppId }

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

// GetLockId returns UnlockAppInput.LockId, and is useful for accessing the field via an interface.
func (v *UnlockAppInput) GetLockId() string { return v.LockId }

// UnlockAppResponse is returned by UnlockApp on success.
type UnlockAppResponse struct {
	UnlockApp UnlockAppUnlockAppUnlockAppPayload `json:"unlockApp"`
}

// GetUnlockApp returns UnlockAppResponse.UnlockApp, and is useful for accessing the field via an interface.
func (v *UnlockAppResponse) GetUnlockApp() UnlockAppUnlockAppUnlockAppPayload { return v.UnlockApp }

// UnlockAppUnlockAppUnlockAppPayload includes the requested fields of the GraphQL type UnlockAppPayload.
// The GraphQL type's documentation follows.
//
// Autogenerated return type of UnlockApp.
type UnlockAppUnlockAppUnlockAppPayload struct {
	App UnlockAppUnlockAppUnlockAppPayloadApp `json:"app"`
}

// GetApp returns UnlockAppUnlockAppUnlockAppPayload.App, and is useful for accessing the field via an interface.
func (v *UnlockAppUnlockAppUnlockAppPayload) GetApp() UnlockAppUnlockAppUnlockAppPayloadApp {
	return v.App
}

// UnlockAppUnlockAppUnlockAppPayloadApp includes the requested fields of the GraphQL type App.
type UnlockAppUnlockAppUnlockAppPayloadApp struct {
	// Unique application ID
	Id string `json:"id"`
}

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

// UpdateAddOnResponse is returned by UpdateAddOn on success.
type UpdateAddOnResponse struct {
	UpdateAddOn UpdateAddOnUpdateAddOnUpdateAddOnPayload `json:"updateAddOn"`
}

// GetUpdateAddOn returns UpdateAddOnResponse.UpdateAddOn, and is useful for accessing the field via an interface.
func (v *UpdateAddOnResponse) GetUpdateAddOn() UpdateAddOnUpdateAddOnUpdateAddOnPayload {
	return v.UpdateAddOn
}

// UpdateAddOnUpdateAddOnUpdateAddOnPayload includes the requested fields of the GraphQL type UpdateAddOnPayload.
// The GraphQL type's documentation follows.
//
// Autogenerated return type of UpdateAddOn.
type UpdateAddOnUpdateAddOnUpdateAddOnPayload struct {
	AddOn UpdateAddOnUpdateAddOnUpdateAddOnPayloadAddOn `json:"addOn"`
}

// GetAddOn returns UpdateAddOnUpdateAddOnUpdateAddOnPayload.AddOn, and is useful for accessing the field via an interface.
func (v *UpdateAddOnUpdateAddOnUpdateAddOnPayload) GetAddOn() UpdateAddOnUpdateAddOnUpdateAddOnPayloadAddOn {
	return v.AddOn
}

// UpdateAddOnUpdateAddOnUpdateAddOnPayloadAddOn includes the requested fields of the GraphQL type AddOn.
type UpdateAddOnUpdateAddOnUpdateAddOnPayloadAddOn struct {
	Id string `json:"id"`
}

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

// Autogenerated input type of UpdateRelease
type UpdateReleaseInput struct {
	// A unique identifier for the client performing the mutation.
	ClientMutationId string `json:"clientMutationId"`
	// The ID of the release
	ReleaseId string `json:"releaseId"`
	// The new status for the release
	Status string `json:"status"`
}

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

// GetReleaseId returns UpdateReleaseInput.ReleaseId, and is useful for accessing the field via an interface.
func (v *UpdateReleaseInput) GetReleaseId() string { return v.ReleaseId }

// GetStatus returns UpdateReleaseInput.Status, and is useful for accessing the field via an interface.
func (v *UpdateReleaseInput) GetStatus() string { return v.Status }

type VMCountInput struct {
	// The desired count
	Count int `json:"count"`
	// VM group name
	Group string `json:"group"`
	// Max number of VMs to allow per region
	MaxPerRegion int `json:"maxPerRegion"`
}

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

// GetGroup returns VMCountInput.Group, and is useful for accessing the field via an interface.
func (v *VMCountInput) GetGroup() string { return v.Group }

// GetMaxPerRegion returns VMCountInput.MaxPerRegion, and is useful for accessing the field via an interface.
func (v *VMCountInput) GetMaxPerRegion() int { return v.MaxPerRegion }

// __AgentGetInstancesInput is used internally by genqlient
type __AgentGetInstancesInput struct {
	AppName string `json:"appName"`
}

// GetAppName returns __AgentGetInstancesInput.AppName, and is useful for accessing the field via an interface.
func (v *__AgentGetInstancesInput) GetAppName() string { return v.AppName }

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

// GetAddOnProviderName returns __AgreedToProviderTosInput.AddOnProviderName, and is useful for accessing the field via an interface.
func (v *__AgreedToProviderTosInput) GetAddOnProviderName() string { return v.AddOnProviderName }

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

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

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

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

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

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

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

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

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

// __CreateLimitedAccessTokenInput is used internally by genqlient
type __CreateLimitedAccessTokenInput struct {
	Name           string      `json:"name"`
	OrganizationId string      `json:"organizationId"`
	Profile        string      `json:"profile"`
	ProfileParams  interface{} `json:"profileParams"`
	Expiry         string      `json:"expiry"`
}

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

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

// GetProfile returns __CreateLimitedAccessTokenInput.Profile, and is useful for accessing the field via an interface.
func (v *__CreateLimitedAccessTokenInput) GetProfile() string { return v.Profile }

// GetProfileParams returns __CreateLimitedAccessTokenInput.ProfileParams, and is useful for accessing the field via an interface.
func (v *__CreateLimitedAccessTokenInput) GetProfileParams() interface{} { return v.ProfileParams }

// GetExpiry returns __CreateLimitedAccessTokenInput.Expiry, and is useful for accessing the field via an interface.
func (v *__CreateLimitedAccessTokenInput) GetExpiry() string { return v.Expiry }

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

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

// __DeleteAddOnInput is used internally by genqlient
type __DeleteAddOnInput struct {
	Name string `json:"name"`
}

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

// __FlyctlConfigCurrentReleaseInput is used internally by genqlient
type __FlyctlConfigCurrentReleaseInput struct {
	AppName string `json:"appName"`
}

// GetAppName returns __FlyctlConfigCurrentReleaseInput.AppName, and is useful for accessing the field via an interface.
func (v *__FlyctlConfigCurrentReleaseInput) GetAppName() string { return v.AppName }

// __FlyctlDeployGetLatestImageInput is used internally by genqlient
type __FlyctlDeployGetLatestImageInput struct {
	AppName string `json:"appName"`
}

// GetAppName returns __FlyctlDeployGetLatestImageInput.AppName, and is useful for accessing the field via an interface.
func (v *__FlyctlDeployGetLatestImageInput) GetAppName() string { return v.AppName }

// __GetAddOnInput is used internally by genqlient
type __GetAddOnInput struct {
	Name string `json:"name"`
}

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

// __GetAddOnProviderInput is used internally by genqlient
type __GetAddOnProviderInput struct {
	Name string `json:"name"`
}

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

// __GetAppInput is used internally by genqlient
type __GetAppInput struct {
	Name string `json:"name"`
}

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

// __GetAppLockInput is used internally by genqlient
type __GetAppLockInput struct {
	AppName string `json:"appName"`
}

// GetAppName returns __GetAppLockInput.AppName, and is useful for accessing the field via an interface.
func (v *__GetAppLockInput) GetAppName() string { return v.AppName }

// __GetAppWithAddonsInput is used internally by genqlient
type __GetAppWithAddonsInput struct {
	Name      string    `json:"name"`
	AddOnType AddOnType `json:"addOnType"`
}

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

// GetAddOnType returns __GetAppWithAddonsInput.AddOnType, and is useful for accessing the field via an interface.
func (v *__GetAppWithAddonsInput) GetAddOnType() AddOnType { return v.AddOnType }

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

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

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

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

// __ListAddOnsInput is used internally by genqlient
type __ListAddOnsInput struct {
	AddOnType AddOnType `json:"addOnType"`
}

// GetAddOnType returns __ListAddOnsInput.AddOnType, and is useful for accessing the field via an interface.
func (v *__ListAddOnsInput) GetAddOnType() AddOnType { return v.AddOnType }

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

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

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

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

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

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

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

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

// __ResetAddOnPasswordInput is used internally by genqlient
type __ResetAddOnPasswordInput struct {
	Name string `json:"name"`
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

// __UpdateAddOnInput is used internally by genqlient
type __UpdateAddOnInput struct {
	AddOnId     string      `json:"addOnId"`
	PlanId      string      `json:"planId"`
	ReadRegions []string    `json:"readRegions"`
	Options     interface{} `json:"options"`
}

// GetAddOnId returns __UpdateAddOnInput.AddOnId, and is useful for accessing the field via an interface.
func (v *__UpdateAddOnInput) GetAddOnId() string { return v.AddOnId }

// GetPlanId returns __UpdateAddOnInput.PlanId, and is useful for accessing the field via an interface.
func (v *__UpdateAddOnInput) GetPlanId() string { return v.PlanId }

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

// GetOptions returns __UpdateAddOnInput.Options, and is useful for accessing the field via an interface.
func (v *__UpdateAddOnInput) GetOptions() interface{} { return v.Options }

// The query or mutation executed by AgentGetInstances.
const AgentGetInstances_Operation = `
# @genqlient
query AgentGetInstances ($appName: String!) {
	app(name: $appName) {
		organization {
			slug
		}
		id
		name
		allocations(showCompleted: false) {
			id
			region
			privateIP
		}
		machines {
			nodes {
				state
				id
				region
				ips {
					nodes {
						kind
						family
						ip
					}
				}
			}
		}
	}
}
`

func AgentGetInstances(
	ctx context.Context,
	client graphql.Client,
	appName string,
) (*AgentGetInstancesResponse, error) {
	req := &graphql.Request{
		OpName: "AgentGetInstances",
		Query:  AgentGetInstances_Operation,
		Variables: &__AgentGetInstancesInput{
			AppName: appName,
		},
	}
	var err error

	var data AgentGetInstancesResponse
	resp := &graphql.Response{Data: &data}

	err = client.MakeRequest(
		ctx,
		req,
		resp,
	)

	return &data, err
}

// The query or mutation executed by AgreedToProviderTos.
const AgreedToProviderTos_Operation = `
query AgreedToProviderTos ($addOnProviderName: String!, $organizationId: ID!) {
	organization(id: $organizationId) {
		agreedToProviderTos(providerName: $addOnProviderName)
	}
}
`

func AgreedToProviderTos(
	ctx context.Context,
	client graphql.Client,
	addOnProviderName string,
	organizationId string,
) (*AgreedToProviderTosResponse, error) {
	req := &graphql.Request{
		OpName: "AgreedToProviderTos",
		Query:  AgreedToProviderTos_Operation,
		Variables: &__AgreedToProviderTosInput{
			AddOnProviderName: addOnProviderName,
			OrganizationId:    organizationId,
		},
	}
	var err error

	var data AgreedToProviderTosResponse
	resp := &graphql.Response{Data: &data}

	err = client.MakeRequest(
		ctx,
		req,
		resp,
	)

	return &data, err
}

// The query or mutation executed by AllApps.
const AllApps_Operation = `
# @genqlient
query AllApps ($orgSlug: String!) {
	organization(slug: $orgSlug) {
		apps {
			nodes {
				id
				createdAt
			}
		}
	}
}
`

func AllApps(
	ctx context.Context,
	client graphql.Client,
	orgSlug string,
) (*AllAppsResponse, error) {
	req := &graphql.Request{
		OpName: "AllApps",
		Query:  AllApps_Operation,
		Variables: &__AllAppsInput{
			OrgSlug: orgSlug,
		},
	}
	var err error

	var data AllAppsResponse
	resp := &graphql.Response{Data: &data}

	err = client.MakeRequest(
		ctx,
		req,
		resp,
	)

	return &data, err
}

// The query or mutation executed by CreateAddOn.
const CreateAddOn_Operation = `
mutation CreateAddOn ($input: CreateAddOnInput!) {
	createAddOn(input: $input) {
		addOn {
			name
			publicUrl
			ssoLink
			environment
			primaryRegion
		}
	}
}
`

func CreateAddOn(
	ctx context.Context,
	client graphql.Client,
	input CreateAddOnInput,
) (*CreateAddOnResponse, error) {
	req := &graphql.Request{
		OpName: "CreateAddOn",
		Query:  CreateAddOn_Operation,
		Variables: &__CreateAddOnInput{
			Input: input,
		},
	}
	var err error

	var data CreateAddOnResponse
	resp := &graphql.Response{Data: &data}

	err = client.MakeRequest(
		ctx,
		req,
		resp,
	)

	return &data, err
}

// The query or mutation executed by CreateApp.
const CreateApp_Operation = `
mutation CreateApp ($input: CreateAppInput!) {
	createApp(input: $input) {
		app {
			... AppData
			config {
				definition
			}
			regions {
				name
				code
			}
		}
	}
}
fragment AppData on App {
	id
	name
	deployed
	platformVersion
	organization {
		id
		slug
		rawSlug
		paidPlan
		provisionsBetaExtensions
	}
}
`

func CreateApp(
	ctx context.Context,
	client graphql.Client,
	input CreateAppInput,
) (*CreateAppResponse, error) {
	req := &graphql.Request{
		OpName: "CreateApp",
		Query:  CreateApp_Operation,
		Variables: &__CreateAppInput{
			Input: input,
		},
	}
	var err error

	var data CreateAppResponse
	resp := &graphql.Response{Data: &data}

	err = client.MakeRequest(
		ctx,
		req,
		resp,
	)

	return &data, err
}

// The query or mutation executed by CreateExtension.
const CreateExtension_Operation = `
mutation CreateExtension ($input: CreateAddOnInput!) {
	createAddOn(input: $input) {
		addOn {
			... ExtensionData
		}
	}
}
fragment ExtensionData on AddOn {
	name
	ssoLink
	environment
	primaryRegion
}
`

func CreateExtension(
	ctx context.Context,
	client graphql.Client,
	input CreateAddOnInput,
) (*CreateExtensionResponse, error) {
	req := &graphql.Request{
		OpName: "CreateExtension",
		Query:  CreateExtension_Operation,
		Variables: &__CreateExtensionInput{
			Input: input,
		},
	}
	var err error

	var data CreateExtensionResponse
	resp := &graphql.Response{Data: &data}

	err = client.MakeRequest(
		ctx,
		req,
		resp,
	)

	return &data, err
}

// The query or mutation executed by CreateLimitedAccessToken.
const CreateLimitedAccessToken_Operation = `
mutation CreateLimitedAccessToken ($name: String!, $organizationId: ID!, $profile: String!, $profileParams: JSON, $expiry: String!) {
	createLimitedAccessToken(input: {name:$name,organizationId:$organizationId,profile:$profile,profileParams:$profileParams,expiry:$expiry}) {
		limitedAccessToken {
			tokenHeader
		}
	}
}
`

func CreateLimitedAccessToken(
	ctx context.Context,
	client graphql.Client,
	name string,
	organizationId string,
	profile string,
	profileParams interface{},
	expiry string,
) (*CreateLimitedAccessTokenResponse, error) {
	req := &graphql.Request{
		OpName: "CreateLimitedAccessToken",
		Query:  CreateLimitedAccessToken_Operation,
		Variables: &__CreateLimitedAccessTokenInput{
			Name:           name,
			OrganizationId: organizationId,
			Profile:        profile,
			ProfileParams:  profileParams,
			Expiry:         expiry,
		},
	}
	var err error

	var data CreateLimitedAccessTokenResponse
	resp := &graphql.Response{Data: &data}

	err = client.MakeRequest(
		ctx,
		req,
		resp,
	)

	return &data, err
}

// The query or mutation executed by CreateTosAgreement.
const CreateTosAgreement_Operation = `
mutation CreateTosAgreement ($input: CreateExtensionTosAgreementInput!) {
	createExtensionTosAgreement(input: $input) {
		clientMutationId
	}
}
`

func CreateTosAgreement(
	ctx context.Context,
	client graphql.Client,
	input CreateExtensionTosAgreementInput,
) (*CreateTosAgreementResponse, error) {
	req := &graphql.Request{
		OpName: "CreateTosAgreement",
		Query:  CreateTosAgreement_Operation,
		Variables: &__CreateTosAgreementInput{
			Input: input,
		},
	}
	var err error

	var data CreateTosAgreementResponse
	resp := &graphql.Response{Data: &data}

	err = client.MakeRequest(
		ctx,
		req,
		resp,
	)

	return &data, err
}

// The query or mutation executed by DeleteAddOn.
const DeleteAddOn_Operation = `
mutation DeleteAddOn ($name: String) {
	deleteAddOn(input: {name:$name}) {
		deletedAddOnName
	}
}
`

func DeleteAddOn(
	ctx context.Context,
	client graphql.Client,
	name string,
) (*DeleteAddOnResponse, error) {
	req := &graphql.Request{
		OpName: "DeleteAddOn",
		Query:  DeleteAddOn_Operation,
		Variables: &__DeleteAddOnInput{
			Name: name,
		},
	}
	var err error

	var data DeleteAddOnResponse
	resp := &graphql.Response{Data: &data}

	err = client.MakeRequest(
		ctx,
		req,
		resp,
	)

	return &data, err
}

// The query or mutation executed by FlyctlConfigCurrentRelease.
const FlyctlConfigCurrentRelease_Operation = `
# @genqlient
query FlyctlConfigCurrentRelease ($appName: String!) {
	app(name: $appName) {
		currentReleaseUnprocessed {
			configDefinition
		}
	}
}
`

func FlyctlConfigCurrentRelease(
	ctx context.Context,
	client graphql.Client,
	appName string,
) (*FlyctlConfigCurrentReleaseResponse, error) {
	req := &graphql.Request{
		OpName: "FlyctlConfigCurrentRelease",
		Query:  FlyctlConfigCurrentRelease_Operation,
		Variables: &__FlyctlConfigCurrentReleaseInput{
			AppName: appName,
		},
	}
	var err error

	var data FlyctlConfigCurrentReleaseResponse
	resp := &graphql.Response{Data: &data}

	err = client.MakeRequest(
		ctx,
		req,
		resp,
	)

	return &data, err
}

// The query or mutation executed by FlyctlDeployGetLatestImage.
const FlyctlDeployGetLatestImage_Operation = `
# @genqlient
query FlyctlDeployGetLatestImage ($appName: String!) {
	app(name: $appName) {
		currentReleaseUnprocessed {
			id
			version
			imageRef
		}
	}
}
`

func FlyctlDeployGetLatestImage(
	ctx context.Context,
	client graphql.Client,
	appName string,
) (*FlyctlDeployGetLatestImageResponse, error) {
	req := &graphql.Request{
		OpName: "FlyctlDeployGetLatestImage",
		Query:  FlyctlDeployGetLatestImage_Operation,
		Variables: &__FlyctlDeployGetLatestImageInput{
			AppName: appName,
		},
	}
	var err error

	var data FlyctlDeployGetLatestImageResponse
	resp := &graphql.Response{Data: &data}

	err = client.MakeRequest(
		ctx,
		req,
		resp,
	)

	return &data, err
}

// The query or mutation executed by GetAddOn.
const GetAddOn_Operation = `
query GetAddOn ($name: String) {
	addOn(name: $name) {
		... AddOnData
		publicUrl
		privateIp
		password
		status
		primaryRegion
		readRegions
		options
		ssoLink
		organization {
			slug
			paidPlan
		}
		app {
			... AppData
		}
		addOnPlan {
			id
			name
			displayName
		}
	}
}
fragment AddOnData on AddOn {
	id
	name
	primaryRegion
	status
}
fragment AppData on App {
	id
	name
	deployed
	platformVersion
	organization {
		id
		slug
		rawSlug
		paidPlan
		provisionsBetaExtensions
	}
}
`

func GetAddOn(
	ctx context.Context,
	client graphql.Client,
	name string,
) (*GetAddOnResponse, error) {
	req := &graphql.Request{
		OpName: "GetAddOn",
		Query:  GetAddOn_Operation,
		Variables: &__GetAddOnInput{
			Name: name,
		},
	}
	var err error

	var data GetAddOnResponse
	resp := &graphql.Response{Data: &data}

	err = client.MakeRequest(
		ctx,
		req,
		resp,
	)

	return &data, err
}

// The query or mutation executed by GetAddOnProvider.
const GetAddOnProvider_Operation = `
query GetAddOnProvider ($name: String!) {
	addOnProvider(name: $name) {
		... ExtensionProviderData
	}
}
fragment ExtensionProviderData on AddOnProvider {
	id
	name
	displayName
	tosUrl
	asyncProvisioning
	autoProvision
	selectName
	selectRegion
	selectReplicaRegions
	detectPlatform
	resourceName
	nameSuffix
	beta
	tosAgreement
	provisioningInstructions
	excludedRegions {
		code
	}
}
`

func GetAddOnProvider(
	ctx context.Context,
	client graphql.Client,
	name string,
) (*GetAddOnProviderResponse, error) {
	req := &graphql.Request{
		OpName: "GetAddOnProvider",
		Query:  GetAddOnProvider_Operation,
		Variables: &__GetAddOnProviderInput{
			Name: name,
		},
	}
	var err error

	var data GetAddOnProviderResponse
	resp := &graphql.Response{Data: &data}

	err = client.MakeRequest(
		ctx,
		req,
		resp,
	)

	return &data, err
}

// The query or mutation executed by GetApp.
const GetApp_Operation = `
query GetApp ($name: String!) {
	app(name: $name) {
		... AppData
	}
}
fragment AppData on App {
	id
	name
	deployed
	platformVersion
	organization {
		id
		slug
		rawSlug
		paidPlan
		provisionsBetaExtensions
	}
}
`

func GetApp(
	ctx context.Context,
	client graphql.Client,
	name string,
) (*GetAppResponse, error) {
	req := &graphql.Request{
		OpName: "GetApp",
		Query:  GetApp_Operation,
		Variables: &__GetAppInput{
			Name: name,
		},
	}
	var err error

	var data GetAppResponse
	resp := &graphql.Response{Data: &data}

	err = client.MakeRequest(
		ctx,
		req,
		resp,
	)

	return &data, err
}

// The query or mutation executed by GetAppLock.
const GetAppLock_Operation = `
# @genqlient
query GetAppLock ($appName: String!) {
	app(name: $appName) {
		# @genqlient(pointer: true)
		currentLock {
			lockId
			expiration
		}
	}
}
`

func GetAppLock(
	ctx context.Context,
	client graphql.Client,
	appName string,
) (*GetAppLockResponse, error) {
	req := &graphql.Request{
		OpName: "GetAppLock",
		Query:  GetAppLock_Operation,
		Variables: &__GetAppLockInput{
			AppName: appName,
		},
	}
	var err error

	var data GetAppLockResponse
	resp := &graphql.Response{Data: &data}

	err = client.MakeRequest(
		ctx,
		req,
		resp,
	)

	return &data, err
}

// The query or mutation executed by GetAppWithAddons.
const GetAppWithAddons_Operation = `
query GetAppWithAddons ($name: String!, $addOnType: AddOnType!) {
	app(name: $name) {
		... AppData
		addOns(type: $addOnType) {
			nodes {
				... AddOnData
			}
		}
	}
}
fragment AppData on App {
	id
	name
	deployed
	platformVersion
	organization {
		id
		slug
		rawSlug
		paidPlan
		provisionsBetaExtensions
	}
}
fragment AddOnData on AddOn {
	id
	name
	primaryRegion
	status
}
`

func GetAppWithAddons(
	ctx context.Context,
	client graphql.Client,
	name string,
	addOnType AddOnType,
) (*GetAppWithAddonsResponse, error) {
	req := &graphql.Request{
		OpName: "GetAppWithAddons",
		Query:  GetAppWithAddons_Operation,
		Variables: &__GetAppWithAddonsInput{
			Name:      name,
			AddOnType: addOnType,
		},
	}
	var err error

	var data GetAppWithAddonsResponse
	resp := &graphql.Response{Data: &data}

	err = client.MakeRequest(
		ctx,
		req,
		resp,
	)

	return &data, err
}

// The query or mutation executed by GetAppsByRole.
const GetAppsByRole_Operation = `
query GetAppsByRole ($role: String!, $organizationId: ID!) {
	apps(role: $role, organizationId: $organizationId) {
		nodes {
			... AppData
		}
	}
}
fragment AppData on App {
	id
	name
	deployed
	platformVersion
	organization {
		id
		slug
		rawSlug
		paidPlan
		provisionsBetaExtensions
	}
}
`

func GetAppsByRole(
	ctx context.Context,
	client graphql.Client,
	role string,
	organizationId string,
) (*GetAppsByRoleResponse, error) {
	req := &graphql.Request{
		OpName: "GetAppsByRole",
		Query:  GetAppsByRole_Operation,
		Variables: &__GetAppsByRoleInput{
			Role:           role,
			OrganizationId: organizationId,
		},
	}
	var err error

	var data GetAppsByRoleResponse
	resp := &graphql.Response{Data: &data}

	err = client.MakeRequest(
		ctx,
		req,
		resp,
	)

	return &data, err
}

// The query or mutation executed by GetNearestRegion.
const GetNearestRegion_Operation = `
query GetNearestRegion {
	nearestRegion {
		code
		name
		gatewayAvailable
	}
}
`

func GetNearestRegion(
	ctx context.Context,
	client graphql.Client,
) (*GetNearestRegionResponse, error) {
	req := &graphql.Request{
		OpName: "GetNearestRegion",
		Query:  GetNearestRegion_Operation,
	}
	var err error

	var data GetNearestRegionResponse
	resp := &graphql.Response{Data: &data}

	err = client.MakeRequest(
		ctx,
		req,
		resp,
	)

	return &data, err
}

// The query or mutation executed by GetOrganization.
const GetOrganization_Operation = `
query GetOrganization ($slug: String!) {
	organization(slug: $slug) {
		id
		name
		slug
		addOnSsoLink
	}
}
`

func GetOrganization(
	ctx context.Context,
	client graphql.Client,
	slug string,
) (*GetOrganizationResponse, error) {
	req := &graphql.Request{
		OpName: "GetOrganization",
		Query:  GetOrganization_Operation,
		Variables: &__GetOrganizationInput{
			Slug: slug,
		},
	}
	var err error

	var data GetOrganizationResponse
	resp := &graphql.Response{Data: &data}

	err = client.MakeRequest(
		ctx,
		req,
		resp,
	)

	return &data, err
}

// The query or mutation executed by ListAddOnPlans.
const ListAddOnPlans_Operation = `
# @genqlient
query ListAddOnPlans {
	addOnPlans {
		nodes {
			id
			displayName
			maxDataSize
			pricePerMonth
		}
	}
}
`

func ListAddOnPlans(
	ctx context.Context,
	client graphql.Client,
) (*ListAddOnPlansResponse, error) {
	req := &graphql.Request{
		OpName: "ListAddOnPlans",
		Query:  ListAddOnPlans_Operation,
	}
	var err error

	var data ListAddOnPlansResponse
	resp := &graphql.Response{Data: &data}

	err = client.MakeRequest(
		ctx,
		req,
		resp,
	)

	return &data, err
}

// The query or mutation executed by ListAddOns.
const ListAddOns_Operation = `
query ListAddOns ($addOnType: AddOnType) {
	addOns(type: $addOnType) {
		nodes {
			id
			name
			addOnPlan {
				displayName
			}
			privateIp
			primaryRegion
			readRegions
			options
			organization {
				id
				slug
			}
		}
	}
}
`

func ListAddOns(
	ctx context.Context,
	client graphql.Client,
	addOnType AddOnType,
) (*ListAddOnsResponse, error) {
	req := &graphql.Request{
		OpName: "ListAddOns",
		Query:  ListAddOns_Operation,
		Variables: &__ListAddOnsInput{
			AddOnType: addOnType,
		},
	}
	var err error

	var data ListAddOnsResponse
	resp := &graphql.Response{Data: &data}

	err = client.MakeRequest(
		ctx,
		req,
		resp,
	)

	return &data, err
}

// The query or mutation executed by LockApp.
const LockApp_Operation = `
# @genqlient
mutation LockApp ($input: LockAppInput!) {
	lockApp(input: $input) {
		lockId
		expiration
	}
}
`

func LockApp(
	ctx context.Context,
	client graphql.Client,
	input LockAppInput,
) (*LockAppResponse, error) {
	req := &graphql.Request{
		OpName: "LockApp",
		Query:  LockApp_Operation,
		Variables: &__LockAppInput{
			Input: input,
		},
	}
	var err error

	var data LockAppResponse
	resp := &graphql.Response{Data: &data}

	err = client.MakeRequest(
		ctx,
		req,
		resp,
	)

	return &data, err
}

// The query or mutation executed by MachinesCreateRelease.
const MachinesCreateRelease_Operation = `
# @genqlient
mutation MachinesCreateRelease ($input: CreateReleaseInput!) {
	createRelease(input: $input) {
		release {
			id
			version
		}
	}
}
`

func MachinesCreateRelease(
	ctx context.Context,
	client graphql.Client,
	input CreateReleaseInput,
) (*MachinesCreateReleaseResponse, error) {
	req := &graphql.Request{
		OpName: "MachinesCreateRelease",
		Query:  MachinesCreateRelease_Operation,
		Variables: &__MachinesCreateReleaseInput{
			Input: input,
		},
	}
	var err error

	var data MachinesCreateReleaseResponse
	resp := &graphql.Response{Data: &data}

	err = client.MakeRequest(
		ctx,
		req,
		resp,
	)

	return &data, err
}

// The query or mutation executed by MachinesUpdateRelease.
const MachinesUpdateRelease_Operation = `
# @genqlient
mutation MachinesUpdateRelease ($input: UpdateReleaseInput!) {
	updateRelease(input: $input) {
		release {
			id
		}
	}
}
`

func MachinesUpdateRelease(
	ctx context.Context,
	client graphql.Client,
	input UpdateReleaseInput,
) (*MachinesUpdateReleaseResponse, error) {
	req := &graphql.Request{
		OpName: "MachinesUpdateRelease",
		Query:  MachinesUpdateRelease_Operation,
		Variables: &__MachinesUpdateReleaseInput{
			Input: input,
		},
	}
	var err error

	var data MachinesUpdateReleaseResponse
	resp := &graphql.Response{Data: &data}

	err = client.MakeRequest(
		ctx,
		req,
		resp,
	)

	return &data, err
}

// The query or mutation executed by MigrateMachinesCreateRelease.
const MigrateMachinesCreateRelease_Operation = `
# @genqlient
mutation MigrateMachinesCreateRelease ($input: CreateReleaseInput!) {
	createRelease(input: $input) {
		release {
			id
			version
		}
	}
}
`

func MigrateMachinesCreateRelease(
	ctx context.Context,
	client graphql.Client,
	input CreateReleaseInput,
) (*MigrateMachinesCreateReleaseResponse, error) {
	req := &graphql.Request{
		OpName: "MigrateMachinesCreateRelease",
		Query:  MigrateMachinesCreateRelease_Operation,
		Variables: &__MigrateMachinesCreateReleaseInput{
			Input: input,
		},
	}
	var err error

	var data MigrateMachinesCreateReleaseResponse
	resp := &graphql.Response{Data: &data}

	err = client.MakeRequest(
		ctx,
		req,
		resp,
	)

	return &data, err
}

// The query or mutation executed by ResetAddOnPassword.
const ResetAddOnPassword_Operation = `
# @genqlient
mutation ResetAddOnPassword ($name: String!) {
	resetAddOnPassword(input: {name:$name}) {
		addOn {
			publicUrl
		}
	}
}
`

func ResetAddOnPassword(
	ctx context.Context,
	client graphql.Client,
	name string,
) (*ResetAddOnPasswordResponse, error) {
	req := &graphql.Request{
		OpName: "ResetAddOnPassword",
		Query:  ResetAddOnPassword_Operation,
		Variables: &__ResetAddOnPasswordInput{
			Name: name,
		},
	}
	var err error

	var data ResetAddOnPasswordResponse
	resp := &graphql.Response{Data: &data}

	err = client.MakeRequest(
		ctx,
		req,
		resp,
	)

	return &data, err
}

// The query or mutation executed by ResolverCreateBuild.
const ResolverCreateBuild_Operation = `
# @genqlient
mutation ResolverCreateBuild ($input: CreateBuildInput!) {
	createBuild(input: $input) {
		id
		status
	}
}
`

func ResolverCreateBuild(
	ctx context.Context,
	client graphql.Client,
	input CreateBuildInput,
) (*ResolverCreateBuildResponse, error) {
	req := &graphql.Request{
		OpName: "ResolverCreateBuild",
		Query:  ResolverCreateBuild_Operation,
		Variables: &__ResolverCreateBuildInput{
			Input: input,
		},
	}
	var err error

	var data ResolverCreateBuildResponse
	resp := &graphql.Response{Data: &data}

	err = client.MakeRequest(
		ctx,
		req,
		resp,
	)

	return &data, err
}

// The query or mutation executed by ResolverFinishBuild.
const ResolverFinishBuild_Operation = `
# @genqlient
mutation ResolverFinishBuild ($input: FinishBuildInput!) {
	finishBuild(input: $input) {
		id
		status
		wallclockTimeMs
	}
}
`

func ResolverFinishBuild(
	ctx context.Context,
	client graphql.Client,
	input FinishBuildInput,
) (*ResolverFinishBuildResponse, error) {
	req := &graphql.Request{
		OpName: "ResolverFinishBuild",
		Query:  ResolverFinishBuild_Operation,
		Variables: &__ResolverFinishBuildInput{
			Input: input,
		},
	}
	var err error

	var data ResolverFinishBuildResponse
	resp := &graphql.Response{Data: &data}

	err = client.MakeRequest(
		ctx,
		req,
		resp,
	)

	return &data, err
}

// The query or mutation executed by SelfServiceSetPlatformVersion.
const SelfServiceSetPlatformVersion_Operation = `
# @genqlient
mutation SelfServiceSetPlatformVersion ($input: SetPlatformVersionInput!) {
	setPlatformVersion(input: $input) {
		app {
			id
		}
	}
}
`

func SelfServiceSetPlatformVersion(
	ctx context.Context,
	client graphql.Client,
	input SetPlatformVersionInput,
) (*SelfServiceSetPlatformVersionResponse, error) {
	req := &graphql.Request{
		OpName: "SelfServiceSetPlatformVersion",
		Query:  SelfServiceSetPlatformVersion_Operation,
		Variables: &__SelfServiceSetPlatformVersionInput{
			Input: input,
		},
	}
	var err error

	var data SelfServiceSetPlatformVersionResponse
	resp := &graphql.Response{Data: &data}

	err = client.MakeRequest(
		ctx,
		req,
		resp,
	)

	return &data, err
}

// The query or mutation executed by SetNomadVMCount.
const SetNomadVMCount_Operation = `
mutation SetNomadVMCount ($input: SetVMCountInput!) {
	setVmCount(input: $input) {
		taskGroupCounts {
			name
			count
		}
		warnings
	}
}
`

func SetNomadVMCount(
	ctx context.Context,
	client graphql.Client,
	input SetVMCountInput,
) (*SetNomadVMCountResponse, error) {
	req := &graphql.Request{
		OpName: "SetNomadVMCount",
		Query:  SetNomadVMCount_Operation,
		Variables: &__SetNomadVMCountInput{
			Input: input,
		},
	}
	var err error

	var data SetNomadVMCountResponse
	resp := &graphql.Response{Data: &data}

	err = client.MakeRequest(
		ctx,
		req,
		resp,
	)

	return &data, err
}

// The query or mutation executed by SetOrgSettings.
const SetOrgSettings_Operation = `
# @genqlient
mutation SetOrgSettings ($input: SetAppsv2DefaultOnInput!) {
	setAppsV2DefaultOn(input: $input) {
		organization {
			settings
		}
	}
}
`

func SetOrgSettings(
	ctx context.Context,
	client graphql.Client,
	input SetAppsv2DefaultOnInput,
) (*SetOrgSettingsResponse, error) {
	req := &graphql.Request{
		OpName: "SetOrgSettings",
		Query:  SetOrgSettings_Operation,
		Variables: &__SetOrgSettingsInput{
			Input: input,
		},
	}
	var err error

	var data SetOrgSettingsResponse
	resp := &graphql.Response{Data: &data}

	err = client.MakeRequest(
		ctx,
		req,
		resp,
	)

	return &data, err
}

// The query or mutation executed by SetPlatformVersion.
const SetPlatformVersion_Operation = `
# @genqlient
mutation SetPlatformVersion ($input: SetPlatformVersionInput!) {
	setPlatformVersion(input: $input) {
		app {
			id
		}
	}
}
`

func SetPlatformVersion(
	ctx context.Context,
	client graphql.Client,
	input SetPlatformVersionInput,
) (*SetPlatformVersionResponse, error) {
	req := &graphql.Request{
		OpName: "SetPlatformVersion",
		Query:  SetPlatformVersion_Operation,
		Variables: &__SetPlatformVersionInput{
			Input: input,
		},
	}
	var err error

	var data SetPlatformVersionResponse
	resp := &graphql.Response{Data: &data}

	err = client.MakeRequest(
		ctx,
		req,
		resp,
	)

	return &data, err
}

// The query or mutation executed by SetSecrets.
const SetSecrets_Operation = `
mutation SetSecrets ($input: SetSecretsInput!) {
	setSecrets(input: $input) {
		release {
			id
			version
			reason
			description
			user {
				id
				email
				name
			}
			evaluationId
			createdAt
		}
	}
}
`

func SetSecrets(
	ctx context.Context,
	client graphql.Client,
	input SetSecretsInput,
) (*SetSecretsResponse, error) {
	req := &graphql.Request{
		OpName: "SetSecrets",
		Query:  SetSecrets_Operation,
		Variables: &__SetSecretsInput{
			Input: input,
		},
	}
	var err error

	var data SetSecretsResponse
	resp := &graphql.Response{Data: &data}

	err = client.MakeRequest(
		ctx,
		req,
		resp,
	)

	return &data, err
}

// The query or mutation executed by UnlockApp.
const UnlockApp_Operation = `
# @genqlient
mutation UnlockApp ($input: UnlockAppInput!) {
	unlockApp(input: $input) {
		app {
			id
		}
	}
}
`

func UnlockApp(
	ctx context.Context,
	client graphql.Client,
	input UnlockAppInput,
) (*UnlockAppResponse, error) {
	req := &graphql.Request{
		OpName: "UnlockApp",
		Query:  UnlockApp_Operation,
		Variables: &__UnlockAppInput{
			Input: input,
		},
	}
	var err error

	var data UnlockAppResponse
	resp := &graphql.Response{Data: &data}

	err = client.MakeRequest(
		ctx,
		req,
		resp,
	)

	return &data, err
}

// The query or mutation executed by UpdateAddOn.
const UpdateAddOn_Operation = `
# @genqlient
mutation UpdateAddOn ($addOnId: ID!, $planId: ID!, $readRegions: [String!]!, $options: JSON!) {
	updateAddOn(input: {addOnId:$addOnId,planId:$planId,readRegions:$readRegions,options:$options}) {
		addOn {
			id
		}
	}
}
`

func UpdateAddOn(
	ctx context.Context,
	client graphql.Client,
	addOnId string,
	planId string,
	readRegions []string,
	options interface{},
) (*UpdateAddOnResponse, error) {
	req := &graphql.Request{
		OpName: "UpdateAddOn",
		Query:  UpdateAddOn_Operation,
		Variables: &__UpdateAddOnInput{
			AddOnId:     addOnId,
			PlanId:      planId,
			ReadRegions: readRegions,
			Options:     options,
		},
	}
	var err error

	var data UpdateAddOnResponse
	resp := &graphql.Response{Data: &data}

	err = client.MakeRequest(
		ctx,
		req,
		resp,
	)

	return &data, err
}
