mirror of
https://github.com/mii443/wasmer.git
synced 2025-12-08 21:58:20 +00:00
feat(backend-api): Add DnsRecord types and queries
This commit is contained in:
@@ -42,5 +42,5 @@ This is not always sensible though, depending on which nested data you want to
|
||||
fetch.
|
||||
|
||||
[cynic-api-docs]: https://docs.rs/cynic/latest/cynic/
|
||||
[cynic-web-ui]: https://docs.rs/cynic/latest/cynic/
|
||||
[cynic-web-ui]: https://generator.cynic-rs.dev/
|
||||
[cynic-website]: https://cynic-rs.dev
|
||||
|
||||
@@ -1,3 +1,13 @@
|
||||
"""
|
||||
Directs the executor to include this field or fragment only when the user is not logged in.
|
||||
"""
|
||||
directive @includeIfLoggedIn on FIELD | FRAGMENT_SPREAD | INLINE_FRAGMENT
|
||||
|
||||
"""
|
||||
Directs the executor to skip this field or fragment when the user is not logged in.
|
||||
"""
|
||||
directive @skipIfLoggedIn on FIELD | FRAGMENT_SPREAD | INLINE_FRAGMENT
|
||||
|
||||
interface Node {
|
||||
"""The ID of the object"""
|
||||
id: ID!
|
||||
@@ -47,6 +57,7 @@ type User implements Node & PackageOwner & Owner {
|
||||
packages(collaborating: Boolean = false, offset: Int, before: String, after: String, first: Int, last: Int): PackageConnection!
|
||||
apps(collaborating: Boolean = false, sortBy: DeployAppsSortBy, offset: Int, before: String, after: String, first: Int, last: Int): DeployAppConnection!
|
||||
usageMetrics(forRange: MetricRange!, variant: MetricType!): [UsageMetric]!
|
||||
domains(offset: Int, before: String, after: String, first: Int, last: Int): DNSDomainConnection!
|
||||
isStaff: Boolean
|
||||
packageVersions(offset: Int, before: String, after: String, first: Int, last: Int): PackageVersionConnection!
|
||||
packageTransfersIncoming(offset: Int, before: String, after: String, first: Int, last: Int): PackageTransferRequestConnection!
|
||||
@@ -199,6 +210,7 @@ type Namespace implements Node & PackageOwner & Owner {
|
||||
publicActivity(before: String, after: String, first: Int, last: Int): ActivityEventConnection!
|
||||
pendingInvites(offset: Int, before: String, after: String, first: Int, last: Int): NamespaceCollaboratorInviteConnection!
|
||||
viewerHasRole(role: GrapheneRole!): Boolean!
|
||||
viewerAsCollaborator(role: GrapheneRole): NamespaceCollaborator
|
||||
|
||||
"""Whether the current user is invited to the namespace"""
|
||||
viewerIsInvited: Boolean!
|
||||
@@ -207,6 +219,7 @@ type Namespace implements Node & PackageOwner & Owner {
|
||||
viewerInvitation: NamespaceCollaboratorInvite
|
||||
packageTransfersIncoming(offset: Int, before: String, after: String, first: Int, last: Int): PackageTransferRequestConnection!
|
||||
usageMetrics(forRange: MetricRange!, variant: MetricType!): [UsageMetric]!
|
||||
domains(offset: Int, before: String, after: String, first: Int, last: Int): DNSDomainConnection!
|
||||
}
|
||||
|
||||
type NamespaceCollaboratorInviteConnection {
|
||||
@@ -248,6 +261,9 @@ type NamespaceCollaboratorInvite implements Node {
|
||||
}
|
||||
|
||||
enum RegistryNamespaceMaintainerInviteRoleChoices {
|
||||
"""Owner"""
|
||||
OWNER
|
||||
|
||||
"""Admin"""
|
||||
ADMIN
|
||||
|
||||
@@ -270,6 +286,9 @@ type NamespaceCollaborator implements Node {
|
||||
}
|
||||
|
||||
enum RegistryNamespaceMaintainerRoleChoices {
|
||||
"""Owner"""
|
||||
OWNER
|
||||
|
||||
"""Admin"""
|
||||
ADMIN
|
||||
|
||||
@@ -338,6 +357,8 @@ type Package implements Likeable & Node & PackageOwner {
|
||||
iconUpdatedAt: DateTime
|
||||
watchersCount: Int!
|
||||
webcs(offset: Int, before: String, after: String, first: Int, last: Int): WebcImageConnection!
|
||||
|
||||
"""List of app templates for this package"""
|
||||
appTemplates(offset: Int, before: String, after: String, first: Int, last: Int): AppTemplateConnection!
|
||||
packagewebcSet(offset: Int, before: String, after: String, first: Int, last: Int): PackageWebcConnection!
|
||||
versions: [PackageVersion]!
|
||||
@@ -366,6 +387,7 @@ type Package implements Likeable & Node & PackageOwner {
|
||||
collaborators(offset: Int, before: String, after: String, first: Int, last: Int): PackageCollaboratorConnection!
|
||||
pendingInvites(offset: Int, before: String, after: String, first: Int, last: Int): PackageCollaboratorInviteConnection!
|
||||
viewerHasRole(role: GrapheneRole!): Boolean!
|
||||
viewerAsCollaborator(role: GrapheneRole): PackageCollaborator
|
||||
owner: PackageOwner!
|
||||
isTransferring: Boolean!
|
||||
activeTransferRequest: PackageTransferRequest
|
||||
@@ -446,6 +468,7 @@ type PackageVersion implements Node & PackageInstance {
|
||||
bindings: [PackageVersionLanguageBinding]!
|
||||
npmBindings: PackageVersionNPMBinding
|
||||
pythonBindings: PackageVersionPythonBinding
|
||||
bindingsSet(before: String, after: String, first: Int, last: Int): PackageVersionBindingConnection
|
||||
hasBindings: Boolean!
|
||||
hasCommands: Boolean!
|
||||
showDeployButton: Boolean!
|
||||
@@ -599,6 +622,9 @@ type DeployAppVersion implements Node {
|
||||
|
||||
"""List of streams to fetch logs from. e.g. stdout, stderr."""
|
||||
streams: [LogStream]
|
||||
|
||||
"""List of instance ids to fetch logs from."""
|
||||
instanceIds: [String]
|
||||
before: String
|
||||
after: String
|
||||
first: Int
|
||||
@@ -608,6 +634,8 @@ type DeployAppVersion implements Node {
|
||||
sourcePackageVersion: PackageVersion!
|
||||
aggregateMetrics: AggregateMetrics!
|
||||
volumes: [AppVersionVolume]
|
||||
favicon: URL
|
||||
screenshot: URL
|
||||
}
|
||||
|
||||
type DeployApp implements Node & Owner {
|
||||
@@ -631,6 +659,8 @@ type DeployApp implements Node & Owner {
|
||||
aliases(offset: Int, before: String, after: String, first: Int, last: Int): AppAliasConnection!
|
||||
usageMetrics(forRange: MetricRange!, variant: MetricType!): [UsageMetric]!
|
||||
deleted: Boolean!
|
||||
favicon: URL
|
||||
screenshot: URL
|
||||
}
|
||||
|
||||
enum DeployAppVersionsSortBy {
|
||||
@@ -719,8 +749,15 @@ enum MetricUnit {
|
||||
enum MetricRange {
|
||||
LAST_24_HOURS
|
||||
LAST_30_DAYS
|
||||
LAST_1_HOUR
|
||||
}
|
||||
|
||||
"""
|
||||
The `URL` scalar type represents a URL as text, represented as UTF-8
|
||||
character sequences.
|
||||
"""
|
||||
scalar URL
|
||||
|
||||
type LogConnection {
|
||||
"""Pagination data for this connection."""
|
||||
pageInfo: PageInfo!
|
||||
@@ -741,6 +778,7 @@ type LogEdge {
|
||||
enum LogStream {
|
||||
STDOUT
|
||||
STDERR
|
||||
RUNTIME
|
||||
}
|
||||
|
||||
type AppVersionVolume {
|
||||
@@ -1052,6 +1090,28 @@ type WEBCFilesystemItem {
|
||||
offset: Int!
|
||||
}
|
||||
|
||||
type PackageVersionBindingConnection {
|
||||
"""Pagination data for this connection."""
|
||||
pageInfo: PageInfo!
|
||||
|
||||
"""Contains the nodes in this connection."""
|
||||
edges: [PackageVersionBindingEdge]!
|
||||
|
||||
"""Total number of items in the connection."""
|
||||
totalCount: Int
|
||||
}
|
||||
|
||||
"""A Relay edge containing a `PackageVersionBinding` and its cursor."""
|
||||
type PackageVersionBindingEdge {
|
||||
"""The item at the end of the edge"""
|
||||
node: PackageVersionBinding
|
||||
|
||||
"""A cursor for use in pagination"""
|
||||
cursor: String!
|
||||
}
|
||||
|
||||
union PackageVersionBinding = PackageVersionNPMBinding | PackageVersionPythonBinding
|
||||
|
||||
type WebcImageConnection {
|
||||
"""Pagination data for this connection."""
|
||||
pageInfo: PageInfo!
|
||||
@@ -1256,6 +1316,9 @@ type PackageCollaborator implements Node {
|
||||
}
|
||||
|
||||
enum RegistryPackageMaintainerRoleChoices {
|
||||
"""Owner"""
|
||||
OWNER
|
||||
|
||||
"""Admin"""
|
||||
ADMIN
|
||||
|
||||
@@ -1283,6 +1346,9 @@ type PackageCollaboratorInvite implements Node {
|
||||
}
|
||||
|
||||
enum RegistryPackageMaintainerInviteRoleChoices {
|
||||
"""Owner"""
|
||||
OWNER
|
||||
|
||||
"""Admin"""
|
||||
ADMIN
|
||||
|
||||
@@ -1314,6 +1380,7 @@ type PackageCollaboratorInviteEdge {
|
||||
}
|
||||
|
||||
enum GrapheneRole {
|
||||
OWNER
|
||||
ADMIN
|
||||
EDITOR
|
||||
VIEWER
|
||||
@@ -1419,6 +1486,311 @@ type PackageTransferRequestEdge {
|
||||
cursor: String!
|
||||
}
|
||||
|
||||
type DNSDomainConnection {
|
||||
"""Pagination data for this connection."""
|
||||
pageInfo: PageInfo!
|
||||
|
||||
"""Contains the nodes in this connection."""
|
||||
edges: [DNSDomainEdge]!
|
||||
|
||||
"""Total number of items in the connection."""
|
||||
totalCount: Int
|
||||
}
|
||||
|
||||
"""A Relay edge containing a `DNSDomain` and its cursor."""
|
||||
type DNSDomainEdge {
|
||||
"""The item at the end of the edge"""
|
||||
node: DNSDomain
|
||||
|
||||
"""A cursor for use in pagination"""
|
||||
cursor: String!
|
||||
}
|
||||
|
||||
type DNSDomain implements Node {
|
||||
name: String!
|
||||
|
||||
"""This zone will be accessible at /dns/{slug}/."""
|
||||
slug: String!
|
||||
|
||||
"""The ID of the object"""
|
||||
id: ID!
|
||||
records: [DNSRecord]
|
||||
owner: Owner!
|
||||
}
|
||||
|
||||
union DNSRecord = ARecord | AAAARecord | CNAMERecord | TXTRecord | MXRecord | NSRecord | CAARecord | DNAMERecord | PTRRecord | SOARecord | SRVRecord | SSHFPRecord
|
||||
|
||||
type ARecord implements Node & DNSRecordInterface {
|
||||
createdAt: DateTime!
|
||||
updatedAt: DateTime!
|
||||
deletedAt: DateTime
|
||||
address: String!
|
||||
|
||||
"""The ID of the object"""
|
||||
id: ID!
|
||||
name: String
|
||||
ttl: Int
|
||||
dnsClass: String
|
||||
domain: DNSDomain!
|
||||
}
|
||||
|
||||
interface DNSRecordInterface {
|
||||
name: String
|
||||
ttl: Int
|
||||
dnsClass: String
|
||||
domain: DNSDomain!
|
||||
createdAt: DateTime!
|
||||
updatedAt: DateTime!
|
||||
deletedAt: DateTime
|
||||
}
|
||||
|
||||
type AAAARecord implements Node & DNSRecordInterface {
|
||||
createdAt: DateTime!
|
||||
updatedAt: DateTime!
|
||||
deletedAt: DateTime
|
||||
address: String!
|
||||
|
||||
"""The ID of the object"""
|
||||
id: ID!
|
||||
name: String
|
||||
ttl: Int
|
||||
dnsClass: String
|
||||
domain: DNSDomain!
|
||||
}
|
||||
|
||||
type CNAMERecord implements Node & DNSRecordInterface {
|
||||
createdAt: DateTime!
|
||||
updatedAt: DateTime!
|
||||
deletedAt: DateTime
|
||||
|
||||
"""This domain name will alias to this canonical name."""
|
||||
cName: String!
|
||||
|
||||
"""The ID of the object"""
|
||||
id: ID!
|
||||
name: String
|
||||
ttl: Int
|
||||
dnsClass: String
|
||||
domain: DNSDomain!
|
||||
}
|
||||
|
||||
type TXTRecord implements Node & DNSRecordInterface {
|
||||
createdAt: DateTime!
|
||||
updatedAt: DateTime!
|
||||
deletedAt: DateTime
|
||||
data: String!
|
||||
|
||||
"""The ID of the object"""
|
||||
id: ID!
|
||||
name: String
|
||||
ttl: Int
|
||||
dnsClass: String
|
||||
domain: DNSDomain!
|
||||
}
|
||||
|
||||
type MXRecord implements Node & DNSRecordInterface {
|
||||
createdAt: DateTime!
|
||||
updatedAt: DateTime!
|
||||
deletedAt: DateTime
|
||||
preference: Int!
|
||||
exchange: String!
|
||||
|
||||
"""The ID of the object"""
|
||||
id: ID!
|
||||
name: String
|
||||
ttl: Int
|
||||
dnsClass: String
|
||||
domain: DNSDomain!
|
||||
}
|
||||
|
||||
type NSRecord implements Node & DNSRecordInterface {
|
||||
createdAt: DateTime!
|
||||
updatedAt: DateTime!
|
||||
deletedAt: DateTime
|
||||
nsdname: String!
|
||||
|
||||
"""The ID of the object"""
|
||||
id: ID!
|
||||
name: String
|
||||
ttl: Int
|
||||
dnsClass: String
|
||||
domain: DNSDomain!
|
||||
}
|
||||
|
||||
type CAARecord implements Node & DNSRecordInterface {
|
||||
createdAt: DateTime!
|
||||
updatedAt: DateTime!
|
||||
deletedAt: DateTime
|
||||
flags: Int!
|
||||
tag: DnsmanagerCertificationAuthorityAuthorizationRecordTagChoices!
|
||||
value: String!
|
||||
|
||||
"""The ID of the object"""
|
||||
id: ID!
|
||||
name: String
|
||||
ttl: Int
|
||||
dnsClass: String
|
||||
domain: DNSDomain!
|
||||
}
|
||||
|
||||
enum DnsmanagerCertificationAuthorityAuthorizationRecordTagChoices {
|
||||
"""issue"""
|
||||
ISSUE
|
||||
|
||||
"""issue wildcard"""
|
||||
ISSUEWILD
|
||||
|
||||
"""Incident object description exchange format"""
|
||||
IODEF
|
||||
}
|
||||
|
||||
type DNAMERecord implements Node & DNSRecordInterface {
|
||||
createdAt: DateTime!
|
||||
updatedAt: DateTime!
|
||||
deletedAt: DateTime
|
||||
|
||||
"""
|
||||
This domain name will alias to the entire subtree of that delegation domain.
|
||||
"""
|
||||
dName: String!
|
||||
|
||||
"""The ID of the object"""
|
||||
id: ID!
|
||||
name: String
|
||||
ttl: Int
|
||||
dnsClass: String
|
||||
domain: DNSDomain!
|
||||
}
|
||||
|
||||
type PTRRecord implements Node & DNSRecordInterface {
|
||||
createdAt: DateTime!
|
||||
updatedAt: DateTime!
|
||||
deletedAt: DateTime
|
||||
ptrdname: String!
|
||||
|
||||
"""The ID of the object"""
|
||||
id: ID!
|
||||
name: String
|
||||
ttl: Int
|
||||
dnsClass: String
|
||||
domain: DNSDomain!
|
||||
}
|
||||
|
||||
type SOARecord implements Node & DNSRecordInterface {
|
||||
createdAt: DateTime!
|
||||
updatedAt: DateTime!
|
||||
deletedAt: DateTime
|
||||
|
||||
"""Primary master name server for this zone."""
|
||||
mname: String!
|
||||
|
||||
"""Email address of the administrator responsible for this zone."""
|
||||
rname: String!
|
||||
|
||||
"""
|
||||
A slave name server will initiate a zone transfer if this serial is incremented.
|
||||
"""
|
||||
serial: BigInt!
|
||||
|
||||
"""
|
||||
Number of seconds after which secondary name servers should query the master to detect zone changes.
|
||||
"""
|
||||
refresh: BigInt!
|
||||
|
||||
"""
|
||||
Number of seconds after which secondary name servers should retry to request the serial number from the master if the master does not respond.
|
||||
"""
|
||||
retry: BigInt!
|
||||
|
||||
"""
|
||||
Number of seconds after which secondary name servers should stop answering request for this zone if the master does not respond.
|
||||
"""
|
||||
expire: BigInt!
|
||||
|
||||
"""Time to live for purposes of negative caching."""
|
||||
minimum: BigInt!
|
||||
|
||||
"""The ID of the object"""
|
||||
id: ID!
|
||||
name: String
|
||||
ttl: Int
|
||||
dnsClass: String
|
||||
domain: DNSDomain!
|
||||
}
|
||||
|
||||
type SRVRecord implements Node & DNSRecordInterface {
|
||||
createdAt: DateTime!
|
||||
updatedAt: DateTime!
|
||||
deletedAt: DateTime
|
||||
|
||||
"""The symbolic name of the desired service."""
|
||||
service: String!
|
||||
|
||||
"""
|
||||
The transport protocol of the desired service, usually either TCP or UDP.
|
||||
"""
|
||||
protocol: String!
|
||||
|
||||
"""The priority of the target host, lower value means more preferred."""
|
||||
priority: Int!
|
||||
|
||||
"""
|
||||
A relative weight for records with the same priority, higher value means higher chance of getting picked.
|
||||
"""
|
||||
weight: Int!
|
||||
port: Int!
|
||||
|
||||
"""
|
||||
The canonical hostname of the machine providing the service, ending in a dot.
|
||||
"""
|
||||
target: String!
|
||||
|
||||
"""The ID of the object"""
|
||||
id: ID!
|
||||
name: String
|
||||
ttl: Int
|
||||
dnsClass: String
|
||||
domain: DNSDomain!
|
||||
}
|
||||
|
||||
type SSHFPRecord implements Node & DNSRecordInterface {
|
||||
createdAt: DateTime!
|
||||
updatedAt: DateTime!
|
||||
deletedAt: DateTime
|
||||
algorithm: DnsmanagerSshFingerprintRecordAlgorithmChoices!
|
||||
type: DnsmanagerSshFingerprintRecordTypeChoices!
|
||||
fingerprint: String!
|
||||
|
||||
"""The ID of the object"""
|
||||
id: ID!
|
||||
name: String
|
||||
ttl: Int
|
||||
dnsClass: String
|
||||
domain: DNSDomain!
|
||||
}
|
||||
|
||||
enum DnsmanagerSshFingerprintRecordAlgorithmChoices {
|
||||
"""RSA"""
|
||||
A_1
|
||||
|
||||
"""DSA"""
|
||||
A_2
|
||||
|
||||
"""ECDSA"""
|
||||
A_3
|
||||
|
||||
"""Ed25519"""
|
||||
A_4
|
||||
}
|
||||
|
||||
enum DnsmanagerSshFingerprintRecordTypeChoices {
|
||||
"""SHA-1"""
|
||||
A_1
|
||||
|
||||
"""SHA-256"""
|
||||
A_2
|
||||
}
|
||||
|
||||
type APITokenConnection {
|
||||
"""Pagination data for this connection."""
|
||||
pageInfo: PageInfo!
|
||||
@@ -1559,6 +1931,121 @@ type Signature {
|
||||
createdAt: DateTime!
|
||||
}
|
||||
|
||||
type StripeCustomer {
|
||||
id: ID!
|
||||
}
|
||||
|
||||
type Billing {
|
||||
stripeCustomer: StripeCustomer!
|
||||
payments: [PaymentIntent]!
|
||||
paymentMethods: [PaymentMethod]!
|
||||
}
|
||||
|
||||
type PaymentIntent implements Node {
|
||||
"""The datetime this object was created in stripe."""
|
||||
created: DateTime
|
||||
|
||||
"""Three-letter ISO currency code"""
|
||||
currency: String!
|
||||
|
||||
"""
|
||||
Status of this PaymentIntent, one of requires_payment_method, requires_confirmation, requires_action, processing, requires_capture, canceled, or succeeded. You can read more about PaymentIntent statuses here.
|
||||
"""
|
||||
status: DjstripePaymentIntentStatusChoices!
|
||||
|
||||
"""The ID of the object"""
|
||||
id: ID!
|
||||
amount: String!
|
||||
}
|
||||
|
||||
enum DjstripePaymentIntentStatusChoices {
|
||||
"""
|
||||
Cancellation invalidates the intent for future confirmation and cannot be undone.
|
||||
"""
|
||||
CANCELED
|
||||
|
||||
"""Required actions have been handled."""
|
||||
PROCESSING
|
||||
|
||||
"""Payment Method require additional action, such as 3D secure."""
|
||||
REQUIRES_ACTION
|
||||
|
||||
"""Capture the funds on the cards which have been put on holds."""
|
||||
REQUIRES_CAPTURE
|
||||
|
||||
"""Intent is ready to be confirmed."""
|
||||
REQUIRES_CONFIRMATION
|
||||
|
||||
"""Intent created and requires a Payment Method to be attached."""
|
||||
REQUIRES_PAYMENT_METHOD
|
||||
|
||||
"""The funds are in your account."""
|
||||
SUCCEEDED
|
||||
}
|
||||
|
||||
union PaymentMethod = CardPaymentMethod
|
||||
|
||||
type CardPaymentMethod implements Node {
|
||||
"""The ID of the object"""
|
||||
id: ID!
|
||||
brand: CardBrand!
|
||||
country: String!
|
||||
expMonth: Int!
|
||||
expYear: Int!
|
||||
funding: CardFunding!
|
||||
last4: String!
|
||||
isDefault: Boolean!
|
||||
}
|
||||
|
||||
"""
|
||||
Card brand.
|
||||
|
||||
Can be amex, diners, discover, jcb, mastercard, unionpay, visa, or unknown.
|
||||
"""
|
||||
enum CardBrand {
|
||||
AMEX
|
||||
DINERS
|
||||
DISCOVER
|
||||
JCB
|
||||
MASTERCARD
|
||||
UNIONPAY
|
||||
VISA
|
||||
UNKNOWN
|
||||
}
|
||||
|
||||
"""
|
||||
Card funding type.
|
||||
|
||||
Can be credit, debit, prepaid, or unknown.
|
||||
"""
|
||||
enum CardFunding {
|
||||
CREDIT
|
||||
DEBIT
|
||||
PREPAID
|
||||
UNKNOWN
|
||||
}
|
||||
|
||||
type Payment {
|
||||
id: ID
|
||||
amount: String
|
||||
paidOn: DateTime
|
||||
}
|
||||
|
||||
"""Log entry for deploy app."""
|
||||
type Log {
|
||||
"""Timestamp in nanoseconds"""
|
||||
timestamp: Float!
|
||||
|
||||
"""ISO 8601 string in UTC"""
|
||||
datetime: DateTime!
|
||||
|
||||
"""Log message"""
|
||||
message: String!
|
||||
|
||||
"""Log stream"""
|
||||
stream: LogStream
|
||||
}
|
||||
|
||||
type UserNotificationKindIncomingPackageTransfer {
|
||||
packageTransferRequest: PackageTransferRequest!
|
||||
}
|
||||
@@ -1687,131 +2174,19 @@ input WorkloadRunnerWasmSourceV1 {
|
||||
webc: WebcSourceV1!
|
||||
}
|
||||
|
||||
type StripeCustomer {
|
||||
id: ID!
|
||||
}
|
||||
|
||||
type Billing {
|
||||
stripeCustomer: StripeCustomer!
|
||||
payments: [PaymentIntent]!
|
||||
paymentMethods: [PaymentMethod]!
|
||||
}
|
||||
|
||||
type PaymentIntent implements Node {
|
||||
"""The datetime this object was created in stripe."""
|
||||
created: DateTime
|
||||
|
||||
"""Three-letter ISO currency code"""
|
||||
currency: String!
|
||||
|
||||
"""
|
||||
Status of this PaymentIntent, one of requires_payment_method, requires_confirmation, requires_action, processing, requires_capture, canceled, or succeeded. You can read more about PaymentIntent statuses here.
|
||||
"""
|
||||
status: DjstripePaymentIntentStatusChoices!
|
||||
|
||||
"""The ID of the object"""
|
||||
id: ID!
|
||||
amount: String!
|
||||
}
|
||||
|
||||
enum DjstripePaymentIntentStatusChoices {
|
||||
"""
|
||||
Cancellation invalidates the intent for future confirmation and cannot be undone.
|
||||
"""
|
||||
CANCELED
|
||||
|
||||
"""Required actions have been handled."""
|
||||
PROCESSING
|
||||
|
||||
"""Payment Method require additional action, such as 3D secure."""
|
||||
REQUIRES_ACTION
|
||||
|
||||
"""Capture the funds on the cards which have been put on holds."""
|
||||
REQUIRES_CAPTURE
|
||||
|
||||
"""Intent is ready to be confirmed."""
|
||||
REQUIRES_CONFIRMATION
|
||||
|
||||
"""Intent created and requires a Payment Method to be attached."""
|
||||
REQUIRES_PAYMENT_METHOD
|
||||
|
||||
"""The funds are in your account."""
|
||||
SUCCEEDED
|
||||
}
|
||||
|
||||
union PaymentMethod = CardPaymentMethod
|
||||
|
||||
type CardPaymentMethod implements Node {
|
||||
"""The ID of the object"""
|
||||
id: ID!
|
||||
brand: CardBrand!
|
||||
country: String!
|
||||
expMonth: Int!
|
||||
expYear: Int!
|
||||
funding: CardFunding!
|
||||
last4: String!
|
||||
isDefault: Boolean!
|
||||
}
|
||||
|
||||
"""
|
||||
Card brand.
|
||||
|
||||
Can be amex, diners, discover, jcb, mastercard, unionpay, visa, or unknown.
|
||||
"""
|
||||
enum CardBrand {
|
||||
AMEX
|
||||
DINERS
|
||||
DISCOVER
|
||||
JCB
|
||||
MASTERCARD
|
||||
UNIONPAY
|
||||
VISA
|
||||
UNKNOWN
|
||||
}
|
||||
|
||||
"""
|
||||
Card funding type.
|
||||
|
||||
Can be credit, debit, prepaid, or unknown.
|
||||
"""
|
||||
enum CardFunding {
|
||||
CREDIT
|
||||
DEBIT
|
||||
PREPAID
|
||||
UNKNOWN
|
||||
}
|
||||
|
||||
type Payment {
|
||||
id: ID
|
||||
amount: String
|
||||
paidOn: DateTime
|
||||
}
|
||||
|
||||
"""Log entry for deploy app."""
|
||||
type Log {
|
||||
"""Timestamp in nanoseconds"""
|
||||
timestamp: Float!
|
||||
|
||||
"""ISO 8601 string in UTC"""
|
||||
datetime: DateTime!
|
||||
|
||||
"""Log message"""
|
||||
message: String!
|
||||
|
||||
"""Log stream"""
|
||||
stream: LogStream
|
||||
}
|
||||
|
||||
type Query {
|
||||
latestTOS: TermsOfService!
|
||||
getDeployAppVersion(name: String!, owner: String, version: String): DeployAppVersion
|
||||
getAllDomains(offset: Int, before: String, after: String, first: Int, last: Int): DNSDomainConnection!
|
||||
getAllDNSRecords(sortBy: DNSRecordsSortBy, updatedAfter: DateTime, before: String, after: String, first: Int, last: Int): DNSRecordConnection!
|
||||
getDomain(name: String!): DNSDomain
|
||||
getDeployApp(name: String!, owner: String): DeployApp
|
||||
getAppByGlobalAlias(alias: String!): DeployApp
|
||||
getDeployApps(sortBy: DeployAppsSortBy, updatedAfter: DateTime, offset: Int, before: String, after: String, first: Int, last: Int): DeployAppConnection!
|
||||
getAppVersions(sortBy: DeployAppVersionsSortBy, updatedAfter: DateTime, offset: Int, before: String, after: String, first: Int, last: Int): DeployAppVersionConnection!
|
||||
getAppTemplates(categorySlug: String, offset: Int, before: String, after: String, first: Int, last: Int): AppTemplateConnection!
|
||||
getAppTemplate(slug: String!): AppTemplate!
|
||||
getAppTemplateCategories(offset: Int, before: String, after: String, first: Int, last: Int): AppTemplateCategoryConnection!
|
||||
getAppTemplates(categorySlug: String, offset: Int, before: String, after: String, first: Int, last: Int): AppTemplateConnection
|
||||
getAppTemplate(slug: String!): AppTemplate
|
||||
getAppTemplateCategories(offset: Int, before: String, after: String, first: Int, last: Int): AppTemplateCategoryConnection
|
||||
viewer: User
|
||||
getUser(username: String!): User
|
||||
getPasswordResetToken(token: String!): GetPasswordResetToken
|
||||
@@ -1881,6 +2256,31 @@ type TermsOfService implements Node {
|
||||
viewerHasAccepted: Boolean!
|
||||
}
|
||||
|
||||
type DNSRecordConnection {
|
||||
"""Pagination data for this connection."""
|
||||
pageInfo: PageInfo!
|
||||
|
||||
"""Contains the nodes in this connection."""
|
||||
edges: [DNSRecordEdge]!
|
||||
|
||||
"""Total number of items in the connection."""
|
||||
totalCount: Int
|
||||
}
|
||||
|
||||
"""A Relay edge containing a `DNSRecord` and its cursor."""
|
||||
type DNSRecordEdge {
|
||||
"""The item at the end of the edge"""
|
||||
node: DNSRecord
|
||||
|
||||
"""A cursor for use in pagination"""
|
||||
cursor: String!
|
||||
}
|
||||
|
||||
enum DNSRecordsSortBy {
|
||||
NEWEST
|
||||
OLDEST
|
||||
}
|
||||
|
||||
type AppTemplateCategoryConnection {
|
||||
"""Pagination data for this connection."""
|
||||
pageInfo: PageInfo!
|
||||
@@ -2325,6 +2725,10 @@ type Mutation {
|
||||
acceptAppTransferRequest(input: AcceptAppTransferRequestInput!): AcceptAppTransferRequestPayload
|
||||
removeAppTransferRequest(input: RemoveAppTransferRequestInput!): RemoveAppTransferRequestPayload
|
||||
createRepoForAppTemplate(input: CreateRepoForAppTemplateInput!): CreateRepoForAppTemplatePayload
|
||||
registerDomain(input: RegisterDomainInput!): RegisterDomainPayload
|
||||
upsertDNSRecord(input: UpsertDNSRecordInput!): UpsertDNSRecordPayload
|
||||
deleteDnsRecord(input: DeleteDNSRecordInput!): DeleteDNSRecordPayload
|
||||
deleteDomain(input: DeleteDomainInput!): DeleteDomainPayload
|
||||
tokenAuth(input: ObtainJSONWebTokenInput!): ObtainJSONWebTokenPayload
|
||||
generateDeployToken(input: GenerateDeployTokenInput!): GenerateDeployTokenPayload
|
||||
verifyAccessToken(token: String): Verify
|
||||
@@ -2362,6 +2766,7 @@ type Mutation {
|
||||
watchPackage(input: WatchPackageInput!): WatchPackagePayload
|
||||
unwatchPackage(input: UnwatchPackageInput!): UnwatchPackagePayload
|
||||
archivePackage(input: ArchivePackageInput!): ArchivePackagePayload
|
||||
renamePackage(input: RenamePackageInput!): RenamePackagePayload
|
||||
changePackageVersionArchivedStatus(input: ChangePackageVersionArchivedStatusInput!): ChangePackageVersionArchivedStatusPayload
|
||||
createNamespace(input: CreateNamespaceInput!): CreateNamespacePayload
|
||||
updateNamespace(input: UpdateNamespaceInput!): UpdateNamespacePayload
|
||||
@@ -2614,6 +3019,68 @@ input CreateRepoForAppTemplateInput {
|
||||
clientMutationId: String
|
||||
}
|
||||
|
||||
type RegisterDomainPayload {
|
||||
success: Boolean!
|
||||
domain: DNSDomain
|
||||
clientMutationId: String
|
||||
}
|
||||
|
||||
input RegisterDomainInput {
|
||||
name: String!
|
||||
namespace: String!
|
||||
clientMutationId: String
|
||||
}
|
||||
|
||||
type UpsertDNSRecordPayload {
|
||||
success: Boolean!
|
||||
clientMutationId: String
|
||||
}
|
||||
|
||||
input UpsertDNSRecordInput {
|
||||
kind: RecordKind!
|
||||
domainId: String!
|
||||
name: String!
|
||||
value: String!
|
||||
ttl: Int
|
||||
recordId: String
|
||||
mx: DNSMXExtraInput
|
||||
clientMutationId: String
|
||||
}
|
||||
|
||||
enum RecordKind {
|
||||
A
|
||||
AAAA
|
||||
CNAME
|
||||
MX
|
||||
NS
|
||||
TXT
|
||||
DNAME
|
||||
}
|
||||
|
||||
input DNSMXExtraInput {
|
||||
preference: Int!
|
||||
}
|
||||
|
||||
type DeleteDNSRecordPayload {
|
||||
success: Boolean!
|
||||
clientMutationId: String
|
||||
}
|
||||
|
||||
input DeleteDNSRecordInput {
|
||||
recordId: ID!
|
||||
clientMutationId: String
|
||||
}
|
||||
|
||||
type DeleteDomainPayload {
|
||||
success: Boolean!
|
||||
clientMutationId: String
|
||||
}
|
||||
|
||||
input DeleteDomainInput {
|
||||
domainId: ID!
|
||||
clientMutationId: String
|
||||
}
|
||||
|
||||
type ObtainJSONWebTokenPayload {
|
||||
payload: GenericScalar!
|
||||
refreshExpiresIn: Int!
|
||||
@@ -3086,6 +3553,17 @@ input ArchivePackageInput {
|
||||
clientMutationId: String
|
||||
}
|
||||
|
||||
type RenamePackagePayload {
|
||||
package: Package!
|
||||
clientMutationId: String
|
||||
}
|
||||
|
||||
input RenamePackageInput {
|
||||
packageId: ID!
|
||||
newName: String!
|
||||
clientMutationId: String
|
||||
}
|
||||
|
||||
type ChangePackageVersionArchivedStatusPayload {
|
||||
packageVersion: PackageVersion!
|
||||
clientMutationId: String
|
||||
@@ -3367,6 +3845,9 @@ type Subscription {
|
||||
"""Filter logs by stream"""
|
||||
streams: [LogStream]
|
||||
|
||||
"""Filter logs by instance ids"""
|
||||
instanceIds: [String]
|
||||
|
||||
"""Search logs for this term"""
|
||||
searchTerm: String
|
||||
): Log!
|
||||
|
||||
@@ -816,6 +816,72 @@ pub async fn get_app_logs_paginated(
|
||||
})
|
||||
}
|
||||
|
||||
/// Retrieve a domain by its name.
|
||||
///
|
||||
/// Specify with_records to also retrieve all records for the domain.
|
||||
pub async fn get_domain(
|
||||
client: &WasmerClient,
|
||||
domain: String,
|
||||
) -> Result<Option<types::DnsDomainWithRecords>, anyhow::Error> {
|
||||
let vars = types::GetDomainVars { domain };
|
||||
|
||||
let opt = client
|
||||
.run_graphql(types::GetDomainWithRecords::build(vars))
|
||||
.await
|
||||
.map_err(anyhow::Error::from)?
|
||||
.get_domain;
|
||||
Ok(opt)
|
||||
}
|
||||
|
||||
/// Retrieve all DNS records.
|
||||
///
|
||||
/// NOTE: this is a privileged operation that requires extra permissions.
|
||||
pub async fn get_all_dns_records(
|
||||
client: &WasmerClient,
|
||||
vars: types::GetAllDnsRecordsVariables,
|
||||
) -> Result<types::DnsRecordConnection, anyhow::Error> {
|
||||
client
|
||||
.run_graphql_strict(types::GetAllDnsRecords::build(vars))
|
||||
.await
|
||||
.map_err(anyhow::Error::from)
|
||||
.map(|x| x.get_all_dnsrecords)
|
||||
}
|
||||
|
||||
/// Retrieve a domain by its name.
|
||||
///
|
||||
/// Specify with_records to also retrieve all records for the domain.
|
||||
pub fn get_all_dns_records_stream(
|
||||
client: &WasmerClient,
|
||||
vars: types::GetAllDnsRecordsVariables,
|
||||
) -> impl futures::Stream<Item = Result<Vec<types::DnsRecord>, anyhow::Error>> + '_ {
|
||||
futures::stream::try_unfold(
|
||||
Some(vars),
|
||||
move |vars: Option<types::GetAllDnsRecordsVariables>| async move {
|
||||
let vars = match vars {
|
||||
Some(vars) => vars,
|
||||
None => return Ok(None),
|
||||
};
|
||||
|
||||
let page = get_all_dns_records(client, vars.clone()).await?;
|
||||
|
||||
let end_cursor = page.page_info.end_cursor;
|
||||
|
||||
let items = page
|
||||
.edges
|
||||
.into_iter()
|
||||
.filter_map(|x| x.and_then(|x| x.node))
|
||||
.collect::<Vec<_>>();
|
||||
|
||||
let new_vars = end_cursor.map(|c| types::GetAllDnsRecordsVariables {
|
||||
after: Some(c),
|
||||
..vars
|
||||
});
|
||||
|
||||
Ok(Some((items, new_vars)))
|
||||
},
|
||||
)
|
||||
}
|
||||
|
||||
/// Convert a [`OffsetDateTime`] to a unix timestamp that the WAPM backend
|
||||
/// understands.
|
||||
fn unix_timestamp(ts: OffsetDateTime) -> f64 {
|
||||
|
||||
@@ -35,6 +35,7 @@ mod queries {
|
||||
|
||||
#[derive(cynic::Enum, Clone, Copy, Debug)]
|
||||
pub enum GrapheneRole {
|
||||
Owner,
|
||||
Admin,
|
||||
Editor,
|
||||
Viewer,
|
||||
@@ -608,6 +609,7 @@ mod queries {
|
||||
pub enum LogStream {
|
||||
Stdout,
|
||||
Stderr,
|
||||
Runtime,
|
||||
}
|
||||
|
||||
#[derive(cynic::QueryVariables, Debug, Clone)]
|
||||
@@ -730,6 +732,364 @@ mod queries {
|
||||
pub version: Option<Node>,
|
||||
}
|
||||
|
||||
#[derive(cynic::QueryFragment, Debug, Clone)]
|
||||
#[cynic(graphql_type = "TXTRecord")]
|
||||
pub struct TxtRecord {
|
||||
pub id: cynic::Id,
|
||||
pub created_at: DateTime,
|
||||
pub updated_at: DateTime,
|
||||
pub deleted_at: Option<DateTime>,
|
||||
pub name: Option<String>,
|
||||
pub ttl: Option<i32>,
|
||||
pub data: String,
|
||||
|
||||
pub domain: DnsDomain,
|
||||
}
|
||||
|
||||
#[derive(cynic::QueryFragment, Debug, Clone)]
|
||||
#[cynic(graphql_type = "SSHFPRecord")]
|
||||
pub struct SshfpRecord {
|
||||
pub id: cynic::Id,
|
||||
pub created_at: DateTime,
|
||||
pub updated_at: DateTime,
|
||||
pub deleted_at: Option<DateTime>,
|
||||
pub name: Option<String>,
|
||||
pub ttl: Option<i32>,
|
||||
#[cynic(rename = "type")]
|
||||
pub type_: DnsmanagerSshFingerprintRecordTypeChoices,
|
||||
pub algorithm: DnsmanagerSshFingerprintRecordAlgorithmChoices,
|
||||
pub fingerprint: String,
|
||||
|
||||
pub domain: DnsDomain,
|
||||
}
|
||||
|
||||
#[derive(cynic::QueryFragment, Debug, Clone)]
|
||||
#[cynic(graphql_type = "SRVRecord")]
|
||||
pub struct SrvRecord {
|
||||
pub id: cynic::Id,
|
||||
pub created_at: DateTime,
|
||||
pub updated_at: DateTime,
|
||||
pub deleted_at: Option<DateTime>,
|
||||
pub name: Option<String>,
|
||||
pub ttl: Option<i32>,
|
||||
pub service: String,
|
||||
pub protocol: String,
|
||||
pub priority: i32,
|
||||
pub weight: i32,
|
||||
pub port: i32,
|
||||
pub target: String,
|
||||
|
||||
pub domain: DnsDomain,
|
||||
}
|
||||
|
||||
#[derive(cynic::QueryFragment, Debug, Clone)]
|
||||
#[cynic(graphql_type = "SOARecord")]
|
||||
pub struct SoaRecord {
|
||||
pub id: cynic::Id,
|
||||
pub created_at: DateTime,
|
||||
pub updated_at: DateTime,
|
||||
pub deleted_at: Option<DateTime>,
|
||||
pub name: Option<String>,
|
||||
pub ttl: Option<i32>,
|
||||
pub mname: String,
|
||||
pub rname: String,
|
||||
pub serial: BigInt,
|
||||
pub refresh: BigInt,
|
||||
pub retry: BigInt,
|
||||
pub expire: BigInt,
|
||||
pub minimum: BigInt,
|
||||
|
||||
pub domain: DnsDomain,
|
||||
}
|
||||
|
||||
#[derive(cynic::Enum, Debug, Clone, Copy)]
|
||||
pub enum DNSRecordsSortBy {
|
||||
Newest,
|
||||
Oldest,
|
||||
}
|
||||
|
||||
#[derive(cynic::QueryVariables, Debug, Clone)]
|
||||
pub struct GetAllDnsRecordsVariables {
|
||||
pub after: Option<String>,
|
||||
pub updated_after: Option<DateTime>,
|
||||
pub sort_by: Option<DNSRecordsSortBy>,
|
||||
pub first: Option<i32>,
|
||||
}
|
||||
|
||||
#[derive(cynic::QueryFragment, Debug)]
|
||||
#[cynic(graphql_type = "Query", variables = "GetAllDnsRecordsVariables")]
|
||||
pub struct GetAllDnsRecords {
|
||||
#[arguments(
|
||||
first: $first,
|
||||
after: $after,
|
||||
updatedAfter: $updated_after,
|
||||
sortBy: $sort_by
|
||||
)]
|
||||
#[cynic(rename = "getAllDNSRecords")]
|
||||
pub get_all_dnsrecords: DnsRecordConnection,
|
||||
}
|
||||
|
||||
#[derive(cynic::QueryFragment, Debug, Clone)]
|
||||
#[cynic(graphql_type = "PTRRecord")]
|
||||
pub struct PtrRecord {
|
||||
pub id: cynic::Id,
|
||||
pub created_at: DateTime,
|
||||
pub updated_at: DateTime,
|
||||
pub deleted_at: Option<DateTime>,
|
||||
pub name: Option<String>,
|
||||
pub ttl: Option<i32>,
|
||||
pub ptrdname: String,
|
||||
|
||||
pub domain: DnsDomain,
|
||||
}
|
||||
|
||||
#[derive(cynic::QueryFragment, Debug, Clone)]
|
||||
#[cynic(graphql_type = "NSRecord")]
|
||||
pub struct NsRecord {
|
||||
pub id: cynic::Id,
|
||||
pub created_at: DateTime,
|
||||
pub updated_at: DateTime,
|
||||
pub deleted_at: Option<DateTime>,
|
||||
pub name: Option<String>,
|
||||
pub ttl: Option<i32>,
|
||||
pub nsdname: String,
|
||||
|
||||
pub domain: DnsDomain,
|
||||
}
|
||||
|
||||
#[derive(cynic::QueryFragment, Debug, Clone)]
|
||||
#[cynic(graphql_type = "MXRecord")]
|
||||
pub struct MxRecord {
|
||||
pub id: cynic::Id,
|
||||
pub created_at: DateTime,
|
||||
pub updated_at: DateTime,
|
||||
pub deleted_at: Option<DateTime>,
|
||||
pub name: Option<String>,
|
||||
pub ttl: Option<i32>,
|
||||
pub preference: i32,
|
||||
pub exchange: String,
|
||||
|
||||
pub domain: DnsDomain,
|
||||
}
|
||||
|
||||
#[derive(cynic::QueryFragment, Debug)]
|
||||
#[cynic(graphql_type = "DNSRecordConnection")]
|
||||
pub struct DnsRecordConnection {
|
||||
pub page_info: PageInfo,
|
||||
pub edges: Vec<Option<DnsRecordEdge>>,
|
||||
}
|
||||
|
||||
#[derive(cynic::QueryFragment, Debug)]
|
||||
#[cynic(graphql_type = "DNSRecordEdge")]
|
||||
pub struct DnsRecordEdge {
|
||||
pub node: Option<DnsRecord>,
|
||||
}
|
||||
|
||||
#[derive(cynic::QueryFragment, Debug, Clone)]
|
||||
#[cynic(graphql_type = "DNAMERecord")]
|
||||
pub struct DNameRecord {
|
||||
pub id: cynic::Id,
|
||||
pub created_at: DateTime,
|
||||
pub updated_at: DateTime,
|
||||
pub deleted_at: Option<DateTime>,
|
||||
pub name: Option<String>,
|
||||
pub ttl: Option<i32>,
|
||||
pub d_name: String,
|
||||
|
||||
pub domain: DnsDomain,
|
||||
}
|
||||
|
||||
#[derive(cynic::QueryFragment, Debug, Clone)]
|
||||
#[cynic(graphql_type = "CNAMERecord")]
|
||||
pub struct CNameRecord {
|
||||
pub id: cynic::Id,
|
||||
pub created_at: DateTime,
|
||||
pub updated_at: DateTime,
|
||||
pub deleted_at: Option<DateTime>,
|
||||
pub name: Option<String>,
|
||||
pub ttl: Option<i32>,
|
||||
pub c_name: String,
|
||||
|
||||
pub domain: DnsDomain,
|
||||
}
|
||||
|
||||
#[derive(cynic::QueryFragment, Debug, Clone)]
|
||||
#[cynic(graphql_type = "CAARecord")]
|
||||
pub struct CaaRecord {
|
||||
pub id: cynic::Id,
|
||||
pub created_at: DateTime,
|
||||
pub updated_at: DateTime,
|
||||
pub deleted_at: Option<DateTime>,
|
||||
pub name: Option<String>,
|
||||
pub ttl: Option<i32>,
|
||||
pub value: String,
|
||||
pub flags: i32,
|
||||
pub tag: DnsmanagerCertificationAuthorityAuthorizationRecordTagChoices,
|
||||
|
||||
pub domain: DnsDomain,
|
||||
}
|
||||
|
||||
#[derive(cynic::QueryFragment, Debug, Clone)]
|
||||
#[cynic(graphql_type = "ARecord")]
|
||||
pub struct ARecord {
|
||||
pub id: cynic::Id,
|
||||
pub created_at: DateTime,
|
||||
pub updated_at: DateTime,
|
||||
pub deleted_at: Option<DateTime>,
|
||||
pub name: Option<String>,
|
||||
pub ttl: Option<i32>,
|
||||
pub address: String,
|
||||
|
||||
pub domain: DnsDomain,
|
||||
}
|
||||
|
||||
#[derive(cynic::QueryFragment, Debug, Clone)]
|
||||
#[cynic(graphql_type = "AAAARecord")]
|
||||
pub struct AaaaRecord {
|
||||
pub id: cynic::Id,
|
||||
pub created_at: DateTime,
|
||||
pub updated_at: DateTime,
|
||||
pub deleted_at: Option<DateTime>,
|
||||
pub name: Option<String>,
|
||||
pub ttl: Option<i32>,
|
||||
pub address: String,
|
||||
|
||||
pub domain: DnsDomain,
|
||||
}
|
||||
|
||||
#[derive(cynic::InlineFragments, Debug, Clone)]
|
||||
#[cynic(graphql_type = "DNSRecord")]
|
||||
pub enum DnsRecord {
|
||||
A(ARecord),
|
||||
AAAA(AaaaRecord),
|
||||
CName(CNameRecord),
|
||||
Txt(TxtRecord),
|
||||
Mx(MxRecord),
|
||||
Ns(NsRecord),
|
||||
CAA(CaaRecord),
|
||||
DName(DNameRecord),
|
||||
Ptr(PtrRecord),
|
||||
Soa(SoaRecord),
|
||||
Srv(SrvRecord),
|
||||
Sshfp(SshfpRecord),
|
||||
#[cynic(fallback)]
|
||||
Unknown,
|
||||
}
|
||||
|
||||
impl DnsRecord {
|
||||
pub fn id(&self) -> &str {
|
||||
match self {
|
||||
DnsRecord::A(record) => record.id.inner(),
|
||||
DnsRecord::AAAA(record) => record.id.inner(),
|
||||
DnsRecord::CName(record) => record.id.inner(),
|
||||
DnsRecord::Txt(record) => record.id.inner(),
|
||||
DnsRecord::Mx(record) => record.id.inner(),
|
||||
DnsRecord::Ns(record) => record.id.inner(),
|
||||
DnsRecord::CAA(record) => record.id.inner(),
|
||||
DnsRecord::DName(record) => record.id.inner(),
|
||||
DnsRecord::Ptr(record) => record.id.inner(),
|
||||
DnsRecord::Soa(record) => record.id.inner(),
|
||||
DnsRecord::Srv(record) => record.id.inner(),
|
||||
DnsRecord::Sshfp(record) => record.id.inner(),
|
||||
DnsRecord::Unknown => "",
|
||||
}
|
||||
}
|
||||
|
||||
pub fn domain(&self) -> Option<&DnsDomain> {
|
||||
match self {
|
||||
DnsRecord::A(record) => Some(&record.domain),
|
||||
DnsRecord::AAAA(record) => Some(&record.domain),
|
||||
DnsRecord::CName(record) => Some(&record.domain),
|
||||
DnsRecord::Txt(record) => Some(&record.domain),
|
||||
DnsRecord::Mx(record) => Some(&record.domain),
|
||||
DnsRecord::Ns(record) => Some(&record.domain),
|
||||
DnsRecord::CAA(record) => Some(&record.domain),
|
||||
DnsRecord::DName(record) => Some(&record.domain),
|
||||
DnsRecord::Ptr(record) => Some(&record.domain),
|
||||
DnsRecord::Soa(record) => Some(&record.domain),
|
||||
DnsRecord::Srv(record) => Some(&record.domain),
|
||||
DnsRecord::Sshfp(record) => Some(&record.domain),
|
||||
DnsRecord::Unknown => None,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(cynic::Enum, Clone, Copy, Debug)]
|
||||
pub enum DnsmanagerCertificationAuthorityAuthorizationRecordTagChoices {
|
||||
Issue,
|
||||
Issuewild,
|
||||
Iodef,
|
||||
}
|
||||
|
||||
impl DnsmanagerCertificationAuthorityAuthorizationRecordTagChoices {
|
||||
pub fn as_str(self) -> &'static str {
|
||||
match self {
|
||||
Self::Issue => "issue",
|
||||
Self::Issuewild => "issuewild",
|
||||
Self::Iodef => "iodef",
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(cynic::Enum, Clone, Copy, Debug)]
|
||||
pub enum DnsmanagerSshFingerprintRecordAlgorithmChoices {
|
||||
#[cynic(rename = "A_1")]
|
||||
A1,
|
||||
#[cynic(rename = "A_2")]
|
||||
A2,
|
||||
#[cynic(rename = "A_3")]
|
||||
A3,
|
||||
#[cynic(rename = "A_4")]
|
||||
A4,
|
||||
}
|
||||
|
||||
#[derive(cynic::Enum, Clone, Copy, Debug)]
|
||||
pub enum DnsmanagerSshFingerprintRecordTypeChoices {
|
||||
#[cynic(rename = "A_1")]
|
||||
A1,
|
||||
#[cynic(rename = "A_2")]
|
||||
A2,
|
||||
}
|
||||
|
||||
#[derive(cynic::QueryVariables, Debug)]
|
||||
pub struct GetDomainVars {
|
||||
pub domain: String,
|
||||
}
|
||||
|
||||
#[derive(cynic::QueryFragment, Debug)]
|
||||
#[cynic(graphql_type = "Query", variables = "GetDomainVars")]
|
||||
pub struct GetDomain {
|
||||
#[arguments(name: $domain)]
|
||||
pub get_domain: Option<DnsDomain>,
|
||||
}
|
||||
|
||||
#[derive(cynic::QueryFragment, Debug)]
|
||||
#[cynic(graphql_type = "Query", variables = "GetDomainVars")]
|
||||
pub struct GetDomainWithRecords {
|
||||
#[arguments(name: $domain)]
|
||||
pub get_domain: Option<DnsDomainWithRecords>,
|
||||
}
|
||||
|
||||
#[derive(cynic::QueryFragment, Debug, Clone)]
|
||||
#[cynic(graphql_type = "DNSDomain")]
|
||||
pub struct DnsDomain {
|
||||
pub id: cynic::Id,
|
||||
pub name: String,
|
||||
pub slug: String,
|
||||
}
|
||||
|
||||
#[derive(cynic::QueryFragment, Debug, Clone)]
|
||||
#[cynic(graphql_type = "DNSDomain")]
|
||||
pub struct DnsDomainWithRecords {
|
||||
pub id: cynic::Id,
|
||||
pub name: String,
|
||||
pub slug: String,
|
||||
pub records: Option<Vec<Option<DnsRecord>>>,
|
||||
}
|
||||
|
||||
#[derive(cynic::Scalar, Debug, Clone)]
|
||||
pub struct BigInt(pub String);
|
||||
|
||||
#[derive(cynic::InlineFragments, Debug)]
|
||||
pub enum Node {
|
||||
DeployApp(Box<DeployApp>),
|
||||
|
||||
Reference in New Issue
Block a user