import { TypedDocumentNode } from "@graphql-typed-document-node/core"; //#region src/generated/graphql.d.ts type Maybe = T | null; type InputMaybe = Maybe; type Exact = { [K in keyof T]: T[K] }; type MakeOptional = Omit & { [SubKey in K$1]?: Maybe }; type MakeMaybe = Omit & { [SubKey in K$1]: Maybe }; type MakeEmpty = { [_ in K$1]?: never }; type Incremental = T | { [P in keyof T]?: P extends ' $fragmentName' | '__typename' ? T[P] : never }; /** All built-in and custom scalars, mapped to their actual values */ type Scalars = { ID: { input: string; output: string; }; String: { input: string; output: string; }; Boolean: { input: boolean; output: boolean; }; Int: { input: number; output: number; }; Float: { input: number; output: number; }; BigInt: { input: any; output: any; }; CanvasConfig: { input: any; output: any; }; DateTime: { input: any; output: any; }; DeploymentMeta: { input: any; output: any; }; DisplayConfig: { input: any; output: any; }; EnvironmentConfig: { input: any; output: any; }; EnvironmentVariables: { input: any; output: any; }; JSON: { input: any; output: any; }; NotificationPayload: { input: any; output: any; }; RailpackInfo: { input: any; output: any; }; SerializedTemplateConfig: { input: any; output: any; }; ServiceInstanceLimit: { input: any; output: any; }; SubscriptionPlanLimit: { input: any; output: any; }; SupportHealthMetrics: { input: any; output: any; }; TemplateConfig: { input: any; output: any; }; TemplateMetadata: { input: any; output: any; }; TemplateServiceConfig: { input: any; output: any; }; TemplateVolume: { input: any; output: any; }; Upload: { input: any; output: any; }; }; type AccessRule = { __typename?: 'AccessRule'; disallowed?: Maybe; }; type ActiveFeatureFlag = 'BUCKETS' | 'BUCKET_FILE_BROWSER' | 'ENVIRONMENT_RESTRICTIONS' | 'GLOBAL_BUCKET_REGION' | 'HTTP_SERVICE_METRICS' | 'MAGIC_CONFIG' | 'MONOREPO_SUPPORT' | 'PRIORITY_BOARDING' | 'RAW_SQL_QUERIES' | 'UNIFIED_TEMPLATE_EDITOR'; type ActivePlatformFlag = 'ALLOW_REPLICA_METRICS' | 'BUCKETS' | 'BUILDER_V3_ROLLOUT_EXISTING_SERVICES' | 'BUILDER_V3_ROLLOUT_NEW_SERVICES' | 'DEMO_PERCENTAGE_ROLLOUT' | 'ENABLE_RAW_SQL_QUERIES' | 'MONOREPO_SUPPORT' | 'UPDATED_VM_QUERIES' | 'USE_GH_WEBHOOKS_FOR_CHANGE_DETECTION' | 'VM_TIME_RANGE_QUERY'; type ActiveServiceFeatureFlag = 'COPY_VOLUME_TO_ENVIRONMENT' | 'PLACEHOLDER' | 'USE_BUILDER_V3_FOR_CLI_DEPLOYS' | 'USE_GH_WEBHOOKS_FOR_CHANGE_DETECTION' | 'USE_VM_RUNTIME'; type AdoptionInfo = Node & { __typename?: 'AdoptionInfo'; adoptionLevel?: Maybe; createdAt: Scalars['DateTime']['output']; deltaLevel?: Maybe; id: Scalars['ID']['output']; matchedIcpEmail?: Maybe; monthlyEstimatedUsage?: Maybe; numConfigFile: Scalars['Int']['output']; numCronSchedule: Scalars['Int']['output']; numDeploys: Scalars['Int']['output']; numEnvs: Scalars['Int']['output']; numFailedDeploys: Scalars['Int']['output']; numHealthcheck: Scalars['Int']['output']; numIconConfig: Scalars['Int']['output']; numRegion: Scalars['Int']['output']; numReplicas: Scalars['Int']['output']; numRootDirectory: Scalars['Int']['output']; numSeats: Scalars['Int']['output']; numServices: Scalars['Int']['output']; numVariables: Scalars['Int']['output']; numWatchPatterns: Scalars['Int']['output']; totalCores?: Maybe; totalDisk?: Maybe; totalNetwork?: Maybe; updatedAt: Scalars['DateTime']['output']; workspace: Workspace; }; /** The aggregated usage of a single measurement. */ type AggregatedUsage = { __typename?: 'AggregatedUsage'; /** The measurement that was aggregated. */ measurement: MetricMeasurement; /** The tags that were used to group the metric. Only the tags that were used in the `groupBy` will be present. */ tags: MetricTags; /** The aggregated value. */ value: Scalars['Float']['output']; }; type AllDomains = { __typename?: 'AllDomains'; customDomains: Array; serviceDomains: Array; }; type ApiToken = Node & { __typename?: 'ApiToken'; displayToken: Scalars['String']['output']; id: Scalars['ID']['output']; name: Scalars['String']['output']; workspaceId?: Maybe; }; type ApiTokenCreateInput = { name: Scalars['String']['input']; workspaceId?: InputMaybe; }; type ApiTokenRateLimit = { __typename?: 'ApiTokenRateLimit'; remainingPoints: Scalars['Int']['output']; resetsAt: Scalars['String']['output']; }; type AppliedByMember = { __typename?: 'AppliedByMember'; avatar?: Maybe; email: Scalars['String']['output']; id: Scalars['String']['output']; name?: Maybe; username?: Maybe; }; type BanReasonHistory = Node & { __typename?: 'BanReasonHistory'; actor?: Maybe; banReason?: Maybe; createdAt: Scalars['DateTime']['output']; id: Scalars['ID']['output']; }; type BaseEnvironmentOverrideInput = { baseEnvironmentOverrideId?: InputMaybe; }; /** The billing period for a customers subscription. */ type BillingPeriod = { __typename?: 'BillingPeriod'; end: Scalars['DateTime']['output']; start: Scalars['DateTime']['output']; }; type Builder = 'HEROKU' | 'NIXPACKS' | 'PAKETO' | 'RAILPACK'; type CdnProvider = 'DETECTED_CDN_PROVIDER_CLOUDFLARE' | 'DETECTED_CDN_PROVIDER_UNSPECIFIED' | 'UNRECOGNIZED'; type CertificatePublicData = { __typename?: 'CertificatePublicData'; domainNames: Array; expiresAt?: Maybe; fingerprintSha256: Scalars['String']['output']; issuedAt?: Maybe; keyType: KeyType; }; type CertificateStatus = 'CERTIFICATE_STATUS_TYPE_ISSUE_FAILED' | 'CERTIFICATE_STATUS_TYPE_ISSUING' | 'CERTIFICATE_STATUS_TYPE_UNSPECIFIED' | 'CERTIFICATE_STATUS_TYPE_VALID' | 'CERTIFICATE_STATUS_TYPE_VALIDATING_OWNERSHIP' | 'UNRECOGNIZED'; type CnameCheck = { __typename?: 'CnameCheck'; link?: Maybe; message: Scalars['String']['output']; status: CnameCheckStatus; }; type CnameCheckStatus = 'ERROR' | 'INFO' | 'INVALID' | 'VALID' | 'WAITING'; type ComplianceAgreementsInfo = { __typename?: 'ComplianceAgreementsInfo'; /** Whether the workspace has a signed Business Associate Agreement (HIPAA) */ hasBAA: Scalars['Boolean']['output']; /** Whether the workspace has a Data Processing Agreement (GDPR) */ hasDPA: Scalars['Boolean']['output']; }; type Container = Node & { __typename?: 'Container'; createdAt: Scalars['DateTime']['output']; deletedAt?: Maybe; environment: Environment; environmentId: Scalars['String']['output']; id: Scalars['ID']['output']; migratedAt?: Maybe; plugin: Plugin; pluginId: Scalars['String']['output']; }; type Credit = Node & { __typename?: 'Credit'; amount: Scalars['Float']['output']; createdAt: Scalars['DateTime']['output']; customerId: Scalars['String']['output']; id: Scalars['ID']['output']; memo?: Maybe; type: CreditType; updatedAt: Scalars['DateTime']['output']; }; type CreditType = 'APPLIED' | 'CREDIT' | 'DEBIT' | 'STRIPE' | 'TRANSFER' | 'WAIVED'; type CustomDomain = Domain & { __typename?: 'CustomDomain'; /** @deprecated Use the `status` field instead. */ cnameCheck: CnameCheck; createdAt?: Maybe; deletedAt?: Maybe; domain: Scalars['String']['output']; edgeId?: Maybe; environmentId: Scalars['String']['output']; id: Scalars['ID']['output']; projectId?: Maybe; serviceId: Scalars['String']['output']; status: CustomDomainStatus; targetPort?: Maybe; updatedAt?: Maybe; }; type CustomDomainCreateInput = { domain: Scalars['String']['input']; environmentId: Scalars['String']['input']; projectId: Scalars['String']['input']; serviceId: Scalars['String']['input']; targetPort?: InputMaybe; }; type CustomDomainStatus = { __typename?: 'CustomDomainStatus'; cdnProvider?: Maybe; certificateStatus: CertificateStatus; certificates?: Maybe>; dnsRecords: Array; }; type Customer = Node & { __typename?: 'Customer'; /** The total amount of credits that have been applied during the current billing period. */ appliedCredits: Scalars['Float']['output']; billingAddress?: Maybe; billingEmail?: Maybe; billingPeriod: BillingPeriod; /** The total amount of unused credits for the customer. */ creditBalance: Scalars['Float']['output']; credits: CustomerCreditsConnection; /** The current usage for the customer. This value is cached and may not be up to date. */ currentUsage: Scalars['Float']['output']; defaultPaymentMethod?: Maybe; defaultPaymentMethodId?: Maybe; hasExhaustedFreePlan: Scalars['Boolean']['output']; id: Scalars['ID']['output']; invoices: Array; isPrepaying: Scalars['Boolean']['output']; isTrialing: Scalars['Boolean']['output']; isUsageSubscriber: Scalars['Boolean']['output']; isWithdrawingToCredits: Scalars['Boolean']['output']; planLimitOverride?: Maybe; remainingUsageCreditBalance: Scalars['Float']['output']; state: SubscriptionState; stripeCustomerId: Scalars['String']['output']; subscriptions: Array; supportedWithdrawalPlatforms: Array; taxIds: Array; trialDaysRemaining: Scalars['Int']['output']; usageLimit?: Maybe; workspace: Workspace; }; type CustomerCreditsArgs = { after?: InputMaybe; before?: InputMaybe; first?: InputMaybe; last?: InputMaybe; }; type CustomerAddress = { __typename?: 'CustomerAddress'; city?: Maybe; country?: Maybe; line1?: Maybe; line2?: Maybe; name?: Maybe; postalCode?: Maybe; state?: Maybe; }; type CustomerCreditsConnection = { __typename?: 'CustomerCreditsConnection'; edges: Array; pageInfo: PageInfo; }; type CustomerCreditsConnectionEdge = { __typename?: 'CustomerCreditsConnectionEdge'; cursor: Scalars['String']['output']; node: Credit; }; type CustomerInvoice = { __typename?: 'CustomerInvoice'; amountDue: Scalars['Float']['output']; amountPaid: Scalars['Float']['output']; hostedURL?: Maybe; invoiceId: Scalars['String']['output']; items: Array; lastPaymentError?: Maybe; paymentIntentStatus?: Maybe; pdfURL?: Maybe; periodEnd: Scalars['String']['output']; periodStart: Scalars['String']['output']; reissuedInvoiceFrom?: Maybe; reissuedInvoiceOf?: Maybe; status?: Maybe; subscriptionId?: Maybe; subscriptionStatus?: Maybe; total: Scalars['Int']['output']; }; type CustomerSubscription = { __typename?: 'CustomerSubscription'; billingCycleAnchor: Scalars['DateTime']['output']; cancelAt?: Maybe; cancelAtPeriodEnd: Scalars['Boolean']['output']; couponId?: Maybe; discounts: Array; id: Scalars['String']['output']; items: Array; latestInvoiceId: Scalars['String']['output']; nextInvoiceCurrentTotal: Scalars['Int']['output']; nextInvoiceDate: Scalars['String']['output']; status: Scalars['String']['output']; }; type CustomerTaxId = { __typename?: 'CustomerTaxId'; id: Scalars['String']['output']; type: Scalars['String']['output']; value: Scalars['String']['output']; }; type DnsRecordPurpose = 'DNS_RECORD_PURPOSE_ACME_DNS01_CHALLENGE' | 'DNS_RECORD_PURPOSE_TRAFFIC_ROUTE' | 'DNS_RECORD_PURPOSE_UNSPECIFIED' | 'UNRECOGNIZED'; type DnsRecordStatus = 'DNS_RECORD_STATUS_PROPAGATED' | 'DNS_RECORD_STATUS_REQUIRES_UPDATE' | 'DNS_RECORD_STATUS_UNSPECIFIED' | 'UNRECOGNIZED'; type DnsRecordType = 'DNS_RECORD_TYPE_A' | 'DNS_RECORD_TYPE_CNAME' | 'DNS_RECORD_TYPE_NS' | 'DNS_RECORD_TYPE_UNSPECIFIED' | 'UNRECOGNIZED'; type DnsRecords = { __typename?: 'DNSRecords'; currentValue: Scalars['String']['output']; fqdn: Scalars['String']['output']; hostlabel: Scalars['String']['output']; purpose: DnsRecordPurpose; recordType: DnsRecordType; requiredValue: Scalars['String']['output']; status: DnsRecordStatus; zone: Scalars['String']['output']; }; type Deployment = Node & { __typename?: 'Deployment'; canRedeploy: Scalars['Boolean']['output']; canRollback: Scalars['Boolean']['output']; createdAt: Scalars['DateTime']['output']; creator?: Maybe; /** Check if a deployment's instances have all stopped */ deploymentStopped: Scalars['Boolean']['output']; environment: Environment; environmentId: Scalars['String']['output']; id: Scalars['ID']['output']; instances: Array; meta?: Maybe; projectId: Scalars['String']['output']; service: Service; serviceId?: Maybe; snapshotId?: Maybe; sockets: Array; staticUrl?: Maybe; status: DeploymentStatus; statusUpdatedAt?: Maybe; suggestAddServiceDomain: Scalars['Boolean']['output']; updatedAt: Scalars['DateTime']['output']; url?: Maybe; }; type DeploymentCreator = { __typename?: 'DeploymentCreator'; avatar?: Maybe; email: Scalars['String']['output']; id: Scalars['String']['output']; name?: Maybe; }; type DeploymentDeploymentInstance = { __typename?: 'DeploymentDeploymentInstance'; id: Scalars['String']['output']; status: DeploymentInstanceStatus; }; type DeploymentEvent = Node & { __typename?: 'DeploymentEvent'; completedAt?: Maybe; createdAt: Scalars['DateTime']['output']; id: Scalars['ID']['output']; payload?: Maybe; step: DeploymentEventStep; }; type DeploymentEventPayload = { __typename?: 'DeploymentEventPayload'; error?: Maybe; }; type DeploymentEventStep = 'BUILD_IMAGE' | 'CREATE_CONTAINER' | 'DRAIN_INSTANCES' | 'HEALTHCHECK' | 'MIGRATE_VOLUMES' | 'PRE_DEPLOY_COMMAND' | 'PUBLISH_IMAGE' | 'SNAPSHOT_CODE' | 'WAIT_FOR_DEPENDENCIES'; type DeploymentInstanceExecution = Node & { __typename?: 'DeploymentInstanceExecution'; completedAt?: Maybe; createdAt: Scalars['DateTime']['output']; deploymentId: Scalars['String']['output']; deploymentMeta: Scalars['DeploymentMeta']['output']; id: Scalars['ID']['output']; status: DeploymentInstanceStatus; updatedAt: Scalars['DateTime']['output']; }; type DeploymentInstanceExecutionCreateInput = { serviceInstanceId: Scalars['String']['input']; }; type DeploymentInstanceExecutionInput = { deploymentId: Scalars['String']['input']; }; type DeploymentInstanceExecutionListInput = { environmentId: Scalars['String']['input']; serviceId: Scalars['String']['input']; }; type DeploymentInstanceStatus = 'CRASHED' | 'CREATED' | 'EXITED' | 'INITIALIZING' | 'REMOVED' | 'REMOVING' | 'RESTARTING' | 'RUNNING' | 'SKIPPED' | 'STOPPED'; type DeploymentListInput = { environmentId?: InputMaybe; includeDeleted?: InputMaybe; projectId?: InputMaybe; serviceId?: InputMaybe; status?: InputMaybe; }; type DeploymentSnapshot = Node & { __typename?: 'DeploymentSnapshot'; createdAt: Scalars['DateTime']['output']; id: Scalars['ID']['output']; updatedAt: Scalars['DateTime']['output']; variables: Scalars['EnvironmentVariables']['output']; }; type DeploymentSocket = { __typename?: 'DeploymentSocket'; ipv6: Scalars['Boolean']['output']; port: Scalars['Int']['output']; processName: Scalars['String']['output']; updatedAt: Scalars['Int']['output']; }; type DeploymentStatus = 'BUILDING' | 'CRASHED' | 'DEPLOYING' | 'FAILED' | 'INITIALIZING' | 'NEEDS_APPROVAL' | 'QUEUED' | 'REMOVED' | 'REMOVING' | 'SKIPPED' | 'SLEEPING' | 'SUCCESS' | 'WAITING'; type DeploymentStatusInput = { in?: InputMaybe>; notIn?: InputMaybe>; }; type DeploymentTrigger = Node & { __typename?: 'DeploymentTrigger'; baseEnvironmentOverrideId?: Maybe; branch: Scalars['String']['output']; checkSuites: Scalars['Boolean']['output']; environmentId: Scalars['String']['output']; id: Scalars['ID']['output']; projectId: Scalars['String']['output']; provider: Scalars['String']['output']; repository: Scalars['String']['output']; serviceId?: Maybe; validCheckSuites: Scalars['Int']['output']; }; type DeploymentTriggerCreateInput = { branch: Scalars['String']['input']; checkSuites?: InputMaybe; environmentId: Scalars['String']['input']; projectId: Scalars['String']['input']; provider: Scalars['String']['input']; repository: Scalars['String']['input']; rootDirectory?: InputMaybe; serviceId: Scalars['String']['input']; }; type DeploymentTriggerUpdateInput = { branch?: InputMaybe; checkSuites?: InputMaybe; repository?: InputMaybe; rootDirectory?: InputMaybe; }; type DockerComposeImport = { __typename?: 'DockerComposeImport'; errors: Array; patch?: Maybe; }; type Domain = { createdAt?: Maybe; deletedAt?: Maybe; domain: Scalars['String']['output']; edgeId?: Maybe; environmentId: Scalars['String']['output']; id: Scalars['ID']['output']; projectId?: Maybe; serviceId: Scalars['String']['output']; targetPort?: Maybe; updatedAt?: Maybe; }; type DomainAvailable = { __typename?: 'DomainAvailable'; available: Scalars['Boolean']['output']; message: Scalars['String']['output']; }; type DomainWithStatus = { __typename?: 'DomainWithStatus'; cdnProvider?: Maybe; certificateStatus: CertificateStatus; certificates?: Maybe>; dnsRecords: Array; domain?: Maybe; }; type EgressGateway = { __typename?: 'EgressGateway'; ipv4: Scalars['String']['output']; region: Scalars['String']['output']; }; type EgressGatewayCreateInput = { environmentId: Scalars['String']['input']; region?: InputMaybe; serviceId: Scalars['String']['input']; }; type EgressGatewayServiceTargetInput = { environmentId: Scalars['String']['input']; serviceId: Scalars['String']['input']; }; type Environment = Node & { __typename?: 'Environment'; canAccess: Scalars['Boolean']['output']; createdAt: Scalars['DateTime']['output']; deletedAt?: Maybe; deploymentTriggers: EnvironmentDeploymentTriggersConnection; deployments: EnvironmentDeploymentsConnection; id: Scalars['ID']['output']; isEphemeral: Scalars['Boolean']['output']; meta?: Maybe; name: Scalars['String']['output']; projectId: Scalars['String']['output']; serviceInstances: EnvironmentServiceInstancesConnection; sourceEnvironment?: Maybe; unmergedChangesCount?: Maybe; updatedAt: Scalars['DateTime']['output']; variables: EnvironmentVariablesConnection; volumeInstances: EnvironmentVolumeInstancesConnection; }; type EnvironmentDeploymentTriggersArgs = { after?: InputMaybe; before?: InputMaybe; first?: InputMaybe; last?: InputMaybe; }; type EnvironmentDeploymentsArgs = { after?: InputMaybe; before?: InputMaybe; first?: InputMaybe; last?: InputMaybe; }; type EnvironmentServiceInstancesArgs = { after?: InputMaybe; before?: InputMaybe; first?: InputMaybe; last?: InputMaybe; }; type EnvironmentVariablesArgs = { after?: InputMaybe; before?: InputMaybe; first?: InputMaybe; last?: InputMaybe; }; type EnvironmentVolumeInstancesArgs = { after?: InputMaybe; before?: InputMaybe; first?: InputMaybe; last?: InputMaybe; }; type EnvironmentCreateInput = { /** If true, the changes will be applied in the background and the mutation will return immediately. If false, the mutation will wait for the changes to be applied before returning. */ applyChangesInBackground?: InputMaybe; ephemeral?: InputMaybe; name: Scalars['String']['input']; projectId: Scalars['String']['input']; /** When committing the changes immediately, skip any initial deployments. */ skipInitialDeploys?: InputMaybe; /** Create the environment with all of the services, volumes, configuration, and variables from this source environment. */ sourceEnvironmentId?: InputMaybe; /** Stage the initial changes for the environment. If false (default), the changes will be committed immediately. */ stageInitialChanges?: InputMaybe; }; type EnvironmentDeploymentTriggersConnection = { __typename?: 'EnvironmentDeploymentTriggersConnection'; edges: Array; pageInfo: PageInfo; }; type EnvironmentDeploymentTriggersConnectionEdge = { __typename?: 'EnvironmentDeploymentTriggersConnectionEdge'; cursor: Scalars['String']['output']; node: DeploymentTrigger; }; type EnvironmentDeploymentsConnection = { __typename?: 'EnvironmentDeploymentsConnection'; edges: Array; pageInfo: PageInfo; }; type EnvironmentDeploymentsConnectionEdge = { __typename?: 'EnvironmentDeploymentsConnectionEdge'; cursor: Scalars['String']['output']; node: Deployment; }; type EnvironmentMeta = { __typename?: 'EnvironmentMeta'; baseBranch?: Maybe; branch?: Maybe; prCommentId?: Maybe; prNumber?: Maybe; prRepo?: Maybe; prTitle?: Maybe; }; type EnvironmentPatch = Node & { __typename?: 'EnvironmentPatch'; appliedAt?: Maybe; appliedBy?: Maybe; createdAt: Scalars['DateTime']['output']; environment: Environment; environmentId: Scalars['String']['output']; id: Scalars['ID']['output']; lastAppliedError?: Maybe; message?: Maybe; status: EnvironmentPatchStatus; updatedAt: Scalars['DateTime']['output']; }; type EnvironmentPatchStatus = 'APPLYING' | 'COMMITTED' | 'STAGED'; type EnvironmentRenameInput = { name: Scalars['String']['input']; }; type EnvironmentServiceInstancesConnection = { __typename?: 'EnvironmentServiceInstancesConnection'; edges: Array; pageInfo: PageInfo; }; type EnvironmentServiceInstancesConnectionEdge = { __typename?: 'EnvironmentServiceInstancesConnectionEdge'; cursor: Scalars['String']['output']; node: ServiceInstance; }; type EnvironmentTriggersDeployInput = { environmentId: Scalars['String']['input']; projectId: Scalars['String']['input']; serviceId: Scalars['String']['input']; }; type EnvironmentVariablesConnection = { __typename?: 'EnvironmentVariablesConnection'; edges: Array; pageInfo: PageInfo; }; type EnvironmentVariablesConnectionEdge = { __typename?: 'EnvironmentVariablesConnectionEdge'; cursor: Scalars['String']['output']; node: Variable; }; type EnvironmentVolumeInstancesConnection = { __typename?: 'EnvironmentVolumeInstancesConnection'; edges: Array; pageInfo: PageInfo; }; type EnvironmentVolumeInstancesConnectionEdge = { __typename?: 'EnvironmentVolumeInstancesConnectionEdge'; cursor: Scalars['String']['output']; node: VolumeInstance; }; /** The estimated usage of a single measurement. */ type EstimatedUsage = { __typename?: 'EstimatedUsage'; /** The estimated value. */ estimatedValue: Scalars['Float']['output']; /** The measurement that was estimated. */ measurement: MetricMeasurement; projectId: Scalars['String']['output']; }; type Event = Node & { __typename?: 'Event'; action: Scalars['String']['output']; createdAt: Scalars['DateTime']['output']; environment?: Maybe; environmentId?: Maybe; id: Scalars['ID']['output']; object: Scalars['String']['output']; payload?: Maybe; project: Project; projectId?: Maybe; severity: EventSeverity; }; type EventFilterInput = { action?: InputMaybe; object?: InputMaybe; }; type EventSeverity = 'CRITICAL' | 'INFO' | 'NOTICE' | 'WARNING'; type EventStringListFilter = { in?: InputMaybe>; notIn?: InputMaybe>; }; type ExplicitOwnerInput = { /** The ID of the owner */ id: Scalars['String']['input']; /** The type of owner */ type?: InputMaybe; }; type ExternalWorkspace = { __typename?: 'ExternalWorkspace'; allowDeprecatedRegions?: Maybe; avatar?: Maybe; banReason?: Maybe; createdAt: Scalars['DateTime']['output']; currentSessionHasAccess?: Maybe; customerId?: Maybe; customerState: SubscriptionState; discordRole?: Maybe; hasBAA: Scalars['Boolean']['output']; hasRBAC: Scalars['Boolean']['output']; hasSAML: Scalars['Boolean']['output']; id: Scalars['String']['output']; isTrialing?: Maybe; name: Scalars['String']['output']; plan: Plan; preferredRegion?: Maybe; projects: Array; supportTierOverride?: Maybe; teamId?: Maybe; }; type FeatureFlagToggleInput = { flag: ActiveFeatureFlag; }; type FunctionRuntime = { __typename?: 'FunctionRuntime'; /** The image of the function runtime */ image: Scalars['String']['output']; /** The latest version of the function runtime */ latestVersion: FunctionRuntimeVersion; /** The name of the function runtime */ name: FunctionRuntimeName; /** The versions of the function runtime */ versions: Array; }; /** Supported function runtime environments */ type FunctionRuntimeName = 'bun'; type FunctionRuntimeVersion = { __typename?: 'FunctionRuntimeVersion'; image: Scalars['String']['output']; tag: Scalars['String']['output']; }; type GitHubAccess = { __typename?: 'GitHubAccess'; hasAccess: Scalars['Boolean']['output']; isPublic: Scalars['Boolean']['output']; }; type GitHubBranch = { __typename?: 'GitHubBranch'; name: Scalars['String']['output']; }; type GitHubRepo = { __typename?: 'GitHubRepo'; defaultBranch: Scalars['String']['output']; description?: Maybe; fullName: Scalars['String']['output']; id: Scalars['Int']['output']; installationId: Scalars['String']['output']; isPrivate: Scalars['Boolean']['output']; name: Scalars['String']['output']; ownerAvatarUrl?: Maybe; }; type GitHubRepoDeployInput = { branch?: InputMaybe; environmentId?: InputMaybe; projectId: Scalars['String']['input']; repo: Scalars['String']['input']; }; type GitHubRepoUpdateInput = { environmentId: Scalars['String']['input']; projectId: Scalars['String']['input']; serviceId: Scalars['String']['input']; }; type GitHubRepoWithoutInstallation = { __typename?: 'GitHubRepoWithoutInstallation'; defaultBranch: Scalars['String']['output']; description?: Maybe; fullName: Scalars['String']['output']; id: Scalars['Int']['output']; isPrivate: Scalars['Boolean']['output']; name: Scalars['String']['output']; }; type HerokuApp = { __typename?: 'HerokuApp'; id: Scalars['String']['output']; name: Scalars['String']['output']; }; type HerokuImportVariablesInput = { environmentId: Scalars['String']['input']; herokuAppId: Scalars['String']['input']; projectId: Scalars['String']['input']; serviceId: Scalars['String']['input']; }; /** The result of a http logs query. */ type HttpLog = { __typename?: 'HttpLog'; /** The client user agent */ clientUa: Scalars['String']['output']; /** The deployment ID that was requested */ deploymentId: Scalars['String']['output']; /** The deployment instance ID that was requested */ deploymentInstanceId: Scalars['String']['output']; /** The downstream HTTP protocol version */ downstreamProto: Scalars['String']['output']; /** The edge region the client connected to */ edgeRegion: Scalars['String']['output']; /** The requested host */ host: Scalars['String']['output']; /** The http status of the log */ httpStatus: Scalars['Int']['output']; /** The request HTTP method */ method: Scalars['String']['output']; /** The requested path */ path: Scalars['String']['output']; /** The unique request ID */ requestId: Scalars['String']['output']; /** Details about the upstream response */ responseDetails: Scalars['String']['output']; /** Received bytes */ rxBytes: Scalars['Int']['output']; /** The source IP of the request */ srcIp: Scalars['String']['output']; /** The timestamp the log was created */ timestamp: Scalars['String']['output']; /** The total duration the request took */ totalDuration: Scalars['Int']['output']; /** Outgoing bytes */ txBytes: Scalars['Int']['output']; /** The upstream address */ upstreamAddress: Scalars['String']['output']; /** Any upstream errors that occurred */ upstreamErrors: Scalars['String']['output']; /** The upstream HTTP protocol version */ upstreamProto: Scalars['String']['output']; /** How long the upstream request took to respond */ upstreamRqDuration: Scalars['Int']['output']; }; type Incident = { __typename?: 'Incident'; id: Scalars['String']['output']; message: Scalars['String']['output']; status: IncidentStatus; url: Scalars['String']['output']; }; type IncidentStatus = 'IDENTIFIED' | 'INVESTIGATING' | 'MONITORING' | 'RESOLVED'; type Integration = Node & { __typename?: 'Integration'; config: Scalars['JSON']['output']; id: Scalars['ID']['output']; name: Scalars['String']['output']; projectId: Scalars['String']['output']; }; type IntegrationAuth = Node & { __typename?: 'IntegrationAuth'; id: Scalars['ID']['output']; integrations: IntegrationAuthIntegrationsConnection; provider: Scalars['String']['output']; providerId: Scalars['String']['output']; }; type IntegrationAuthIntegrationsArgs = { after?: InputMaybe; before?: InputMaybe; first?: InputMaybe; last?: InputMaybe; }; type IntegrationAuthIntegrationsConnection = { __typename?: 'IntegrationAuthIntegrationsConnection'; edges: Array; pageInfo: PageInfo; }; type IntegrationAuthIntegrationsConnectionEdge = { __typename?: 'IntegrationAuthIntegrationsConnectionEdge'; cursor: Scalars['String']['output']; node: Integration; }; type IntegrationCreateInput = { config: Scalars['JSON']['input']; integrationAuthId?: InputMaybe; name: Scalars['String']['input']; projectId: Scalars['String']['input']; }; type IntegrationUpdateInput = { config: Scalars['JSON']['input']; integrationAuthId?: InputMaybe; name: Scalars['String']['input']; projectId: Scalars['String']['input']; }; type InviteCode = Node & { __typename?: 'InviteCode'; code: Scalars['String']['output']; createdAt: Scalars['DateTime']['output']; id: Scalars['ID']['output']; project: Project; projectId: Scalars['String']['output']; role: ProjectRole; }; type JobApplicationCreateInput = { email: Scalars['String']['input']; jobId: Scalars['String']['input']; name: Scalars['String']['input']; why: Scalars['String']['input']; }; type KeyType = 'KEY_TYPE_ECDSA' | 'KEY_TYPE_RSA_2048' | 'KEY_TYPE_RSA_4096' | 'KEY_TYPE_UNSPECIFIED' | 'UNRECOGNIZED'; /** The result of a logs query. */ type Log = { __typename?: 'Log'; /** The attributes that were parsed from a structured log */ attributes: Array; /** The contents of the log message */ message: Scalars['String']['output']; /** The severity of the log message (eg. err) */ severity?: Maybe; /** The tags that were associated with the log */ tags?: Maybe; /** The timestamp of the log message in format RFC3339 (nano) */ timestamp: Scalars['String']['output']; }; /** The attributes associated with a structured log */ type LogAttribute = { __typename?: 'LogAttribute'; key: Scalars['String']['output']; value: Scalars['String']['output']; }; /** The tags associated with a specific log */ type LogTags = { __typename?: 'LogTags'; deploymentId?: Maybe; deploymentInstanceId?: Maybe; environmentId?: Maybe; /** @deprecated Plugins have been removed */ pluginId?: Maybe; projectId?: Maybe; serviceId?: Maybe; snapshotId?: Maybe; }; type LoginSessionAuthInput = { code: Scalars['String']['input']; hostname?: InputMaybe; }; type Maintenance = { __typename?: 'Maintenance'; id: Scalars['String']['output']; message: Scalars['String']['output']; status: MaintenanceStatus; url: Scalars['String']['output']; }; type MaintenanceStatus = 'COMPLETED' | 'INPROGRESS' | 'NOTSTARTEDYET'; /** A single sample of a metric. */ type Metric = { __typename?: 'Metric'; /** The timestamp of the sample. Represented has number of seconds since the Unix epoch. */ ts: Scalars['Int']['output']; /** The value of the sample. */ value: Scalars['Float']['output']; }; /** A thing that can be measured on Railway. */ type MetricMeasurement = 'BACKUP_USAGE_GB' | 'CPU_LIMIT' | 'CPU_USAGE' | 'CPU_USAGE_2' | 'DISK_USAGE_GB' | 'EPHEMERAL_DISK_USAGE_GB' | 'MEASUREMENT_UNSPECIFIED' | 'MEMORY_LIMIT_GB' | 'MEMORY_USAGE_GB' | 'NETWORK_RX_GB' | 'NETWORK_TX_GB' | 'UNRECOGNIZED'; /** A property that can be used to group metrics. */ type MetricTag = 'DEPLOYMENT_ID' | 'DEPLOYMENT_INSTANCE_ID' | 'ENVIRONMENT_ID' | 'HOST_TYPE' | 'KEY_UNSPECIFIED' | 'PLUGIN_ID' | 'PROJECT_ID' | 'REGION' | 'SERVICE_ID' | 'UNRECOGNIZED' | 'VOLUME_ID' | 'VOLUME_INSTANCE_ID'; /** The tags that were used to group the metric. */ type MetricTags = { __typename?: 'MetricTags'; deploymentId?: Maybe; deploymentInstanceId?: Maybe; environmentId?: Maybe; /** @deprecated Plugins have been removed */ pluginId?: Maybe; projectId?: Maybe; region?: Maybe; serviceId?: Maybe; volumeId?: Maybe; volumeInstanceId?: Maybe; }; /** The result of a metrics query. */ type MetricsResult = { __typename?: 'MetricsResult'; /** The measurement of the metric. */ measurement: MetricMeasurement; /** The tags that were used to group the metric. Only the tags that were used to by will be present. */ tags: MetricTags; /** The samples of the metric. */ values: Array; }; type MonitorAlertResourceType = 'SERVICE' | 'VOLUME'; type MonitorStatus = 'ALERT' | 'OK'; type MonitorThresholdCondition = 'above' | 'below'; type MonitorThresholdConfig = { __typename?: 'MonitorThresholdConfig'; condition: MonitorThresholdCondition; measurement?: Maybe; threshold: Scalars['Float']['output']; type: Scalars['String']['output']; }; type Mutation = { __typename?: 'Mutation'; /** Creates a new API token. */ apiTokenCreate: Scalars['String']['output']; /** Deletes an API token. */ apiTokenDelete: Scalars['Boolean']['output']; /** Sets the base environment override for a deployment trigger. */ baseEnvironmentOverride: Scalars['Boolean']['output']; /** Creates a new custom domain. */ customDomainCreate: CustomDomain; /** Deletes a custom domain. */ customDomainDelete: Scalars['Boolean']['output']; /** Updates a custom domain. */ customDomainUpdate: Scalars['Boolean']['output']; /** Create a free plan subscription for a customer */ customerCreateFreePlanSubscription: Scalars['Boolean']['output']; /** Toggle whether a customer is automatically withdrawing to credits */ customerTogglePayoutsToCredits: Scalars['Boolean']['output']; /** Approves a deployment. */ deploymentApprove: Scalars['Boolean']['output']; /** Cancels a deployment. */ deploymentCancel: Scalars['Boolean']['output']; /** Invoke a deployment instance execution. */ deploymentInstanceExecutionCreate: Scalars['Boolean']['output']; /** Redeploys a deployment. */ deploymentRedeploy: Deployment; /** Removes a deployment. */ deploymentRemove: Scalars['Boolean']['output']; /** Restarts a deployment. */ deploymentRestart: Scalars['Boolean']['output']; /** Rolls back to a deployment. */ deploymentRollback: Scalars['Boolean']['output']; /** Stops a deployment. */ deploymentStop: Scalars['Boolean']['output']; /** Creates a deployment trigger. */ deploymentTriggerCreate: DeploymentTrigger; /** Deletes a deployment trigger. */ deploymentTriggerDelete: Scalars['Boolean']['output']; /** Updates a deployment trigger. */ deploymentTriggerUpdate: DeploymentTrigger; /** Create services and volumes from docker compose */ dockerComposeImport: DockerComposeImport; /** Create a new egress gateway association for a service instance */ egressGatewayAssociationCreate: Array; /** Clear all egress gateway associations for a service instance */ egressGatewayAssociationsClear: Scalars['Boolean']['output']; /** Change the User's account email if there is a valid change email request. */ emailChangeConfirm: Scalars['Boolean']['output']; /** Initiate an email change request for a user */ emailChangeInitiate: Scalars['Boolean']['output']; /** Creates a new environment. */ environmentCreate: Environment; /** Deletes an environment. */ environmentDelete: Scalars['Boolean']['output']; /** Commit the provided patch to the environment. */ environmentPatchCommit: Scalars['String']['output']; /** Renames an environment. */ environmentRename: Environment; /** Deploys all connected triggers for an environment. */ environmentTriggersDeploy: Scalars['Boolean']['output']; /** Agree to the fair use policy for the currently authenticated user */ fairUseAgree: Scalars['Boolean']['output']; /** Add a feature flag for a user */ featureFlagAdd: Scalars['Boolean']['output']; /** Remove a feature flag for a user */ featureFlagRemove: Scalars['Boolean']['output']; /** Deploys a GitHub repo */ githubRepoDeploy: Scalars['String']['output']; /** Updates a GitHub repo through the linked template */ githubRepoUpdate: Scalars['Boolean']['output']; /** Import variables from a Heroku app into a Railway service. Returns the number of variables imports */ herokuImportVariables: Scalars['Int']['output']; /** Create an integration for a project */ integrationCreate: Integration; /** Delete an integration for a project */ integrationDelete: Scalars['Boolean']['output']; /** Update an integration for a project */ integrationUpdate: Integration; /** Join a project using an invite code */ inviteCodeUse: Project; /** Creates a new job application. */ jobApplicationCreate: Scalars['Boolean']['output']; /** Auth a login session for a user */ loginSessionAuth: Scalars['Boolean']['output']; /** Cancel a login session */ loginSessionCancel: Scalars['Boolean']['output']; /** Get a token for a login session if it exists */ loginSessionConsume?: Maybe; /** Start a CLI login session */ loginSessionCreate: Scalars['String']['output']; /** Verify if a login session is valid */ loginSessionVerify: Scalars['Boolean']['output']; /** Marks notification deliveries as read */ notificationDeliveriesMarkAsRead: Scalars['Boolean']['output']; /** Create an observability dashboard */ observabilityDashboardCreate: Scalars['Boolean']['output']; /** Reset an observability dashboard to default dashboard items */ observabilityDashboardReset: Scalars['Boolean']['output']; /** Update an observability dashboard */ observabilityDashboardUpdate: Scalars['Boolean']['output']; /** Deletes a Passkey */ passkeyDelete: Scalars['Boolean']['output']; /** * Creates a new plugin. * @deprecated Plugins are deprecated on Railway. Use database templates instead. */ pluginCreate: Plugin; /** * Deletes a plugin. * @deprecated Plugins are deprecated */ pluginDelete: Scalars['Boolean']['output']; /** * Reset envs and container for a plugin in an environment * @deprecated Plugins are deprecated */ pluginReset: Scalars['Boolean']['output']; /** * Resets the credentials for a plugin in an environment * @deprecated Plugins are deprecated */ pluginResetCredentials: Scalars['String']['output']; /** * Restarts a plugin. * @deprecated Plugins are deprecated */ pluginRestart: Plugin; /** * Force start a plugin * @deprecated Plugins are deprecated */ pluginStart: Scalars['Boolean']['output']; /** * Updates an existing plugin. * @deprecated Plugins are deprecated */ pluginUpdate: Plugin; /** Update the email preferences for a user */ preferencesUpdate: Preferences; /** Create or get a private network. */ privateNetworkCreateOrGet: PrivateNetwork; /** Create or get a private network endpoint. */ privateNetworkEndpointCreateOrGet: PrivateNetworkEndpoint; /** Delete a private network endpoint. */ privateNetworkEndpointDelete: Scalars['Boolean']['output']; /** Rename a private network endpoint. */ privateNetworkEndpointRename: Scalars['Boolean']['output']; /** Delete all private networks for an environment. */ privateNetworksForEnvironmentDelete: Scalars['Boolean']['output']; /** Claims a project. */ projectClaim: Project; /** Creates a new project. */ projectCreate: Project; /** Deletes a project. */ projectDelete: Scalars['Boolean']['output']; /** Accept a project invitation using the invite code */ projectInvitationAccept: ProjectPermission; /** Create an invitation for a project */ projectInvitationCreate: ProjectInvitation; /** Delete an invitation for a project */ projectInvitationDelete: Scalars['Boolean']['output']; /** Resend an invitation for a project */ projectInvitationResend: ProjectInvitation; /** Invite a user by email to a project */ projectInviteUser: Scalars['Boolean']['output']; /** Leave project as currently authenticated user */ projectLeave: Scalars['Boolean']['output']; /** Remove user from a project */ projectMemberRemove: Array; /** Change the role for a user within a project */ projectMemberUpdate: ProjectMember; /** Deletes a project with a 48 hour grace period. */ projectScheduleDelete: Scalars['Boolean']['output']; /** Cancel scheduled deletion of a project */ projectScheduleDeleteCancel: Scalars['Boolean']['output']; /** Force delete a scheduled deletion of a project (skips the grace period) */ projectScheduleDeleteForce: Scalars['Boolean']['output']; /** Create a token for a project that has access to a specific environment */ projectTokenCreate: Scalars['String']['output']; /** Delete a project token */ projectTokenDelete: Scalars['Boolean']['output']; /** Transfer a project to a workspace */ projectTransfer: Scalars['Boolean']['output']; /** Confirm the transfer of project ownership */ projectTransferConfirm: Scalars['Boolean']['output']; /** Initiate the transfer of project ownership */ projectTransferInitiate: Scalars['Boolean']['output']; /** * Transfer a project to a team * @deprecated Use projectTransfer instead */ projectTransferToTeam: Scalars['Boolean']['output']; /** Updates a project. */ projectUpdate: Project; /** Deletes a ProviderAuth. */ providerAuthRemove: Scalars['Boolean']['output']; /** Generates a new set of recovery codes for the authenticated user. */ recoveryCodeGenerate: RecoveryCodes; /** Validates a recovery code. */ recoveryCodeValidate: Scalars['Boolean']['output']; /** Updates the ReferralInfo for the authenticated user. */ referralInfoUpdate: ReferralInfo; /** Connect a service to a source */ serviceConnect: Service; /** Creates a new service. */ serviceCreate: Service; /** Deletes a service. */ serviceDelete: Scalars['Boolean']['output']; /** Disconnect a service from a repo */ serviceDisconnect: Service; /** Creates a new service domain. */ serviceDomainCreate: ServiceDomain; /** Deletes a service domain. */ serviceDomainDelete: Scalars['Boolean']['output']; /** Updates a service domain. */ serviceDomainUpdate: Scalars['Boolean']['output']; /** * Duplicate a service, including its configuration, variables, and volumes. * @deprecated This API route is used only by the CLI. We plan to remove it in a future version. Please use the UI to duplicate services. */ serviceDuplicate: Service; /** Add a feature flag for a service */ serviceFeatureFlagAdd: Scalars['Boolean']['output']; /** Remove a feature flag for a service */ serviceFeatureFlagRemove: Scalars['Boolean']['output']; /** Deploy a service instance */ serviceInstanceDeploy: Scalars['Boolean']['output']; /** Deploy a service instance. Returns a deployment ID */ serviceInstanceDeployV2: Scalars['String']['output']; /** Update the resource limits for a service instance */ serviceInstanceLimitsUpdate: Scalars['Boolean']['output']; /** Redeploy a service instance */ serviceInstanceRedeploy: Scalars['Boolean']['output']; /** Update a service instance */ serviceInstanceUpdate: Scalars['Boolean']['output']; /** Remove the upstream URL from all service instances for this service */ serviceRemoveUpstreamUrl: Service; /** Updates a service. */ serviceUpdate: Service; /** Deletes a session. */ sessionDelete: Scalars['Boolean']['output']; /** Configure a shared variable. */ sharedVariableConfigure: Variable; /** * Creates a new TCP proxy for a service instance. * @deprecated Use staged changes and apply them. Creating a TCP proxy with this endpoint requires you to redeploy the service for it to be active. */ tcpProxyCreate: TcpProxy; /** Deletes a TCP proxy by id */ tcpProxyDelete: Scalars['Boolean']['output']; /** Duplicates an existing template */ templateClone: Template; /** Deletes a template. */ templateDelete: Scalars['Boolean']['output']; /** * Deploys a template. * @deprecated Deprecated in favor of templateDeployV2 */ templateDeploy: TemplateDeployPayload; /** Deploys a template using the serialized template config */ templateDeployV2: TemplateDeployPayload; /** Generate a template for a project */ templateGenerate: Template; /** Publishes a template. */ templatePublish: Template; /** Ejects a service from the template and creates a new repo in the provided org. */ templateServiceSourceEject: Scalars['Boolean']['output']; /** Unpublishes a template. */ templateUnpublish: Scalars['Boolean']['output']; /** Create a new trusted domain for this workspace */ trustedDomainCreate: Scalars['Boolean']['output']; /** Delete a trusted domain */ trustedDomainDelete: Scalars['Boolean']['output']; /** Setup 2FA authorization for authenticated user. */ twoFactorInfoCreate: RecoveryCodes; /** Deletes the TwoFactorInfo for the authenticated user. */ twoFactorInfoDelete: Scalars['Boolean']['output']; /** Generates the 2FA app secret for the authenticated user. */ twoFactorInfoSecret: TwoFactorInfoSecret; /** Validates the token for a 2FA action or for a login request. */ twoFactorInfoValidate: Scalars['Boolean']['output']; /** Generate a Slack channel for a workspace */ upsertSlackChannel: Scalars['Boolean']['output']; /** Remove the usage limit for a customer */ usageLimitRemove: Scalars['Boolean']['output']; /** Set the usage limit for a customer */ usageLimitSet: Scalars['Boolean']['output']; /** Unsubscribe from the Beta program. */ userBetaLeave: Scalars['Boolean']['output']; /** Delete the currently authenticated user */ userDelete: Scalars['Boolean']['output']; /** Disconnect your Railway account from Discord. */ userDiscordDisconnect: Scalars['Boolean']['output']; /** Remove a flag on the user. */ userFlagsRemove: Scalars['Boolean']['output']; /** Set flags on the authenticated user. */ userFlagsSet: Scalars['Boolean']['output']; /** Updates the profile for the authenticated user */ userProfileUpdate: Scalars['Boolean']['output']; /** Update date of TermsAgreedOn */ userTermsUpdate?: Maybe; /** Upserts a collection of variables. */ variableCollectionUpsert: Scalars['Boolean']['output']; /** Deletes a variable. */ variableDelete: Scalars['Boolean']['output']; /** Upserts a variable. */ variableUpsert: Scalars['Boolean']['output']; /** Create a persistent volume in a project */ volumeCreate: Volume; /** Delete a persistent volume in a project */ volumeDelete: Scalars['Boolean']['output']; /** Create backup of a volume instance */ volumeInstanceBackupCreate: WorkflowId; /** Deletes volume instance backup */ volumeInstanceBackupDelete: WorkflowId; /** Removes backup expiration date */ volumeInstanceBackupLock: Scalars['Boolean']['output']; /** Restore a volume instance from a backup */ volumeInstanceBackupRestore: WorkflowId; /** Manage schedule for backups of a volume instance */ volumeInstanceBackupScheduleUpdate: Scalars['Boolean']['output']; /** Update a volume instance. If no environmentId is provided, all volume instances for the volume will be updated. */ volumeInstanceUpdate: Scalars['Boolean']['output']; /** Update a persistent volume in a project */ volumeUpdate: Volume; /** Delete a workspace and all data associated with it */ workspaceDelete: Scalars['Boolean']['output']; /** Get an invite code for a workspace and role */ workspaceInviteCodeCreate: Scalars['String']['output']; /** Use an invite code to join a workspace */ workspaceInviteCodeUse: Workspace; /** Leave a workspace */ workspaceLeave: Scalars['Boolean']['output']; /** Changes a user workspace permissions. */ workspacePermissionChange: Scalars['Boolean']['output']; /** Update a workspace by id */ workspaceUpdate: Scalars['Boolean']['output']; /** Generate a Slack channel for a workspace */ workspaceUpsertSlackChannel: Scalars['Boolean']['output']; /** Invite a user by email to a workspace */ workspaceUserInvite: Scalars['Boolean']['output']; /** Remove a user from a workspace */ workspaceUserRemove: Scalars['Boolean']['output']; }; type MutationApiTokenCreateArgs = { input: ApiTokenCreateInput; }; type MutationApiTokenDeleteArgs = { id: Scalars['String']['input']; }; type MutationBaseEnvironmentOverrideArgs = { id: Scalars['String']['input']; input: BaseEnvironmentOverrideInput; }; type MutationCustomDomainCreateArgs = { input: CustomDomainCreateInput; }; type MutationCustomDomainDeleteArgs = { id: Scalars['String']['input']; }; type MutationCustomDomainUpdateArgs = { environmentId: Scalars['String']['input']; id: Scalars['String']['input']; targetPort?: InputMaybe; }; type MutationCustomerCreateFreePlanSubscriptionArgs = { id: Scalars['String']['input']; }; type MutationCustomerTogglePayoutsToCreditsArgs = { customerId: Scalars['String']['input']; input: CustomerTogglePayoutsToCreditsInput; }; type MutationDeploymentApproveArgs = { id: Scalars['String']['input']; }; type MutationDeploymentCancelArgs = { id: Scalars['String']['input']; }; type MutationDeploymentInstanceExecutionCreateArgs = { input: DeploymentInstanceExecutionCreateInput; }; type MutationDeploymentRedeployArgs = { id: Scalars['String']['input']; usePreviousImageTag?: InputMaybe; }; type MutationDeploymentRemoveArgs = { id: Scalars['String']['input']; }; type MutationDeploymentRestartArgs = { id: Scalars['String']['input']; }; type MutationDeploymentRollbackArgs = { id: Scalars['String']['input']; }; type MutationDeploymentStopArgs = { id: Scalars['String']['input']; }; type MutationDeploymentTriggerCreateArgs = { input: DeploymentTriggerCreateInput; }; type MutationDeploymentTriggerDeleteArgs = { id: Scalars['String']['input']; }; type MutationDeploymentTriggerUpdateArgs = { id: Scalars['String']['input']; input: DeploymentTriggerUpdateInput; }; type MutationDockerComposeImportArgs = { environmentId: Scalars['String']['input']; projectId: Scalars['String']['input']; skipStagingPatch?: InputMaybe; yaml: Scalars['String']['input']; }; type MutationEgressGatewayAssociationCreateArgs = { input: EgressGatewayCreateInput; }; type MutationEgressGatewayAssociationsClearArgs = { input: EgressGatewayServiceTargetInput; }; type MutationEmailChangeConfirmArgs = { nonce: Scalars['String']['input']; }; type MutationEmailChangeInitiateArgs = { newEmail: Scalars['String']['input']; }; type MutationEnvironmentCreateArgs = { input: EnvironmentCreateInput; }; type MutationEnvironmentDeleteArgs = { id: Scalars['String']['input']; }; type MutationEnvironmentPatchCommitArgs = { commitMessage?: InputMaybe; environmentId: Scalars['String']['input']; patch?: InputMaybe; }; type MutationEnvironmentRenameArgs = { id: Scalars['String']['input']; input: EnvironmentRenameInput; }; type MutationEnvironmentTriggersDeployArgs = { input: EnvironmentTriggersDeployInput; }; type MutationFairUseAgreeArgs = { agree: Scalars['Boolean']['input']; }; type MutationFeatureFlagAddArgs = { input: FeatureFlagToggleInput; }; type MutationFeatureFlagRemoveArgs = { input: FeatureFlagToggleInput; }; type MutationGithubRepoDeployArgs = { input: GitHubRepoDeployInput; }; type MutationGithubRepoUpdateArgs = { input: GitHubRepoUpdateInput; }; type MutationHerokuImportVariablesArgs = { input: HerokuImportVariablesInput; }; type MutationIntegrationCreateArgs = { input: IntegrationCreateInput; }; type MutationIntegrationDeleteArgs = { id: Scalars['String']['input']; }; type MutationIntegrationUpdateArgs = { id: Scalars['String']['input']; input: IntegrationUpdateInput; }; type MutationInviteCodeUseArgs = { code: Scalars['String']['input']; }; type MutationJobApplicationCreateArgs = { input: JobApplicationCreateInput; resume: Scalars['Upload']['input']; }; type MutationLoginSessionAuthArgs = { input: LoginSessionAuthInput; }; type MutationLoginSessionCancelArgs = { code: Scalars['String']['input']; }; type MutationLoginSessionConsumeArgs = { code: Scalars['String']['input']; }; type MutationLoginSessionVerifyArgs = { code: Scalars['String']['input']; }; type MutationNotificationDeliveriesMarkAsReadArgs = { deliveryIds: Array; }; type MutationObservabilityDashboardCreateArgs = { input: ObservabilityDashboardCreateInput; }; type MutationObservabilityDashboardResetArgs = { id: Scalars['String']['input']; }; type MutationObservabilityDashboardUpdateArgs = { id: Scalars['String']['input']; input: Array; }; type MutationPasskeyDeleteArgs = { id: Scalars['String']['input']; }; type MutationPluginCreateArgs = { input: PluginCreateInput; }; type MutationPluginDeleteArgs = { environmentId?: InputMaybe; id: Scalars['String']['input']; }; type MutationPluginResetArgs = { id: Scalars['String']['input']; input: ResetPluginInput; }; type MutationPluginResetCredentialsArgs = { id: Scalars['String']['input']; input: ResetPluginCredentialsInput; }; type MutationPluginRestartArgs = { id: Scalars['String']['input']; input: PluginRestartInput; }; type MutationPluginStartArgs = { id: Scalars['String']['input']; input: PluginRestartInput; }; type MutationPluginUpdateArgs = { id: Scalars['String']['input']; input: PluginUpdateInput; }; type MutationPreferencesUpdateArgs = { input: PreferencesUpdateData; }; type MutationPrivateNetworkCreateOrGetArgs = { input: PrivateNetworkCreateOrGetInput; }; type MutationPrivateNetworkEndpointCreateOrGetArgs = { input: PrivateNetworkEndpointCreateOrGetInput; }; type MutationPrivateNetworkEndpointDeleteArgs = { id: Scalars['String']['input']; }; type MutationPrivateNetworkEndpointRenameArgs = { dnsName: Scalars['String']['input']; id: Scalars['String']['input']; privateNetworkId: Scalars['String']['input']; }; type MutationPrivateNetworksForEnvironmentDeleteArgs = { environmentId: Scalars['String']['input']; }; type MutationProjectClaimArgs = { id: Scalars['String']['input']; workspaceId: Scalars['String']['input']; }; type MutationProjectCreateArgs = { input: ProjectCreateInput; }; type MutationProjectDeleteArgs = { id: Scalars['String']['input']; }; type MutationProjectInvitationAcceptArgs = { code: Scalars['String']['input']; }; type MutationProjectInvitationCreateArgs = { id: Scalars['String']['input']; input: ProjectInvitee; }; type MutationProjectInvitationDeleteArgs = { id: Scalars['String']['input']; }; type MutationProjectInvitationResendArgs = { id: Scalars['String']['input']; }; type MutationProjectInviteUserArgs = { id: Scalars['String']['input']; input: ProjectInviteUserInput; }; type MutationProjectLeaveArgs = { id: Scalars['String']['input']; }; type MutationProjectMemberRemoveArgs = { input: ProjectMemberRemoveInput; }; type MutationProjectMemberUpdateArgs = { input: ProjectMemberUpdateInput; }; type MutationProjectScheduleDeleteArgs = { id: Scalars['String']['input']; }; type MutationProjectScheduleDeleteCancelArgs = { id: Scalars['String']['input']; }; type MutationProjectScheduleDeleteForceArgs = { id: Scalars['String']['input']; }; type MutationProjectTokenCreateArgs = { input: ProjectTokenCreateInput; }; type MutationProjectTokenDeleteArgs = { id: Scalars['String']['input']; }; type MutationProjectTransferArgs = { input: ProjectTransferInput; projectId: Scalars['String']['input']; }; type MutationProjectTransferConfirmArgs = { input: ProjectTransferConfirmInput; }; type MutationProjectTransferInitiateArgs = { input: ProjectTransferInitiateInput; }; type MutationProjectTransferToTeamArgs = { id: Scalars['String']['input']; input: ProjectTransferToTeamInput; }; type MutationProjectUpdateArgs = { id: Scalars['String']['input']; input: ProjectUpdateInput; }; type MutationProviderAuthRemoveArgs = { id: Scalars['String']['input']; }; type MutationRecoveryCodeValidateArgs = { input: RecoveryCodeValidateInput; }; type MutationReferralInfoUpdateArgs = { input: ReferralInfoUpdateInput; }; type MutationServiceConnectArgs = { id: Scalars['String']['input']; input: ServiceConnectInput; }; type MutationServiceCreateArgs = { input: ServiceCreateInput; }; type MutationServiceDeleteArgs = { environmentId?: InputMaybe; id: Scalars['String']['input']; }; type MutationServiceDisconnectArgs = { id: Scalars['String']['input']; }; type MutationServiceDomainCreateArgs = { input: ServiceDomainCreateInput; }; type MutationServiceDomainDeleteArgs = { id: Scalars['String']['input']; }; type MutationServiceDomainUpdateArgs = { input: ServiceDomainUpdateInput; }; type MutationServiceDuplicateArgs = { environmentId: Scalars['String']['input']; serviceId: Scalars['String']['input']; }; type MutationServiceFeatureFlagAddArgs = { input: ServiceFeatureFlagToggleInput; }; type MutationServiceFeatureFlagRemoveArgs = { input: ServiceFeatureFlagToggleInput; }; type MutationServiceInstanceDeployArgs = { commitSha?: InputMaybe; environmentId: Scalars['String']['input']; latestCommit?: InputMaybe; serviceId: Scalars['String']['input']; }; type MutationServiceInstanceDeployV2Args = { commitSha?: InputMaybe; environmentId: Scalars['String']['input']; serviceId: Scalars['String']['input']; }; type MutationServiceInstanceLimitsUpdateArgs = { input: ServiceInstanceLimitsUpdateInput; }; type MutationServiceInstanceRedeployArgs = { environmentId: Scalars['String']['input']; serviceId: Scalars['String']['input']; }; type MutationServiceInstanceUpdateArgs = { environmentId?: InputMaybe; input: ServiceInstanceUpdateInput; serviceId: Scalars['String']['input']; }; type MutationServiceRemoveUpstreamUrlArgs = { id: Scalars['String']['input']; }; type MutationServiceUpdateArgs = { id: Scalars['String']['input']; input: ServiceUpdateInput; }; type MutationSessionDeleteArgs = { id: Scalars['String']['input']; }; type MutationSharedVariableConfigureArgs = { input: SharedVariableConfigureInput; }; type MutationTcpProxyCreateArgs = { input: TcpProxyCreateInput; }; type MutationTcpProxyDeleteArgs = { id: Scalars['String']['input']; }; type MutationTemplateCloneArgs = { input: TemplateCloneInput; }; type MutationTemplateDeleteArgs = { id: Scalars['String']['input']; input: TemplateDeleteInput; }; type MutationTemplateDeployArgs = { input: TemplateDeployInput; }; type MutationTemplateDeployV2Args = { input: TemplateDeployV2Input; }; type MutationTemplateGenerateArgs = { input: TemplateGenerateInput; }; type MutationTemplatePublishArgs = { id: Scalars['String']['input']; input: TemplatePublishInput; }; type MutationTemplateServiceSourceEjectArgs = { input: TemplateServiceSourceEjectInput; }; type MutationTemplateUnpublishArgs = { id: Scalars['String']['input']; }; type MutationTrustedDomainCreateArgs = { input: WorkspaceTrustedDomainCreateInput; }; type MutationTrustedDomainDeleteArgs = { id: Scalars['String']['input']; }; type MutationTwoFactorInfoCreateArgs = { input: TwoFactorInfoCreateInput; }; type MutationTwoFactorInfoValidateArgs = { input: TwoFactorInfoValidateInput; }; type MutationUpsertSlackChannelArgs = { workspaceId: Scalars['String']['input']; }; type MutationUsageLimitRemoveArgs = { input: UsageLimitRemoveInput; }; type MutationUsageLimitSetArgs = { input: UsageLimitSetInput; }; type MutationUserFlagsRemoveArgs = { input: UserFlagsRemoveInput; }; type MutationUserFlagsSetArgs = { input: UserFlagsSetInput; }; type MutationUserProfileUpdateArgs = { input: UserProfileUpdateInput; }; type MutationVariableCollectionUpsertArgs = { input: VariableCollectionUpsertInput; }; type MutationVariableDeleteArgs = { input: VariableDeleteInput; }; type MutationVariableUpsertArgs = { input: VariableUpsertInput; }; type MutationVolumeCreateArgs = { input: VolumeCreateInput; }; type MutationVolumeDeleteArgs = { volumeId: Scalars['String']['input']; }; type MutationVolumeInstanceBackupCreateArgs = { volumeInstanceId: Scalars['String']['input']; }; type MutationVolumeInstanceBackupDeleteArgs = { volumeInstanceBackupId: Scalars['String']['input']; volumeInstanceId: Scalars['String']['input']; }; type MutationVolumeInstanceBackupLockArgs = { volumeInstanceBackupId: Scalars['String']['input']; volumeInstanceId: Scalars['String']['input']; }; type MutationVolumeInstanceBackupRestoreArgs = { volumeInstanceBackupId: Scalars['String']['input']; volumeInstanceId: Scalars['String']['input']; }; type MutationVolumeInstanceBackupScheduleUpdateArgs = { kinds: Array; volumeInstanceId: Scalars['String']['input']; }; type MutationVolumeInstanceUpdateArgs = { environmentId?: InputMaybe; input: VolumeInstanceUpdateInput; volumeId: Scalars['String']['input']; }; type MutationVolumeUpdateArgs = { input: VolumeUpdateInput; volumeId: Scalars['String']['input']; }; type MutationWorkspaceDeleteArgs = { id: Scalars['String']['input']; }; type MutationWorkspaceInviteCodeCreateArgs = { input: WorkspaceInviteCodeCreateInput; workspaceId: Scalars['String']['input']; }; type MutationWorkspaceInviteCodeUseArgs = { code: Scalars['String']['input']; }; type MutationWorkspaceLeaveArgs = { id: Scalars['String']['input']; }; type MutationWorkspacePermissionChangeArgs = { input: WorkspacePermissionChangeInput; }; type MutationWorkspaceUpdateArgs = { id: Scalars['String']['input']; input: WorkspaceUpdateInput; }; type MutationWorkspaceUpsertSlackChannelArgs = { id: Scalars['String']['input']; }; type MutationWorkspaceUserInviteArgs = { input: WorkspaceUserInviteInput; workspaceId: Scalars['String']['input']; }; type MutationWorkspaceUserRemoveArgs = { input: WorkspaceUserRemoveInput; workspaceId: Scalars['String']['input']; }; type Node = { id: Scalars['ID']['output']; }; type NotificationDelivery = Node & { __typename?: 'NotificationDelivery'; createdAt: Scalars['DateTime']['output']; id: Scalars['ID']['output']; notificationInstance: NotificationInstance; readAt?: Maybe; status: NotificationDeliveryStatus; type: NotificationDeliveryType; updatedAt: Scalars['DateTime']['output']; userId?: Maybe; }; type NotificationDeliveryCreated = { __typename?: 'NotificationDeliveryCreated'; delivery: NotificationDelivery; type: Scalars['String']['output']; }; type NotificationDeliveryFilterInput = { environmentId?: InputMaybe; onlyUnread?: InputMaybe; projectId?: InputMaybe; status?: InputMaybe; type?: InputMaybe; workspaceId?: InputMaybe; }; type NotificationDeliveryResolved = { __typename?: 'NotificationDeliveryResolved'; deliveryIds: Array; type: Scalars['String']['output']; }; type NotificationDeliveryStatus = 'FAILED' | 'PENDING' | 'SENT'; type NotificationDeliveryType = 'EMAIL' | 'INAPP' | 'WEBHOOK'; type NotificationDeliveryUpdate = NotificationDeliveryCreated | NotificationDeliveryResolved; type NotificationInstance = Node & { __typename?: 'NotificationInstance'; createdAt: Scalars['DateTime']['output']; environmentId?: Maybe; event: Event; eventId: Scalars['String']['output']; eventType?: Maybe; id: Scalars['ID']['output']; payload: Scalars['NotificationPayload']['output']; projectId?: Maybe; resolvedAt?: Maybe; resourceId?: Maybe; resourceType?: Maybe; serviceId?: Maybe; severity: NotificationSeverity; status: NotificationStatus; updatedAt: Scalars['DateTime']['output']; volumeId?: Maybe; workspaceId: Scalars['String']['output']; }; type NotificationSeverity = 'CRITICAL' | 'INFO' | 'NOTICE' | 'WARNING'; type NotificationStatus = 'ACTIVE' | 'RESOLVED'; type ObservabilityDashboard = Node & { __typename?: 'ObservabilityDashboard'; id: Scalars['ID']['output']; items: Array; }; type ObservabilityDashboardAlert = Node & { __typename?: 'ObservabilityDashboardAlert'; createdAt: Scalars['DateTime']['output']; id: Scalars['ID']['output']; resolvedAt?: Maybe; resourceId?: Maybe; resourceType: MonitorAlertResourceType; status: MonitorStatus; }; type ObservabilityDashboardCreateInput = { environmentId: Scalars['String']['input']; /** If no items are provided, a default dashboard will be created. */ items?: InputMaybe>; }; type ObservabilityDashboardItem = Node & { __typename?: 'ObservabilityDashboardItem'; config: ObservabilityDashboardItemConfig; description?: Maybe; id: Scalars['ID']['output']; monitors: Array; name: Scalars['String']['output']; type: ObservabilityDashboardItemType; }; type ObservabilityDashboardItemConfig = { __typename?: 'ObservabilityDashboardItemConfig'; logsFilter?: Maybe; measurements?: Maybe>; projectUsageProperties?: Maybe>; resourceIds?: Maybe>; }; type ObservabilityDashboardItemConfigInput = { logsFilter?: InputMaybe; measurements?: InputMaybe>; projectUsageProperties?: InputMaybe>; resourceIds?: InputMaybe>; }; type ObservabilityDashboardItemCreateInput = { config: ObservabilityDashboardItemConfigInput; description?: InputMaybe; id: Scalars['String']['input']; name: Scalars['String']['input']; type: ObservabilityDashboardItemType; }; type ObservabilityDashboardItemInstance = Node & { __typename?: 'ObservabilityDashboardItemInstance'; dashboardItem: ObservabilityDashboardItem; displayConfig: Scalars['DisplayConfig']['output']; id: Scalars['ID']['output']; }; type ObservabilityDashboardItemType = 'PROJECT_USAGE_ITEM' | 'SERVICE_LOGS_ITEM' | 'SERVICE_METRICS_ITEM' | 'VOLUME_METRICS_ITEM'; type ObservabilityDashboardMonitor = Node & { __typename?: 'ObservabilityDashboardMonitor'; alerts: Array; config: ObservabilityDashboardMonitorConfig; createdAt: Scalars['DateTime']['output']; id: Scalars['ID']['output']; updatedAt: Scalars['DateTime']['output']; }; type ObservabilityDashboardMonitorAlertsArgs = { endDate?: InputMaybe; startDate?: InputMaybe; }; type ObservabilityDashboardMonitorConfig = MonitorThresholdConfig; type ObservabilityDashboardUpdateInput = { dashboardItem: ObservabilityDashboardItemCreateInput; displayConfig: Scalars['DisplayConfig']['input']; id: Scalars['String']['input']; }; type PageInfo = { __typename?: 'PageInfo'; endCursor?: Maybe; hasNextPage: Scalars['Boolean']['output']; hasPreviousPage: Scalars['Boolean']['output']; startCursor?: Maybe; }; type PartnerProfile = { __typename?: 'PartnerProfile'; category: Scalars['String']['output']; description: Scalars['String']['output']; slug: Scalars['String']['output']; type: PartnerProfileType; website: Scalars['String']['output']; }; type PartnerProfileType = 'BASIC_PARTNER' | 'LIMITED_PARTNER' | 'TEMPLATE_MAINTAINER'; type Passkey = Node & { __typename?: 'Passkey'; aaguid?: Maybe; backedUp: Scalars['Boolean']['output']; createdAt: Scalars['DateTime']['output']; credentialId: Scalars['String']['output']; deviceName: Scalars['String']['output']; deviceType: Scalars['String']['output']; displayName?: Maybe; id: Scalars['ID']['output']; lastUsedAt?: Maybe; lastUsedDevice?: Maybe; transports: Array; updatedAt: Scalars['DateTime']['output']; }; type PaymentMethod = { __typename?: 'PaymentMethod'; card?: Maybe; id: Scalars['String']['output']; }; type PaymentMethodCard = { __typename?: 'PaymentMethodCard'; brand: Scalars['String']['output']; country?: Maybe; last4: Scalars['String']['output']; }; type Plan = 'FREE' | 'HOBBY' | 'PRO'; type PlanLimitOverride = Node & { __typename?: 'PlanLimitOverride'; config: Scalars['SubscriptionPlanLimit']['output']; id: Scalars['ID']['output']; }; type PlatformFeatureFlag = 'ALLOW_REPLICA_METRICS' | 'BUCKETS' | 'BUILDER_V3_ROLLOUT_EXISTING_SERVICES' | 'BUILDER_V3_ROLLOUT_NEW_SERVICES' | 'DEMO_PERCENTAGE_ROLLOUT' | 'ENABLE_RAW_SQL_QUERIES' | 'MONOREPO_SUPPORT' | 'UPDATED_VM_QUERIES' | 'USE_GH_WEBHOOKS_FOR_CHANGE_DETECTION' | 'VM_TIME_RANGE_QUERY'; type PlatformFeatureFlagStatus = { __typename?: 'PlatformFeatureFlagStatus'; flag: PlatformFeatureFlag; rolloutPercentage: Scalars['Int']['output']; status: Scalars['Boolean']['output']; type: PlatformFeatureFlagType; }; type PlatformFeatureFlagType = 'BOOLEAN' | 'PERCENTAGE'; type PlatformStatus = { __typename?: 'PlatformStatus'; incident?: Maybe; isStable: Scalars['Boolean']['output']; maintenance?: Maybe; }; type Plugin = Node & { __typename?: 'Plugin'; containers: PluginContainersConnection; createdAt: Scalars['DateTime']['output']; deletedAt?: Maybe; deprecatedAt?: Maybe; friendlyName: Scalars['String']['output']; id: Scalars['ID']['output']; logsEnabled: Scalars['Boolean']['output']; migrationDatabaseServiceId?: Maybe; name: PluginType; project: Project; status: PluginStatus; variables: PluginVariablesConnection; }; type PluginContainersArgs = { after?: InputMaybe; before?: InputMaybe; first?: InputMaybe; last?: InputMaybe; }; type PluginVariablesArgs = { after?: InputMaybe; before?: InputMaybe; first?: InputMaybe; last?: InputMaybe; }; type PluginContainersConnection = { __typename?: 'PluginContainersConnection'; edges: Array; pageInfo: PageInfo; }; type PluginContainersConnectionEdge = { __typename?: 'PluginContainersConnectionEdge'; cursor: Scalars['String']['output']; node: Container; }; type PluginCreateInput = { environmentId?: InputMaybe; friendlyName?: InputMaybe; name: Scalars['String']['input']; projectId: Scalars['String']['input']; }; type PluginRestartInput = { environmentId?: InputMaybe; }; type PluginStatus = 'DEPRECATED' | 'LOCKED' | 'REMOVED' | 'RUNNING' | 'STOPPED'; type PluginType = 'mongodb' | 'mysql' | 'postgresql' | 'redis'; type PluginUpdateInput = { friendlyName: Scalars['String']['input']; }; type PluginVariablesConnection = { __typename?: 'PluginVariablesConnection'; edges: Array; pageInfo: PageInfo; }; type PluginVariablesConnectionEdge = { __typename?: 'PluginVariablesConnectionEdge'; cursor: Scalars['String']['output']; node: Variable; }; type Preferences = Node & { __typename?: 'Preferences'; buildFailedEmail: Scalars['Boolean']['output']; changelogEmail: Scalars['Boolean']['output']; communityEmail: Scalars['Boolean']['output']; deployCrashedEmail: Scalars['Boolean']['output']; ephemeralEnvironmentEmail: Scalars['Boolean']['output']; id: Scalars['ID']['output']; marketingEmail: Scalars['Boolean']['output']; subprocessorUpdatesEmail: Scalars['Boolean']['output']; templateQueueEmail: Scalars['Boolean']['output']; usageEmail: Scalars['Boolean']['output']; }; type PreferencesUpdateData = { buildFailedEmail?: InputMaybe; changelogEmail?: InputMaybe; communityEmail?: InputMaybe; deployCrashedEmail?: InputMaybe; ephemeralEnvironmentEmail?: InputMaybe; marketingEmail?: InputMaybe; subprocessorUpdatesEmail?: InputMaybe; templateQueueEmail?: InputMaybe; token?: InputMaybe; usageEmail?: InputMaybe; }; type PrivateNetwork = { __typename?: 'PrivateNetwork'; createdAt?: Maybe; deletedAt?: Maybe; dnsName: Scalars['String']['output']; environmentId: Scalars['String']['output']; name: Scalars['String']['output']; networkId: Scalars['BigInt']['output']; projectId: Scalars['String']['output']; publicId: Scalars['String']['output']; tags: Array; }; type PrivateNetworkCreateOrGetInput = { environmentId: Scalars['String']['input']; name: Scalars['String']['input']; projectId: Scalars['String']['input']; tags: Array; }; type PrivateNetworkEndpoint = { __typename?: 'PrivateNetworkEndpoint'; createdAt?: Maybe; deletedAt?: Maybe; dnsName: Scalars['String']['output']; privateIps: Array; publicId: Scalars['String']['output']; serviceInstanceId: Scalars['String']['output']; tags: Array; }; type PrivateNetworkEndpointCreateOrGetInput = { environmentId: Scalars['String']['input']; privateNetworkId: Scalars['String']['input']; serviceId: Scalars['String']['input']; serviceName: Scalars['String']['input']; tags: Array; }; type Project = Node & { __typename?: 'Project'; baseEnvironment?: Maybe; baseEnvironmentId?: Maybe; botPrEnvironments: Scalars['Boolean']['output']; createdAt: Scalars['DateTime']['output']; deletedAt?: Maybe; /** @deprecated Use environment.deploymentTriggers for properly scoped access control */ deploymentTriggers: ProjectDeploymentTriggersConnection; /** @deprecated Use environment.deployments for properly scoped access control */ deployments: ProjectDeploymentsConnection; description?: Maybe; environments: ProjectEnvironmentsConnection; expiredAt?: Maybe; groups: ProjectGroupsConnection; id: Scalars['ID']['output']; isPublic: Scalars['Boolean']['output']; isTempProject: Scalars['Boolean']['output']; members: Array; name: Scalars['String']['output']; /** @deprecated Plugins have been removed */ plugins: ProjectPluginsConnection; prDeploys: Scalars['Boolean']['output']; projectPermissions: ProjectProjectPermissionsConnection; services: ProjectServicesConnection; subscriptionPlanLimit: Scalars['SubscriptionPlanLimit']['output']; subscriptionType: SubscriptionPlanType; /** @deprecated Use workspace */ team?: Maybe; /** @deprecated Use workspaceId */ teamId?: Maybe; updatedAt: Scalars['DateTime']['output']; volumes: ProjectVolumesConnection; workspace?: Maybe; workspaceId?: Maybe; }; type ProjectDeploymentTriggersArgs = { after?: InputMaybe; before?: InputMaybe; first?: InputMaybe; last?: InputMaybe; }; type ProjectDeploymentsArgs = { after?: InputMaybe; before?: InputMaybe; first?: InputMaybe; last?: InputMaybe; }; type ProjectEnvironmentsArgs = { after?: InputMaybe; before?: InputMaybe; first?: InputMaybe; last?: InputMaybe; }; type ProjectGroupsArgs = { after?: InputMaybe; before?: InputMaybe; first?: InputMaybe; last?: InputMaybe; }; type ProjectPluginsArgs = { after?: InputMaybe; before?: InputMaybe; first?: InputMaybe; last?: InputMaybe; }; type ProjectProjectPermissionsArgs = { after?: InputMaybe; before?: InputMaybe; first?: InputMaybe; last?: InputMaybe; }; type ProjectServicesArgs = { after?: InputMaybe; before?: InputMaybe; first?: InputMaybe; last?: InputMaybe; }; type ProjectVolumesArgs = { after?: InputMaybe; before?: InputMaybe; first?: InputMaybe; last?: InputMaybe; }; type ProjectComplianceInfo = { __typename?: 'ProjectComplianceInfo'; /** Permissions for each project member */ memberPermissions: Array; projectId: Scalars['String']['output']; projectName: Scalars['String']['output']; /** Backup schedules for database services */ serviceBackups: Array; /** 2FA status for each project member */ twoFactorMembers: Array; workspaceId: Scalars['String']['output']; }; type ProjectCreateInput = { defaultEnvironmentName?: InputMaybe; description?: InputMaybe; isMonorepo?: InputMaybe; isPublic?: InputMaybe; name?: InputMaybe; prDeploys?: InputMaybe; repo?: InputMaybe; runtime?: InputMaybe; workspaceId?: InputMaybe; }; type ProjectCreateRepo = { branch: Scalars['String']['input']; fullRepoName: Scalars['String']['input']; }; type ProjectDeploymentTriggersConnection = { __typename?: 'ProjectDeploymentTriggersConnection'; edges: Array; pageInfo: PageInfo; }; type ProjectDeploymentTriggersConnectionEdge = { __typename?: 'ProjectDeploymentTriggersConnectionEdge'; cursor: Scalars['String']['output']; node: DeploymentTrigger; }; type ProjectDeploymentsConnection = { __typename?: 'ProjectDeploymentsConnection'; edges: Array; pageInfo: PageInfo; }; type ProjectDeploymentsConnectionEdge = { __typename?: 'ProjectDeploymentsConnectionEdge'; cursor: Scalars['String']['output']; node: Deployment; }; type ProjectEnvironmentsConnection = { __typename?: 'ProjectEnvironmentsConnection'; edges: Array; pageInfo: PageInfo; }; type ProjectEnvironmentsConnectionEdge = { __typename?: 'ProjectEnvironmentsConnectionEdge'; cursor: Scalars['String']['output']; node: Environment; }; type ProjectGroupsConnection = { __typename?: 'ProjectGroupsConnection'; edges: Array; pageInfo: PageInfo; }; type ProjectGroupsConnectionEdge = { __typename?: 'ProjectGroupsConnectionEdge'; cursor: Scalars['String']['output']; }; type ProjectInvitation = { __typename?: 'ProjectInvitation'; email: Scalars['String']['output']; expiresAt: Scalars['DateTime']['output']; id: Scalars['ID']['output']; inviter?: Maybe; isExpired: Scalars['Boolean']['output']; project: PublicProjectInformation; }; type ProjectInvitationInviter = { __typename?: 'ProjectInvitationInviter'; email: Scalars['String']['output']; name?: Maybe; }; type ProjectInviteUserInput = { email: Scalars['String']['input']; link: Scalars['String']['input']; }; type ProjectInvitee = { email: Scalars['String']['input']; role: ProjectRole; }; type ProjectMember = { __typename?: 'ProjectMember'; avatar?: Maybe; email: Scalars['String']['output']; id: Scalars['String']['output']; name?: Maybe; role: ProjectRole; }; type ProjectMemberPermissionsInfo = { __typename?: 'ProjectMemberPermissionsInfo'; email: Scalars['String']['output']; name?: Maybe; role: ProjectRole; }; type ProjectMemberRemoveInput = { projectId: Scalars['String']['input']; userId: Scalars['String']['input']; }; type ProjectMemberTwoFactorInfo = { __typename?: 'ProjectMemberTwoFactorInfo'; email: Scalars['String']['output']; /** List of enabled 2FA methods (AUTHENTICATOR, PASSKEY) */ enabledMethods: Array; name?: Maybe; twoFactorAuthEnabled: Scalars['Boolean']['output']; }; type ProjectMemberUpdateInput = { projectId: Scalars['String']['input']; role: ProjectRole; userId: Scalars['String']['input']; }; type ProjectPermission = Node & { __typename?: 'ProjectPermission'; id: Scalars['ID']['output']; projectId: Scalars['String']['output']; role: ProjectRole; userId: Scalars['String']['output']; }; type ProjectPluginsConnection = { __typename?: 'ProjectPluginsConnection'; edges: Array; pageInfo: PageInfo; }; type ProjectPluginsConnectionEdge = { __typename?: 'ProjectPluginsConnectionEdge'; cursor: Scalars['String']['output']; node: Plugin; }; type ProjectProjectPermissionsConnection = { __typename?: 'ProjectProjectPermissionsConnection'; edges: Array; pageInfo: PageInfo; }; type ProjectProjectPermissionsConnectionEdge = { __typename?: 'ProjectProjectPermissionsConnectionEdge'; cursor: Scalars['String']['output']; node: ProjectPermission; }; type ProjectResourceAccess = { __typename?: 'ProjectResourceAccess'; customDomain: AccessRule; databaseDeployment: AccessRule; deployment: AccessRule; environment: AccessRule; /** @deprecated Plugins have been removed */ plugin: AccessRule; }; type ProjectRole = 'ADMIN' | 'MEMBER' | 'VIEWER'; type ProjectServicesConnection = { __typename?: 'ProjectServicesConnection'; edges: Array; pageInfo: PageInfo; }; type ProjectServicesConnectionEdge = { __typename?: 'ProjectServicesConnectionEdge'; cursor: Scalars['String']['output']; node: Service; }; type ProjectToken = Node & { __typename?: 'ProjectToken'; createdAt: Scalars['DateTime']['output']; displayToken: Scalars['String']['output']; environment: Environment; environmentId: Scalars['String']['output']; id: Scalars['ID']['output']; name: Scalars['String']['output']; project: Project; projectId: Scalars['String']['output']; }; type ProjectTokenCreateInput = { environmentId: Scalars['String']['input']; name: Scalars['String']['input']; projectId: Scalars['String']['input']; }; type ProjectTransferConfirmInput = { destinationWorkspaceId?: InputMaybe; ownershipTransferId: Scalars['String']['input']; projectId: Scalars['String']['input']; }; type ProjectTransferInitiateInput = { memberId: Scalars['String']['input']; projectId: Scalars['String']['input']; }; type ProjectTransferInput = { workspaceId: Scalars['String']['input']; }; type ProjectTransferToTeamInput = { teamId: Scalars['String']['input']; }; type ProjectUpdateInput = { baseEnvironmentId?: InputMaybe; /** Enable/disable pull request environments for PRs created by bots */ botPrEnvironments?: InputMaybe; description?: InputMaybe; isPublic?: InputMaybe; name?: InputMaybe; prDeploys?: InputMaybe; }; type ProjectUsageProperty = 'BACKUP_USAGE' | 'CPU_USAGE' | 'CURRENT_USAGE' | 'DISK_USAGE' | 'ESTIMATED_USAGE' | 'MEMORY_USAGE' | 'NETWORK_USAGE'; type ProjectVolumesConnection = { __typename?: 'ProjectVolumesConnection'; edges: Array; pageInfo: PageInfo; }; type ProjectVolumesConnectionEdge = { __typename?: 'ProjectVolumesConnectionEdge'; cursor: Scalars['String']['output']; node: Volume; }; type ProjectWorkspaceMember = { __typename?: 'ProjectWorkspaceMember'; email: Scalars['String']['output']; /** List of enabled 2FA methods (AUTHENTICATOR, PASSKEY) */ enabledMethods: Array; name?: Maybe; twoFactorAuthEnabled: Scalars['Boolean']['output']; }; type ProjectWorkspaceMembersResponse = { __typename?: 'ProjectWorkspaceMembersResponse'; members: Array; projectId: Scalars['String']['output']; projectName: Scalars['String']['output']; workspaceId: Scalars['String']['output']; }; type ProviderAuth = Node & { __typename?: 'ProviderAuth'; email: Scalars['String']['output']; id: Scalars['ID']['output']; isAuthEnabled: Scalars['Boolean']['output']; metadata: Scalars['JSON']['output']; provider: Scalars['String']['output']; userId: Scalars['String']['output']; }; type PublicProjectInformation = { __typename?: 'PublicProjectInformation'; id: Scalars['ID']['output']; name: Scalars['String']['output']; }; type PublicProjectInvitation = InviteCode | ProjectInvitation; type PublicRuntime = 'LEGACY' | 'UNSPECIFIED' | 'V2'; type PublicStats = { __typename?: 'PublicStats'; totalDeploymentsLastMonth: Scalars['Int']['output']; totalLogsLastMonth: Scalars['BigInt']['output']; totalProjects: Scalars['Int']['output']; totalRequestsLastMonth: Scalars['BigInt']['output']; totalServices: Scalars['Int']['output']; totalUsers: Scalars['Int']['output']; }; type Query = { __typename?: 'Query'; /** Get all volume instances for a given volume */ adminVolumeInstancesForVolume: Array; /** Returns the platform feature flags enabled for the current user */ allPlatformFeatureFlags: Array; /** Gets all API tokens for the authenticated user. */ apiTokens: QueryApiTokensConnection; /** Fetch logs for a build */ buildLogs: Array; /** Gets the image URL for a Notion image block */ changelogBlockImage: Scalars['String']['output']; /** Get compliance agreements for a workspace including HIPAA BAA and GDPR DPA status. */ complianceAgreements: ComplianceAgreementsInfo; /** Fetch details for a custom domain */ customDomain: CustomDomain; /** Checks if a custom domain is available. */ customDomainAvailable: DomainAvailable; /** Find a single deployment */ deployment: Deployment; /** Get the deployment events for a deployment */ deploymentEvents: QueryDeploymentEventsConnection; /** Get the deployment instance executions for a deployment. */ deploymentInstanceExecutions: QueryDeploymentInstanceExecutionsConnection; /** Fetch logs for a deployment */ deploymentLogs: Array; /** Find a single DeploymentSnapshot */ deploymentSnapshot?: Maybe; /** All deployment triggers. */ deploymentTriggers: QueryDeploymentTriggersConnection; /** Get all deployments */ deployments: QueryDeploymentsConnection; /** * Domain with status * @deprecated Use the `status` field within the `domain` query instead */ domainStatus: DomainWithStatus; /** All domains for a service instance */ domains: AllDomains; /** All egress gateways assigned to a service instance */ egressGateways: Array; /** Find a single environment */ environment: Environment; /** Fetch logs for a project environment. Build logs are excluded unless a snapshot ID is explicitly provided in the filter */ environmentLogs: Array; /** Get a single environment patch by ID */ environmentPatch: EnvironmentPatch; /** Get the patches for an environment */ environmentPatches: QueryEnvironmentPatchesConnection; /** Get the latest staged commit for a single environment. */ environmentStagedChanges: EnvironmentPatch; /** Gets all environments for a project. */ environments: QueryEnvironmentsConnection; /** Get the estimated total cost of the project at the end of the current billing cycle. If no `startDate` is provided, the usage for the current billing period of the project owner is returned. */ estimatedUsage: Array; /** Gets the events for a project. */ events: QueryEventsConnection; /** Get the workspaces the user doesn't belong to, but needs access (like when invited to a project) */ externalWorkspaces: Array; /** Get information about a specific function runtime */ functionRuntime: FunctionRuntime; /** List available function runtimes */ functionRuntimes: Array; /** Checks if user has access to GitHub repository */ gitHubRepoAccessAvailable: GitHubAccess; /** Check if a repo name is available */ githubIsRepoNameAvailable: Scalars['Boolean']['output']; /** Checks if user has access to GitHub repository */ githubRepo: GitHubRepoWithoutInstallation; /** Get branches for a GitHub repo that the authenticated user has access to */ githubRepoBranches: Array; /** Get a list of repos for a user that Railway has access to */ githubRepos: Array; /** Get a list of scopes the user has installed the installation to */ githubWritableScopes: Array; /** Get the Herokus apps for the current user */ herokuApps: Array; /** Fetch HTTP logs for a deployment */ httpLogs: Array; /** Get an integration auth by provider providerId */ integrationAuth: IntegrationAuth; /** Get all integration auths for a user */ integrationAuths: QueryIntegrationAuthsConnection; /** Get all integrations for a project */ integrations: QueryIntegrationsConnection; /** Get an invite code by the code */ inviteCode: InviteCode; /** Gets the authenticated user. */ me: User; /** Get metrics for a project, environment, and service */ metrics: Array; node?: Maybe; nodes: Array>; /** Gets notification deliveries for the authenticated user */ notificationDeliveries: QueryNotificationDeliveriesConnection; /** Get all observability dashboards for an environment */ observabilityDashboards: QueryObservabilityDashboardsConnection; /** Gets all passkeys for the authenticated user */ passkeys: QueryPasskeysConnection; /** Get the current status of the platform */ platformStatus: PlatformStatus; /** * Get a plugin by ID. * @deprecated Plugins are deprecated */ plugin: Plugin; /** * Fetch logs for a plugin * @deprecated Plugins are deprecated */ pluginLogs: Array; /** Get the email preferences for a user */ preferences: Preferences; /** Get a private network endpoint for a service instance. */ privateNetworkEndpoint?: Maybe; /** Check if an endpoint name is available. */ privateNetworkEndpointNameAvailable: Scalars['Boolean']['output']; /** List private networks for an environment. */ privateNetworks: Array; /** Get a project by ID */ project: Project; /** Get comprehensive compliance information for a project including 2FA status, member permissions, backup schedules, and compliance agreements. Requires workspace API token with admin access. */ projectCompliance: ProjectComplianceInfo; /** Get a project invitation by code */ projectInvitation: PublicProjectInvitation; /** Get invitations for a project */ projectInvitations: Array; /** Get an invite code for a project for a specifc role */ projectInviteCode: InviteCode; /** Gets users who belong to a project along with their role */ projectMembers: Array; /** Get resource access rules for project-specific actions */ projectResourceAccess: ProjectResourceAccess; /** Get a single project token by the value in the header */ projectToken: ProjectToken; /** Get all project tokens for a project */ projectTokens: QueryProjectTokensConnection; /** Get workspace members for a project with 2FA details */ projectWorkspaceMembers: ProjectWorkspaceMembersResponse; /** Gets all projects for a user or workspace. */ projects: QueryProjectsConnection; /** Get public Railway stats. */ publicStats: PublicStats; /** Gets the ReferralInfo for the authenticated user. */ referralInfo: ReferralInfo; /** List available regions */ regions: Array; /** Get resource access for the current user or workspace */ resourceAccess: ResourceAccess; /** Get a service by ID */ service: Service; /** Checks if a service domain is available */ serviceDomainAvailable: DomainAvailable; /** Get a service instance belonging to a service and environment */ serviceInstance: ServiceInstance; /** Check if the upstream repo for a service has an update available */ serviceInstanceIsUpdatable: Scalars['Boolean']['output']; /** Get the service instance resource limit overrides (null if no overrides set) */ serviceInstanceLimitOverride?: Maybe; /** Get the merged resource limits for a service instance (includes plan defaults) */ serviceInstanceLimits: Scalars['ServiceInstanceLimit']['output']; /** Gets all sessions for authenticated user. */ sessions: QuerySessionsConnection; /** All TCP proxies for a service instance */ tcpProxies: Array; /** * Find a team by ID * @deprecated Teams are now workspaces. Use the workspace query instead. */ team: Team; /** * Get all templates for a team. * @deprecated Use templates instead - teams are now workspaces */ teamTemplates: QueryTeamTemplatesConnection; /** Get a template by code or ID or GitHub owner and repo. */ template: Template; /** Get the source template for a project. */ templateSourceForProject?: Maybe