diff --git a/graphql/codegen/.gitignore b/graphql/codegen/.gitignore index 6a8e05037..3046b9746 100644 --- a/graphql/codegen/.gitignore +++ b/graphql/codegen/.gitignore @@ -7,6 +7,8 @@ output-orm/ examples/output/generated-sdk/ examples/output/generated-orm/ +examples/output/generated-sdk-schema/ +examples/output/generated-orm-schema/ # Dependencies node_modules/ diff --git a/graphql/codegen/examples/example.schema.graphql b/graphql/codegen/examples/example.schema.graphql new file mode 100644 index 000000000..192ba686f --- /dev/null +++ b/graphql/codegen/examples/example.schema.graphql @@ -0,0 +1,42841 @@ +type Address { + addressLine1: String + addressLine2: String + addressLine3: String + city: String + countyProvince: String + createdAt: Datetime + createdBy: UUID + id: UUID! + other: String + + """ + Reads a single `User` that is related to this `Address`. + """ + owner: User + ownerId: UUID! + postcode: String + state: String + updatedAt: Datetime + updatedBy: UUID +} + +""" +A condition to be used against `Address` object types. All fields are tested for equality and combined with a logical ‘and.’ +""" +input AddressCondition { + """ + Checks for equality with the object’s `addressLine1` field. + """ + addressLine1: String + + """ + Checks for equality with the object’s `addressLine2` field. + """ + addressLine2: String + + """ + Checks for equality with the object’s `addressLine3` field. + """ + addressLine3: String + + """ + Checks for equality with the object’s `city` field. + """ + city: String + + """ + Checks for equality with the object’s `countyProvince` field. + """ + countyProvince: String + + """ + Checks for equality with the object’s `createdAt` field. + """ + createdAt: Datetime + + """ + Checks for equality with the object’s `createdBy` field. + """ + createdBy: UUID + + """ + Checks for equality with the object’s `id` field. + """ + id: UUID + + """ + Checks for equality with the object’s `other` field. + """ + other: String + + """ + Checks for equality with the object’s `ownerId` field. + """ + ownerId: UUID + + """ + Checks for equality with the object’s `postcode` field. + """ + postcode: String + + """ + Checks for equality with the object’s `state` field. + """ + state: String + + """ + Checks for equality with the object’s `updatedAt` field. + """ + updatedAt: Datetime + + """ + Checks for equality with the object’s `updatedBy` field. + """ + updatedBy: UUID +} + +""" +A filter to be used against `Address` object types. All fields are combined with a logical ‘and.’ +""" +input AddressFilter { + """ + Filter by the object’s `addressLine1` field. + """ + addressLine1: StringFilter + + """ + Filter by the object’s `addressLine2` field. + """ + addressLine2: StringFilter + + """ + Filter by the object’s `addressLine3` field. + """ + addressLine3: StringFilter + + """ + Checks for all expressions in this list. + """ + and: [AddressFilter!] + + """ + Filter by the object’s `city` field. + """ + city: StringFilter + + """ + Filter by the object’s `countyProvince` field. + """ + countyProvince: StringFilter + + """ + Filter by the object’s `createdAt` field. + """ + createdAt: DatetimeFilter + + """ + Filter by the object’s `createdBy` field. + """ + createdBy: UUIDFilter + + """ + Filter by the object’s `id` field. + """ + id: UUIDFilter + + """ + Negates the expression. + """ + not: AddressFilter + + """ + Checks for any expressions in this list. + """ + or: [AddressFilter!] + + """ + Filter by the object’s `other` field. + """ + other: StringFilter + + """ + Filter by the object’s `ownerId` field. + """ + ownerId: UUIDFilter + + """ + Filter by the object’s `postcode` field. + """ + postcode: StringFilter + + """ + Filter by the object’s `state` field. + """ + state: StringFilter + + """ + Filter by the object’s `updatedAt` field. + """ + updatedAt: DatetimeFilter + + """ + Filter by the object’s `updatedBy` field. + """ + updatedBy: UUIDFilter +} + +""" +An input for mutations affecting `Address` +""" +input AddressInput { + addressLine1: String + addressLine2: String + addressLine3: String + city: String + countyProvince: String + createdAt: Datetime + createdBy: UUID + id: UUID + other: String + ownerId: UUID! + postcode: String + state: String + updatedAt: Datetime + updatedBy: UUID +} + +""" +Represents an update to a `Address`. Fields that are set will be updated. +""" +input AddressPatch { + addressLine1: String + addressLine2: String + addressLine3: String + city: String + countyProvince: String + createdAt: Datetime + createdBy: UUID + id: UUID + other: String + ownerId: UUID + postcode: String + state: String + updatedAt: Datetime + updatedBy: UUID +} + +""" +A connection to a list of `Address` values. +""" +type AddressesConnection { + """ + A list of edges which contains the `Address` and cursor to aid in pagination. + """ + edges: [AddressesEdge!]! + + """ + A list of `Address` objects. + """ + nodes: [Address!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `Address` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `Address` edge in the connection. +""" +type AddressesEdge { + """ + A cursor for use in pagination. + """ + cursor: Cursor + + """ + The `Address` at the end of the edge. + """ + node: Address! +} + +""" +Methods to use when ordering `Address`. +""" +enum AddressesOrderBy { + ADDRESS_LINE_1_ASC + ADDRESS_LINE_1_DESC + ADDRESS_LINE_2_ASC + ADDRESS_LINE_2_DESC + ADDRESS_LINE_3_ASC + ADDRESS_LINE_3_DESC + CITY_ASC + CITY_DESC + COUNTY_PROVINCE_ASC + COUNTY_PROVINCE_DESC + CREATED_AT_ASC + CREATED_AT_DESC + CREATED_BY_ASC + CREATED_BY_DESC + ID_ASC + ID_DESC + NATURAL + OTHER_ASC + OTHER_DESC + OWNER_ID_ASC + OWNER_ID_DESC + POSTCODE_ASC + POSTCODE_DESC + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC + STATE_ASC + STATE_DESC + UPDATED_AT_ASC + UPDATED_AT_DESC + UPDATED_BY_ASC + UPDATED_BY_DESC +} + +type Api { + anonRole: String! + + """ + Reads and enables pagination through a set of `ApiExtension`. + """ + apiExtensions( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: ApiExtensionCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: ApiExtensionFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `ApiExtension`. + """ + orderBy: [ApiExtensionsOrderBy!] = [PRIMARY_KEY_ASC] + ): ApiExtensionsConnection! + + """ + Reads and enables pagination through a set of `ApiModule`. + """ + apiModules( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: ApiModuleCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: ApiModuleFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `ApiModule`. + """ + orderBy: [ApiModulesOrderBy!] = [PRIMARY_KEY_ASC] + ): ApiModulesConnection! + + """ + Reads and enables pagination through a set of `ApiSchema`. + """ + apiSchemata( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: ApiSchemaCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: ApiSchemaFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `ApiSchema`. + """ + orderBy: [ApiSchemataOrderBy!] = [PRIMARY_KEY_ASC] + ): ApiSchemataConnection! + + """ + Reads a single `Database` that is related to this `Api`. + """ + database: Database + databaseId: UUID! + + """ + Reads and enables pagination through a set of `Database`. + """ + databasesByApiExtensionApiIdAndDatabaseId( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: DatabaseCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: DatabaseFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `Database`. + """ + orderBy: [DatabasesOrderBy!] = [PRIMARY_KEY_ASC] + ): ApiDatabasesByApiExtensionApiIdAndDatabaseIdManyToManyConnection! + dbname: String! + + """ + Reads and enables pagination through a set of `Domain`. + """ + domains( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: DomainCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: DomainFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `Domain`. + """ + orderBy: [DomainsOrderBy!] = [PRIMARY_KEY_ASC] + ): DomainsConnection! + id: UUID! + isPublic: Boolean! + name: String! + roleName: String! + + """ + Reads and enables pagination through a set of `Schema`. + """ + schemataByApiSchemaApiIdAndSchemaId( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: SchemaCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: SchemaFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `Schema`. + """ + orderBy: [SchemataOrderBy!] = [PRIMARY_KEY_ASC] + ): ApiSchemataByApiSchemataApiIdAndSchemaIdManyToManyConnection! +} + +""" +A condition to be used against `Api` object types. All fields are tested for equality and combined with a logical ‘and.’ +""" +input ApiCondition { + """ + Checks for equality with the object’s `anonRole` field. + """ + anonRole: String + + """ + Checks for equality with the object’s `databaseId` field. + """ + databaseId: UUID + + """ + Checks for equality with the object’s `dbname` field. + """ + dbname: String + + """ + Checks for equality with the object’s `id` field. + """ + id: UUID + + """ + Checks for equality with the object’s `isPublic` field. + """ + isPublic: Boolean + + """ + Checks for equality with the object’s `name` field. + """ + name: String + + """ + Checks for equality with the object’s `roleName` field. + """ + roleName: String +} + +""" +A connection to a list of `Database` values, with data from `ApiExtension`. +""" +type ApiDatabasesByApiExtensionApiIdAndDatabaseIdManyToManyConnection { + """ + A list of edges which contains the `Database`, info from the `ApiExtension`, and the cursor to aid in pagination. + """ + edges: [ApiDatabasesByApiExtensionApiIdAndDatabaseIdManyToManyEdge!]! + + """ + A list of `Database` objects. + """ + nodes: [Database!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `Database` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `Database` edge in the connection, with data from `ApiExtension`. +""" +type ApiDatabasesByApiExtensionApiIdAndDatabaseIdManyToManyEdge { + """ + Reads and enables pagination through a set of `ApiExtension`. + """ + apiExtensions( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: ApiExtensionCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: ApiExtensionFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `ApiExtension`. + """ + orderBy: [ApiExtensionsOrderBy!] = [PRIMARY_KEY_ASC] + ): ApiExtensionsConnection! + + """ + A cursor for use in pagination. + """ + cursor: Cursor + + """ + The `Database` at the end of the edge. + """ + node: Database! +} + +type ApiExtension { + """ + Reads a single `Api` that is related to this `ApiExtension`. + """ + api: Api + apiId: UUID! + + """ + Reads a single `Database` that is related to this `ApiExtension`. + """ + database: Database + databaseId: UUID! + id: UUID! + schemaName: String +} + +""" +A condition to be used against `ApiExtension` object types. All fields are +tested for equality and combined with a logical ‘and.’ +""" +input ApiExtensionCondition { + """ + Checks for equality with the object’s `apiId` field. + """ + apiId: UUID + + """ + Checks for equality with the object’s `databaseId` field. + """ + databaseId: UUID + + """ + Checks for equality with the object’s `id` field. + """ + id: UUID + + """ + Checks for equality with the object’s `schemaName` field. + """ + schemaName: String +} + +""" +A filter to be used against `ApiExtension` object types. All fields are combined with a logical ‘and.’ +""" +input ApiExtensionFilter { + """ + Checks for all expressions in this list. + """ + and: [ApiExtensionFilter!] + + """ + Filter by the object’s `apiId` field. + """ + apiId: UUIDFilter + + """ + Filter by the object’s `databaseId` field. + """ + databaseId: UUIDFilter + + """ + Filter by the object’s `id` field. + """ + id: UUIDFilter + + """ + Negates the expression. + """ + not: ApiExtensionFilter + + """ + Checks for any expressions in this list. + """ + or: [ApiExtensionFilter!] + + """ + Filter by the object’s `schemaName` field. + """ + schemaName: StringFilter +} + +""" +An input for mutations affecting `ApiExtension` +""" +input ApiExtensionInput { + apiId: UUID! + databaseId: UUID! + id: UUID + schemaName: String +} + +""" +Represents an update to a `ApiExtension`. Fields that are set will be updated. +""" +input ApiExtensionPatch { + apiId: UUID + databaseId: UUID + id: UUID + schemaName: String +} + +""" +A connection to a list of `ApiExtension` values. +""" +type ApiExtensionsConnection { + """ + A list of edges which contains the `ApiExtension` and cursor to aid in pagination. + """ + edges: [ApiExtensionsEdge!]! + + """ + A list of `ApiExtension` objects. + """ + nodes: [ApiExtension!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `ApiExtension` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `ApiExtension` edge in the connection. +""" +type ApiExtensionsEdge { + """ + A cursor for use in pagination. + """ + cursor: Cursor + + """ + The `ApiExtension` at the end of the edge. + """ + node: ApiExtension! +} + +""" +Methods to use when ordering `ApiExtension`. +""" +enum ApiExtensionsOrderBy { + API_ID_ASC + API_ID_DESC + DATABASE_ID_ASC + DATABASE_ID_DESC + ID_ASC + ID_DESC + NATURAL + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC + SCHEMA_NAME_ASC + SCHEMA_NAME_DESC +} + +""" +A filter to be used against `Api` object types. All fields are combined with a logical ‘and.’ +""" +input ApiFilter { + """ + Checks for all expressions in this list. + """ + and: [ApiFilter!] + + """ + Filter by the object’s `anonRole` field. + """ + anonRole: StringFilter + + """ + Filter by the object’s `databaseId` field. + """ + databaseId: UUIDFilter + + """ + Filter by the object’s `dbname` field. + """ + dbname: StringFilter + + """ + Filter by the object’s `id` field. + """ + id: UUIDFilter + + """ + Filter by the object’s `isPublic` field. + """ + isPublic: BooleanFilter + + """ + Filter by the object’s `name` field. + """ + name: StringFilter + + """ + Negates the expression. + """ + not: ApiFilter + + """ + Checks for any expressions in this list. + """ + or: [ApiFilter!] + + """ + Filter by the object’s `roleName` field. + """ + roleName: StringFilter +} + +""" +An input for mutations affecting `Api` +""" +input ApiInput { + anonRole: String + databaseId: UUID! + dbname: String + id: UUID + isPublic: Boolean + name: String! + roleName: String +} + +type ApiModule { + """ + Reads a single `Api` that is related to this `ApiModule`. + """ + api: Api + apiId: UUID! + data: JSON! + + """ + Reads a single `Database` that is related to this `ApiModule`. + """ + database: Database + databaseId: UUID! + id: UUID! + name: String! +} + +""" +A condition to be used against `ApiModule` object types. All fields are tested +for equality and combined with a logical ‘and.’ +""" +input ApiModuleCondition { + """ + Checks for equality with the object’s `apiId` field. + """ + apiId: UUID + + """ + Checks for equality with the object’s `data` field. + """ + data: JSON + + """ + Checks for equality with the object’s `databaseId` field. + """ + databaseId: UUID + + """ + Checks for equality with the object’s `id` field. + """ + id: UUID + + """ + Checks for equality with the object’s `name` field. + """ + name: String +} + +""" +A filter to be used against `ApiModule` object types. All fields are combined with a logical ‘and.’ +""" +input ApiModuleFilter { + """ + Checks for all expressions in this list. + """ + and: [ApiModuleFilter!] + + """ + Filter by the object’s `apiId` field. + """ + apiId: UUIDFilter + + """ + Filter by the object’s `databaseId` field. + """ + databaseId: UUIDFilter + + """ + Filter by the object’s `id` field. + """ + id: UUIDFilter + + """ + Filter by the object’s `name` field. + """ + name: StringFilter + + """ + Negates the expression. + """ + not: ApiModuleFilter + + """ + Checks for any expressions in this list. + """ + or: [ApiModuleFilter!] +} + +""" +An input for mutations affecting `ApiModule` +""" +input ApiModuleInput { + apiId: UUID! + data: JSON! + databaseId: UUID! + id: UUID + name: String! +} + +""" +Represents an update to a `ApiModule`. Fields that are set will be updated. +""" +input ApiModulePatch { + apiId: UUID + data: JSON + databaseId: UUID + id: UUID + name: String +} + +""" +A connection to a list of `ApiModule` values. +""" +type ApiModulesConnection { + """ + A list of edges which contains the `ApiModule` and cursor to aid in pagination. + """ + edges: [ApiModulesEdge!]! + + """ + A list of `ApiModule` objects. + """ + nodes: [ApiModule!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `ApiModule` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `ApiModule` edge in the connection. +""" +type ApiModulesEdge { + """ + A cursor for use in pagination. + """ + cursor: Cursor + + """ + The `ApiModule` at the end of the edge. + """ + node: ApiModule! +} + +""" +Methods to use when ordering `ApiModule`. +""" +enum ApiModulesOrderBy { + API_ID_ASC + API_ID_DESC + DATABASE_ID_ASC + DATABASE_ID_DESC + DATA_ASC + DATA_DESC + ID_ASC + ID_DESC + NAME_ASC + NAME_DESC + NATURAL + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC +} + +""" +Represents an update to a `Api`. Fields that are set will be updated. +""" +input ApiPatch { + anonRole: String + databaseId: UUID + dbname: String + id: UUID + isPublic: Boolean + name: String + roleName: String +} + +type ApiSchema { + """ + Reads a single `Api` that is related to this `ApiSchema`. + """ + api: Api + apiId: UUID! + + """ + Reads a single `Database` that is related to this `ApiSchema`. + """ + database: Database + databaseId: UUID! + id: UUID! + + """ + Reads a single `Schema` that is related to this `ApiSchema`. + """ + schema: Schema + schemaId: UUID! +} + +""" +A condition to be used against `ApiSchema` object types. All fields are tested +for equality and combined with a logical ‘and.’ +""" +input ApiSchemaCondition { + """ + Checks for equality with the object’s `apiId` field. + """ + apiId: UUID + + """ + Checks for equality with the object’s `databaseId` field. + """ + databaseId: UUID + + """ + Checks for equality with the object’s `id` field. + """ + id: UUID + + """ + Checks for equality with the object’s `schemaId` field. + """ + schemaId: UUID +} + +""" +A filter to be used against `ApiSchema` object types. All fields are combined with a logical ‘and.’ +""" +input ApiSchemaFilter { + """ + Checks for all expressions in this list. + """ + and: [ApiSchemaFilter!] + + """ + Filter by the object’s `apiId` field. + """ + apiId: UUIDFilter + + """ + Filter by the object’s `databaseId` field. + """ + databaseId: UUIDFilter + + """ + Filter by the object’s `id` field. + """ + id: UUIDFilter + + """ + Negates the expression. + """ + not: ApiSchemaFilter + + """ + Checks for any expressions in this list. + """ + or: [ApiSchemaFilter!] + + """ + Filter by the object’s `schemaId` field. + """ + schemaId: UUIDFilter +} + +""" +An input for mutations affecting `ApiSchema` +""" +input ApiSchemaInput { + apiId: UUID! + databaseId: UUID! + id: UUID + schemaId: UUID! +} + +""" +Represents an update to a `ApiSchema`. Fields that are set will be updated. +""" +input ApiSchemaPatch { + apiId: UUID + databaseId: UUID + id: UUID + schemaId: UUID +} + +""" +A connection to a list of `Schema` values, with data from `ApiSchema`. +""" +type ApiSchemataByApiSchemataApiIdAndSchemaIdManyToManyConnection { + """ + A list of edges which contains the `Schema`, info from the `ApiSchema`, and the cursor to aid in pagination. + """ + edges: [ApiSchemataByApiSchemataApiIdAndSchemaIdManyToManyEdge!]! + + """ + A list of `Schema` objects. + """ + nodes: [Schema!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `Schema` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `Schema` edge in the connection, with data from `ApiSchema`. +""" +type ApiSchemataByApiSchemataApiIdAndSchemaIdManyToManyEdge { + """ + A cursor for use in pagination. + """ + cursor: Cursor + databaseId: UUID! + id: UUID! + + """ + The `Schema` at the end of the edge. + """ + node: Schema! +} + +""" +A connection to a list of `ApiSchema` values. +""" +type ApiSchemataConnection { + """ + A list of edges which contains the `ApiSchema` and cursor to aid in pagination. + """ + edges: [ApiSchemataEdge!]! + + """ + A list of `ApiSchema` objects. + """ + nodes: [ApiSchema!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `ApiSchema` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `ApiSchema` edge in the connection. +""" +type ApiSchemataEdge { + """ + A cursor for use in pagination. + """ + cursor: Cursor + + """ + The `ApiSchema` at the end of the edge. + """ + node: ApiSchema! +} + +""" +Methods to use when ordering `ApiSchema`. +""" +enum ApiSchemataOrderBy { + API_ID_ASC + API_ID_DESC + DATABASE_ID_ASC + DATABASE_ID_DESC + ID_ASC + ID_DESC + NATURAL + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC + SCHEMA_ID_ASC + SCHEMA_ID_DESC +} + +type ApiToken { + accessToken: String! + accessTokenExpiresAt: Datetime! + id: UUID! + ip: InternetAddress + origin: String + otToken: String + uagent: String + userId: UUID! +} + +""" +A connection to a list of `Api` values. +""" +type ApisConnection { + """ + A list of edges which contains the `Api` and cursor to aid in pagination. + """ + edges: [ApisEdge!]! + + """ + A list of `Api` objects. + """ + nodes: [Api!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `Api` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `Api` edge in the connection. +""" +type ApisEdge { + """ + A cursor for use in pagination. + """ + cursor: Cursor + + """ + The `Api` at the end of the edge. + """ + node: Api! +} + +""" +Methods to use when ordering `Api`. +""" +enum ApisOrderBy { + ANON_ROLE_ASC + ANON_ROLE_DESC + DATABASE_ID_ASC + DATABASE_ID_DESC + DBNAME_ASC + DBNAME_DESC + ID_ASC + ID_DESC + IS_PUBLIC_ASC + IS_PUBLIC_DESC + NAME_ASC + NAME_DESC + NATURAL + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC + ROLE_NAME_ASC + ROLE_NAME_DESC +} + +type App { + appIdPrefix: String + appImage: JSON + appStoreId: String + appStoreLink: String + + """ + Reads a single `Database` that is related to this `App`. + """ + database: Database + databaseId: UUID! + id: UUID! + name: String + playStoreLink: String + + """ + Reads a single `Site` that is related to this `App`. + """ + site: Site + siteId: UUID! +} + +""" +This table represents the users progress for particular level requirements, tallying the total count. This table is updated via triggers and should not be updated maually. +""" +type AppAchievement { + """ + Reads a single `User` that is related to this `AppAchievement`. + """ + actor: User + actorId: UUID! + count: Int! + createdAt: Datetime! + id: UUID! + name: String! +} + +""" +A condition to be used against `AppAchievement` object types. All fields are +tested for equality and combined with a logical ‘and.’ +""" +input AppAchievementCondition { + """ + Checks for equality with the object’s `actorId` field. + """ + actorId: UUID + + """ + Checks for equality with the object’s `count` field. + """ + count: Int + + """ + Checks for equality with the object’s `createdAt` field. + """ + createdAt: Datetime + + """ + Checks for equality with the object’s `id` field. + """ + id: UUID + + """ + Checks for equality with the object’s `name` field. + """ + name: String +} + +""" +A filter to be used against `AppAchievement` object types. All fields are combined with a logical ‘and.’ +""" +input AppAchievementFilter { + """ + Filter by the object’s `actorId` field. + """ + actorId: UUIDFilter + + """ + Checks for all expressions in this list. + """ + and: [AppAchievementFilter!] + + """ + Filter by the object’s `count` field. + """ + count: IntFilter + + """ + Filter by the object’s `createdAt` field. + """ + createdAt: DatetimeFilter + + """ + Filter by the object’s `id` field. + """ + id: UUIDFilter + + """ + Filter by the object’s `name` field. + """ + name: StringFilter + + """ + Negates the expression. + """ + not: AppAchievementFilter + + """ + Checks for any expressions in this list. + """ + or: [AppAchievementFilter!] +} + +""" +An input for mutations affecting `AppAchievement` +""" +input AppAchievementInput { + actorId: UUID + count: Int + createdAt: Datetime + id: UUID + name: String! +} + +""" +Represents an update to a `AppAchievement`. Fields that are set will be updated. +""" +input AppAchievementPatch { + actorId: UUID + count: Int + createdAt: Datetime + id: UUID + name: String +} + +""" +A connection to a list of `AppAchievement` values. +""" +type AppAchievementsConnection { + """ + A list of edges which contains the `AppAchievement` and cursor to aid in pagination. + """ + edges: [AppAchievementsEdge!]! + + """ + A list of `AppAchievement` objects. + """ + nodes: [AppAchievement!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `AppAchievement` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `AppAchievement` edge in the connection. +""" +type AppAchievementsEdge { + """ + A cursor for use in pagination. + """ + cursor: Cursor + + """ + The `AppAchievement` at the end of the edge. + """ + node: AppAchievement! +} + +""" +Methods to use when ordering `AppAchievement`. +""" +enum AppAchievementsOrderBy { + ACTOR_ID_ASC + ACTOR_ID_DESC + COUNT_ASC + COUNT_DESC + CREATED_AT_ASC + CREATED_AT_DESC + ID_ASC + ID_DESC + NAME_ASC + NAME_DESC + NATURAL + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC +} + +""" +A condition to be used against `App` object types. All fields are tested for equality and combined with a logical ‘and.’ +""" +input AppCondition { + """ + Checks for equality with the object’s `appIdPrefix` field. + """ + appIdPrefix: String + + """ + Checks for equality with the object’s `appImage` field. + """ + appImage: JSON + + """ + Checks for equality with the object’s `appStoreId` field. + """ + appStoreId: String + + """ + Checks for equality with the object’s `appStoreLink` field. + """ + appStoreLink: String + + """ + Checks for equality with the object’s `databaseId` field. + """ + databaseId: UUID + + """ + Checks for equality with the object’s `id` field. + """ + id: UUID + + """ + Checks for equality with the object’s `name` field. + """ + name: String + + """ + Checks for equality with the object’s `playStoreLink` field. + """ + playStoreLink: String + + """ + Checks for equality with the object’s `siteId` field. + """ + siteId: UUID +} + +""" +A filter to be used against `App` object types. All fields are combined with a logical ‘and.’ +""" +input AppFilter { + """ + Checks for all expressions in this list. + """ + and: [AppFilter!] + + """ + Filter by the object’s `appIdPrefix` field. + """ + appIdPrefix: StringFilter + + """ + Filter by the object’s `appImage` field. + """ + appImage: JSONFilter + + """ + Filter by the object’s `appStoreId` field. + """ + appStoreId: StringFilter + + """ + Filter by the object’s `appStoreLink` field. + """ + appStoreLink: StringFilter + + """ + Filter by the object’s `databaseId` field. + """ + databaseId: UUIDFilter + + """ + Filter by the object’s `id` field. + """ + id: UUIDFilter + + """ + Filter by the object’s `name` field. + """ + name: StringFilter + + """ + Negates the expression. + """ + not: AppFilter + + """ + Checks for any expressions in this list. + """ + or: [AppFilter!] + + """ + Filter by the object’s `playStoreLink` field. + """ + playStoreLink: StringFilter + + """ + Filter by the object’s `siteId` field. + """ + siteId: UUIDFilter +} + +type AppGrant { + """ + Reads a single `User` that is related to this `AppGrant`. + """ + grantor: User + grantorId: UUID + id: UUID! + isGrant: Boolean! + + """ + Reads a single `AppMembership` that is related to this `AppGrant`. + """ + membership: AppMembership + membershipId: UUID! + permissions: BitString! +} + +""" +A condition to be used against `AppGrant` object types. All fields are tested +for equality and combined with a logical ‘and.’ +""" +input AppGrantCondition { + """ + Checks for equality with the object’s `grantorId` field. + """ + grantorId: UUID + + """ + Checks for equality with the object’s `id` field. + """ + id: UUID + + """ + Checks for equality with the object’s `isGrant` field. + """ + isGrant: Boolean + + """ + Checks for equality with the object’s `membershipId` field. + """ + membershipId: UUID + + """ + Checks for equality with the object’s `permissions` field. + """ + permissions: BitString +} + +""" +A filter to be used against `AppGrant` object types. All fields are combined with a logical ‘and.’ +""" +input AppGrantFilter { + """ + Checks for all expressions in this list. + """ + and: [AppGrantFilter!] + + """ + Filter by the object’s `grantorId` field. + """ + grantorId: UUIDFilter + + """ + Filter by the object’s `id` field. + """ + id: UUIDFilter + + """ + Filter by the object’s `isGrant` field. + """ + isGrant: BooleanFilter + + """ + Filter by the object’s `membershipId` field. + """ + membershipId: UUIDFilter + + """ + Negates the expression. + """ + not: AppGrantFilter + + """ + Checks for any expressions in this list. + """ + or: [AppGrantFilter!] + + """ + Filter by the object’s `permissions` field. + """ + permissions: BitStringFilter +} + +""" +An input for mutations affecting `AppGrant` +""" +input AppGrantInput { + grantorId: UUID + id: UUID + isGrant: Boolean + membershipId: UUID! + permissions: BitString +} + +""" +Represents an update to a `AppGrant`. Fields that are set will be updated. +""" +input AppGrantPatch { + grantorId: UUID + id: UUID + isGrant: Boolean + membershipId: UUID + permissions: BitString +} + +""" +A connection to a list of `AppGrant` values. +""" +type AppGrantsConnection { + """ + A list of edges which contains the `AppGrant` and cursor to aid in pagination. + """ + edges: [AppGrantsEdge!]! + + """ + A list of `AppGrant` objects. + """ + nodes: [AppGrant!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `AppGrant` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `AppGrant` edge in the connection. +""" +type AppGrantsEdge { + """ + A cursor for use in pagination. + """ + cursor: Cursor + + """ + The `AppGrant` at the end of the edge. + """ + node: AppGrant! +} + +""" +Methods to use when ordering `AppGrant`. +""" +enum AppGrantsOrderBy { + GRANTOR_ID_ASC + GRANTOR_ID_DESC + ID_ASC + ID_DESC + IS_GRANT_ASC + IS_GRANT_DESC + MEMBERSHIP_ID_ASC + MEMBERSHIP_ID_DESC + NATURAL + PERMISSIONS_ASC + PERMISSIONS_DESC + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC +} + +""" +An input for mutations affecting `App` +""" +input AppInput { + appIdPrefix: String + appImage: JSON + appImageUpload: Upload + appStoreId: String + appStoreLink: String + databaseId: UUID! + id: UUID + name: String + playStoreLink: String + siteId: UUID! +} + +""" +Levels for achievement +""" +type AppLevel { + description: String + id: UUID! + image: JSON + name: String! + + """ + Reads a single `User` that is related to this `AppLevel`. + """ + owner: User + ownerId: UUID +} + +""" +A condition to be used against `AppLevel` object types. All fields are tested +for equality and combined with a logical ‘and.’ +""" +input AppLevelCondition { + """ + Checks for equality with the object’s `description` field. + """ + description: String + + """ + Checks for equality with the object’s `id` field. + """ + id: UUID + + """ + Checks for equality with the object’s `image` field. + """ + image: JSON + + """ + Checks for equality with the object’s `name` field. + """ + name: String + + """ + Checks for equality with the object’s `ownerId` field. + """ + ownerId: UUID +} + +""" +A filter to be used against `AppLevel` object types. All fields are combined with a logical ‘and.’ +""" +input AppLevelFilter { + """ + Checks for all expressions in this list. + """ + and: [AppLevelFilter!] + + """ + Filter by the object’s `description` field. + """ + description: StringFilter + + """ + Filter by the object’s `id` field. + """ + id: UUIDFilter + + """ + Filter by the object’s `image` field. + """ + image: JSONFilter + + """ + Filter by the object’s `name` field. + """ + name: StringFilter + + """ + Negates the expression. + """ + not: AppLevelFilter + + """ + Checks for any expressions in this list. + """ + or: [AppLevelFilter!] + + """ + Filter by the object’s `ownerId` field. + """ + ownerId: UUIDFilter +} + +""" +An input for mutations affecting `AppLevel` +""" +input AppLevelInput { + description: String + id: UUID + image: JSON + imageUpload: Upload + name: String! + ownerId: UUID +} + +""" +Represents an update to a `AppLevel`. Fields that are set will be updated. +""" +input AppLevelPatch { + description: String + id: UUID + image: JSON + imageUpload: Upload + name: String + ownerId: UUID +} + +""" +Requirements to achieve a level +""" +type AppLevelRequirement { + description: String + id: UUID! + level: String! + name: String! + priority: Int! + requiredCount: Int! +} + +""" +A condition to be used against `AppLevelRequirement` object types. All fields +are tested for equality and combined with a logical ‘and.’ +""" +input AppLevelRequirementCondition { + """ + Checks for equality with the object’s `description` field. + """ + description: String + + """ + Checks for equality with the object’s `id` field. + """ + id: UUID + + """ + Checks for equality with the object’s `level` field. + """ + level: String + + """ + Checks for equality with the object’s `name` field. + """ + name: String + + """ + Checks for equality with the object’s `priority` field. + """ + priority: Int + + """ + Checks for equality with the object’s `requiredCount` field. + """ + requiredCount: Int +} + +""" +A filter to be used against `AppLevelRequirement` object types. All fields are combined with a logical ‘and.’ +""" +input AppLevelRequirementFilter { + """ + Checks for all expressions in this list. + """ + and: [AppLevelRequirementFilter!] + + """ + Filter by the object’s `description` field. + """ + description: StringFilter + + """ + Filter by the object’s `id` field. + """ + id: UUIDFilter + + """ + Filter by the object’s `level` field. + """ + level: StringFilter + + """ + Filter by the object’s `name` field. + """ + name: StringFilter + + """ + Negates the expression. + """ + not: AppLevelRequirementFilter + + """ + Checks for any expressions in this list. + """ + or: [AppLevelRequirementFilter!] + + """ + Filter by the object’s `priority` field. + """ + priority: IntFilter + + """ + Filter by the object’s `requiredCount` field. + """ + requiredCount: IntFilter +} + +""" +An input for mutations affecting `AppLevelRequirement` +""" +input AppLevelRequirementInput { + description: String + id: UUID + level: String! + name: String! + priority: Int + requiredCount: Int +} + +""" +Represents an update to a `AppLevelRequirement`. Fields that are set will be updated. +""" +input AppLevelRequirementPatch { + description: String + id: UUID + level: String + name: String + priority: Int + requiredCount: Int +} + +""" +A connection to a list of `AppLevelRequirement` values. +""" +type AppLevelRequirementsConnection { + """ + A list of edges which contains the `AppLevelRequirement` and cursor to aid in pagination. + """ + edges: [AppLevelRequirementsEdge!]! + + """ + A list of `AppLevelRequirement` objects. + """ + nodes: [AppLevelRequirement!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `AppLevelRequirement` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `AppLevelRequirement` edge in the connection. +""" +type AppLevelRequirementsEdge { + """ + A cursor for use in pagination. + """ + cursor: Cursor + + """ + The `AppLevelRequirement` at the end of the edge. + """ + node: AppLevelRequirement! +} + +""" +Methods to use when ordering `AppLevelRequirement`. +""" +enum AppLevelRequirementsOrderBy { + DESCRIPTION_ASC + DESCRIPTION_DESC + ID_ASC + ID_DESC + LEVEL_ASC + LEVEL_DESC + NAME_ASC + NAME_DESC + NATURAL + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC + PRIORITY_ASC + PRIORITY_DESC + REQUIRED_COUNT_ASC + REQUIRED_COUNT_DESC +} + +""" +A connection to a list of `AppLevel` values. +""" +type AppLevelsConnection { + """ + A list of edges which contains the `AppLevel` and cursor to aid in pagination. + """ + edges: [AppLevelsEdge!]! + + """ + A list of `AppLevel` objects. + """ + nodes: [AppLevel!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `AppLevel` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `AppLevel` edge in the connection. +""" +type AppLevelsEdge { + """ + A cursor for use in pagination. + """ + cursor: Cursor + + """ + The `AppLevel` at the end of the edge. + """ + node: AppLevel! +} + +""" +Methods to use when ordering `AppLevel`. +""" +enum AppLevelsOrderBy { + DESCRIPTION_ASC + DESCRIPTION_DESC + ID_ASC + ID_DESC + IMAGE_ASC + IMAGE_DESC + NAME_ASC + NAME_DESC + NATURAL + OWNER_ID_ASC + OWNER_ID_DESC + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC +} + +type AppLimit { + """ + Reads a single `User` that is related to this `AppLimit`. + """ + actor: User + actorId: UUID! + id: UUID! + max: Int + name: String + num: Int +} + +""" +A condition to be used against `AppLimit` object types. All fields are tested +for equality and combined with a logical ‘and.’ +""" +input AppLimitCondition { + """ + Checks for equality with the object’s `actorId` field. + """ + actorId: UUID + + """ + Checks for equality with the object’s `id` field. + """ + id: UUID + + """ + Checks for equality with the object’s `max` field. + """ + max: Int + + """ + Checks for equality with the object’s `name` field. + """ + name: String + + """ + Checks for equality with the object’s `num` field. + """ + num: Int +} + +type AppLimitDefault { + id: UUID! + max: Int + name: String! +} + +""" +A condition to be used against `AppLimitDefault` object types. All fields are +tested for equality and combined with a logical ‘and.’ +""" +input AppLimitDefaultCondition { + """ + Checks for equality with the object’s `id` field. + """ + id: UUID + + """ + Checks for equality with the object’s `max` field. + """ + max: Int + + """ + Checks for equality with the object’s `name` field. + """ + name: String +} + +""" +A filter to be used against `AppLimitDefault` object types. All fields are combined with a logical ‘and.’ +""" +input AppLimitDefaultFilter { + """ + Checks for all expressions in this list. + """ + and: [AppLimitDefaultFilter!] + + """ + Filter by the object’s `id` field. + """ + id: UUIDFilter + + """ + Filter by the object’s `max` field. + """ + max: IntFilter + + """ + Filter by the object’s `name` field. + """ + name: StringFilter + + """ + Negates the expression. + """ + not: AppLimitDefaultFilter + + """ + Checks for any expressions in this list. + """ + or: [AppLimitDefaultFilter!] +} + +""" +An input for mutations affecting `AppLimitDefault` +""" +input AppLimitDefaultInput { + id: UUID + max: Int + name: String! +} + +""" +Represents an update to a `AppLimitDefault`. Fields that are set will be updated. +""" +input AppLimitDefaultPatch { + id: UUID + max: Int + name: String +} + +""" +A connection to a list of `AppLimitDefault` values. +""" +type AppLimitDefaultsConnection { + """ + A list of edges which contains the `AppLimitDefault` and cursor to aid in pagination. + """ + edges: [AppLimitDefaultsEdge!]! + + """ + A list of `AppLimitDefault` objects. + """ + nodes: [AppLimitDefault!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `AppLimitDefault` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `AppLimitDefault` edge in the connection. +""" +type AppLimitDefaultsEdge { + """ + A cursor for use in pagination. + """ + cursor: Cursor + + """ + The `AppLimitDefault` at the end of the edge. + """ + node: AppLimitDefault! +} + +""" +Methods to use when ordering `AppLimitDefault`. +""" +enum AppLimitDefaultsOrderBy { + ID_ASC + ID_DESC + MAX_ASC + MAX_DESC + NAME_ASC + NAME_DESC + NATURAL + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC +} + +""" +A filter to be used against `AppLimit` object types. All fields are combined with a logical ‘and.’ +""" +input AppLimitFilter { + """ + Filter by the object’s `actorId` field. + """ + actorId: UUIDFilter + + """ + Checks for all expressions in this list. + """ + and: [AppLimitFilter!] + + """ + Filter by the object’s `id` field. + """ + id: UUIDFilter + + """ + Filter by the object’s `max` field. + """ + max: IntFilter + + """ + Filter by the object’s `name` field. + """ + name: StringFilter + + """ + Negates the expression. + """ + not: AppLimitFilter + + """ + Filter by the object’s `num` field. + """ + num: IntFilter + + """ + Checks for any expressions in this list. + """ + or: [AppLimitFilter!] +} + +""" +An input for mutations affecting `AppLimit` +""" +input AppLimitInput { + actorId: UUID! + id: UUID + max: Int + name: String + num: Int +} + +""" +Represents an update to a `AppLimit`. Fields that are set will be updated. +""" +input AppLimitPatch { + actorId: UUID + id: UUID + max: Int + name: String + num: Int +} + +""" +A connection to a list of `AppLimit` values. +""" +type AppLimitsConnection { + """ + A list of edges which contains the `AppLimit` and cursor to aid in pagination. + """ + edges: [AppLimitsEdge!]! + + """ + A list of `AppLimit` objects. + """ + nodes: [AppLimit!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `AppLimit` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `AppLimit` edge in the connection. +""" +type AppLimitsEdge { + """ + A cursor for use in pagination. + """ + cursor: Cursor + + """ + The `AppLimit` at the end of the edge. + """ + node: AppLimit! +} + +""" +Methods to use when ordering `AppLimit`. +""" +enum AppLimitsOrderBy { + ACTOR_ID_ASC + ACTOR_ID_DESC + ID_ASC + ID_DESC + MAX_ASC + MAX_DESC + NAME_ASC + NAME_DESC + NATURAL + NUM_ASC + NUM_DESC + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC +} + +type AppMembership { + """ + Reads a single `User` that is related to this `AppMembership`. + """ + actor: User + actorId: UUID! + + """ + Reads and enables pagination through a set of `AppGrant`. + """ + appGrantsByMembershipId( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: AppGrantCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: AppGrantFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `AppGrant`. + """ + orderBy: [AppGrantsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppGrantsConnection! + granted: BitString! + id: UUID! + isAccepted: Boolean! + isActive: Boolean! + isAdmin: Boolean! + isApproved: Boolean! + isBanned: Boolean! + isDisabled: Boolean! + isOwner: Boolean! + isVerified: Boolean! + permissions: BitString! + + """ + Reads and enables pagination through a set of `User`. + """ + usersByAppGrantMembershipIdAndGrantorId( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: UserCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: UserFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `User`. + """ + orderBy: [UsersOrderBy!] = [PRIMARY_KEY_ASC] + ): AppMembershipUsersByAppGrantMembershipIdAndGrantorIdManyToManyConnection! +} + +""" +A condition to be used against `AppMembership` object types. All fields are +tested for equality and combined with a logical ‘and.’ +""" +input AppMembershipCondition { + """ + Checks for equality with the object’s `actorId` field. + """ + actorId: UUID + + """ + Checks for equality with the object’s `granted` field. + """ + granted: BitString + + """ + Checks for equality with the object’s `id` field. + """ + id: UUID + + """ + Checks for equality with the object’s `isAccepted` field. + """ + isAccepted: Boolean + + """ + Checks for equality with the object’s `isActive` field. + """ + isActive: Boolean + + """ + Checks for equality with the object’s `isAdmin` field. + """ + isAdmin: Boolean + + """ + Checks for equality with the object’s `isApproved` field. + """ + isApproved: Boolean + + """ + Checks for equality with the object’s `isBanned` field. + """ + isBanned: Boolean + + """ + Checks for equality with the object’s `isDisabled` field. + """ + isDisabled: Boolean + + """ + Checks for equality with the object’s `isOwner` field. + """ + isOwner: Boolean + + """ + Checks for equality with the object’s `isVerified` field. + """ + isVerified: Boolean + + """ + Checks for equality with the object’s `permissions` field. + """ + permissions: BitString +} + +type AppMembershipDefault { + id: UUID! + isAccepted: Boolean! + isApproved: Boolean! + isVerified: Boolean! +} + +""" +A condition to be used against `AppMembershipDefault` object types. All fields +are tested for equality and combined with a logical ‘and.’ +""" +input AppMembershipDefaultCondition { + """ + Checks for equality with the object’s `id` field. + """ + id: UUID + + """ + Checks for equality with the object’s `isAccepted` field. + """ + isAccepted: Boolean + + """ + Checks for equality with the object’s `isApproved` field. + """ + isApproved: Boolean + + """ + Checks for equality with the object’s `isVerified` field. + """ + isVerified: Boolean +} + +""" +A filter to be used against `AppMembershipDefault` object types. All fields are combined with a logical ‘and.’ +""" +input AppMembershipDefaultFilter { + """ + Checks for all expressions in this list. + """ + and: [AppMembershipDefaultFilter!] + + """ + Filter by the object’s `id` field. + """ + id: UUIDFilter + + """ + Filter by the object’s `isAccepted` field. + """ + isAccepted: BooleanFilter + + """ + Filter by the object’s `isApproved` field. + """ + isApproved: BooleanFilter + + """ + Filter by the object’s `isVerified` field. + """ + isVerified: BooleanFilter + + """ + Negates the expression. + """ + not: AppMembershipDefaultFilter + + """ + Checks for any expressions in this list. + """ + or: [AppMembershipDefaultFilter!] +} + +""" +An input for mutations affecting `AppMembershipDefault` +""" +input AppMembershipDefaultInput { + id: UUID + isAccepted: Boolean + isApproved: Boolean + isVerified: Boolean +} + +""" +Represents an update to a `AppMembershipDefault`. Fields that are set will be updated. +""" +input AppMembershipDefaultPatch { + id: UUID + isAccepted: Boolean + isApproved: Boolean + isVerified: Boolean +} + +""" +A connection to a list of `AppMembershipDefault` values. +""" +type AppMembershipDefaultsConnection { + """ + A list of edges which contains the `AppMembershipDefault` and cursor to aid in pagination. + """ + edges: [AppMembershipDefaultsEdge!]! + + """ + A list of `AppMembershipDefault` objects. + """ + nodes: [AppMembershipDefault!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `AppMembershipDefault` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `AppMembershipDefault` edge in the connection. +""" +type AppMembershipDefaultsEdge { + """ + A cursor for use in pagination. + """ + cursor: Cursor + + """ + The `AppMembershipDefault` at the end of the edge. + """ + node: AppMembershipDefault! +} + +""" +Methods to use when ordering `AppMembershipDefault`. +""" +enum AppMembershipDefaultsOrderBy { + ID_ASC + ID_DESC + IS_ACCEPTED_ASC + IS_ACCEPTED_DESC + IS_APPROVED_ASC + IS_APPROVED_DESC + IS_VERIFIED_ASC + IS_VERIFIED_DESC + NATURAL + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC +} + +""" +A filter to be used against `AppMembership` object types. All fields are combined with a logical ‘and.’ +""" +input AppMembershipFilter { + """ + Filter by the object’s `actorId` field. + """ + actorId: UUIDFilter + + """ + Checks for all expressions in this list. + """ + and: [AppMembershipFilter!] + + """ + Filter by the object’s `granted` field. + """ + granted: BitStringFilter + + """ + Filter by the object’s `id` field. + """ + id: UUIDFilter + + """ + Filter by the object’s `isAccepted` field. + """ + isAccepted: BooleanFilter + + """ + Filter by the object’s `isActive` field. + """ + isActive: BooleanFilter + + """ + Filter by the object’s `isAdmin` field. + """ + isAdmin: BooleanFilter + + """ + Filter by the object’s `isApproved` field. + """ + isApproved: BooleanFilter + + """ + Filter by the object’s `isBanned` field. + """ + isBanned: BooleanFilter + + """ + Filter by the object’s `isDisabled` field. + """ + isDisabled: BooleanFilter + + """ + Filter by the object’s `isOwner` field. + """ + isOwner: BooleanFilter + + """ + Filter by the object’s `isVerified` field. + """ + isVerified: BooleanFilter + + """ + Negates the expression. + """ + not: AppMembershipFilter + + """ + Checks for any expressions in this list. + """ + or: [AppMembershipFilter!] + + """ + Filter by the object’s `permissions` field. + """ + permissions: BitStringFilter +} + +""" +An input for mutations affecting `AppMembership` +""" +input AppMembershipInput { + actorId: UUID! + granted: BitString + id: UUID + isAccepted: Boolean + isActive: Boolean + isAdmin: Boolean + isApproved: Boolean + isBanned: Boolean + isDisabled: Boolean + isOwner: Boolean + isVerified: Boolean + permissions: BitString +} + +""" +Represents an update to a `AppMembership`. Fields that are set will be updated. +""" +input AppMembershipPatch { + actorId: UUID + granted: BitString + id: UUID + isAccepted: Boolean + isActive: Boolean + isAdmin: Boolean + isApproved: Boolean + isBanned: Boolean + isDisabled: Boolean + isOwner: Boolean + isVerified: Boolean + permissions: BitString +} + +""" +A connection to a list of `User` values, with data from `AppGrant`. +""" +type AppMembershipUsersByAppGrantMembershipIdAndGrantorIdManyToManyConnection { + """ + A list of edges which contains the `User`, info from the `AppGrant`, and the cursor to aid in pagination. + """ + edges: [AppMembershipUsersByAppGrantMembershipIdAndGrantorIdManyToManyEdge!]! + + """ + A list of `User` objects. + """ + nodes: [User!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `User` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `User` edge in the connection, with data from `AppGrant`. +""" +type AppMembershipUsersByAppGrantMembershipIdAndGrantorIdManyToManyEdge { + """ + Reads and enables pagination through a set of `AppGrant`. + """ + appGrantsByGrantorId( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: AppGrantCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: AppGrantFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `AppGrant`. + """ + orderBy: [AppGrantsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppGrantsConnection! + + """ + A cursor for use in pagination. + """ + cursor: Cursor + + """ + The `User` at the end of the edge. + """ + node: User! +} + +""" +A connection to a list of `AppMembership` values. +""" +type AppMembershipsConnection { + """ + A list of edges which contains the `AppMembership` and cursor to aid in pagination. + """ + edges: [AppMembershipsEdge!]! + + """ + A list of `AppMembership` objects. + """ + nodes: [AppMembership!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `AppMembership` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `AppMembership` edge in the connection. +""" +type AppMembershipsEdge { + """ + A cursor for use in pagination. + """ + cursor: Cursor + + """ + The `AppMembership` at the end of the edge. + """ + node: AppMembership! +} + +""" +Methods to use when ordering `AppMembership`. +""" +enum AppMembershipsOrderBy { + ACTOR_ID_ASC + ACTOR_ID_DESC + GRANTED_ASC + GRANTED_DESC + ID_ASC + ID_DESC + IS_ACCEPTED_ASC + IS_ACCEPTED_DESC + IS_ACTIVE_ASC + IS_ACTIVE_DESC + IS_ADMIN_ASC + IS_ADMIN_DESC + IS_APPROVED_ASC + IS_APPROVED_DESC + IS_BANNED_ASC + IS_BANNED_DESC + IS_DISABLED_ASC + IS_DISABLED_DESC + IS_OWNER_ASC + IS_OWNER_DESC + IS_VERIFIED_ASC + IS_VERIFIED_DESC + NATURAL + PERMISSIONS_ASC + PERMISSIONS_DESC + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC +} + +""" +Represents an update to a `App`. Fields that are set will be updated. +""" +input AppPatch { + appIdPrefix: String + appImage: JSON + appImageUpload: Upload + appStoreId: String + appStoreLink: String + databaseId: UUID + id: UUID + name: String + playStoreLink: String + siteId: UUID +} + +type AppPermission { + bitnum: Int + bitstr: BitString! + description: String + id: UUID! + name: String +} + +""" +A condition to be used against `AppPermission` object types. All fields are +tested for equality and combined with a logical ‘and.’ +""" +input AppPermissionCondition { + """ + Checks for equality with the object’s `bitnum` field. + """ + bitnum: Int + + """ + Checks for equality with the object’s `bitstr` field. + """ + bitstr: BitString + + """ + Checks for equality with the object’s `description` field. + """ + description: String + + """ + Checks for equality with the object’s `id` field. + """ + id: UUID + + """ + Checks for equality with the object’s `name` field. + """ + name: String +} + +type AppPermissionDefault { + id: UUID! + permissions: BitString! +} + +""" +A condition to be used against `AppPermissionDefault` object types. All fields +are tested for equality and combined with a logical ‘and.’ +""" +input AppPermissionDefaultCondition { + """ + Checks for equality with the object’s `id` field. + """ + id: UUID + + """ + Checks for equality with the object’s `permissions` field. + """ + permissions: BitString +} + +""" +A filter to be used against `AppPermissionDefault` object types. All fields are combined with a logical ‘and.’ +""" +input AppPermissionDefaultFilter { + """ + Checks for all expressions in this list. + """ + and: [AppPermissionDefaultFilter!] + + """ + Filter by the object’s `id` field. + """ + id: UUIDFilter + + """ + Negates the expression. + """ + not: AppPermissionDefaultFilter + + """ + Checks for any expressions in this list. + """ + or: [AppPermissionDefaultFilter!] + + """ + Filter by the object’s `permissions` field. + """ + permissions: BitStringFilter +} + +""" +An input for mutations affecting `AppPermissionDefault` +""" +input AppPermissionDefaultInput { + id: UUID + permissions: BitString +} + +""" +Represents an update to a `AppPermissionDefault`. Fields that are set will be updated. +""" +input AppPermissionDefaultPatch { + id: UUID + permissions: BitString +} + +""" +A connection to a list of `AppPermissionDefault` values. +""" +type AppPermissionDefaultsConnection { + """ + A list of edges which contains the `AppPermissionDefault` and cursor to aid in pagination. + """ + edges: [AppPermissionDefaultsEdge!]! + + """ + A list of `AppPermissionDefault` objects. + """ + nodes: [AppPermissionDefault!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `AppPermissionDefault` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `AppPermissionDefault` edge in the connection. +""" +type AppPermissionDefaultsEdge { + """ + A cursor for use in pagination. + """ + cursor: Cursor + + """ + The `AppPermissionDefault` at the end of the edge. + """ + node: AppPermissionDefault! +} + +""" +Methods to use when ordering `AppPermissionDefault`. +""" +enum AppPermissionDefaultsOrderBy { + ID_ASC + ID_DESC + NATURAL + PERMISSIONS_ASC + PERMISSIONS_DESC + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC +} + +""" +A filter to be used against `AppPermission` object types. All fields are combined with a logical ‘and.’ +""" +input AppPermissionFilter { + """ + Checks for all expressions in this list. + """ + and: [AppPermissionFilter!] + + """ + Filter by the object’s `bitnum` field. + """ + bitnum: IntFilter + + """ + Filter by the object’s `bitstr` field. + """ + bitstr: BitStringFilter + + """ + Filter by the object’s `description` field. + """ + description: StringFilter + + """ + Filter by the object’s `id` field. + """ + id: UUIDFilter + + """ + Filter by the object’s `name` field. + """ + name: StringFilter + + """ + Negates the expression. + """ + not: AppPermissionFilter + + """ + Checks for any expressions in this list. + """ + or: [AppPermissionFilter!] +} + +""" +An input for mutations affecting `AppPermission` +""" +input AppPermissionInput { + bitnum: Int + bitstr: BitString + description: String + id: UUID + name: String +} + +""" +Represents an update to a `AppPermission`. Fields that are set will be updated. +""" +input AppPermissionPatch { + bitnum: Int + bitstr: BitString + description: String + id: UUID + name: String +} + +""" +A connection to a list of `AppPermission` values. +""" +type AppPermissionsConnection { + """ + A list of edges which contains the `AppPermission` and cursor to aid in pagination. + """ + edges: [AppPermissionsEdge!]! + + """ + A list of `AppPermission` objects. + """ + nodes: [AppPermission!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `AppPermission` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `AppPermission` edge in the connection. +""" +type AppPermissionsEdge { + """ + A cursor for use in pagination. + """ + cursor: Cursor + + """ + The `AppPermission` at the end of the edge. + """ + node: AppPermission! +} + +""" +Methods to use when ordering `AppPermission`. +""" +enum AppPermissionsOrderBy { + BITNUM_ASC + BITNUM_DESC + BITSTR_ASC + BITSTR_DESC + DESCRIPTION_ASC + DESCRIPTION_DESC + ID_ASC + ID_DESC + NAME_ASC + NAME_DESC + NATURAL + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC +} + +""" +The user achieving a requirement for a level. Log table that has every single step ever taken. +""" +type AppStep { + """ + Reads a single `User` that is related to this `AppStep`. + """ + actor: User + actorId: UUID! + count: Int! + createdAt: Datetime! + id: UUID! + name: String! +} + +""" +A condition to be used against `AppStep` object types. All fields are tested for equality and combined with a logical ‘and.’ +""" +input AppStepCondition { + """ + Checks for equality with the object’s `actorId` field. + """ + actorId: UUID + + """ + Checks for equality with the object’s `count` field. + """ + count: Int + + """ + Checks for equality with the object’s `createdAt` field. + """ + createdAt: Datetime + + """ + Checks for equality with the object’s `id` field. + """ + id: UUID + + """ + Checks for equality with the object’s `name` field. + """ + name: String +} + +""" +A filter to be used against `AppStep` object types. All fields are combined with a logical ‘and.’ +""" +input AppStepFilter { + """ + Filter by the object’s `actorId` field. + """ + actorId: UUIDFilter + + """ + Checks for all expressions in this list. + """ + and: [AppStepFilter!] + + """ + Filter by the object’s `count` field. + """ + count: IntFilter + + """ + Filter by the object’s `createdAt` field. + """ + createdAt: DatetimeFilter + + """ + Filter by the object’s `id` field. + """ + id: UUIDFilter + + """ + Filter by the object’s `name` field. + """ + name: StringFilter + + """ + Negates the expression. + """ + not: AppStepFilter + + """ + Checks for any expressions in this list. + """ + or: [AppStepFilter!] +} + +""" +An input for mutations affecting `AppStep` +""" +input AppStepInput { + actorId: UUID + count: Int + createdAt: Datetime + id: UUID + name: String! +} + +""" +Represents an update to a `AppStep`. Fields that are set will be updated. +""" +input AppStepPatch { + actorId: UUID + count: Int + createdAt: Datetime + id: UUID + name: String +} + +""" +A connection to a list of `AppStep` values. +""" +type AppStepsConnection { + """ + A list of edges which contains the `AppStep` and cursor to aid in pagination. + """ + edges: [AppStepsEdge!]! + + """ + A list of `AppStep` objects. + """ + nodes: [AppStep!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `AppStep` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `AppStep` edge in the connection. +""" +type AppStepsEdge { + """ + A cursor for use in pagination. + """ + cursor: Cursor + + """ + The `AppStep` at the end of the edge. + """ + node: AppStep! +} + +""" +Methods to use when ordering `AppStep`. +""" +enum AppStepsOrderBy { + ACTOR_ID_ASC + ACTOR_ID_DESC + COUNT_ASC + COUNT_DESC + CREATED_AT_ASC + CREATED_AT_DESC + ID_ASC + ID_DESC + NAME_ASC + NAME_DESC + NATURAL + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC +} + +""" +All input for the `applyRls` mutation. +""" +input ApplyRlsInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + fieldIds: [UUID] + grants: JSON + name: String + permissive: Boolean + tableId: UUID + template: String + vars: JSON +} + +""" +The output of our `applyRls` mutation. +""" +type ApplyRlsPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +A connection to a list of `App` values. +""" +type AppsConnection { + """ + A list of edges which contains the `App` and cursor to aid in pagination. + """ + edges: [AppsEdge!]! + + """ + A list of `App` objects. + """ + nodes: [App!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `App` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `App` edge in the connection. +""" +type AppsEdge { + """ + A cursor for use in pagination. + """ + cursor: Cursor + + """ + The `App` at the end of the edge. + """ + node: App! +} + +""" +Methods to use when ordering `App`. +""" +enum AppsOrderBy { + APP_ID_PREFIX_ASC + APP_ID_PREFIX_DESC + APP_IMAGE_ASC + APP_IMAGE_DESC + APP_STORE_ID_ASC + APP_STORE_ID_DESC + APP_STORE_LINK_ASC + APP_STORE_LINK_DESC + DATABASE_ID_ASC + DATABASE_ID_DESC + ID_ASC + ID_DESC + NAME_ASC + NAME_DESC + NATURAL + PLAY_STORE_LINK_ASC + PLAY_STORE_LINK_DESC + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC + SITE_ID_ASC + SITE_ID_DESC +} + +type AuthAccount { + """ + Additional profile details extracted from this login method + """ + details: JSON! + id: UUID! + + """ + A unique identifier for the user within the service + """ + identifier: String! + isVerified: Boolean! + + """ + Reads a single `User` that is related to this `AuthAccount`. + """ + owner: User + ownerId: UUID! + + """ + The service used, e.g. `twitter` or `github`. + """ + service: String! +} + +""" +A condition to be used against `AuthAccount` object types. All fields are tested +for equality and combined with a logical ‘and.’ +""" +input AuthAccountCondition { + """ + Checks for equality with the object’s `details` field. + """ + details: JSON + + """ + Checks for equality with the object’s `id` field. + """ + id: UUID + + """ + Checks for equality with the object’s `identifier` field. + """ + identifier: String + + """ + Checks for equality with the object’s `isVerified` field. + """ + isVerified: Boolean + + """ + Checks for equality with the object’s `ownerId` field. + """ + ownerId: UUID + + """ + Checks for equality with the object’s `service` field. + """ + service: String +} + +""" +A filter to be used against `AuthAccount` object types. All fields are combined with a logical ‘and.’ +""" +input AuthAccountFilter { + """ + Checks for all expressions in this list. + """ + and: [AuthAccountFilter!] + + """ + Filter by the object’s `details` field. + """ + details: JSONFilter + + """ + Filter by the object’s `id` field. + """ + id: UUIDFilter + + """ + Filter by the object’s `identifier` field. + """ + identifier: StringFilter + + """ + Filter by the object’s `isVerified` field. + """ + isVerified: BooleanFilter + + """ + Negates the expression. + """ + not: AuthAccountFilter + + """ + Checks for any expressions in this list. + """ + or: [AuthAccountFilter!] + + """ + Filter by the object’s `ownerId` field. + """ + ownerId: UUIDFilter + + """ + Filter by the object’s `service` field. + """ + service: StringFilter +} + +""" +An input for mutations affecting `AuthAccount` +""" +input AuthAccountInput { + """ + Additional profile details extracted from this login method + """ + details: JSON! + id: UUID + + """ + A unique identifier for the user within the service + """ + identifier: String! + isVerified: Boolean + ownerId: UUID + + """ + The service used, e.g. `twitter` or `github`. + """ + service: String! +} + +""" +Represents an update to a `AuthAccount`. Fields that are set will be updated. +""" +input AuthAccountPatch { + """ + Additional profile details extracted from this login method + """ + details: JSON + id: UUID + + """ + A unique identifier for the user within the service + """ + identifier: String + isVerified: Boolean + ownerId: UUID + + """ + The service used, e.g. `twitter` or `github`. + """ + service: String +} + +""" +A connection to a list of `AuthAccount` values. +""" +type AuthAccountsConnection { + """ + A list of edges which contains the `AuthAccount` and cursor to aid in pagination. + """ + edges: [AuthAccountsEdge!]! + + """ + A list of `AuthAccount` objects. + """ + nodes: [AuthAccount!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `AuthAccount` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `AuthAccount` edge in the connection. +""" +type AuthAccountsEdge { + """ + A cursor for use in pagination. + """ + cursor: Cursor + + """ + The `AuthAccount` at the end of the edge. + """ + node: AuthAccount! +} + +""" +Methods to use when ordering `AuthAccount`. +""" +enum AuthAccountsOrderBy { + DETAILS_ASC + DETAILS_DESC + IDENTIFIER_ASC + IDENTIFIER_DESC + ID_ASC + ID_DESC + IS_VERIFIED_ASC + IS_VERIFIED_DESC + NATURAL + OWNER_ID_ASC + OWNER_ID_DESC + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC + SERVICE_ASC + SERVICE_DESC +} + +""" +A string representing a series of binary bits +""" +scalar BitString + +""" +A filter to be used against BitString fields. All fields are combined with a logical ‘and.’ +""" +input BitStringFilter { + """ + Not equal to the specified value, treating null like an ordinary value. + """ + distinctFrom: BitString + + """ + Equal to the specified value. + """ + equalTo: BitString + + """ + Greater than the specified value. + """ + greaterThan: BitString + + """ + Greater than or equal to the specified value. + """ + greaterThanOrEqualTo: BitString + + """ + Included in the specified list. + """ + in: [BitString!] + + """ + Is null (if `true` is specified) or is not null (if `false` is specified). + """ + isNull: Boolean + + """ + Less than the specified value. + """ + lessThan: BitString + + """ + Less than or equal to the specified value. + """ + lessThanOrEqualTo: BitString + + """ + Equal to the specified value, treating null like an ordinary value. + """ + notDistinctFrom: BitString + + """ + Not equal to the specified value. + """ + notEqualTo: BitString + + """ + Not included in the specified list. + """ + notIn: [BitString!] +} + +""" +A filter to be used against Boolean fields. All fields are combined with a logical ‘and.’ +""" +input BooleanFilter { + """ + Not equal to the specified value, treating null like an ordinary value. + """ + distinctFrom: Boolean + + """ + Equal to the specified value. + """ + equalTo: Boolean + + """ + Greater than the specified value. + """ + greaterThan: Boolean + + """ + Greater than or equal to the specified value. + """ + greaterThanOrEqualTo: Boolean + + """ + Included in the specified list. + """ + in: [Boolean!] + + """ + Is null (if `true` is specified) or is not null (if `false` is specified). + """ + isNull: Boolean + + """ + Less than the specified value. + """ + lessThan: Boolean + + """ + Less than or equal to the specified value. + """ + lessThanOrEqualTo: Boolean + + """ + Equal to the specified value, treating null like an ordinary value. + """ + notDistinctFrom: Boolean + + """ + Not equal to the specified value. + """ + notEqualTo: Boolean + + """ + Not included in the specified list. + """ + notIn: [Boolean!] +} + +""" +All input for the `bootstrapUser` mutation. +""" +input BootstrapUserInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + displayName: String + isAdmin: Boolean + isOwner: Boolean + password: String + returnApiKey: Boolean + targetDatabaseId: UUID + username: String +} + +""" +The output of our `bootstrapUser` mutation. +""" +type BootstrapUserPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + results: [BootstrapUserRecord] +} + +""" +The return type of our `bootstrapUser` mutation. +""" +type BootstrapUserRecord { + outApiKey: String + outDisplayName: String + outEmail: String + outIsAdmin: Boolean + outIsOwner: Boolean + outIsSudo: Boolean + outUserId: UUID + outUsername: String +} + +type CheckConstraint { + createdAt: Datetime + + """ + Reads a single `Database` that is related to this `CheckConstraint`. + """ + database: Database + databaseId: UUID! + expr: JSON + fieldIds: [UUID]! + id: UUID! + name: String + + """ + Reads a single `Table` that is related to this `CheckConstraint`. + """ + table: Table + tableId: UUID! + type: String + updatedAt: Datetime +} + +""" +A condition to be used against `CheckConstraint` object types. All fields are +tested for equality and combined with a logical ‘and.’ +""" +input CheckConstraintCondition { + """ + Checks for equality with the object’s `createdAt` field. + """ + createdAt: Datetime + + """ + Checks for equality with the object’s `databaseId` field. + """ + databaseId: UUID + + """ + Checks for equality with the object’s `expr` field. + """ + expr: JSON + + """ + Checks for equality with the object’s `fieldIds` field. + """ + fieldIds: [UUID] + + """ + Checks for equality with the object’s `id` field. + """ + id: UUID + + """ + Checks for equality with the object’s `name` field. + """ + name: String + + """ + Checks for equality with the object’s `tableId` field. + """ + tableId: UUID + + """ + Checks for equality with the object’s `type` field. + """ + type: String + + """ + Checks for equality with the object’s `updatedAt` field. + """ + updatedAt: Datetime +} + +""" +A filter to be used against `CheckConstraint` object types. All fields are combined with a logical ‘and.’ +""" +input CheckConstraintFilter { + """ + Checks for all expressions in this list. + """ + and: [CheckConstraintFilter!] + + """ + Filter by the object’s `createdAt` field. + """ + createdAt: DatetimeFilter + + """ + Filter by the object’s `databaseId` field. + """ + databaseId: UUIDFilter + + """ + Filter by the object’s `expr` field. + """ + expr: JSONFilter + + """ + Filter by the object’s `fieldIds` field. + """ + fieldIds: UUIDListFilter + + """ + Filter by the object’s `id` field. + """ + id: UUIDFilter + + """ + Filter by the object’s `name` field. + """ + name: StringFilter + + """ + Negates the expression. + """ + not: CheckConstraintFilter + + """ + Checks for any expressions in this list. + """ + or: [CheckConstraintFilter!] + + """ + Filter by the object’s `tableId` field. + """ + tableId: UUIDFilter + + """ + Filter by the object’s `type` field. + """ + type: StringFilter + + """ + Filter by the object’s `updatedAt` field. + """ + updatedAt: DatetimeFilter +} + +""" +An input for mutations affecting `CheckConstraint` +""" +input CheckConstraintInput { + createdAt: Datetime + databaseId: UUID + expr: JSON + fieldIds: [UUID]! + id: UUID + name: String + tableId: UUID! + type: String + updatedAt: Datetime +} + +""" +Represents an update to a `CheckConstraint`. Fields that are set will be updated. +""" +input CheckConstraintPatch { + createdAt: Datetime + databaseId: UUID + expr: JSON + fieldIds: [UUID] + id: UUID + name: String + tableId: UUID + type: String + updatedAt: Datetime +} + +""" +A connection to a list of `CheckConstraint` values. +""" +type CheckConstraintsConnection { + """ + A list of edges which contains the `CheckConstraint` and cursor to aid in pagination. + """ + edges: [CheckConstraintsEdge!]! + + """ + A list of `CheckConstraint` objects. + """ + nodes: [CheckConstraint!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `CheckConstraint` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `CheckConstraint` edge in the connection. +""" +type CheckConstraintsEdge { + """ + A cursor for use in pagination. + """ + cursor: Cursor + + """ + The `CheckConstraint` at the end of the edge. + """ + node: CheckConstraint! +} + +""" +Methods to use when ordering `CheckConstraint`. +""" +enum CheckConstraintsOrderBy { + CREATED_AT_ASC + CREATED_AT_DESC + DATABASE_ID_ASC + DATABASE_ID_DESC + EXPR_ASC + EXPR_DESC + FIELD_IDS_ASC + FIELD_IDS_DESC + ID_ASC + ID_DESC + NAME_ASC + NAME_DESC + NATURAL + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC + TABLE_ID_ASC + TABLE_ID_DESC + TYPE_ASC + TYPE_DESC + UPDATED_AT_ASC + UPDATED_AT_DESC +} + +type ClaimedInvite { + createdAt: Datetime! + data: JSON + id: UUID! + + """ + Reads a single `User` that is related to this `ClaimedInvite`. + """ + receiver: User + receiverId: UUID + + """ + Reads a single `User` that is related to this `ClaimedInvite`. + """ + sender: User + senderId: UUID +} + +""" +A condition to be used against `ClaimedInvite` object types. All fields are +tested for equality and combined with a logical ‘and.’ +""" +input ClaimedInviteCondition { + """ + Checks for equality with the object’s `createdAt` field. + """ + createdAt: Datetime + + """ + Checks for equality with the object’s `data` field. + """ + data: JSON + + """ + Checks for equality with the object’s `id` field. + """ + id: UUID + + """ + Checks for equality with the object’s `receiverId` field. + """ + receiverId: UUID + + """ + Checks for equality with the object’s `senderId` field. + """ + senderId: UUID +} + +""" +A filter to be used against `ClaimedInvite` object types. All fields are combined with a logical ‘and.’ +""" +input ClaimedInviteFilter { + """ + Checks for all expressions in this list. + """ + and: [ClaimedInviteFilter!] + + """ + Filter by the object’s `createdAt` field. + """ + createdAt: DatetimeFilter + + """ + Filter by the object’s `id` field. + """ + id: UUIDFilter + + """ + Negates the expression. + """ + not: ClaimedInviteFilter + + """ + Checks for any expressions in this list. + """ + or: [ClaimedInviteFilter!] + + """ + Filter by the object’s `receiverId` field. + """ + receiverId: UUIDFilter + + """ + Filter by the object’s `senderId` field. + """ + senderId: UUIDFilter +} + +""" +An input for mutations affecting `ClaimedInvite` +""" +input ClaimedInviteInput { + createdAt: Datetime + data: JSON + id: UUID + receiverId: UUID + senderId: UUID +} + +""" +Represents an update to a `ClaimedInvite`. Fields that are set will be updated. +""" +input ClaimedInvitePatch { + createdAt: Datetime + data: JSON + id: UUID + receiverId: UUID + senderId: UUID +} + +""" +A connection to a list of `ClaimedInvite` values. +""" +type ClaimedInvitesConnection { + """ + A list of edges which contains the `ClaimedInvite` and cursor to aid in pagination. + """ + edges: [ClaimedInvitesEdge!]! + + """ + A list of `ClaimedInvite` objects. + """ + nodes: [ClaimedInvite!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `ClaimedInvite` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `ClaimedInvite` edge in the connection. +""" +type ClaimedInvitesEdge { + """ + A cursor for use in pagination. + """ + cursor: Cursor + + """ + The `ClaimedInvite` at the end of the edge. + """ + node: ClaimedInvite! +} + +""" +Methods to use when ordering `ClaimedInvite`. +""" +enum ClaimedInvitesOrderBy { + CREATED_AT_ASC + CREATED_AT_DESC + DATA_ASC + DATA_DESC + ID_ASC + ID_DESC + NATURAL + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC + RECEIVER_ID_ASC + RECEIVER_ID_DESC + SENDER_ID_ASC + SENDER_ID_DESC +} + +""" +All input for the `confirmDeleteAccount` mutation. +""" +input ConfirmDeleteAccountInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + token: String + userId: UUID +} + +""" +The output of our `confirmDeleteAccount` mutation. +""" +type ConfirmDeleteAccountPayload { + boolean: Boolean + + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +type ConnectedAccount { + """ + Additional profile details extracted from this login method + """ + details: JSON! + id: UUID! + + """ + A unique identifier for the user within the service + """ + identifier: String! + isVerified: Boolean! + + """ + Reads a single `User` that is related to this `ConnectedAccount`. + """ + owner: User + ownerId: UUID! + + """ + The service used, e.g. `twitter` or `github`. + """ + service: String! +} + +""" +A condition to be used against `ConnectedAccount` object types. All fields are +tested for equality and combined with a logical ‘and.’ +""" +input ConnectedAccountCondition { + """ + Checks for equality with the object’s `details` field. + """ + details: JSON + + """ + Checks for equality with the object’s `id` field. + """ + id: UUID + + """ + Checks for equality with the object’s `identifier` field. + """ + identifier: String + + """ + Checks for equality with the object’s `isVerified` field. + """ + isVerified: Boolean + + """ + Checks for equality with the object’s `ownerId` field. + """ + ownerId: UUID + + """ + Checks for equality with the object’s `service` field. + """ + service: String +} + +""" +A filter to be used against `ConnectedAccount` object types. All fields are combined with a logical ‘and.’ +""" +input ConnectedAccountFilter { + """ + Checks for all expressions in this list. + """ + and: [ConnectedAccountFilter!] + + """ + Filter by the object’s `details` field. + """ + details: JSONFilter + + """ + Filter by the object’s `id` field. + """ + id: UUIDFilter + + """ + Filter by the object’s `identifier` field. + """ + identifier: StringFilter + + """ + Filter by the object’s `isVerified` field. + """ + isVerified: BooleanFilter + + """ + Negates the expression. + """ + not: ConnectedAccountFilter + + """ + Checks for any expressions in this list. + """ + or: [ConnectedAccountFilter!] + + """ + Filter by the object’s `ownerId` field. + """ + ownerId: UUIDFilter + + """ + Filter by the object’s `service` field. + """ + service: StringFilter +} + +""" +An input for mutations affecting `ConnectedAccount` +""" +input ConnectedAccountInput { + """ + Additional profile details extracted from this login method + """ + details: JSON! + id: UUID + + """ + A unique identifier for the user within the service + """ + identifier: String! + isVerified: Boolean + ownerId: UUID + + """ + The service used, e.g. `twitter` or `github`. + """ + service: String! +} + +""" +Represents an update to a `ConnectedAccount`. Fields that are set will be updated. +""" +input ConnectedAccountPatch { + """ + Additional profile details extracted from this login method + """ + details: JSON + id: UUID + + """ + A unique identifier for the user within the service + """ + identifier: String + isVerified: Boolean + ownerId: UUID + + """ + The service used, e.g. `twitter` or `github`. + """ + service: String +} + +""" +A connection to a list of `ConnectedAccount` values. +""" +type ConnectedAccountsConnection { + """ + A list of edges which contains the `ConnectedAccount` and cursor to aid in pagination. + """ + edges: [ConnectedAccountsEdge!]! + + """ + A list of `ConnectedAccount` objects. + """ + nodes: [ConnectedAccount!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `ConnectedAccount` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `ConnectedAccount` edge in the connection. +""" +type ConnectedAccountsEdge { + """ + A cursor for use in pagination. + """ + cursor: Cursor + + """ + The `ConnectedAccount` at the end of the edge. + """ + node: ConnectedAccount! +} + +""" +Methods to use when ordering `ConnectedAccount`. +""" +enum ConnectedAccountsOrderBy { + DETAILS_ASC + DETAILS_DESC + IDENTIFIER_ASC + IDENTIFIER_DESC + ID_ASC + ID_DESC + IS_VERIFIED_ASC + IS_VERIFIED_DESC + NATURAL + OWNER_ID_ASC + OWNER_ID_DESC + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC + SERVICE_ASC + SERVICE_DESC +} + +""" +All input for the create `Address` mutation. +""" +input CreateAddressInput { + """ + The `Address` to be created by this mutation. + """ + address: AddressInput! + + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String +} + +""" +The output of our create `Address` mutation. +""" +type CreateAddressPayload { + """ + The `Address` that was created by this mutation. + """ + address: Address + + """ + An edge for our `Address`. May be used by Relay 1. + """ + addressEdge( + """ + The method to use when ordering `Address`. + """ + orderBy: [AddressesOrderBy!] = [PRIMARY_KEY_ASC] + ): AddressesEdge + + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `User` that is related to this `Address`. + """ + owner: User + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the create `ApiExtension` mutation. +""" +input CreateApiExtensionInput { + """ + The `ApiExtension` to be created by this mutation. + """ + apiExtension: ApiExtensionInput! + + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String +} + +""" +The output of our create `ApiExtension` mutation. +""" +type CreateApiExtensionPayload { + """ + Reads a single `Api` that is related to this `ApiExtension`. + """ + api: Api + + """ + The `ApiExtension` that was created by this mutation. + """ + apiExtension: ApiExtension + + """ + An edge for our `ApiExtension`. May be used by Relay 1. + """ + apiExtensionEdge( + """ + The method to use when ordering `ApiExtension`. + """ + orderBy: [ApiExtensionsOrderBy!] = [PRIMARY_KEY_ASC] + ): ApiExtensionsEdge + + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `Database` that is related to this `ApiExtension`. + """ + database: Database + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the create `Api` mutation. +""" +input CreateApiInput { + """ + The `Api` to be created by this mutation. + """ + api: ApiInput! + + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String +} + +""" +All input for the create `ApiModule` mutation. +""" +input CreateApiModuleInput { + """ + The `ApiModule` to be created by this mutation. + """ + apiModule: ApiModuleInput! + + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String +} + +""" +The output of our create `ApiModule` mutation. +""" +type CreateApiModulePayload { + """ + Reads a single `Api` that is related to this `ApiModule`. + """ + api: Api + + """ + The `ApiModule` that was created by this mutation. + """ + apiModule: ApiModule + + """ + An edge for our `ApiModule`. May be used by Relay 1. + """ + apiModuleEdge( + """ + The method to use when ordering `ApiModule`. + """ + orderBy: [ApiModulesOrderBy!] = [PRIMARY_KEY_ASC] + ): ApiModulesEdge + + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `Database` that is related to this `ApiModule`. + """ + database: Database + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +The output of our create `Api` mutation. +""" +type CreateApiPayload { + """ + The `Api` that was created by this mutation. + """ + api: Api + + """ + An edge for our `Api`. May be used by Relay 1. + """ + apiEdge( + """ + The method to use when ordering `Api`. + """ + orderBy: [ApisOrderBy!] = [PRIMARY_KEY_ASC] + ): ApisEdge + + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `Database` that is related to this `Api`. + """ + database: Database + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the create `ApiSchema` mutation. +""" +input CreateApiSchemaInput { + """ + The `ApiSchema` to be created by this mutation. + """ + apiSchema: ApiSchemaInput! + + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String +} + +""" +The output of our create `ApiSchema` mutation. +""" +type CreateApiSchemaPayload { + """ + Reads a single `Api` that is related to this `ApiSchema`. + """ + api: Api + + """ + The `ApiSchema` that was created by this mutation. + """ + apiSchema: ApiSchema + + """ + An edge for our `ApiSchema`. May be used by Relay 1. + """ + apiSchemaEdge( + """ + The method to use when ordering `ApiSchema`. + """ + orderBy: [ApiSchemataOrderBy!] = [PRIMARY_KEY_ASC] + ): ApiSchemataEdge + + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `Database` that is related to this `ApiSchema`. + """ + database: Database + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + Reads a single `Schema` that is related to this `ApiSchema`. + """ + schema: Schema +} + +""" +All input for the create `AppAchievement` mutation. +""" +input CreateAppAchievementInput { + """ + The `AppAchievement` to be created by this mutation. + """ + appAchievement: AppAchievementInput! + + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String +} + +""" +The output of our create `AppAchievement` mutation. +""" +type CreateAppAchievementPayload { + """ + Reads a single `User` that is related to this `AppAchievement`. + """ + actor: User + + """ + The `AppAchievement` that was created by this mutation. + """ + appAchievement: AppAchievement + + """ + An edge for our `AppAchievement`. May be used by Relay 1. + """ + appAchievementEdge( + """ + The method to use when ordering `AppAchievement`. + """ + orderBy: [AppAchievementsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppAchievementsEdge + + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the create `AppGrant` mutation. +""" +input CreateAppGrantInput { + """ + The `AppGrant` to be created by this mutation. + """ + appGrant: AppGrantInput! + + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String +} + +""" +The output of our create `AppGrant` mutation. +""" +type CreateAppGrantPayload { + """ + The `AppGrant` that was created by this mutation. + """ + appGrant: AppGrant + + """ + An edge for our `AppGrant`. May be used by Relay 1. + """ + appGrantEdge( + """ + The method to use when ordering `AppGrant`. + """ + orderBy: [AppGrantsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppGrantsEdge + + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `User` that is related to this `AppGrant`. + """ + grantor: User + + """ + Reads a single `AppMembership` that is related to this `AppGrant`. + """ + membership: AppMembership + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the create `App` mutation. +""" +input CreateAppInput { + """ + The `App` to be created by this mutation. + """ + app: AppInput! + + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String +} + +""" +All input for the create `AppLevel` mutation. +""" +input CreateAppLevelInput { + """ + The `AppLevel` to be created by this mutation. + """ + appLevel: AppLevelInput! + + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String +} + +""" +The output of our create `AppLevel` mutation. +""" +type CreateAppLevelPayload { + """ + The `AppLevel` that was created by this mutation. + """ + appLevel: AppLevel + + """ + An edge for our `AppLevel`. May be used by Relay 1. + """ + appLevelEdge( + """ + The method to use when ordering `AppLevel`. + """ + orderBy: [AppLevelsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppLevelsEdge + + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `User` that is related to this `AppLevel`. + """ + owner: User + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the create `AppLevelRequirement` mutation. +""" +input CreateAppLevelRequirementInput { + """ + The `AppLevelRequirement` to be created by this mutation. + """ + appLevelRequirement: AppLevelRequirementInput! + + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String +} + +""" +The output of our create `AppLevelRequirement` mutation. +""" +type CreateAppLevelRequirementPayload { + """ + The `AppLevelRequirement` that was created by this mutation. + """ + appLevelRequirement: AppLevelRequirement + + """ + An edge for our `AppLevelRequirement`. May be used by Relay 1. + """ + appLevelRequirementEdge( + """ + The method to use when ordering `AppLevelRequirement`. + """ + orderBy: [AppLevelRequirementsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppLevelRequirementsEdge + + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the create `AppLimitDefault` mutation. +""" +input CreateAppLimitDefaultInput { + """ + The `AppLimitDefault` to be created by this mutation. + """ + appLimitDefault: AppLimitDefaultInput! + + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String +} + +""" +The output of our create `AppLimitDefault` mutation. +""" +type CreateAppLimitDefaultPayload { + """ + The `AppLimitDefault` that was created by this mutation. + """ + appLimitDefault: AppLimitDefault + + """ + An edge for our `AppLimitDefault`. May be used by Relay 1. + """ + appLimitDefaultEdge( + """ + The method to use when ordering `AppLimitDefault`. + """ + orderBy: [AppLimitDefaultsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppLimitDefaultsEdge + + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the create `AppLimit` mutation. +""" +input CreateAppLimitInput { + """ + The `AppLimit` to be created by this mutation. + """ + appLimit: AppLimitInput! + + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String +} + +""" +The output of our create `AppLimit` mutation. +""" +type CreateAppLimitPayload { + """ + Reads a single `User` that is related to this `AppLimit`. + """ + actor: User + + """ + The `AppLimit` that was created by this mutation. + """ + appLimit: AppLimit + + """ + An edge for our `AppLimit`. May be used by Relay 1. + """ + appLimitEdge( + """ + The method to use when ordering `AppLimit`. + """ + orderBy: [AppLimitsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppLimitsEdge + + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the create `AppMembershipDefault` mutation. +""" +input CreateAppMembershipDefaultInput { + """ + The `AppMembershipDefault` to be created by this mutation. + """ + appMembershipDefault: AppMembershipDefaultInput! + + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String +} + +""" +The output of our create `AppMembershipDefault` mutation. +""" +type CreateAppMembershipDefaultPayload { + """ + The `AppMembershipDefault` that was created by this mutation. + """ + appMembershipDefault: AppMembershipDefault + + """ + An edge for our `AppMembershipDefault`. May be used by Relay 1. + """ + appMembershipDefaultEdge( + """ + The method to use when ordering `AppMembershipDefault`. + """ + orderBy: [AppMembershipDefaultsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppMembershipDefaultsEdge + + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the create `AppMembership` mutation. +""" +input CreateAppMembershipInput { + """ + The `AppMembership` to be created by this mutation. + """ + appMembership: AppMembershipInput! + + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String +} + +""" +The output of our create `AppMembership` mutation. +""" +type CreateAppMembershipPayload { + """ + Reads a single `User` that is related to this `AppMembership`. + """ + actor: User + + """ + The `AppMembership` that was created by this mutation. + """ + appMembership: AppMembership + + """ + An edge for our `AppMembership`. May be used by Relay 1. + """ + appMembershipEdge( + """ + The method to use when ordering `AppMembership`. + """ + orderBy: [AppMembershipsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppMembershipsEdge + + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +The output of our create `App` mutation. +""" +type CreateAppPayload { + """ + The `App` that was created by this mutation. + """ + app: App + + """ + An edge for our `App`. May be used by Relay 1. + """ + appEdge( + """ + The method to use when ordering `App`. + """ + orderBy: [AppsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppsEdge + + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `Database` that is related to this `App`. + """ + database: Database + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + Reads a single `Site` that is related to this `App`. + """ + site: Site +} + +""" +All input for the create `AppPermissionDefault` mutation. +""" +input CreateAppPermissionDefaultInput { + """ + The `AppPermissionDefault` to be created by this mutation. + """ + appPermissionDefault: AppPermissionDefaultInput! + + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String +} + +""" +The output of our create `AppPermissionDefault` mutation. +""" +type CreateAppPermissionDefaultPayload { + """ + The `AppPermissionDefault` that was created by this mutation. + """ + appPermissionDefault: AppPermissionDefault + + """ + An edge for our `AppPermissionDefault`. May be used by Relay 1. + """ + appPermissionDefaultEdge( + """ + The method to use when ordering `AppPermissionDefault`. + """ + orderBy: [AppPermissionDefaultsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppPermissionDefaultsEdge + + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the create `AppPermission` mutation. +""" +input CreateAppPermissionInput { + """ + The `AppPermission` to be created by this mutation. + """ + appPermission: AppPermissionInput! + + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String +} + +""" +The output of our create `AppPermission` mutation. +""" +type CreateAppPermissionPayload { + """ + The `AppPermission` that was created by this mutation. + """ + appPermission: AppPermission + + """ + An edge for our `AppPermission`. May be used by Relay 1. + """ + appPermissionEdge( + """ + The method to use when ordering `AppPermission`. + """ + orderBy: [AppPermissionsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppPermissionsEdge + + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the create `AppStep` mutation. +""" +input CreateAppStepInput { + """ + The `AppStep` to be created by this mutation. + """ + appStep: AppStepInput! + + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String +} + +""" +The output of our create `AppStep` mutation. +""" +type CreateAppStepPayload { + """ + Reads a single `User` that is related to this `AppStep`. + """ + actor: User + + """ + The `AppStep` that was created by this mutation. + """ + appStep: AppStep + + """ + An edge for our `AppStep`. May be used by Relay 1. + """ + appStepEdge( + """ + The method to use when ordering `AppStep`. + """ + orderBy: [AppStepsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppStepsEdge + + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the create `AuthAccount` mutation. +""" +input CreateAuthAccountInput { + """ + The `AuthAccount` to be created by this mutation. + """ + authAccount: AuthAccountInput! + + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String +} + +""" +The output of our create `AuthAccount` mutation. +""" +type CreateAuthAccountPayload { + """ + The `AuthAccount` that was created by this mutation. + """ + authAccount: AuthAccount + + """ + An edge for our `AuthAccount`. May be used by Relay 1. + """ + authAccountEdge( + """ + The method to use when ordering `AuthAccount`. + """ + orderBy: [AuthAccountsOrderBy!] = [PRIMARY_KEY_ASC] + ): AuthAccountsEdge + + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `User` that is related to this `AuthAccount`. + """ + owner: User + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the create `CheckConstraint` mutation. +""" +input CreateCheckConstraintInput { + """ + The `CheckConstraint` to be created by this mutation. + """ + checkConstraint: CheckConstraintInput! + + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String +} + +""" +The output of our create `CheckConstraint` mutation. +""" +type CreateCheckConstraintPayload { + """ + The `CheckConstraint` that was created by this mutation. + """ + checkConstraint: CheckConstraint + + """ + An edge for our `CheckConstraint`. May be used by Relay 1. + """ + checkConstraintEdge( + """ + The method to use when ordering `CheckConstraint`. + """ + orderBy: [CheckConstraintsOrderBy!] = [PRIMARY_KEY_ASC] + ): CheckConstraintsEdge + + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `Database` that is related to this `CheckConstraint`. + """ + database: Database + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + Reads a single `Table` that is related to this `CheckConstraint`. + """ + table: Table +} + +""" +All input for the create `ClaimedInvite` mutation. +""" +input CreateClaimedInviteInput { + """ + The `ClaimedInvite` to be created by this mutation. + """ + claimedInvite: ClaimedInviteInput! + + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String +} + +""" +The output of our create `ClaimedInvite` mutation. +""" +type CreateClaimedInvitePayload { + """ + The `ClaimedInvite` that was created by this mutation. + """ + claimedInvite: ClaimedInvite + + """ + An edge for our `ClaimedInvite`. May be used by Relay 1. + """ + claimedInviteEdge( + """ + The method to use when ordering `ClaimedInvite`. + """ + orderBy: [ClaimedInvitesOrderBy!] = [PRIMARY_KEY_ASC] + ): ClaimedInvitesEdge + + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + Reads a single `User` that is related to this `ClaimedInvite`. + """ + receiver: User + + """ + Reads a single `User` that is related to this `ClaimedInvite`. + """ + sender: User +} + +""" +All input for the create `ConnectedAccount` mutation. +""" +input CreateConnectedAccountInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + The `ConnectedAccount` to be created by this mutation. + """ + connectedAccount: ConnectedAccountInput! +} + +""" +The output of our create `ConnectedAccount` mutation. +""" +type CreateConnectedAccountPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + The `ConnectedAccount` that was created by this mutation. + """ + connectedAccount: ConnectedAccount + + """ + An edge for our `ConnectedAccount`. May be used by Relay 1. + """ + connectedAccountEdge( + """ + The method to use when ordering `ConnectedAccount`. + """ + orderBy: [ConnectedAccountsOrderBy!] = [PRIMARY_KEY_ASC] + ): ConnectedAccountsEdge + + """ + Reads a single `User` that is related to this `ConnectedAccount`. + """ + owner: User + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the create `CryptoAddress` mutation. +""" +input CreateCryptoAddressInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + The `CryptoAddress` to be created by this mutation. + """ + cryptoAddress: CryptoAddressInput! +} + +""" +The output of our create `CryptoAddress` mutation. +""" +type CreateCryptoAddressPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + The `CryptoAddress` that was created by this mutation. + """ + cryptoAddress: CryptoAddress + + """ + An edge for our `CryptoAddress`. May be used by Relay 1. + """ + cryptoAddressEdge( + """ + The method to use when ordering `CryptoAddress`. + """ + orderBy: [CryptoAddressesOrderBy!] = [PRIMARY_KEY_ASC] + ): CryptoAddressesEdge + + """ + Reads a single `User` that is related to this `CryptoAddress`. + """ + owner: User + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the create `DatabaseExtension` mutation. +""" +input CreateDatabaseExtensionInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + The `DatabaseExtension` to be created by this mutation. + """ + databaseExtension: DatabaseExtensionInput! +} + +""" +The output of our create `DatabaseExtension` mutation. +""" +type CreateDatabaseExtensionPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `Database` that is related to this `DatabaseExtension`. + """ + database: Database + + """ + The `DatabaseExtension` that was created by this mutation. + """ + databaseExtension: DatabaseExtension + + """ + An edge for our `DatabaseExtension`. May be used by Relay 1. + """ + databaseExtensionEdge( + """ + The method to use when ordering `DatabaseExtension`. + """ + orderBy: [DatabaseExtensionsOrderBy!] = [PRIMARY_KEY_ASC] + ): DatabaseExtensionsEdge + + """ + Reads a single `Extension` that is related to this `DatabaseExtension`. + """ + extensionByName: Extension + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the create `Database` mutation. +""" +input CreateDatabaseInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + The `Database` to be created by this mutation. + """ + database: DatabaseInput! +} + +""" +The output of our create `Database` mutation. +""" +type CreateDatabasePayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + The `Database` that was created by this mutation. + """ + database: Database + + """ + An edge for our `Database`. May be used by Relay 1. + """ + databaseEdge( + """ + The method to use when ordering `Database`. + """ + orderBy: [DatabasesOrderBy!] = [PRIMARY_KEY_ASC] + ): DatabasesEdge + + """ + Reads a single `User` that is related to this `Database`. + """ + owner: User + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the create `DatabaseProvision` mutation. +""" +input CreateDatabaseProvisionInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + The `DatabaseProvision` to be created by this mutation. + """ + databaseProvision: DatabaseProvisionInput! +} + +""" +The output of our create `DatabaseProvision` mutation. +""" +type CreateDatabaseProvisionPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `Database` that is related to this `DatabaseProvision`. + """ + database: Database + + """ + The `DatabaseProvision` that was created by this mutation. + """ + databaseProvision: DatabaseProvision + + """ + An edge for our `DatabaseProvision`. May be used by Relay 1. + """ + databaseProvisionEdge( + """ + The method to use when ordering `DatabaseProvision`. + """ + orderBy: [DatabaseProvisionsOrderBy!] = [PRIMARY_KEY_ASC] + ): DatabaseProvisionsEdge + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the create `Domain` mutation. +""" +input CreateDomainInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + The `Domain` to be created by this mutation. + """ + domain: DomainInput! +} + +""" +The output of our create `Domain` mutation. +""" +type CreateDomainPayload { + """ + Reads a single `Api` that is related to this `Domain`. + """ + api: Api + + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `Database` that is related to this `Domain`. + """ + database: Database + + """ + The `Domain` that was created by this mutation. + """ + domain: Domain + + """ + An edge for our `Domain`. May be used by Relay 1. + """ + domainEdge( + """ + The method to use when ordering `Domain`. + """ + orderBy: [DomainsOrderBy!] = [PRIMARY_KEY_ASC] + ): DomainsEdge + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + Reads a single `Site` that is related to this `Domain`. + """ + site: Site +} + +""" +All input for the create `Email` mutation. +""" +input CreateEmailInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + The `Email` to be created by this mutation. + """ + email: EmailInput! +} + +""" +The output of our create `Email` mutation. +""" +type CreateEmailPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + The `Email` that was created by this mutation. + """ + email: Email + + """ + An edge for our `Email`. May be used by Relay 1. + """ + emailEdge( + """ + The method to use when ordering `Email`. + """ + orderBy: [EmailsOrderBy!] = [PRIMARY_KEY_ASC] + ): EmailsEdge + + """ + Reads a single `User` that is related to this `Email`. + """ + owner: User + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the create `Extension` mutation. +""" +input CreateExtensionInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + The `Extension` to be created by this mutation. + """ + extension: ExtensionInput! +} + +""" +The output of our create `Extension` mutation. +""" +type CreateExtensionPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + The `Extension` that was created by this mutation. + """ + extension: Extension + + """ + An edge for our `Extension`. May be used by Relay 1. + """ + extensionEdge( + """ + The method to use when ordering `Extension`. + """ + orderBy: [ExtensionsOrderBy!] = [PRIMARY_KEY_ASC] + ): ExtensionsEdge + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the create `Field` mutation. +""" +input CreateFieldInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + The `Field` to be created by this mutation. + """ + field: FieldInput! +} + +""" +The output of our create `Field` mutation. +""" +type CreateFieldPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `Database` that is related to this `Field`. + """ + database: Database + + """ + The `Field` that was created by this mutation. + """ + field: Field + + """ + An edge for our `Field`. May be used by Relay 1. + """ + fieldEdge( + """ + The method to use when ordering `Field`. + """ + orderBy: [FieldsOrderBy!] = [PRIMARY_KEY_ASC] + ): FieldsEdge + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + Reads a single `Table` that is related to this `Field`. + """ + table: Table +} + +""" +All input for the create `ForeignKeyConstraint` mutation. +""" +input CreateForeignKeyConstraintInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + The `ForeignKeyConstraint` to be created by this mutation. + """ + foreignKeyConstraint: ForeignKeyConstraintInput! +} + +""" +The output of our create `ForeignKeyConstraint` mutation. +""" +type CreateForeignKeyConstraintPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `Database` that is related to this `ForeignKeyConstraint`. + """ + database: Database + + """ + The `ForeignKeyConstraint` that was created by this mutation. + """ + foreignKeyConstraint: ForeignKeyConstraint + + """ + An edge for our `ForeignKeyConstraint`. May be used by Relay 1. + """ + foreignKeyConstraintEdge( + """ + The method to use when ordering `ForeignKeyConstraint`. + """ + orderBy: [ForeignKeyConstraintsOrderBy!] = [PRIMARY_KEY_ASC] + ): ForeignKeyConstraintsEdge + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + Reads a single `Table` that is related to this `ForeignKeyConstraint`. + """ + refTable: Table + + """ + Reads a single `Table` that is related to this `ForeignKeyConstraint`. + """ + table: Table +} + +""" +All input for the create `FullTextSearch` mutation. +""" +input CreateFullTextSearchInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + The `FullTextSearch` to be created by this mutation. + """ + fullTextSearch: FullTextSearchInput! +} + +""" +The output of our create `FullTextSearch` mutation. +""" +type CreateFullTextSearchPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `Database` that is related to this `FullTextSearch`. + """ + database: Database + + """ + The `FullTextSearch` that was created by this mutation. + """ + fullTextSearch: FullTextSearch + + """ + An edge for our `FullTextSearch`. May be used by Relay 1. + """ + fullTextSearchEdge( + """ + The method to use when ordering `FullTextSearch`. + """ + orderBy: [FullTextSearchesOrderBy!] = [PRIMARY_KEY_ASC] + ): FullTextSearchesEdge + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + Reads a single `Table` that is related to this `FullTextSearch`. + """ + table: Table +} + +""" +All input for the create `Grant` mutation. +""" +input CreateGrantInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + The `Grant` to be created by this mutation. + """ + grant: GrantInput! +} + +""" +The output of our create `Grant` mutation. +""" +type CreateGrantPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `User` that is related to this `Grant`. + """ + entity: User + + """ + The `Grant` that was created by this mutation. + """ + grant: Grant + + """ + An edge for our `Grant`. May be used by Relay 1. + """ + grantEdge( + """ + The method to use when ordering `Grant`. + """ + orderBy: [GrantsOrderBy!] = [PRIMARY_KEY_ASC] + ): GrantsEdge + + """ + Reads a single `User` that is related to this `Grant`. + """ + grantor: User + + """ + Reads a single `Membership` that is related to this `Grant`. + """ + membership: Membership + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the create `Index` mutation. +""" +input CreateIndexInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + The `Index` to be created by this mutation. + """ + index: IndexInput! +} + +""" +The output of our create `Index` mutation. +""" +type CreateIndexPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `Database` that is related to this `Index`. + """ + database: Database + + """ + The `Index` that was created by this mutation. + """ + index: Index + + """ + An edge for our `Index`. May be used by Relay 1. + """ + indexEdge( + """ + The method to use when ordering `Index`. + """ + orderBy: [IndicesOrderBy!] = [PRIMARY_KEY_ASC] + ): IndicesEdge + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + Reads a single `Table` that is related to this `Index`. + """ + table: Table +} + +""" +All input for the create `Invite` mutation. +""" +input CreateInviteInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + The `Invite` to be created by this mutation. + """ + invite: InviteInput! +} + +""" +The output of our create `Invite` mutation. +""" +type CreateInvitePayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + The `Invite` that was created by this mutation. + """ + invite: Invite + + """ + An edge for our `Invite`. May be used by Relay 1. + """ + inviteEdge( + """ + The method to use when ordering `Invite`. + """ + orderBy: [InvitesOrderBy!] = [PRIMARY_KEY_ASC] + ): InvitesEdge + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + Reads a single `User` that is related to this `Invite`. + """ + sender: User +} + +""" +All input for the create `LimitFunction` mutation. +""" +input CreateLimitFunctionInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + The `LimitFunction` to be created by this mutation. + """ + limitFunction: LimitFunctionInput! +} + +""" +The output of our create `LimitFunction` mutation. +""" +type CreateLimitFunctionPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `Database` that is related to this `LimitFunction`. + """ + database: Database + + """ + The `LimitFunction` that was created by this mutation. + """ + limitFunction: LimitFunction + + """ + An edge for our `LimitFunction`. May be used by Relay 1. + """ + limitFunctionEdge( + """ + The method to use when ordering `LimitFunction`. + """ + orderBy: [LimitFunctionsOrderBy!] = [PRIMARY_KEY_ASC] + ): LimitFunctionsEdge + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + Reads a single `Table` that is related to this `LimitFunction`. + """ + table: Table +} + +""" +All input for the create `MemberClaimedInvite` mutation. +""" +input CreateMemberClaimedInviteInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + The `MemberClaimedInvite` to be created by this mutation. + """ + memberClaimedInvite: MemberClaimedInviteInput! +} + +""" +The output of our create `MemberClaimedInvite` mutation. +""" +type CreateMemberClaimedInvitePayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `User` that is related to this `MemberClaimedInvite`. + """ + entity: User + + """ + The `MemberClaimedInvite` that was created by this mutation. + """ + memberClaimedInvite: MemberClaimedInvite + + """ + An edge for our `MemberClaimedInvite`. May be used by Relay 1. + """ + memberClaimedInviteEdge( + """ + The method to use when ordering `MemberClaimedInvite`. + """ + orderBy: [MemberClaimedInvitesOrderBy!] = [PRIMARY_KEY_ASC] + ): MemberClaimedInvitesEdge + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + Reads a single `User` that is related to this `MemberClaimedInvite`. + """ + receiver: User + + """ + Reads a single `User` that is related to this `MemberClaimedInvite`. + """ + sender: User +} + +""" +All input for the create `Member` mutation. +""" +input CreateMemberInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + The `Member` to be created by this mutation. + """ + member: MemberInput! +} + +""" +All input for the create `MemberInvite` mutation. +""" +input CreateMemberInviteInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + The `MemberInvite` to be created by this mutation. + """ + memberInvite: MemberInviteInput! +} + +""" +The output of our create `MemberInvite` mutation. +""" +type CreateMemberInvitePayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `User` that is related to this `MemberInvite`. + """ + entity: User + + """ + The `MemberInvite` that was created by this mutation. + """ + memberInvite: MemberInvite + + """ + An edge for our `MemberInvite`. May be used by Relay 1. + """ + memberInviteEdge( + """ + The method to use when ordering `MemberInvite`. + """ + orderBy: [MemberInvitesOrderBy!] = [PRIMARY_KEY_ASC] + ): MemberInvitesEdge + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + Reads a single `User` that is related to this `MemberInvite`. + """ + sender: User +} + +""" +The output of our create `Member` mutation. +""" +type CreateMemberPayload { + """ + Reads a single `User` that is related to this `Member`. + """ + actor: User + + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `User` that is related to this `Member`. + """ + entity: User + + """ + The `Member` that was created by this mutation. + """ + member: Member + + """ + An edge for our `Member`. May be used by Relay 1. + """ + memberEdge( + """ + The method to use when ordering `Member`. + """ + orderBy: [MembersOrderBy!] = [PRIMARY_KEY_ASC] + ): MembersEdge + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the create `MembershipDefault` mutation. +""" +input CreateMembershipDefaultInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + The `MembershipDefault` to be created by this mutation. + """ + membershipDefault: MembershipDefaultInput! +} + +""" +The output of our create `MembershipDefault` mutation. +""" +type CreateMembershipDefaultPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `User` that is related to this `MembershipDefault`. + """ + entity: User + + """ + The `MembershipDefault` that was created by this mutation. + """ + membershipDefault: MembershipDefault + + """ + An edge for our `MembershipDefault`. May be used by Relay 1. + """ + membershipDefaultEdge( + """ + The method to use when ordering `MembershipDefault`. + """ + orderBy: [MembershipDefaultsOrderBy!] = [PRIMARY_KEY_ASC] + ): MembershipDefaultsEdge + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the create `Membership` mutation. +""" +input CreateMembershipInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + The `Membership` to be created by this mutation. + """ + membership: MembershipInput! +} + +""" +All input for the create `MembershipLimitDefault` mutation. +""" +input CreateMembershipLimitDefaultInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + The `MembershipLimitDefault` to be created by this mutation. + """ + membershipLimitDefault: MembershipLimitDefaultInput! +} + +""" +The output of our create `MembershipLimitDefault` mutation. +""" +type CreateMembershipLimitDefaultPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + The `MembershipLimitDefault` that was created by this mutation. + """ + membershipLimitDefault: MembershipLimitDefault + + """ + An edge for our `MembershipLimitDefault`. May be used by Relay 1. + """ + membershipLimitDefaultEdge( + """ + The method to use when ordering `MembershipLimitDefault`. + """ + orderBy: [MembershipLimitDefaultsOrderBy!] = [PRIMARY_KEY_ASC] + ): MembershipLimitDefaultsEdge + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the create `MembershipLimit` mutation. +""" +input CreateMembershipLimitInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + The `MembershipLimit` to be created by this mutation. + """ + membershipLimit: MembershipLimitInput! +} + +""" +The output of our create `MembershipLimit` mutation. +""" +type CreateMembershipLimitPayload { + """ + Reads a single `User` that is related to this `MembershipLimit`. + """ + actor: User + + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `User` that is related to this `MembershipLimit`. + """ + entity: User + + """ + The `MembershipLimit` that was created by this mutation. + """ + membershipLimit: MembershipLimit + + """ + An edge for our `MembershipLimit`. May be used by Relay 1. + """ + membershipLimitEdge( + """ + The method to use when ordering `MembershipLimit`. + """ + orderBy: [MembershipLimitsOrderBy!] = [PRIMARY_KEY_ASC] + ): MembershipLimitsEdge + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +The output of our create `Membership` mutation. +""" +type CreateMembershipPayload { + """ + Reads a single `User` that is related to this `Membership`. + """ + actor: User + + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `User` that is related to this `Membership`. + """ + entity: User + + """ + The `Membership` that was created by this mutation. + """ + membership: Membership + + """ + An edge for our `Membership`. May be used by Relay 1. + """ + membershipEdge( + """ + The method to use when ordering `Membership`. + """ + orderBy: [MembershipsOrderBy!] = [PRIMARY_KEY_ASC] + ): MembershipsEdge + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the create `MembershipPermissionDefault` mutation. +""" +input CreateMembershipPermissionDefaultInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + The `MembershipPermissionDefault` to be created by this mutation. + """ + membershipPermissionDefault: MembershipPermissionDefaultInput! +} + +""" +The output of our create `MembershipPermissionDefault` mutation. +""" +type CreateMembershipPermissionDefaultPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `User` that is related to this `MembershipPermissionDefault`. + """ + entity: User + + """ + The `MembershipPermissionDefault` that was created by this mutation. + """ + membershipPermissionDefault: MembershipPermissionDefault + + """ + An edge for our `MembershipPermissionDefault`. May be used by Relay 1. + """ + membershipPermissionDefaultEdge( + """ + The method to use when ordering `MembershipPermissionDefault`. + """ + orderBy: [MembershipPermissionDefaultsOrderBy!] = [PRIMARY_KEY_ASC] + ): MembershipPermissionDefaultsEdge + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the create `MembershipPermission` mutation. +""" +input CreateMembershipPermissionInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + The `MembershipPermission` to be created by this mutation. + """ + membershipPermission: MembershipPermissionInput! +} + +""" +The output of our create `MembershipPermission` mutation. +""" +type CreateMembershipPermissionPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + The `MembershipPermission` that was created by this mutation. + """ + membershipPermission: MembershipPermission + + """ + An edge for our `MembershipPermission`. May be used by Relay 1. + """ + membershipPermissionEdge( + """ + The method to use when ordering `MembershipPermission`. + """ + orderBy: [MembershipPermissionsOrderBy!] = [PRIMARY_KEY_ASC] + ): MembershipPermissionsEdge + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the create `MembershipType` mutation. +""" +input CreateMembershipTypeInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + The `MembershipType` to be created by this mutation. + """ + membershipType: MembershipTypeInput! +} + +""" +The output of our create `MembershipType` mutation. +""" +type CreateMembershipTypePayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + The `MembershipType` that was created by this mutation. + """ + membershipType: MembershipType + + """ + An edge for our `MembershipType`. May be used by Relay 1. + """ + membershipTypeEdge( + """ + The method to use when ordering `MembershipType`. + """ + orderBy: [MembershipTypesOrderBy!] = [PRIMARY_KEY_ASC] + ): MembershipTypesEdge + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the create `OrganizationSetting` mutation. +""" +input CreateOrganizationSettingInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + The `OrganizationSetting` to be created by this mutation. + """ + organizationSetting: OrganizationSettingInput! +} + +""" +The output of our create `OrganizationSetting` mutation. +""" +type CreateOrganizationSettingPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `User` that is related to this `OrganizationSetting`. + """ + organization: User + + """ + The `OrganizationSetting` that was created by this mutation. + """ + organizationSetting: OrganizationSetting + + """ + An edge for our `OrganizationSetting`. May be used by Relay 1. + """ + organizationSettingEdge( + """ + The method to use when ordering `OrganizationSetting`. + """ + orderBy: [OrganizationSettingsOrderBy!] = [PRIMARY_KEY_ASC] + ): OrganizationSettingsEdge + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the create `PhoneNumber` mutation. +""" +input CreatePhoneNumberInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + The `PhoneNumber` to be created by this mutation. + """ + phoneNumber: PhoneNumberInput! +} + +""" +The output of our create `PhoneNumber` mutation. +""" +type CreatePhoneNumberPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `User` that is related to this `PhoneNumber`. + """ + owner: User + + """ + The `PhoneNumber` that was created by this mutation. + """ + phoneNumber: PhoneNumber + + """ + An edge for our `PhoneNumber`. May be used by Relay 1. + """ + phoneNumberEdge( + """ + The method to use when ordering `PhoneNumber`. + """ + orderBy: [PhoneNumbersOrderBy!] = [PRIMARY_KEY_ASC] + ): PhoneNumbersEdge + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the create `Policy` mutation. +""" +input CreatePolicyInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + The `Policy` to be created by this mutation. + """ + policy: PolicyInput! +} + +""" +The output of our create `Policy` mutation. +""" +type CreatePolicyPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `Database` that is related to this `Policy`. + """ + database: Database + + """ + The `Policy` that was created by this mutation. + """ + policy: Policy + + """ + An edge for our `Policy`. May be used by Relay 1. + """ + policyEdge( + """ + The method to use when ordering `Policy`. + """ + orderBy: [PoliciesOrderBy!] = [PRIMARY_KEY_ASC] + ): PoliciesEdge + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + Reads a single `Table` that is related to this `Policy`. + """ + table: Table +} + +""" +All input for the create `PrimaryKeyConstraint` mutation. +""" +input CreatePrimaryKeyConstraintInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + The `PrimaryKeyConstraint` to be created by this mutation. + """ + primaryKeyConstraint: PrimaryKeyConstraintInput! +} + +""" +The output of our create `PrimaryKeyConstraint` mutation. +""" +type CreatePrimaryKeyConstraintPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `Database` that is related to this `PrimaryKeyConstraint`. + """ + database: Database + + """ + The `PrimaryKeyConstraint` that was created by this mutation. + """ + primaryKeyConstraint: PrimaryKeyConstraint + + """ + An edge for our `PrimaryKeyConstraint`. May be used by Relay 1. + """ + primaryKeyConstraintEdge( + """ + The method to use when ordering `PrimaryKeyConstraint`. + """ + orderBy: [PrimaryKeyConstraintsOrderBy!] = [PRIMARY_KEY_ASC] + ): PrimaryKeyConstraintsEdge + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + Reads a single `Table` that is related to this `PrimaryKeyConstraint`. + """ + table: Table +} + +""" +All input for the create `Procedure` mutation. +""" +input CreateProcedureInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + The `Procedure` to be created by this mutation. + """ + procedure: ProcedureInput! +} + +""" +The output of our create `Procedure` mutation. +""" +type CreateProcedurePayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `Database` that is related to this `Procedure`. + """ + database: Database + + """ + The `Procedure` that was created by this mutation. + """ + procedure: Procedure + + """ + An edge for our `Procedure`. May be used by Relay 1. + """ + procedureEdge( + """ + The method to use when ordering `Procedure`. + """ + orderBy: [ProceduresOrderBy!] = [PRIMARY_KEY_ASC] + ): ProceduresEdge + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the create `RlsFunction` mutation. +""" +input CreateRlsFunctionInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + The `RlsFunction` to be created by this mutation. + """ + rlsFunction: RlsFunctionInput! +} + +""" +The output of our create `RlsFunction` mutation. +""" +type CreateRlsFunctionPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `Database` that is related to this `RlsFunction`. + """ + database: Database + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + The `RlsFunction` that was created by this mutation. + """ + rlsFunction: RlsFunction + + """ + An edge for our `RlsFunction`. May be used by Relay 1. + """ + rlsFunctionEdge( + """ + The method to use when ordering `RlsFunction`. + """ + orderBy: [RlsFunctionsOrderBy!] = [PRIMARY_KEY_ASC] + ): RlsFunctionsEdge + + """ + Reads a single `Table` that is related to this `RlsFunction`. + """ + table: Table +} + +""" +All input for the create `RoleType` mutation. +""" +input CreateRoleTypeInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + The `RoleType` to be created by this mutation. + """ + roleType: RoleTypeInput! +} + +""" +The output of our create `RoleType` mutation. +""" +type CreateRoleTypePayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + The `RoleType` that was created by this mutation. + """ + roleType: RoleType + + """ + An edge for our `RoleType`. May be used by Relay 1. + """ + roleTypeEdge( + """ + The method to use when ordering `RoleType`. + """ + orderBy: [RoleTypesOrderBy!] = [PRIMARY_KEY_ASC] + ): RoleTypesEdge +} + +""" +All input for the create `SchemaGrant` mutation. +""" +input CreateSchemaGrantInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + The `SchemaGrant` to be created by this mutation. + """ + schemaGrant: SchemaGrantInput! +} + +""" +The output of our create `SchemaGrant` mutation. +""" +type CreateSchemaGrantPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `Database` that is related to this `SchemaGrant`. + """ + database: Database + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + Reads a single `Schema` that is related to this `SchemaGrant`. + """ + schema: Schema + + """ + The `SchemaGrant` that was created by this mutation. + """ + schemaGrant: SchemaGrant + + """ + An edge for our `SchemaGrant`. May be used by Relay 1. + """ + schemaGrantEdge( + """ + The method to use when ordering `SchemaGrant`. + """ + orderBy: [SchemaGrantsOrderBy!] = [PRIMARY_KEY_ASC] + ): SchemaGrantsEdge +} + +""" +All input for the create `Schema` mutation. +""" +input CreateSchemaInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + The `Schema` to be created by this mutation. + """ + schema: SchemaInput! +} + +""" +The output of our create `Schema` mutation. +""" +type CreateSchemaPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `Database` that is related to this `Schema`. + """ + database: Database + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + The `Schema` that was created by this mutation. + """ + schema: Schema + + """ + An edge for our `Schema`. May be used by Relay 1. + """ + schemaEdge( + """ + The method to use when ordering `Schema`. + """ + orderBy: [SchemataOrderBy!] = [PRIMARY_KEY_ASC] + ): SchemataEdge +} + +""" +All input for the create `Site` mutation. +""" +input CreateSiteInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + The `Site` to be created by this mutation. + """ + site: SiteInput! +} + +""" +All input for the create `SiteMetadatum` mutation. +""" +input CreateSiteMetadatumInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + The `SiteMetadatum` to be created by this mutation. + """ + siteMetadatum: SiteMetadatumInput! +} + +""" +The output of our create `SiteMetadatum` mutation. +""" +type CreateSiteMetadatumPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `Database` that is related to this `SiteMetadatum`. + """ + database: Database + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + Reads a single `Site` that is related to this `SiteMetadatum`. + """ + site: Site + + """ + The `SiteMetadatum` that was created by this mutation. + """ + siteMetadatum: SiteMetadatum + + """ + An edge for our `SiteMetadatum`. May be used by Relay 1. + """ + siteMetadatumEdge( + """ + The method to use when ordering `SiteMetadatum`. + """ + orderBy: [SiteMetadataOrderBy!] = [PRIMARY_KEY_ASC] + ): SiteMetadataEdge +} + +""" +All input for the create `SiteModule` mutation. +""" +input CreateSiteModuleInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + The `SiteModule` to be created by this mutation. + """ + siteModule: SiteModuleInput! +} + +""" +The output of our create `SiteModule` mutation. +""" +type CreateSiteModulePayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `Database` that is related to this `SiteModule`. + """ + database: Database + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + Reads a single `Site` that is related to this `SiteModule`. + """ + site: Site + + """ + The `SiteModule` that was created by this mutation. + """ + siteModule: SiteModule + + """ + An edge for our `SiteModule`. May be used by Relay 1. + """ + siteModuleEdge( + """ + The method to use when ordering `SiteModule`. + """ + orderBy: [SiteModulesOrderBy!] = [PRIMARY_KEY_ASC] + ): SiteModulesEdge +} + +""" +The output of our create `Site` mutation. +""" +type CreateSitePayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `Database` that is related to this `Site`. + """ + database: Database + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + The `Site` that was created by this mutation. + """ + site: Site + + """ + An edge for our `Site`. May be used by Relay 1. + """ + siteEdge( + """ + The method to use when ordering `Site`. + """ + orderBy: [SitesOrderBy!] = [PRIMARY_KEY_ASC] + ): SitesEdge +} + +""" +All input for the create `SiteTheme` mutation. +""" +input CreateSiteThemeInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + The `SiteTheme` to be created by this mutation. + """ + siteTheme: SiteThemeInput! +} + +""" +The output of our create `SiteTheme` mutation. +""" +type CreateSiteThemePayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `Database` that is related to this `SiteTheme`. + """ + database: Database + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + Reads a single `Site` that is related to this `SiteTheme`. + """ + site: Site + + """ + The `SiteTheme` that was created by this mutation. + """ + siteTheme: SiteTheme + + """ + An edge for our `SiteTheme`. May be used by Relay 1. + """ + siteThemeEdge( + """ + The method to use when ordering `SiteTheme`. + """ + orderBy: [SiteThemesOrderBy!] = [PRIMARY_KEY_ASC] + ): SiteThemesEdge +} + +""" +All input for the create `TableGrant` mutation. +""" +input CreateTableGrantInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + The `TableGrant` to be created by this mutation. + """ + tableGrant: TableGrantInput! +} + +""" +The output of our create `TableGrant` mutation. +""" +type CreateTableGrantPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `Database` that is related to this `TableGrant`. + """ + database: Database + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + Reads a single `Table` that is related to this `TableGrant`. + """ + table: Table + + """ + The `TableGrant` that was created by this mutation. + """ + tableGrant: TableGrant + + """ + An edge for our `TableGrant`. May be used by Relay 1. + """ + tableGrantEdge( + """ + The method to use when ordering `TableGrant`. + """ + orderBy: [TableGrantsOrderBy!] = [PRIMARY_KEY_ASC] + ): TableGrantsEdge +} + +""" +All input for the create `Table` mutation. +""" +input CreateTableInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + The `Table` to be created by this mutation. + """ + table: TableInput! +} + +""" +The output of our create `Table` mutation. +""" +type CreateTablePayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `Database` that is related to this `Table`. + """ + database: Database + + """ + Reads a single `Table` that is related to this `Table`. + """ + inherits: Table + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + Reads a single `Schema` that is related to this `Table`. + """ + schema: Schema + + """ + The `Table` that was created by this mutation. + """ + table: Table + + """ + An edge for our `Table`. May be used by Relay 1. + """ + tableEdge( + """ + The method to use when ordering `Table`. + """ + orderBy: [TablesOrderBy!] = [PRIMARY_KEY_ASC] + ): TablesEdge +} + +""" +All input for the create `TriggerFunction` mutation. +""" +input CreateTriggerFunctionInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + The `TriggerFunction` to be created by this mutation. + """ + triggerFunction: TriggerFunctionInput! +} + +""" +The output of our create `TriggerFunction` mutation. +""" +type CreateTriggerFunctionPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `Database` that is related to this `TriggerFunction`. + """ + database: Database + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + The `TriggerFunction` that was created by this mutation. + """ + triggerFunction: TriggerFunction + + """ + An edge for our `TriggerFunction`. May be used by Relay 1. + """ + triggerFunctionEdge( + """ + The method to use when ordering `TriggerFunction`. + """ + orderBy: [TriggerFunctionsOrderBy!] = [PRIMARY_KEY_ASC] + ): TriggerFunctionsEdge +} + +""" +All input for the create `Trigger` mutation. +""" +input CreateTriggerInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + The `Trigger` to be created by this mutation. + """ + trigger: TriggerInput! +} + +""" +The output of our create `Trigger` mutation. +""" +type CreateTriggerPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `Database` that is related to this `Trigger`. + """ + database: Database + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + Reads a single `Table` that is related to this `Trigger`. + """ + table: Table + + """ + The `Trigger` that was created by this mutation. + """ + trigger: Trigger + + """ + An edge for our `Trigger`. May be used by Relay 1. + """ + triggerEdge( + """ + The method to use when ordering `Trigger`. + """ + orderBy: [TriggersOrderBy!] = [PRIMARY_KEY_ASC] + ): TriggersEdge +} + +""" +All input for the create `UniqueConstraint` mutation. +""" +input CreateUniqueConstraintInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + The `UniqueConstraint` to be created by this mutation. + """ + uniqueConstraint: UniqueConstraintInput! +} + +""" +The output of our create `UniqueConstraint` mutation. +""" +type CreateUniqueConstraintPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `Database` that is related to this `UniqueConstraint`. + """ + database: Database + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + Reads a single `Table` that is related to this `UniqueConstraint`. + """ + table: Table + + """ + The `UniqueConstraint` that was created by this mutation. + """ + uniqueConstraint: UniqueConstraint + + """ + An edge for our `UniqueConstraint`. May be used by Relay 1. + """ + uniqueConstraintEdge( + """ + The method to use when ordering `UniqueConstraint`. + """ + orderBy: [UniqueConstraintsOrderBy!] = [PRIMARY_KEY_ASC] + ): UniqueConstraintsEdge +} + +""" +All input for the create `UserConnection` mutation. +""" +input CreateUserConnectionInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + The `UserConnection` to be created by this mutation. + """ + userConnection: UserConnectionInput! +} + +""" +The output of our create `UserConnection` mutation. +""" +type CreateUserConnectionPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + Reads a single `User` that is related to this `UserConnection`. + """ + requester: User + + """ + Reads a single `User` that is related to this `UserConnection`. + """ + responder: User + + """ + The `UserConnection` that was created by this mutation. + """ + userConnection: UserConnection + + """ + An edge for our `UserConnection`. May be used by Relay 1. + """ + userConnectionEdge( + """ + The method to use when ordering `UserConnection`. + """ + orderBy: [UserConnectionsOrderBy!] = [PRIMARY_KEY_ASC] + ): UserConnectionsEdge +} + +""" +All input for the create `UserContact` mutation. +""" +input CreateUserContactInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + The `UserContact` to be created by this mutation. + """ + userContact: UserContactInput! +} + +""" +The output of our create `UserContact` mutation. +""" +type CreateUserContactPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + Reads a single `User` that is related to this `UserContact`. + """ + user: User + + """ + The `UserContact` that was created by this mutation. + """ + userContact: UserContact + + """ + An edge for our `UserContact`. May be used by Relay 1. + """ + userContactEdge( + """ + The method to use when ordering `UserContact`. + """ + orderBy: [UserContactsOrderBy!] = [PRIMARY_KEY_ASC] + ): UserContactsEdge +} + +""" +All input for the `createUserDatabase` mutation. +""" +input CreateUserDatabaseInput { + bitlen: Int + + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + databaseName: String + includeGroups: Boolean + includeInvites: Boolean + includeLevels: Boolean + ownerId: UUID + tokensExpiration: IntervalInput +} + +""" +The output of our `createUserDatabase` mutation. +""" +type CreateUserDatabasePayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + uuid: UUID +} + +""" +All input for the create `User` mutation. +""" +input CreateUserInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + The `User` to be created by this mutation. + """ + user: UserInput! +} + +""" +The output of our create `User` mutation. +""" +type CreateUserPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + Reads a single `RoleType` that is related to this `User`. + """ + roleTypeByType: RoleType + + """ + The `User` that was created by this mutation. + """ + user: User + + """ + An edge for our `User`. May be used by Relay 1. + """ + userEdge( + """ + The method to use when ordering `User`. + """ + orderBy: [UsersOrderBy!] = [PRIMARY_KEY_ASC] + ): UsersEdge +} + +""" +All input for the create `UserProfile` mutation. +""" +input CreateUserProfileInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + The `UserProfile` to be created by this mutation. + """ + userProfile: UserProfileInput! +} + +""" +The output of our create `UserProfile` mutation. +""" +type CreateUserProfilePayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + Reads a single `User` that is related to this `UserProfile`. + """ + user: User + + """ + The `UserProfile` that was created by this mutation. + """ + userProfile: UserProfile + + """ + An edge for our `UserProfile`. May be used by Relay 1. + """ + userProfileEdge( + """ + The method to use when ordering `UserProfile`. + """ + orderBy: [UserProfilesOrderBy!] = [PRIMARY_KEY_ASC] + ): UserProfilesEdge +} + +""" +All input for the create `UserSetting` mutation. +""" +input CreateUserSettingInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + The `UserSetting` to be created by this mutation. + """ + userSetting: UserSettingInput! +} + +""" +The output of our create `UserSetting` mutation. +""" +type CreateUserSettingPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + Reads a single `User` that is related to this `UserSetting`. + """ + user: User + + """ + The `UserSetting` that was created by this mutation. + """ + userSetting: UserSetting + + """ + An edge for our `UserSetting`. May be used by Relay 1. + """ + userSettingEdge( + """ + The method to use when ordering `UserSetting`. + """ + orderBy: [UserSettingsOrderBy!] = [PRIMARY_KEY_ASC] + ): UserSettingsEdge +} + +type CryptoAddress { + address: String! + id: UUID! + isPrimary: Boolean! + isVerified: Boolean! + + """ + Reads a single `User` that is related to this `CryptoAddress`. + """ + owner: User + ownerId: UUID! +} + +""" +A condition to be used against `CryptoAddress` object types. All fields are +tested for equality and combined with a logical ‘and.’ +""" +input CryptoAddressCondition { + """ + Checks for equality with the object’s `address` field. + """ + address: String + + """ + Checks for equality with the object’s `id` field. + """ + id: UUID + + """ + Checks for equality with the object’s `isPrimary` field. + """ + isPrimary: Boolean + + """ + Checks for equality with the object’s `isVerified` field. + """ + isVerified: Boolean + + """ + Checks for equality with the object’s `ownerId` field. + """ + ownerId: UUID +} + +""" +A filter to be used against `CryptoAddress` object types. All fields are combined with a logical ‘and.’ +""" +input CryptoAddressFilter { + """ + Filter by the object’s `address` field. + """ + address: StringFilter + + """ + Checks for all expressions in this list. + """ + and: [CryptoAddressFilter!] + + """ + Filter by the object’s `id` field. + """ + id: UUIDFilter + + """ + Filter by the object’s `isPrimary` field. + """ + isPrimary: BooleanFilter + + """ + Filter by the object’s `isVerified` field. + """ + isVerified: BooleanFilter + + """ + Negates the expression. + """ + not: CryptoAddressFilter + + """ + Checks for any expressions in this list. + """ + or: [CryptoAddressFilter!] + + """ + Filter by the object’s `ownerId` field. + """ + ownerId: UUIDFilter +} + +""" +An input for mutations affecting `CryptoAddress` +""" +input CryptoAddressInput { + address: String! + id: UUID + isPrimary: Boolean + isVerified: Boolean + ownerId: UUID +} + +""" +Represents an update to a `CryptoAddress`. Fields that are set will be updated. +""" +input CryptoAddressPatch { + address: String + id: UUID + isPrimary: Boolean + isVerified: Boolean + ownerId: UUID +} + +""" +A connection to a list of `CryptoAddress` values. +""" +type CryptoAddressesConnection { + """ + A list of edges which contains the `CryptoAddress` and cursor to aid in pagination. + """ + edges: [CryptoAddressesEdge!]! + + """ + A list of `CryptoAddress` objects. + """ + nodes: [CryptoAddress!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `CryptoAddress` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `CryptoAddress` edge in the connection. +""" +type CryptoAddressesEdge { + """ + A cursor for use in pagination. + """ + cursor: Cursor + + """ + The `CryptoAddress` at the end of the edge. + """ + node: CryptoAddress! +} + +""" +Methods to use when ordering `CryptoAddress`. +""" +enum CryptoAddressesOrderBy { + ADDRESS_ASC + ADDRESS_DESC + ID_ASC + ID_DESC + IS_PRIMARY_ASC + IS_PRIMARY_DESC + IS_VERIFIED_ASC + IS_VERIFIED_DESC + NATURAL + OWNER_ID_ASC + OWNER_ID_DESC + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC +} + +""" +A location in a connection that can be used for resuming pagination. +""" +scalar Cursor + +type Database { + """ + Reads and enables pagination through a set of `ApiExtension`. + """ + apiExtensions( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: ApiExtensionCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: ApiExtensionFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `ApiExtension`. + """ + orderBy: [ApiExtensionsOrderBy!] = [PRIMARY_KEY_ASC] + ): ApiExtensionsConnection! + + """ + Reads and enables pagination through a set of `ApiModule`. + """ + apiModules( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: ApiModuleCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: ApiModuleFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `ApiModule`. + """ + orderBy: [ApiModulesOrderBy!] = [PRIMARY_KEY_ASC] + ): ApiModulesConnection! + + """ + Reads and enables pagination through a set of `ApiSchema`. + """ + apiSchemata( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: ApiSchemaCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: ApiSchemaFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `ApiSchema`. + """ + orderBy: [ApiSchemataOrderBy!] = [PRIMARY_KEY_ASC] + ): ApiSchemataConnection! + + """ + Reads and enables pagination through a set of `Api`. + """ + apis( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: ApiCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: ApiFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `Api`. + """ + orderBy: [ApisOrderBy!] = [PRIMARY_KEY_ASC] + ): ApisConnection! + + """ + Reads and enables pagination through a set of `Api`. + """ + apisByApiExtensionDatabaseIdAndApiId( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: ApiCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: ApiFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `Api`. + """ + orderBy: [ApisOrderBy!] = [PRIMARY_KEY_ASC] + ): DatabaseApisByApiExtensionDatabaseIdAndApiIdManyToManyConnection! + + """ + Reads and enables pagination through a set of `App`. + """ + apps( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: AppCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: AppFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `App`. + """ + orderBy: [AppsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppsConnection! + + """ + Reads and enables pagination through a set of `CheckConstraint`. + """ + checkConstraints( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: CheckConstraintCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: CheckConstraintFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `CheckConstraint`. + """ + orderBy: [CheckConstraintsOrderBy!] = [PRIMARY_KEY_ASC] + ): CheckConstraintsConnection! + createdAt: Datetime + + """ + Reads and enables pagination through a set of `DatabaseExtension`. + """ + databaseExtensions( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: DatabaseExtensionCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: DatabaseExtensionFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `DatabaseExtension`. + """ + orderBy: [DatabaseExtensionsOrderBy!] = [PRIMARY_KEY_ASC] + ): DatabaseExtensionsConnection! + + """ + Reads and enables pagination through a set of `DatabaseProvision`. + """ + databaseProvisions( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: DatabaseProvisionCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: DatabaseProvisionFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `DatabaseProvision`. + """ + orderBy: [DatabaseProvisionsOrderBy!] = [PRIMARY_KEY_ASC] + ): DatabaseProvisionsConnection! + + """ + Reads and enables pagination through a set of `Domain`. + """ + domains( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: DomainCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: DomainFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `Domain`. + """ + orderBy: [DomainsOrderBy!] = [PRIMARY_KEY_ASC] + ): DomainsConnection! + + """ + Reads and enables pagination through a set of `Field`. + """ + fields( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: FieldCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: FieldFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `Field`. + """ + orderBy: [FieldsOrderBy!] = [PRIMARY_KEY_ASC] + ): FieldsConnection! + + """ + Reads and enables pagination through a set of `ForeignKeyConstraint`. + """ + foreignKeyConstraints( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: ForeignKeyConstraintCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: ForeignKeyConstraintFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `ForeignKeyConstraint`. + """ + orderBy: [ForeignKeyConstraintsOrderBy!] = [PRIMARY_KEY_ASC] + ): ForeignKeyConstraintsConnection! + + """ + Reads and enables pagination through a set of `FullTextSearch`. + """ + fullTextSearches( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: FullTextSearchCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: FullTextSearchFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `FullTextSearch`. + """ + orderBy: [FullTextSearchesOrderBy!] = [PRIMARY_KEY_ASC] + ): FullTextSearchesConnection! + hash: UUID + id: UUID! + + """ + Reads and enables pagination through a set of `Index`. + """ + indices( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: IndexCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: IndexFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `Index`. + """ + orderBy: [IndicesOrderBy!] = [PRIMARY_KEY_ASC] + ): IndicesConnection! + label: String + + """ + Reads and enables pagination through a set of `LimitFunction`. + """ + limitFunctions( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: LimitFunctionCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: LimitFunctionFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `LimitFunction`. + """ + orderBy: [LimitFunctionsOrderBy!] = [PRIMARY_KEY_ASC] + ): LimitFunctionsConnection! + name: String + + """ + Reads a single `User` that is related to this `Database`. + """ + owner: User + ownerId: UUID + + """ + Reads and enables pagination through a set of `Policy`. + """ + policies( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: PolicyCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: PolicyFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `Policy`. + """ + orderBy: [PoliciesOrderBy!] = [PRIMARY_KEY_ASC] + ): PoliciesConnection! + + """ + Reads and enables pagination through a set of `PrimaryKeyConstraint`. + """ + primaryKeyConstraints( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: PrimaryKeyConstraintCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: PrimaryKeyConstraintFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `PrimaryKeyConstraint`. + """ + orderBy: [PrimaryKeyConstraintsOrderBy!] = [PRIMARY_KEY_ASC] + ): PrimaryKeyConstraintsConnection! + privateSchemaName: String + + """ + Reads and enables pagination through a set of `Procedure`. + """ + procedures( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: ProcedureCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: ProcedureFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `Procedure`. + """ + orderBy: [ProceduresOrderBy!] = [PRIMARY_KEY_ASC] + ): ProceduresConnection! + + """ + Reads and enables pagination through a set of `RlsFunction`. + """ + rlsFunctions( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: RlsFunctionCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: RlsFunctionFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `RlsFunction`. + """ + orderBy: [RlsFunctionsOrderBy!] = [PRIMARY_KEY_ASC] + ): RlsFunctionsConnection! + + """ + Reads and enables pagination through a set of `SchemaGrant`. + """ + schemaGrants( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: SchemaGrantCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: SchemaGrantFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `SchemaGrant`. + """ + orderBy: [SchemaGrantsOrderBy!] = [PRIMARY_KEY_ASC] + ): SchemaGrantsConnection! + schemaName: String + + """ + Reads and enables pagination through a set of `Schema`. + """ + schemata( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: SchemaCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: SchemaFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `Schema`. + """ + orderBy: [SchemataOrderBy!] = [PRIMARY_KEY_ASC] + ): SchemataConnection! + + """ + Reads and enables pagination through a set of `SiteMetadatum`. + """ + siteMetadata( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: SiteMetadatumCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: SiteMetadatumFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `SiteMetadatum`. + """ + orderBy: [SiteMetadataOrderBy!] = [PRIMARY_KEY_ASC] + ): SiteMetadataConnection! + + """ + Reads and enables pagination through a set of `SiteModule`. + """ + siteModules( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: SiteModuleCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: SiteModuleFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `SiteModule`. + """ + orderBy: [SiteModulesOrderBy!] = [PRIMARY_KEY_ASC] + ): SiteModulesConnection! + + """ + Reads and enables pagination through a set of `SiteTheme`. + """ + siteThemes( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: SiteThemeCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: SiteThemeFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `SiteTheme`. + """ + orderBy: [SiteThemesOrderBy!] = [PRIMARY_KEY_ASC] + ): SiteThemesConnection! + + """ + Reads and enables pagination through a set of `Site`. + """ + sites( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: SiteCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: SiteFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `Site`. + """ + orderBy: [SitesOrderBy!] = [PRIMARY_KEY_ASC] + ): SitesConnection! + + """ + Reads and enables pagination through a set of `TableGrant`. + """ + tableGrants( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: TableGrantCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: TableGrantFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `TableGrant`. + """ + orderBy: [TableGrantsOrderBy!] = [PRIMARY_KEY_ASC] + ): TableGrantsConnection! + + """ + Reads and enables pagination through a set of `Table`. + """ + tables( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: TableCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: TableFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `Table`. + """ + orderBy: [TablesOrderBy!] = [PRIMARY_KEY_ASC] + ): TablesConnection! + + """ + Reads and enables pagination through a set of `TriggerFunction`. + """ + triggerFunctions( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: TriggerFunctionCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: TriggerFunctionFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `TriggerFunction`. + """ + orderBy: [TriggerFunctionsOrderBy!] = [PRIMARY_KEY_ASC] + ): TriggerFunctionsConnection! + + """ + Reads and enables pagination through a set of `Trigger`. + """ + triggers( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: TriggerCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: TriggerFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `Trigger`. + """ + orderBy: [TriggersOrderBy!] = [PRIMARY_KEY_ASC] + ): TriggersConnection! + + """ + Reads and enables pagination through a set of `UniqueConstraint`. + """ + uniqueConstraints( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: UniqueConstraintCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: UniqueConstraintFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `UniqueConstraint`. + """ + orderBy: [UniqueConstraintsOrderBy!] = [PRIMARY_KEY_ASC] + ): UniqueConstraintsConnection! + updatedAt: Datetime +} + +""" +A connection to a list of `Api` values, with data from `ApiExtension`. +""" +type DatabaseApisByApiExtensionDatabaseIdAndApiIdManyToManyConnection { + """ + A list of edges which contains the `Api`, info from the `ApiExtension`, and the cursor to aid in pagination. + """ + edges: [DatabaseApisByApiExtensionDatabaseIdAndApiIdManyToManyEdge!]! + + """ + A list of `Api` objects. + """ + nodes: [Api!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `Api` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `Api` edge in the connection, with data from `ApiExtension`. +""" +type DatabaseApisByApiExtensionDatabaseIdAndApiIdManyToManyEdge { + """ + Reads and enables pagination through a set of `ApiExtension`. + """ + apiExtensions( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: ApiExtensionCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: ApiExtensionFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `ApiExtension`. + """ + orderBy: [ApiExtensionsOrderBy!] = [PRIMARY_KEY_ASC] + ): ApiExtensionsConnection! + + """ + A cursor for use in pagination. + """ + cursor: Cursor + + """ + The `Api` at the end of the edge. + """ + node: Api! +} + +""" +A condition to be used against `Database` object types. All fields are tested +for equality and combined with a logical ‘and.’ +""" +input DatabaseCondition { + """ + Checks for equality with the object’s `createdAt` field. + """ + createdAt: Datetime + + """ + Checks for equality with the object’s `hash` field. + """ + hash: UUID + + """ + Checks for equality with the object’s `id` field. + """ + id: UUID + + """ + Checks for equality with the object’s `label` field. + """ + label: String + + """ + Checks for equality with the object’s `name` field. + """ + name: String + + """ + Checks for equality with the object’s `ownerId` field. + """ + ownerId: UUID + + """ + Checks for equality with the object’s `privateSchemaName` field. + """ + privateSchemaName: String + + """ + Checks for equality with the object’s `schemaName` field. + """ + schemaName: String + + """ + Checks for equality with the object’s `updatedAt` field. + """ + updatedAt: Datetime +} + +type DatabaseExtension { + """ + Reads a single `Database` that is related to this `DatabaseExtension`. + """ + database: Database + databaseId: UUID! + + """ + Reads a single `Extension` that is related to this `DatabaseExtension`. + """ + extensionByName: Extension + name: String! +} + +""" +A condition to be used against `DatabaseExtension` object types. All fields are +tested for equality and combined with a logical ‘and.’ +""" +input DatabaseExtensionCondition { + """ + Checks for equality with the object’s `databaseId` field. + """ + databaseId: UUID + + """ + Checks for equality with the object’s `name` field. + """ + name: String +} + +""" +A filter to be used against `DatabaseExtension` object types. All fields are combined with a logical ‘and.’ +""" +input DatabaseExtensionFilter { + """ + Checks for all expressions in this list. + """ + and: [DatabaseExtensionFilter!] + + """ + Filter by the object’s `databaseId` field. + """ + databaseId: UUIDFilter + + """ + Filter by the object’s `name` field. + """ + name: StringFilter + + """ + Negates the expression. + """ + not: DatabaseExtensionFilter + + """ + Checks for any expressions in this list. + """ + or: [DatabaseExtensionFilter!] +} + +""" +An input for mutations affecting `DatabaseExtension` +""" +input DatabaseExtensionInput { + databaseId: UUID! + name: String! +} + +""" +Represents an update to a `DatabaseExtension`. Fields that are set will be updated. +""" +input DatabaseExtensionPatch { + databaseId: UUID + name: String +} + +""" +A connection to a list of `DatabaseExtension` values. +""" +type DatabaseExtensionsConnection { + """ + A list of edges which contains the `DatabaseExtension` and cursor to aid in pagination. + """ + edges: [DatabaseExtensionsEdge!]! + + """ + A list of `DatabaseExtension` objects. + """ + nodes: [DatabaseExtension!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `DatabaseExtension` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `DatabaseExtension` edge in the connection. +""" +type DatabaseExtensionsEdge { + """ + A cursor for use in pagination. + """ + cursor: Cursor + + """ + The `DatabaseExtension` at the end of the edge. + """ + node: DatabaseExtension! +} + +""" +Methods to use when ordering `DatabaseExtension`. +""" +enum DatabaseExtensionsOrderBy { + DATABASE_ID_ASC + DATABASE_ID_DESC + NAME_ASC + NAME_DESC + NATURAL + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC +} + +""" +A filter to be used against `Database` object types. All fields are combined with a logical ‘and.’ +""" +input DatabaseFilter { + """ + Checks for all expressions in this list. + """ + and: [DatabaseFilter!] + + """ + Filter by the object’s `createdAt` field. + """ + createdAt: DatetimeFilter + + """ + Filter by the object’s `hash` field. + """ + hash: UUIDFilter + + """ + Filter by the object’s `id` field. + """ + id: UUIDFilter + + """ + Filter by the object’s `label` field. + """ + label: StringFilter + + """ + Filter by the object’s `name` field. + """ + name: StringFilter + + """ + Negates the expression. + """ + not: DatabaseFilter + + """ + Checks for any expressions in this list. + """ + or: [DatabaseFilter!] + + """ + Filter by the object’s `ownerId` field. + """ + ownerId: UUIDFilter + + """ + Filter by the object’s `privateSchemaName` field. + """ + privateSchemaName: StringFilter + + """ + Filter by the object’s `schemaName` field. + """ + schemaName: StringFilter + + """ + Filter by the object’s `updatedAt` field. + """ + updatedAt: DatetimeFilter +} + +""" +An input for mutations affecting `Database` +""" +input DatabaseInput { + createdAt: Datetime + hash: UUID + id: UUID + label: String + name: String + ownerId: UUID + privateSchemaName: String + schemaName: String + updatedAt: Datetime +} + +""" +Represents an update to a `Database`. Fields that are set will be updated. +""" +input DatabasePatch { + createdAt: Datetime + hash: UUID + id: UUID + label: String + name: String + ownerId: UUID + privateSchemaName: String + schemaName: String + updatedAt: Datetime +} + +""" +Tracks database provisioning requests and their status +""" +type DatabaseProvision { + completedAt: Datetime + createdAt: Datetime! + + """ + Reads a single `Database` that is related to this `DatabaseProvision`. + """ + database: Database + databaseId: UUID + + """ + The name for the new database + """ + databaseName: String! + + """ + Base domain for the database (e.g., example.com) + """ + domain: String! + errorMessage: String + id: UUID! + + """ + Array of module IDs to install, or ["all"] for all modules + """ + modules: [String]! + + """ + Additional configuration options for provisioning + """ + options: JSON! + + """ + UUID of the user who owns this database + """ + ownerId: UUID! + + """ + Current status: pending, in_progress, completed, or failed + """ + status: String! + + """ + Subdomain prefix for the database. If null, auto-generated using unique_names + random chars + """ + subdomain: String + updatedAt: Datetime! +} + +""" +A condition to be used against `DatabaseProvision` object types. All fields are +tested for equality and combined with a logical ‘and.’ +""" +input DatabaseProvisionCondition { + """ + Checks for equality with the object’s `completedAt` field. + """ + completedAt: Datetime + + """ + Checks for equality with the object’s `createdAt` field. + """ + createdAt: Datetime + + """ + Checks for equality with the object’s `databaseId` field. + """ + databaseId: UUID + + """ + Checks for equality with the object’s `databaseName` field. + """ + databaseName: String + + """ + Checks for equality with the object’s `domain` field. + """ + domain: String + + """ + Checks for equality with the object’s `errorMessage` field. + """ + errorMessage: String + + """ + Checks for equality with the object’s `id` field. + """ + id: UUID + + """ + Checks for equality with the object’s `modules` field. + """ + modules: [String] + + """ + Checks for equality with the object’s `options` field. + """ + options: JSON + + """ + Checks for equality with the object’s `ownerId` field. + """ + ownerId: UUID + + """ + Checks for equality with the object’s `status` field. + """ + status: String + + """ + Checks for equality with the object’s `subdomain` field. + """ + subdomain: String + + """ + Checks for equality with the object’s `updatedAt` field. + """ + updatedAt: Datetime +} + +""" +A filter to be used against `DatabaseProvision` object types. All fields are combined with a logical ‘and.’ +""" +input DatabaseProvisionFilter { + """ + Checks for all expressions in this list. + """ + and: [DatabaseProvisionFilter!] + + """ + Filter by the object’s `completedAt` field. + """ + completedAt: DatetimeFilter + + """ + Filter by the object’s `createdAt` field. + """ + createdAt: DatetimeFilter + + """ + Filter by the object’s `databaseId` field. + """ + databaseId: UUIDFilter + + """ + Filter by the object’s `databaseName` field. + """ + databaseName: StringFilter + + """ + Filter by the object’s `domain` field. + """ + domain: StringFilter + + """ + Filter by the object’s `errorMessage` field. + """ + errorMessage: StringFilter + + """ + Filter by the object’s `id` field. + """ + id: UUIDFilter + + """ + Filter by the object’s `modules` field. + """ + modules: StringListFilter + + """ + Negates the expression. + """ + not: DatabaseProvisionFilter + + """ + Filter by the object’s `options` field. + """ + options: JSONFilter + + """ + Checks for any expressions in this list. + """ + or: [DatabaseProvisionFilter!] + + """ + Filter by the object’s `ownerId` field. + """ + ownerId: UUIDFilter + + """ + Filter by the object’s `status` field. + """ + status: StringFilter + + """ + Filter by the object’s `subdomain` field. + """ + subdomain: StringFilter + + """ + Filter by the object’s `updatedAt` field. + """ + updatedAt: DatetimeFilter +} + +""" +An input for mutations affecting `DatabaseProvision` +""" +input DatabaseProvisionInput { + completedAt: Datetime + createdAt: Datetime + databaseId: UUID + + """ + The name for the new database + """ + databaseName: String! + + """ + Base domain for the database (e.g., example.com) + """ + domain: String! + errorMessage: String + id: UUID + + """ + Array of module IDs to install, or ["all"] for all modules + """ + modules: [String] + + """ + Additional configuration options for provisioning + """ + options: JSON + + """ + UUID of the user who owns this database + """ + ownerId: UUID! + + """ + Current status: pending, in_progress, completed, or failed + """ + status: String + + """ + Subdomain prefix for the database. If null, auto-generated using unique_names + random chars + """ + subdomain: String + updatedAt: Datetime +} + +""" +Represents an update to a `DatabaseProvision`. Fields that are set will be updated. +""" +input DatabaseProvisionPatch { + completedAt: Datetime + createdAt: Datetime + databaseId: UUID + + """ + The name for the new database + """ + databaseName: String + + """ + Base domain for the database (e.g., example.com) + """ + domain: String + errorMessage: String + id: UUID + + """ + Array of module IDs to install, or ["all"] for all modules + """ + modules: [String] + + """ + Additional configuration options for provisioning + """ + options: JSON + + """ + UUID of the user who owns this database + """ + ownerId: UUID + + """ + Current status: pending, in_progress, completed, or failed + """ + status: String + + """ + Subdomain prefix for the database. If null, auto-generated using unique_names + random chars + """ + subdomain: String + updatedAt: Datetime +} + +""" +A connection to a list of `DatabaseProvision` values. +""" +type DatabaseProvisionsConnection { + """ + A list of edges which contains the `DatabaseProvision` and cursor to aid in pagination. + """ + edges: [DatabaseProvisionsEdge!]! + + """ + A list of `DatabaseProvision` objects. + """ + nodes: [DatabaseProvision!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `DatabaseProvision` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `DatabaseProvision` edge in the connection. +""" +type DatabaseProvisionsEdge { + """ + A cursor for use in pagination. + """ + cursor: Cursor + + """ + The `DatabaseProvision` at the end of the edge. + """ + node: DatabaseProvision! +} + +""" +Methods to use when ordering `DatabaseProvision`. +""" +enum DatabaseProvisionsOrderBy { + COMPLETED_AT_ASC + COMPLETED_AT_DESC + CREATED_AT_ASC + CREATED_AT_DESC + DATABASE_ID_ASC + DATABASE_ID_DESC + DATABASE_NAME_ASC + DATABASE_NAME_DESC + DOMAIN_ASC + DOMAIN_DESC + ERROR_MESSAGE_ASC + ERROR_MESSAGE_DESC + ID_ASC + ID_DESC + MODULES_ASC + MODULES_DESC + NATURAL + OPTIONS_ASC + OPTIONS_DESC + OWNER_ID_ASC + OWNER_ID_DESC + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC + STATUS_ASC + STATUS_DESC + SUBDOMAIN_ASC + SUBDOMAIN_DESC + UPDATED_AT_ASC + UPDATED_AT_DESC +} + +""" +A connection to a list of `Database` values. +""" +type DatabasesConnection { + """ + A list of edges which contains the `Database` and cursor to aid in pagination. + """ + edges: [DatabasesEdge!]! + + """ + A list of `Database` objects. + """ + nodes: [Database!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `Database` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `Database` edge in the connection. +""" +type DatabasesEdge { + """ + A cursor for use in pagination. + """ + cursor: Cursor + + """ + The `Database` at the end of the edge. + """ + node: Database! +} + +""" +Methods to use when ordering `Database`. +""" +enum DatabasesOrderBy { + CREATED_AT_ASC + CREATED_AT_DESC + HASH_ASC + HASH_DESC + ID_ASC + ID_DESC + LABEL_ASC + LABEL_DESC + NAME_ASC + NAME_DESC + NATURAL + OWNER_ID_ASC + OWNER_ID_DESC + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC + PRIVATE_SCHEMA_NAME_ASC + PRIVATE_SCHEMA_NAME_DESC + SCHEMA_NAME_ASC + SCHEMA_NAME_DESC + UPDATED_AT_ASC + UPDATED_AT_DESC +} + +""" +A point in time as described by the [ISO +8601](https://en.wikipedia.org/wiki/ISO_8601) standard. May or may not include a timezone. +""" +scalar Datetime + +""" +A filter to be used against Datetime fields. All fields are combined with a logical ‘and.’ +""" +input DatetimeFilter { + """ + Not equal to the specified value, treating null like an ordinary value. + """ + distinctFrom: Datetime + + """ + Equal to the specified value. + """ + equalTo: Datetime + + """ + Greater than the specified value. + """ + greaterThan: Datetime + + """ + Greater than or equal to the specified value. + """ + greaterThanOrEqualTo: Datetime + + """ + Included in the specified list. + """ + in: [Datetime!] + + """ + Is null (if `true` is specified) or is not null (if `false` is specified). + """ + isNull: Boolean + + """ + Less than the specified value. + """ + lessThan: Datetime + + """ + Less than or equal to the specified value. + """ + lessThanOrEqualTo: Datetime + + """ + Equal to the specified value, treating null like an ordinary value. + """ + notDistinctFrom: Datetime + + """ + Not equal to the specified value. + """ + notEqualTo: Datetime + + """ + Not included in the specified list. + """ + notIn: [Datetime!] +} + +""" +All input for the `deleteAddress` mutation. +""" +input DeleteAddressInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +""" +The output of our delete `Address` mutation. +""" +type DeleteAddressPayload { + """ + The `Address` that was deleted by this mutation. + """ + address: Address + + """ + An edge for our `Address`. May be used by Relay 1. + """ + addressEdge( + """ + The method to use when ordering `Address`. + """ + orderBy: [AddressesOrderBy!] = [PRIMARY_KEY_ASC] + ): AddressesEdge + + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + deletedAddressNodeId: ID + + """ + Reads a single `User` that is related to this `Address`. + """ + owner: User + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the `deleteApiByDatabaseIdAndName` mutation. +""" +input DeleteApiByDatabaseIdAndNameInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + databaseId: UUID! + name: String! +} + +""" +All input for the `deleteApiExtensionBySchemaNameAndApiId` mutation. +""" +input DeleteApiExtensionBySchemaNameAndApiIdInput { + apiId: UUID! + + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + schemaName: String! +} + +""" +All input for the `deleteApiExtension` mutation. +""" +input DeleteApiExtensionInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +""" +The output of our delete `ApiExtension` mutation. +""" +type DeleteApiExtensionPayload { + """ + Reads a single `Api` that is related to this `ApiExtension`. + """ + api: Api + + """ + The `ApiExtension` that was deleted by this mutation. + """ + apiExtension: ApiExtension + + """ + An edge for our `ApiExtension`. May be used by Relay 1. + """ + apiExtensionEdge( + """ + The method to use when ordering `ApiExtension`. + """ + orderBy: [ApiExtensionsOrderBy!] = [PRIMARY_KEY_ASC] + ): ApiExtensionsEdge + + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `Database` that is related to this `ApiExtension`. + """ + database: Database + deletedApiExtensionNodeId: ID + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the `deleteApi` mutation. +""" +input DeleteApiInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +""" +All input for the `deleteApiModule` mutation. +""" +input DeleteApiModuleInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +""" +The output of our delete `ApiModule` mutation. +""" +type DeleteApiModulePayload { + """ + Reads a single `Api` that is related to this `ApiModule`. + """ + api: Api + + """ + The `ApiModule` that was deleted by this mutation. + """ + apiModule: ApiModule + + """ + An edge for our `ApiModule`. May be used by Relay 1. + """ + apiModuleEdge( + """ + The method to use when ordering `ApiModule`. + """ + orderBy: [ApiModulesOrderBy!] = [PRIMARY_KEY_ASC] + ): ApiModulesEdge + + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `Database` that is related to this `ApiModule`. + """ + database: Database + deletedApiModuleNodeId: ID + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +The output of our delete `Api` mutation. +""" +type DeleteApiPayload { + """ + The `Api` that was deleted by this mutation. + """ + api: Api + + """ + An edge for our `Api`. May be used by Relay 1. + """ + apiEdge( + """ + The method to use when ordering `Api`. + """ + orderBy: [ApisOrderBy!] = [PRIMARY_KEY_ASC] + ): ApisEdge + + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `Database` that is related to this `Api`. + """ + database: Database + deletedApiNodeId: ID + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the `deleteApiSchemaByApiIdAndSchemaId` mutation. +""" +input DeleteApiSchemaByApiIdAndSchemaIdInput { + apiId: UUID! + + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + schemaId: UUID! +} + +""" +All input for the `deleteApiSchema` mutation. +""" +input DeleteApiSchemaInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +""" +The output of our delete `ApiSchema` mutation. +""" +type DeleteApiSchemaPayload { + """ + Reads a single `Api` that is related to this `ApiSchema`. + """ + api: Api + + """ + The `ApiSchema` that was deleted by this mutation. + """ + apiSchema: ApiSchema + + """ + An edge for our `ApiSchema`. May be used by Relay 1. + """ + apiSchemaEdge( + """ + The method to use when ordering `ApiSchema`. + """ + orderBy: [ApiSchemataOrderBy!] = [PRIMARY_KEY_ASC] + ): ApiSchemataEdge + + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `Database` that is related to this `ApiSchema`. + """ + database: Database + deletedApiSchemaNodeId: ID + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + Reads a single `Schema` that is related to this `ApiSchema`. + """ + schema: Schema +} + +""" +All input for the `deleteAppAchievementByActorIdAndName` mutation. +""" +input DeleteAppAchievementByActorIdAndNameInput { + actorId: UUID! + + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + name: String! +} + +""" +All input for the `deleteAppAchievement` mutation. +""" +input DeleteAppAchievementInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +""" +The output of our delete `AppAchievement` mutation. +""" +type DeleteAppAchievementPayload { + """ + Reads a single `User` that is related to this `AppAchievement`. + """ + actor: User + + """ + The `AppAchievement` that was deleted by this mutation. + """ + appAchievement: AppAchievement + + """ + An edge for our `AppAchievement`. May be used by Relay 1. + """ + appAchievementEdge( + """ + The method to use when ordering `AppAchievement`. + """ + orderBy: [AppAchievementsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppAchievementsEdge + + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + deletedAppAchievementNodeId: ID + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the `deleteAppBySiteId` mutation. +""" +input DeleteAppBySiteIdInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + siteId: UUID! +} + +""" +All input for the `deleteAppGrant` mutation. +""" +input DeleteAppGrantInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +""" +The output of our delete `AppGrant` mutation. +""" +type DeleteAppGrantPayload { + """ + The `AppGrant` that was deleted by this mutation. + """ + appGrant: AppGrant + + """ + An edge for our `AppGrant`. May be used by Relay 1. + """ + appGrantEdge( + """ + The method to use when ordering `AppGrant`. + """ + orderBy: [AppGrantsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppGrantsEdge + + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + deletedAppGrantNodeId: ID + + """ + Reads a single `User` that is related to this `AppGrant`. + """ + grantor: User + + """ + Reads a single `AppMembership` that is related to this `AppGrant`. + """ + membership: AppMembership + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the `deleteApp` mutation. +""" +input DeleteAppInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +""" +All input for the `deleteAppLevelByName` mutation. +""" +input DeleteAppLevelByNameInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + name: String! +} + +""" +All input for the `deleteAppLevel` mutation. +""" +input DeleteAppLevelInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +""" +The output of our delete `AppLevel` mutation. +""" +type DeleteAppLevelPayload { + """ + The `AppLevel` that was deleted by this mutation. + """ + appLevel: AppLevel + + """ + An edge for our `AppLevel`. May be used by Relay 1. + """ + appLevelEdge( + """ + The method to use when ordering `AppLevel`. + """ + orderBy: [AppLevelsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppLevelsEdge + + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + deletedAppLevelNodeId: ID + + """ + Reads a single `User` that is related to this `AppLevel`. + """ + owner: User + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the `deleteAppLevelRequirementByNameAndLevel` mutation. +""" +input DeleteAppLevelRequirementByNameAndLevelInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + level: String! + name: String! +} + +""" +All input for the `deleteAppLevelRequirement` mutation. +""" +input DeleteAppLevelRequirementInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +""" +The output of our delete `AppLevelRequirement` mutation. +""" +type DeleteAppLevelRequirementPayload { + """ + The `AppLevelRequirement` that was deleted by this mutation. + """ + appLevelRequirement: AppLevelRequirement + + """ + An edge for our `AppLevelRequirement`. May be used by Relay 1. + """ + appLevelRequirementEdge( + """ + The method to use when ordering `AppLevelRequirement`. + """ + orderBy: [AppLevelRequirementsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppLevelRequirementsEdge + + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + deletedAppLevelRequirementNodeId: ID + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the `deleteAppLimitByNameAndActorId` mutation. +""" +input DeleteAppLimitByNameAndActorIdInput { + actorId: UUID! + + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + name: String! +} + +""" +All input for the `deleteAppLimitDefaultByName` mutation. +""" +input DeleteAppLimitDefaultByNameInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + name: String! +} + +""" +All input for the `deleteAppLimitDefault` mutation. +""" +input DeleteAppLimitDefaultInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +""" +The output of our delete `AppLimitDefault` mutation. +""" +type DeleteAppLimitDefaultPayload { + """ + The `AppLimitDefault` that was deleted by this mutation. + """ + appLimitDefault: AppLimitDefault + + """ + An edge for our `AppLimitDefault`. May be used by Relay 1. + """ + appLimitDefaultEdge( + """ + The method to use when ordering `AppLimitDefault`. + """ + orderBy: [AppLimitDefaultsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppLimitDefaultsEdge + + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + deletedAppLimitDefaultNodeId: ID + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the `deleteAppLimit` mutation. +""" +input DeleteAppLimitInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +""" +The output of our delete `AppLimit` mutation. +""" +type DeleteAppLimitPayload { + """ + Reads a single `User` that is related to this `AppLimit`. + """ + actor: User + + """ + The `AppLimit` that was deleted by this mutation. + """ + appLimit: AppLimit + + """ + An edge for our `AppLimit`. May be used by Relay 1. + """ + appLimitEdge( + """ + The method to use when ordering `AppLimit`. + """ + orderBy: [AppLimitsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppLimitsEdge + + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + deletedAppLimitNodeId: ID + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the `deleteAppMembershipByActorId` mutation. +""" +input DeleteAppMembershipByActorIdInput { + actorId: UUID! + + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String +} + +""" +All input for the `deleteAppMembershipDefault` mutation. +""" +input DeleteAppMembershipDefaultInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +""" +The output of our delete `AppMembershipDefault` mutation. +""" +type DeleteAppMembershipDefaultPayload { + """ + The `AppMembershipDefault` that was deleted by this mutation. + """ + appMembershipDefault: AppMembershipDefault + + """ + An edge for our `AppMembershipDefault`. May be used by Relay 1. + """ + appMembershipDefaultEdge( + """ + The method to use when ordering `AppMembershipDefault`. + """ + orderBy: [AppMembershipDefaultsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppMembershipDefaultsEdge + + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + deletedAppMembershipDefaultNodeId: ID + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the `deleteAppMembership` mutation. +""" +input DeleteAppMembershipInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +""" +The output of our delete `AppMembership` mutation. +""" +type DeleteAppMembershipPayload { + """ + Reads a single `User` that is related to this `AppMembership`. + """ + actor: User + + """ + The `AppMembership` that was deleted by this mutation. + """ + appMembership: AppMembership + + """ + An edge for our `AppMembership`. May be used by Relay 1. + """ + appMembershipEdge( + """ + The method to use when ordering `AppMembership`. + """ + orderBy: [AppMembershipsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppMembershipsEdge + + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + deletedAppMembershipNodeId: ID + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +The output of our delete `App` mutation. +""" +type DeleteAppPayload { + """ + The `App` that was deleted by this mutation. + """ + app: App + + """ + An edge for our `App`. May be used by Relay 1. + """ + appEdge( + """ + The method to use when ordering `App`. + """ + orderBy: [AppsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppsEdge + + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `Database` that is related to this `App`. + """ + database: Database + deletedAppNodeId: ID + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + Reads a single `Site` that is related to this `App`. + """ + site: Site +} + +""" +All input for the `deleteAppPermissionByBitnum` mutation. +""" +input DeleteAppPermissionByBitnumInput { + bitnum: Int! + + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String +} + +""" +All input for the `deleteAppPermissionByName` mutation. +""" +input DeleteAppPermissionByNameInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + name: String! +} + +""" +All input for the `deleteAppPermissionDefault` mutation. +""" +input DeleteAppPermissionDefaultInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +""" +The output of our delete `AppPermissionDefault` mutation. +""" +type DeleteAppPermissionDefaultPayload { + """ + The `AppPermissionDefault` that was deleted by this mutation. + """ + appPermissionDefault: AppPermissionDefault + + """ + An edge for our `AppPermissionDefault`. May be used by Relay 1. + """ + appPermissionDefaultEdge( + """ + The method to use when ordering `AppPermissionDefault`. + """ + orderBy: [AppPermissionDefaultsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppPermissionDefaultsEdge + + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + deletedAppPermissionDefaultNodeId: ID + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the `deleteAppPermission` mutation. +""" +input DeleteAppPermissionInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +""" +The output of our delete `AppPermission` mutation. +""" +type DeleteAppPermissionPayload { + """ + The `AppPermission` that was deleted by this mutation. + """ + appPermission: AppPermission + + """ + An edge for our `AppPermission`. May be used by Relay 1. + """ + appPermissionEdge( + """ + The method to use when ordering `AppPermission`. + """ + orderBy: [AppPermissionsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppPermissionsEdge + + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + deletedAppPermissionNodeId: ID + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the `deleteAppStep` mutation. +""" +input DeleteAppStepInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +""" +The output of our delete `AppStep` mutation. +""" +type DeleteAppStepPayload { + """ + Reads a single `User` that is related to this `AppStep`. + """ + actor: User + + """ + The `AppStep` that was deleted by this mutation. + """ + appStep: AppStep + + """ + An edge for our `AppStep`. May be used by Relay 1. + """ + appStepEdge( + """ + The method to use when ordering `AppStep`. + """ + orderBy: [AppStepsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppStepsEdge + + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + deletedAppStepNodeId: ID + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the `deleteAuthAccountByServiceAndIdentifier` mutation. +""" +input DeleteAuthAccountByServiceAndIdentifierInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + A unique identifier for the user within the service + """ + identifier: String! + + """ + The service used, e.g. `twitter` or `github`. + """ + service: String! +} + +""" +All input for the `deleteAuthAccount` mutation. +""" +input DeleteAuthAccountInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +""" +The output of our delete `AuthAccount` mutation. +""" +type DeleteAuthAccountPayload { + """ + The `AuthAccount` that was deleted by this mutation. + """ + authAccount: AuthAccount + + """ + An edge for our `AuthAccount`. May be used by Relay 1. + """ + authAccountEdge( + """ + The method to use when ordering `AuthAccount`. + """ + orderBy: [AuthAccountsOrderBy!] = [PRIMARY_KEY_ASC] + ): AuthAccountsEdge + + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + deletedAuthAccountNodeId: ID + + """ + Reads a single `User` that is related to this `AuthAccount`. + """ + owner: User + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the `deleteCheckConstraintByTableIdAndName` mutation. +""" +input DeleteCheckConstraintByTableIdAndNameInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + name: String! + tableId: UUID! +} + +""" +All input for the `deleteCheckConstraint` mutation. +""" +input DeleteCheckConstraintInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +""" +The output of our delete `CheckConstraint` mutation. +""" +type DeleteCheckConstraintPayload { + """ + The `CheckConstraint` that was deleted by this mutation. + """ + checkConstraint: CheckConstraint + + """ + An edge for our `CheckConstraint`. May be used by Relay 1. + """ + checkConstraintEdge( + """ + The method to use when ordering `CheckConstraint`. + """ + orderBy: [CheckConstraintsOrderBy!] = [PRIMARY_KEY_ASC] + ): CheckConstraintsEdge + + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `Database` that is related to this `CheckConstraint`. + """ + database: Database + deletedCheckConstraintNodeId: ID + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + Reads a single `Table` that is related to this `CheckConstraint`. + """ + table: Table +} + +""" +All input for the `deleteClaimedInvite` mutation. +""" +input DeleteClaimedInviteInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +""" +The output of our delete `ClaimedInvite` mutation. +""" +type DeleteClaimedInvitePayload { + """ + The `ClaimedInvite` that was deleted by this mutation. + """ + claimedInvite: ClaimedInvite + + """ + An edge for our `ClaimedInvite`. May be used by Relay 1. + """ + claimedInviteEdge( + """ + The method to use when ordering `ClaimedInvite`. + """ + orderBy: [ClaimedInvitesOrderBy!] = [PRIMARY_KEY_ASC] + ): ClaimedInvitesEdge + + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + deletedClaimedInviteNodeId: ID + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + Reads a single `User` that is related to this `ClaimedInvite`. + """ + receiver: User + + """ + Reads a single `User` that is related to this `ClaimedInvite`. + """ + sender: User +} + +""" +All input for the `deleteConnectedAccountByServiceAndIdentifier` mutation. +""" +input DeleteConnectedAccountByServiceAndIdentifierInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + A unique identifier for the user within the service + """ + identifier: String! + + """ + The service used, e.g. `twitter` or `github`. + """ + service: String! +} + +""" +All input for the `deleteConnectedAccount` mutation. +""" +input DeleteConnectedAccountInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +""" +The output of our delete `ConnectedAccount` mutation. +""" +type DeleteConnectedAccountPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + The `ConnectedAccount` that was deleted by this mutation. + """ + connectedAccount: ConnectedAccount + + """ + An edge for our `ConnectedAccount`. May be used by Relay 1. + """ + connectedAccountEdge( + """ + The method to use when ordering `ConnectedAccount`. + """ + orderBy: [ConnectedAccountsOrderBy!] = [PRIMARY_KEY_ASC] + ): ConnectedAccountsEdge + deletedConnectedAccountNodeId: ID + + """ + Reads a single `User` that is related to this `ConnectedAccount`. + """ + owner: User + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the `deleteCryptoAddressByAddress` mutation. +""" +input DeleteCryptoAddressByAddressInput { + address: String! + + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String +} + +""" +All input for the `deleteCryptoAddress` mutation. +""" +input DeleteCryptoAddressInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +""" +The output of our delete `CryptoAddress` mutation. +""" +type DeleteCryptoAddressPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + The `CryptoAddress` that was deleted by this mutation. + """ + cryptoAddress: CryptoAddress + + """ + An edge for our `CryptoAddress`. May be used by Relay 1. + """ + cryptoAddressEdge( + """ + The method to use when ordering `CryptoAddress`. + """ + orderBy: [CryptoAddressesOrderBy!] = [PRIMARY_KEY_ASC] + ): CryptoAddressesEdge + deletedCryptoAddressNodeId: ID + + """ + Reads a single `User` that is related to this `CryptoAddress`. + """ + owner: User + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the `deleteDatabaseByPrivateSchemaName` mutation. +""" +input DeleteDatabaseByPrivateSchemaNameInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + privateSchemaName: String! +} + +""" +All input for the `deleteDatabaseBySchemaName` mutation. +""" +input DeleteDatabaseBySchemaNameInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + schemaName: String! +} + +""" +All input for the `deleteDatabaseExtensionByDatabaseIdAndName` mutation. +""" +input DeleteDatabaseExtensionByDatabaseIdAndNameInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + databaseId: UUID! + name: String! +} + +""" +All input for the `deleteDatabaseExtension` mutation. +""" +input DeleteDatabaseExtensionInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + name: String! +} + +""" +The output of our delete `DatabaseExtension` mutation. +""" +type DeleteDatabaseExtensionPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `Database` that is related to this `DatabaseExtension`. + """ + database: Database + + """ + The `DatabaseExtension` that was deleted by this mutation. + """ + databaseExtension: DatabaseExtension + + """ + An edge for our `DatabaseExtension`. May be used by Relay 1. + """ + databaseExtensionEdge( + """ + The method to use when ordering `DatabaseExtension`. + """ + orderBy: [DatabaseExtensionsOrderBy!] = [PRIMARY_KEY_ASC] + ): DatabaseExtensionsEdge + deletedDatabaseExtensionNodeId: ID + + """ + Reads a single `Extension` that is related to this `DatabaseExtension`. + """ + extensionByName: Extension + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the `deleteDatabase` mutation. +""" +input DeleteDatabaseInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +""" +The output of our delete `Database` mutation. +""" +type DeleteDatabasePayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + The `Database` that was deleted by this mutation. + """ + database: Database + + """ + An edge for our `Database`. May be used by Relay 1. + """ + databaseEdge( + """ + The method to use when ordering `Database`. + """ + orderBy: [DatabasesOrderBy!] = [PRIMARY_KEY_ASC] + ): DatabasesEdge + deletedDatabaseNodeId: ID + + """ + Reads a single `User` that is related to this `Database`. + """ + owner: User + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the `deleteDatabaseProvision` mutation. +""" +input DeleteDatabaseProvisionInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +""" +The output of our delete `DatabaseProvision` mutation. +""" +type DeleteDatabaseProvisionPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `Database` that is related to this `DatabaseProvision`. + """ + database: Database + + """ + The `DatabaseProvision` that was deleted by this mutation. + """ + databaseProvision: DatabaseProvision + + """ + An edge for our `DatabaseProvision`. May be used by Relay 1. + """ + databaseProvisionEdge( + """ + The method to use when ordering `DatabaseProvision`. + """ + orderBy: [DatabaseProvisionsOrderBy!] = [PRIMARY_KEY_ASC] + ): DatabaseProvisionsEdge + deletedDatabaseProvisionNodeId: ID + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the `deleteDomainBySubdomainAndDomain` mutation. +""" +input DeleteDomainBySubdomainAndDomainInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + domain: String! + subdomain: String! +} + +""" +All input for the `deleteDomain` mutation. +""" +input DeleteDomainInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +""" +The output of our delete `Domain` mutation. +""" +type DeleteDomainPayload { + """ + Reads a single `Api` that is related to this `Domain`. + """ + api: Api + + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `Database` that is related to this `Domain`. + """ + database: Database + deletedDomainNodeId: ID + + """ + The `Domain` that was deleted by this mutation. + """ + domain: Domain + + """ + An edge for our `Domain`. May be used by Relay 1. + """ + domainEdge( + """ + The method to use when ordering `Domain`. + """ + orderBy: [DomainsOrderBy!] = [PRIMARY_KEY_ASC] + ): DomainsEdge + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + Reads a single `Site` that is related to this `Domain`. + """ + site: Site +} + +""" +All input for the `deleteEmailByEmail` mutation. +""" +input DeleteEmailByEmailInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + email: String! +} + +""" +All input for the `deleteEmail` mutation. +""" +input DeleteEmailInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +""" +The output of our delete `Email` mutation. +""" +type DeleteEmailPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + deletedEmailNodeId: ID + + """ + The `Email` that was deleted by this mutation. + """ + email: Email + + """ + An edge for our `Email`. May be used by Relay 1. + """ + emailEdge( + """ + The method to use when ordering `Email`. + """ + orderBy: [EmailsOrderBy!] = [PRIMARY_KEY_ASC] + ): EmailsEdge + + """ + Reads a single `User` that is related to this `Email`. + """ + owner: User + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the `deleteExtension` mutation. +""" +input DeleteExtensionInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + name: String! +} + +""" +The output of our delete `Extension` mutation. +""" +type DeleteExtensionPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + deletedExtensionNodeId: ID + + """ + The `Extension` that was deleted by this mutation. + """ + extension: Extension + + """ + An edge for our `Extension`. May be used by Relay 1. + """ + extensionEdge( + """ + The method to use when ordering `Extension`. + """ + orderBy: [ExtensionsOrderBy!] = [PRIMARY_KEY_ASC] + ): ExtensionsEdge + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the `deleteFieldByTableIdAndName` mutation. +""" +input DeleteFieldByTableIdAndNameInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + name: String! + tableId: UUID! +} + +""" +All input for the `deleteField` mutation. +""" +input DeleteFieldInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +""" +The output of our delete `Field` mutation. +""" +type DeleteFieldPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `Database` that is related to this `Field`. + """ + database: Database + deletedFieldNodeId: ID + + """ + The `Field` that was deleted by this mutation. + """ + field: Field + + """ + An edge for our `Field`. May be used by Relay 1. + """ + fieldEdge( + """ + The method to use when ordering `Field`. + """ + orderBy: [FieldsOrderBy!] = [PRIMARY_KEY_ASC] + ): FieldsEdge + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + Reads a single `Table` that is related to this `Field`. + """ + table: Table +} + +""" +All input for the `deleteForeignKeyConstraintByTableIdAndName` mutation. +""" +input DeleteForeignKeyConstraintByTableIdAndNameInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + name: String! + tableId: UUID! +} + +""" +All input for the `deleteForeignKeyConstraint` mutation. +""" +input DeleteForeignKeyConstraintInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +""" +The output of our delete `ForeignKeyConstraint` mutation. +""" +type DeleteForeignKeyConstraintPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `Database` that is related to this `ForeignKeyConstraint`. + """ + database: Database + deletedForeignKeyConstraintNodeId: ID + + """ + The `ForeignKeyConstraint` that was deleted by this mutation. + """ + foreignKeyConstraint: ForeignKeyConstraint + + """ + An edge for our `ForeignKeyConstraint`. May be used by Relay 1. + """ + foreignKeyConstraintEdge( + """ + The method to use when ordering `ForeignKeyConstraint`. + """ + orderBy: [ForeignKeyConstraintsOrderBy!] = [PRIMARY_KEY_ASC] + ): ForeignKeyConstraintsEdge + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + Reads a single `Table` that is related to this `ForeignKeyConstraint`. + """ + refTable: Table + + """ + Reads a single `Table` that is related to this `ForeignKeyConstraint`. + """ + table: Table +} + +""" +All input for the `deleteFullTextSearch` mutation. +""" +input DeleteFullTextSearchInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +""" +The output of our delete `FullTextSearch` mutation. +""" +type DeleteFullTextSearchPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `Database` that is related to this `FullTextSearch`. + """ + database: Database + deletedFullTextSearchNodeId: ID + + """ + The `FullTextSearch` that was deleted by this mutation. + """ + fullTextSearch: FullTextSearch + + """ + An edge for our `FullTextSearch`. May be used by Relay 1. + """ + fullTextSearchEdge( + """ + The method to use when ordering `FullTextSearch`. + """ + orderBy: [FullTextSearchesOrderBy!] = [PRIMARY_KEY_ASC] + ): FullTextSearchesEdge + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + Reads a single `Table` that is related to this `FullTextSearch`. + """ + table: Table +} + +""" +All input for the `deleteGrant` mutation. +""" +input DeleteGrantInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +""" +The output of our delete `Grant` mutation. +""" +type DeleteGrantPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + deletedGrantNodeId: ID + + """ + Reads a single `User` that is related to this `Grant`. + """ + entity: User + + """ + The `Grant` that was deleted by this mutation. + """ + grant: Grant + + """ + An edge for our `Grant`. May be used by Relay 1. + """ + grantEdge( + """ + The method to use when ordering `Grant`. + """ + orderBy: [GrantsOrderBy!] = [PRIMARY_KEY_ASC] + ): GrantsEdge + + """ + Reads a single `User` that is related to this `Grant`. + """ + grantor: User + + """ + Reads a single `Membership` that is related to this `Grant`. + """ + membership: Membership + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the `deleteIndexByDatabaseIdAndName` mutation. +""" +input DeleteIndexByDatabaseIdAndNameInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + databaseId: UUID! + name: String! +} + +""" +All input for the `deleteIndex` mutation. +""" +input DeleteIndexInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +""" +The output of our delete `Index` mutation. +""" +type DeleteIndexPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `Database` that is related to this `Index`. + """ + database: Database + deletedIndexNodeId: ID + + """ + The `Index` that was deleted by this mutation. + """ + index: Index + + """ + An edge for our `Index`. May be used by Relay 1. + """ + indexEdge( + """ + The method to use when ordering `Index`. + """ + orderBy: [IndicesOrderBy!] = [PRIMARY_KEY_ASC] + ): IndicesEdge + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + Reads a single `Table` that is related to this `Index`. + """ + table: Table +} + +""" +All input for the `deleteInviteByEmailAndSenderId` mutation. +""" +input DeleteInviteByEmailAndSenderIdInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + email: String! + senderId: UUID! +} + +""" +All input for the `deleteInviteByInviteToken` mutation. +""" +input DeleteInviteByInviteTokenInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + inviteToken: String! +} + +""" +All input for the `deleteInvite` mutation. +""" +input DeleteInviteInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +""" +The output of our delete `Invite` mutation. +""" +type DeleteInvitePayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + deletedInviteNodeId: ID + + """ + The `Invite` that was deleted by this mutation. + """ + invite: Invite + + """ + An edge for our `Invite`. May be used by Relay 1. + """ + inviteEdge( + """ + The method to use when ordering `Invite`. + """ + orderBy: [InvitesOrderBy!] = [PRIMARY_KEY_ASC] + ): InvitesEdge + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + Reads a single `User` that is related to this `Invite`. + """ + sender: User +} + +""" +All input for the `deleteLimitFunctionByDatabaseIdAndName` mutation. +""" +input DeleteLimitFunctionByDatabaseIdAndNameInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + databaseId: UUID! + name: String! +} + +""" +All input for the `deleteLimitFunction` mutation. +""" +input DeleteLimitFunctionInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +""" +The output of our delete `LimitFunction` mutation. +""" +type DeleteLimitFunctionPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `Database` that is related to this `LimitFunction`. + """ + database: Database + deletedLimitFunctionNodeId: ID + + """ + The `LimitFunction` that was deleted by this mutation. + """ + limitFunction: LimitFunction + + """ + An edge for our `LimitFunction`. May be used by Relay 1. + """ + limitFunctionEdge( + """ + The method to use when ordering `LimitFunction`. + """ + orderBy: [LimitFunctionsOrderBy!] = [PRIMARY_KEY_ASC] + ): LimitFunctionsEdge + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + Reads a single `Table` that is related to this `LimitFunction`. + """ + table: Table +} + +""" +All input for the `deleteMemberByActorIdAndEntityId` mutation. +""" +input DeleteMemberByActorIdAndEntityIdInput { + actorId: UUID! + + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + entityId: UUID! +} + +""" +All input for the `deleteMemberClaimedInvite` mutation. +""" +input DeleteMemberClaimedInviteInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +""" +The output of our delete `MemberClaimedInvite` mutation. +""" +type DeleteMemberClaimedInvitePayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + deletedMemberClaimedInviteNodeId: ID + + """ + Reads a single `User` that is related to this `MemberClaimedInvite`. + """ + entity: User + + """ + The `MemberClaimedInvite` that was deleted by this mutation. + """ + memberClaimedInvite: MemberClaimedInvite + + """ + An edge for our `MemberClaimedInvite`. May be used by Relay 1. + """ + memberClaimedInviteEdge( + """ + The method to use when ordering `MemberClaimedInvite`. + """ + orderBy: [MemberClaimedInvitesOrderBy!] = [PRIMARY_KEY_ASC] + ): MemberClaimedInvitesEdge + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + Reads a single `User` that is related to this `MemberClaimedInvite`. + """ + receiver: User + + """ + Reads a single `User` that is related to this `MemberClaimedInvite`. + """ + sender: User +} + +""" +All input for the `deleteMember` mutation. +""" +input DeleteMemberInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +""" +All input for the `deleteMemberInviteByEmailAndSenderIdAndEntityId` mutation. +""" +input DeleteMemberInviteByEmailAndSenderIdAndEntityIdInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + email: String! + entityId: UUID! + senderId: UUID! +} + +""" +All input for the `deleteMemberInviteByInviteToken` mutation. +""" +input DeleteMemberInviteByInviteTokenInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + inviteToken: String! +} + +""" +All input for the `deleteMemberInvite` mutation. +""" +input DeleteMemberInviteInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +""" +The output of our delete `MemberInvite` mutation. +""" +type DeleteMemberInvitePayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + deletedMemberInviteNodeId: ID + + """ + Reads a single `User` that is related to this `MemberInvite`. + """ + entity: User + + """ + The `MemberInvite` that was deleted by this mutation. + """ + memberInvite: MemberInvite + + """ + An edge for our `MemberInvite`. May be used by Relay 1. + """ + memberInviteEdge( + """ + The method to use when ordering `MemberInvite`. + """ + orderBy: [MemberInvitesOrderBy!] = [PRIMARY_KEY_ASC] + ): MemberInvitesEdge + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + Reads a single `User` that is related to this `MemberInvite`. + """ + sender: User +} + +""" +The output of our delete `Member` mutation. +""" +type DeleteMemberPayload { + """ + Reads a single `User` that is related to this `Member`. + """ + actor: User + + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + deletedMemberNodeId: ID + + """ + Reads a single `User` that is related to this `Member`. + """ + entity: User + + """ + The `Member` that was deleted by this mutation. + """ + member: Member + + """ + An edge for our `Member`. May be used by Relay 1. + """ + memberEdge( + """ + The method to use when ordering `Member`. + """ + orderBy: [MembersOrderBy!] = [PRIMARY_KEY_ASC] + ): MembersEdge + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the `deleteMembershipByActorIdAndEntityId` mutation. +""" +input DeleteMembershipByActorIdAndEntityIdInput { + actorId: UUID! + + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + entityId: UUID! +} + +""" +All input for the `deleteMembershipDefaultByEntityId` mutation. +""" +input DeleteMembershipDefaultByEntityIdInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + entityId: UUID! +} + +""" +All input for the `deleteMembershipDefault` mutation. +""" +input DeleteMembershipDefaultInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +""" +The output of our delete `MembershipDefault` mutation. +""" +type DeleteMembershipDefaultPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + deletedMembershipDefaultNodeId: ID + + """ + Reads a single `User` that is related to this `MembershipDefault`. + """ + entity: User + + """ + The `MembershipDefault` that was deleted by this mutation. + """ + membershipDefault: MembershipDefault + + """ + An edge for our `MembershipDefault`. May be used by Relay 1. + """ + membershipDefaultEdge( + """ + The method to use when ordering `MembershipDefault`. + """ + orderBy: [MembershipDefaultsOrderBy!] = [PRIMARY_KEY_ASC] + ): MembershipDefaultsEdge + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the `deleteMembership` mutation. +""" +input DeleteMembershipInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +""" +All input for the `deleteMembershipLimitByNameAndActorIdAndEntityId` mutation. +""" +input DeleteMembershipLimitByNameAndActorIdAndEntityIdInput { + actorId: UUID! + + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + entityId: UUID! + name: String! +} + +""" +All input for the `deleteMembershipLimitDefaultByName` mutation. +""" +input DeleteMembershipLimitDefaultByNameInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + name: String! +} + +""" +All input for the `deleteMembershipLimitDefault` mutation. +""" +input DeleteMembershipLimitDefaultInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +""" +The output of our delete `MembershipLimitDefault` mutation. +""" +type DeleteMembershipLimitDefaultPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + deletedMembershipLimitDefaultNodeId: ID + + """ + The `MembershipLimitDefault` that was deleted by this mutation. + """ + membershipLimitDefault: MembershipLimitDefault + + """ + An edge for our `MembershipLimitDefault`. May be used by Relay 1. + """ + membershipLimitDefaultEdge( + """ + The method to use when ordering `MembershipLimitDefault`. + """ + orderBy: [MembershipLimitDefaultsOrderBy!] = [PRIMARY_KEY_ASC] + ): MembershipLimitDefaultsEdge + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the `deleteMembershipLimit` mutation. +""" +input DeleteMembershipLimitInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +""" +The output of our delete `MembershipLimit` mutation. +""" +type DeleteMembershipLimitPayload { + """ + Reads a single `User` that is related to this `MembershipLimit`. + """ + actor: User + + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + deletedMembershipLimitNodeId: ID + + """ + Reads a single `User` that is related to this `MembershipLimit`. + """ + entity: User + + """ + The `MembershipLimit` that was deleted by this mutation. + """ + membershipLimit: MembershipLimit + + """ + An edge for our `MembershipLimit`. May be used by Relay 1. + """ + membershipLimitEdge( + """ + The method to use when ordering `MembershipLimit`. + """ + orderBy: [MembershipLimitsOrderBy!] = [PRIMARY_KEY_ASC] + ): MembershipLimitsEdge + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +The output of our delete `Membership` mutation. +""" +type DeleteMembershipPayload { + """ + Reads a single `User` that is related to this `Membership`. + """ + actor: User + + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + deletedMembershipNodeId: ID + + """ + Reads a single `User` that is related to this `Membership`. + """ + entity: User + + """ + The `Membership` that was deleted by this mutation. + """ + membership: Membership + + """ + An edge for our `Membership`. May be used by Relay 1. + """ + membershipEdge( + """ + The method to use when ordering `Membership`. + """ + orderBy: [MembershipsOrderBy!] = [PRIMARY_KEY_ASC] + ): MembershipsEdge + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the `deleteMembershipPermissionByBitnum` mutation. +""" +input DeleteMembershipPermissionByBitnumInput { + bitnum: Int! + + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String +} + +""" +All input for the `deleteMembershipPermissionByName` mutation. +""" +input DeleteMembershipPermissionByNameInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + name: String! +} + +""" +All input for the `deleteMembershipPermissionDefault` mutation. +""" +input DeleteMembershipPermissionDefaultInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +""" +The output of our delete `MembershipPermissionDefault` mutation. +""" +type DeleteMembershipPermissionDefaultPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + deletedMembershipPermissionDefaultNodeId: ID + + """ + Reads a single `User` that is related to this `MembershipPermissionDefault`. + """ + entity: User + + """ + The `MembershipPermissionDefault` that was deleted by this mutation. + """ + membershipPermissionDefault: MembershipPermissionDefault + + """ + An edge for our `MembershipPermissionDefault`. May be used by Relay 1. + """ + membershipPermissionDefaultEdge( + """ + The method to use when ordering `MembershipPermissionDefault`. + """ + orderBy: [MembershipPermissionDefaultsOrderBy!] = [PRIMARY_KEY_ASC] + ): MembershipPermissionDefaultsEdge + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the `deleteMembershipPermission` mutation. +""" +input DeleteMembershipPermissionInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +""" +The output of our delete `MembershipPermission` mutation. +""" +type DeleteMembershipPermissionPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + deletedMembershipPermissionNodeId: ID + + """ + The `MembershipPermission` that was deleted by this mutation. + """ + membershipPermission: MembershipPermission + + """ + An edge for our `MembershipPermission`. May be used by Relay 1. + """ + membershipPermissionEdge( + """ + The method to use when ordering `MembershipPermission`. + """ + orderBy: [MembershipPermissionsOrderBy!] = [PRIMARY_KEY_ASC] + ): MembershipPermissionsEdge + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the `deleteMembershipTypeByName` mutation. +""" +input DeleteMembershipTypeByNameInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + name: String! +} + +""" +All input for the `deleteMembershipType` mutation. +""" +input DeleteMembershipTypeInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: Int! +} + +""" +The output of our delete `MembershipType` mutation. +""" +type DeleteMembershipTypePayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + deletedMembershipTypeNodeId: ID + + """ + The `MembershipType` that was deleted by this mutation. + """ + membershipType: MembershipType + + """ + An edge for our `MembershipType`. May be used by Relay 1. + """ + membershipTypeEdge( + """ + The method to use when ordering `MembershipType`. + """ + orderBy: [MembershipTypesOrderBy!] = [PRIMARY_KEY_ASC] + ): MembershipTypesEdge + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the `deleteOrganizationSetting` mutation. +""" +input DeleteOrganizationSettingInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +""" +The output of our delete `OrganizationSetting` mutation. +""" +type DeleteOrganizationSettingPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + deletedOrganizationSettingNodeId: ID + + """ + Reads a single `User` that is related to this `OrganizationSetting`. + """ + organization: User + + """ + The `OrganizationSetting` that was deleted by this mutation. + """ + organizationSetting: OrganizationSetting + + """ + An edge for our `OrganizationSetting`. May be used by Relay 1. + """ + organizationSettingEdge( + """ + The method to use when ordering `OrganizationSetting`. + """ + orderBy: [OrganizationSettingsOrderBy!] = [PRIMARY_KEY_ASC] + ): OrganizationSettingsEdge + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the `deletePhoneNumberByNumber` mutation. +""" +input DeletePhoneNumberByNumberInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + number: String! +} + +""" +All input for the `deletePhoneNumber` mutation. +""" +input DeletePhoneNumberInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +""" +The output of our delete `PhoneNumber` mutation. +""" +type DeletePhoneNumberPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + deletedPhoneNumberNodeId: ID + + """ + Reads a single `User` that is related to this `PhoneNumber`. + """ + owner: User + + """ + The `PhoneNumber` that was deleted by this mutation. + """ + phoneNumber: PhoneNumber + + """ + An edge for our `PhoneNumber`. May be used by Relay 1. + """ + phoneNumberEdge( + """ + The method to use when ordering `PhoneNumber`. + """ + orderBy: [PhoneNumbersOrderBy!] = [PRIMARY_KEY_ASC] + ): PhoneNumbersEdge + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the `deletePolicyByTableIdAndName` mutation. +""" +input DeletePolicyByTableIdAndNameInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + name: String! + tableId: UUID! +} + +""" +All input for the `deletePolicy` mutation. +""" +input DeletePolicyInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +""" +The output of our delete `Policy` mutation. +""" +type DeletePolicyPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `Database` that is related to this `Policy`. + """ + database: Database + deletedPolicyNodeId: ID + + """ + The `Policy` that was deleted by this mutation. + """ + policy: Policy + + """ + An edge for our `Policy`. May be used by Relay 1. + """ + policyEdge( + """ + The method to use when ordering `Policy`. + """ + orderBy: [PoliciesOrderBy!] = [PRIMARY_KEY_ASC] + ): PoliciesEdge + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + Reads a single `Table` that is related to this `Policy`. + """ + table: Table +} + +""" +All input for the `deletePrimaryKeyConstraintByTableIdAndName` mutation. +""" +input DeletePrimaryKeyConstraintByTableIdAndNameInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + name: String! + tableId: UUID! +} + +""" +All input for the `deletePrimaryKeyConstraint` mutation. +""" +input DeletePrimaryKeyConstraintInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +""" +The output of our delete `PrimaryKeyConstraint` mutation. +""" +type DeletePrimaryKeyConstraintPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `Database` that is related to this `PrimaryKeyConstraint`. + """ + database: Database + deletedPrimaryKeyConstraintNodeId: ID + + """ + The `PrimaryKeyConstraint` that was deleted by this mutation. + """ + primaryKeyConstraint: PrimaryKeyConstraint + + """ + An edge for our `PrimaryKeyConstraint`. May be used by Relay 1. + """ + primaryKeyConstraintEdge( + """ + The method to use when ordering `PrimaryKeyConstraint`. + """ + orderBy: [PrimaryKeyConstraintsOrderBy!] = [PRIMARY_KEY_ASC] + ): PrimaryKeyConstraintsEdge + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + Reads a single `Table` that is related to this `PrimaryKeyConstraint`. + """ + table: Table +} + +""" +All input for the `deleteProcedureByDatabaseIdAndName` mutation. +""" +input DeleteProcedureByDatabaseIdAndNameInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + databaseId: UUID! + name: String! +} + +""" +All input for the `deleteProcedure` mutation. +""" +input DeleteProcedureInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +""" +The output of our delete `Procedure` mutation. +""" +type DeleteProcedurePayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `Database` that is related to this `Procedure`. + """ + database: Database + deletedProcedureNodeId: ID + + """ + The `Procedure` that was deleted by this mutation. + """ + procedure: Procedure + + """ + An edge for our `Procedure`. May be used by Relay 1. + """ + procedureEdge( + """ + The method to use when ordering `Procedure`. + """ + orderBy: [ProceduresOrderBy!] = [PRIMARY_KEY_ASC] + ): ProceduresEdge + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the `deleteRlsFunctionByDatabaseIdAndName` mutation. +""" +input DeleteRlsFunctionByDatabaseIdAndNameInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + databaseId: UUID! + name: String! +} + +""" +All input for the `deleteRlsFunction` mutation. +""" +input DeleteRlsFunctionInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +""" +The output of our delete `RlsFunction` mutation. +""" +type DeleteRlsFunctionPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `Database` that is related to this `RlsFunction`. + """ + database: Database + deletedRlsFunctionNodeId: ID + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + The `RlsFunction` that was deleted by this mutation. + """ + rlsFunction: RlsFunction + + """ + An edge for our `RlsFunction`. May be used by Relay 1. + """ + rlsFunctionEdge( + """ + The method to use when ordering `RlsFunction`. + """ + orderBy: [RlsFunctionsOrderBy!] = [PRIMARY_KEY_ASC] + ): RlsFunctionsEdge + + """ + Reads a single `Table` that is related to this `RlsFunction`. + """ + table: Table +} + +""" +All input for the `deleteRoleTypeByName` mutation. +""" +input DeleteRoleTypeByNameInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + name: String! +} + +""" +All input for the `deleteRoleType` mutation. +""" +input DeleteRoleTypeInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: Int! +} + +""" +The output of our delete `RoleType` mutation. +""" +type DeleteRoleTypePayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + deletedRoleTypeNodeId: ID + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + The `RoleType` that was deleted by this mutation. + """ + roleType: RoleType + + """ + An edge for our `RoleType`. May be used by Relay 1. + """ + roleTypeEdge( + """ + The method to use when ordering `RoleType`. + """ + orderBy: [RoleTypesOrderBy!] = [PRIMARY_KEY_ASC] + ): RoleTypesEdge +} + +""" +All input for the `deleteSchemaByDatabaseIdAndName` mutation. +""" +input DeleteSchemaByDatabaseIdAndNameInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + databaseId: UUID! + name: String! +} + +""" +All input for the `deleteSchemaBySchemaName` mutation. +""" +input DeleteSchemaBySchemaNameInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + schemaName: String! +} + +""" +All input for the `deleteSchemaGrant` mutation. +""" +input DeleteSchemaGrantInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +""" +The output of our delete `SchemaGrant` mutation. +""" +type DeleteSchemaGrantPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `Database` that is related to this `SchemaGrant`. + """ + database: Database + deletedSchemaGrantNodeId: ID + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + Reads a single `Schema` that is related to this `SchemaGrant`. + """ + schema: Schema + + """ + The `SchemaGrant` that was deleted by this mutation. + """ + schemaGrant: SchemaGrant + + """ + An edge for our `SchemaGrant`. May be used by Relay 1. + """ + schemaGrantEdge( + """ + The method to use when ordering `SchemaGrant`. + """ + orderBy: [SchemaGrantsOrderBy!] = [PRIMARY_KEY_ASC] + ): SchemaGrantsEdge +} + +""" +All input for the `deleteSchema` mutation. +""" +input DeleteSchemaInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +""" +The output of our delete `Schema` mutation. +""" +type DeleteSchemaPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `Database` that is related to this `Schema`. + """ + database: Database + deletedSchemaNodeId: ID + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + The `Schema` that was deleted by this mutation. + """ + schema: Schema + + """ + An edge for our `Schema`. May be used by Relay 1. + """ + schemaEdge( + """ + The method to use when ordering `Schema`. + """ + orderBy: [SchemataOrderBy!] = [PRIMARY_KEY_ASC] + ): SchemataEdge +} + +""" +All input for the `deleteSite` mutation. +""" +input DeleteSiteInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +""" +All input for the `deleteSiteMetadatum` mutation. +""" +input DeleteSiteMetadatumInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +""" +The output of our delete `SiteMetadatum` mutation. +""" +type DeleteSiteMetadatumPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `Database` that is related to this `SiteMetadatum`. + """ + database: Database + deletedSiteMetadatumNodeId: ID + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + Reads a single `Site` that is related to this `SiteMetadatum`. + """ + site: Site + + """ + The `SiteMetadatum` that was deleted by this mutation. + """ + siteMetadatum: SiteMetadatum + + """ + An edge for our `SiteMetadatum`. May be used by Relay 1. + """ + siteMetadatumEdge( + """ + The method to use when ordering `SiteMetadatum`. + """ + orderBy: [SiteMetadataOrderBy!] = [PRIMARY_KEY_ASC] + ): SiteMetadataEdge +} + +""" +All input for the `deleteSiteModule` mutation. +""" +input DeleteSiteModuleInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +""" +The output of our delete `SiteModule` mutation. +""" +type DeleteSiteModulePayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `Database` that is related to this `SiteModule`. + """ + database: Database + deletedSiteModuleNodeId: ID + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + Reads a single `Site` that is related to this `SiteModule`. + """ + site: Site + + """ + The `SiteModule` that was deleted by this mutation. + """ + siteModule: SiteModule + + """ + An edge for our `SiteModule`. May be used by Relay 1. + """ + siteModuleEdge( + """ + The method to use when ordering `SiteModule`. + """ + orderBy: [SiteModulesOrderBy!] = [PRIMARY_KEY_ASC] + ): SiteModulesEdge +} + +""" +The output of our delete `Site` mutation. +""" +type DeleteSitePayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `Database` that is related to this `Site`. + """ + database: Database + deletedSiteNodeId: ID + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + The `Site` that was deleted by this mutation. + """ + site: Site + + """ + An edge for our `Site`. May be used by Relay 1. + """ + siteEdge( + """ + The method to use when ordering `Site`. + """ + orderBy: [SitesOrderBy!] = [PRIMARY_KEY_ASC] + ): SitesEdge +} + +""" +All input for the `deleteSiteTheme` mutation. +""" +input DeleteSiteThemeInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +""" +The output of our delete `SiteTheme` mutation. +""" +type DeleteSiteThemePayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `Database` that is related to this `SiteTheme`. + """ + database: Database + deletedSiteThemeNodeId: ID + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + Reads a single `Site` that is related to this `SiteTheme`. + """ + site: Site + + """ + The `SiteTheme` that was deleted by this mutation. + """ + siteTheme: SiteTheme + + """ + An edge for our `SiteTheme`. May be used by Relay 1. + """ + siteThemeEdge( + """ + The method to use when ordering `SiteTheme`. + """ + orderBy: [SiteThemesOrderBy!] = [PRIMARY_KEY_ASC] + ): SiteThemesEdge +} + +""" +All input for the `deleteTableByDatabaseIdAndName` mutation. +""" +input DeleteTableByDatabaseIdAndNameInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + databaseId: UUID! + name: String! +} + +""" +All input for the `deleteTableGrant` mutation. +""" +input DeleteTableGrantInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +""" +The output of our delete `TableGrant` mutation. +""" +type DeleteTableGrantPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `Database` that is related to this `TableGrant`. + """ + database: Database + deletedTableGrantNodeId: ID + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + Reads a single `Table` that is related to this `TableGrant`. + """ + table: Table + + """ + The `TableGrant` that was deleted by this mutation. + """ + tableGrant: TableGrant + + """ + An edge for our `TableGrant`. May be used by Relay 1. + """ + tableGrantEdge( + """ + The method to use when ordering `TableGrant`. + """ + orderBy: [TableGrantsOrderBy!] = [PRIMARY_KEY_ASC] + ): TableGrantsEdge +} + +""" +All input for the `deleteTable` mutation. +""" +input DeleteTableInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +""" +The output of our delete `Table` mutation. +""" +type DeleteTablePayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `Database` that is related to this `Table`. + """ + database: Database + deletedTableNodeId: ID + + """ + Reads a single `Table` that is related to this `Table`. + """ + inherits: Table + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + Reads a single `Schema` that is related to this `Table`. + """ + schema: Schema + + """ + The `Table` that was deleted by this mutation. + """ + table: Table + + """ + An edge for our `Table`. May be used by Relay 1. + """ + tableEdge( + """ + The method to use when ordering `Table`. + """ + orderBy: [TablesOrderBy!] = [PRIMARY_KEY_ASC] + ): TablesEdge +} + +""" +All input for the `deleteTriggerByTableIdAndName` mutation. +""" +input DeleteTriggerByTableIdAndNameInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + name: String! + tableId: UUID! +} + +""" +All input for the `deleteTriggerFunctionByDatabaseIdAndName` mutation. +""" +input DeleteTriggerFunctionByDatabaseIdAndNameInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + databaseId: UUID! + name: String! +} + +""" +All input for the `deleteTriggerFunction` mutation. +""" +input DeleteTriggerFunctionInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +""" +The output of our delete `TriggerFunction` mutation. +""" +type DeleteTriggerFunctionPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `Database` that is related to this `TriggerFunction`. + """ + database: Database + deletedTriggerFunctionNodeId: ID + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + The `TriggerFunction` that was deleted by this mutation. + """ + triggerFunction: TriggerFunction + + """ + An edge for our `TriggerFunction`. May be used by Relay 1. + """ + triggerFunctionEdge( + """ + The method to use when ordering `TriggerFunction`. + """ + orderBy: [TriggerFunctionsOrderBy!] = [PRIMARY_KEY_ASC] + ): TriggerFunctionsEdge +} + +""" +All input for the `deleteTrigger` mutation. +""" +input DeleteTriggerInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +""" +The output of our delete `Trigger` mutation. +""" +type DeleteTriggerPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `Database` that is related to this `Trigger`. + """ + database: Database + deletedTriggerNodeId: ID + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + Reads a single `Table` that is related to this `Trigger`. + """ + table: Table + + """ + The `Trigger` that was deleted by this mutation. + """ + trigger: Trigger + + """ + An edge for our `Trigger`. May be used by Relay 1. + """ + triggerEdge( + """ + The method to use when ordering `Trigger`. + """ + orderBy: [TriggersOrderBy!] = [PRIMARY_KEY_ASC] + ): TriggersEdge +} + +""" +All input for the `deleteUniqueConstraintByTableIdAndName` mutation. +""" +input DeleteUniqueConstraintByTableIdAndNameInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + name: String! + tableId: UUID! +} + +""" +All input for the `deleteUniqueConstraint` mutation. +""" +input DeleteUniqueConstraintInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +""" +The output of our delete `UniqueConstraint` mutation. +""" +type DeleteUniqueConstraintPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `Database` that is related to this `UniqueConstraint`. + """ + database: Database + deletedUniqueConstraintNodeId: ID + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + Reads a single `Table` that is related to this `UniqueConstraint`. + """ + table: Table + + """ + The `UniqueConstraint` that was deleted by this mutation. + """ + uniqueConstraint: UniqueConstraint + + """ + An edge for our `UniqueConstraint`. May be used by Relay 1. + """ + uniqueConstraintEdge( + """ + The method to use when ordering `UniqueConstraint`. + """ + orderBy: [UniqueConstraintsOrderBy!] = [PRIMARY_KEY_ASC] + ): UniqueConstraintsEdge +} + +""" +All input for the `deleteUserByUsername` mutation. +""" +input DeleteUserByUsernameInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + username: String! +} + +""" +All input for the `deleteUserConnection` mutation. +""" +input DeleteUserConnectionInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +""" +The output of our delete `UserConnection` mutation. +""" +type DeleteUserConnectionPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + deletedUserConnectionNodeId: ID + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + Reads a single `User` that is related to this `UserConnection`. + """ + requester: User + + """ + Reads a single `User` that is related to this `UserConnection`. + """ + responder: User + + """ + The `UserConnection` that was deleted by this mutation. + """ + userConnection: UserConnection + + """ + An edge for our `UserConnection`. May be used by Relay 1. + """ + userConnectionEdge( + """ + The method to use when ordering `UserConnection`. + """ + orderBy: [UserConnectionsOrderBy!] = [PRIMARY_KEY_ASC] + ): UserConnectionsEdge +} + +""" +All input for the `deleteUserContact` mutation. +""" +input DeleteUserContactInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +""" +The output of our delete `UserContact` mutation. +""" +type DeleteUserContactPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + deletedUserContactNodeId: ID + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + Reads a single `User` that is related to this `UserContact`. + """ + user: User + + """ + The `UserContact` that was deleted by this mutation. + """ + userContact: UserContact + + """ + An edge for our `UserContact`. May be used by Relay 1. + """ + userContactEdge( + """ + The method to use when ordering `UserContact`. + """ + orderBy: [UserContactsOrderBy!] = [PRIMARY_KEY_ASC] + ): UserContactsEdge +} + +""" +All input for the `deleteUser` mutation. +""" +input DeleteUserInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +""" +The output of our delete `User` mutation. +""" +type DeleteUserPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + deletedUserNodeId: ID + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + Reads a single `RoleType` that is related to this `User`. + """ + roleTypeByType: RoleType + + """ + The `User` that was deleted by this mutation. + """ + user: User + + """ + An edge for our `User`. May be used by Relay 1. + """ + userEdge( + """ + The method to use when ordering `User`. + """ + orderBy: [UsersOrderBy!] = [PRIMARY_KEY_ASC] + ): UsersEdge +} + +""" +All input for the `deleteUserProfileByUserId` mutation. +""" +input DeleteUserProfileByUserIdInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + userId: UUID! +} + +""" +All input for the `deleteUserProfile` mutation. +""" +input DeleteUserProfileInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +""" +The output of our delete `UserProfile` mutation. +""" +type DeleteUserProfilePayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + deletedUserProfileNodeId: ID + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + Reads a single `User` that is related to this `UserProfile`. + """ + user: User + + """ + The `UserProfile` that was deleted by this mutation. + """ + userProfile: UserProfile + + """ + An edge for our `UserProfile`. May be used by Relay 1. + """ + userProfileEdge( + """ + The method to use when ordering `UserProfile`. + """ + orderBy: [UserProfilesOrderBy!] = [PRIMARY_KEY_ASC] + ): UserProfilesEdge +} + +""" +All input for the `deleteUserSettingByUserId` mutation. +""" +input DeleteUserSettingByUserIdInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + userId: UUID! +} + +""" +All input for the `deleteUserSetting` mutation. +""" +input DeleteUserSettingInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! +} + +""" +The output of our delete `UserSetting` mutation. +""" +type DeleteUserSettingPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + deletedUserSettingNodeId: ID + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + Reads a single `User` that is related to this `UserSetting`. + """ + user: User + + """ + The `UserSetting` that was deleted by this mutation. + """ + userSetting: UserSetting + + """ + An edge for our `UserSetting`. May be used by Relay 1. + """ + userSettingEdge( + """ + The method to use when ordering `UserSetting`. + """ + orderBy: [UserSettingsOrderBy!] = [PRIMARY_KEY_ASC] + ): UserSettingsEdge +} + +type Domain { + """ + Reads a single `Api` that is related to this `Domain`. + """ + api: Api + apiId: UUID + + """ + Reads a single `Database` that is related to this `Domain`. + """ + database: Database + databaseId: UUID! + domain: String + id: UUID! + + """ + Reads a single `Site` that is related to this `Domain`. + """ + site: Site + siteId: UUID + subdomain: String +} + +""" +A condition to be used against `Domain` object types. All fields are tested for equality and combined with a logical ‘and.’ +""" +input DomainCondition { + """ + Checks for equality with the object’s `apiId` field. + """ + apiId: UUID + + """ + Checks for equality with the object’s `databaseId` field. + """ + databaseId: UUID + + """ + Checks for equality with the object’s `domain` field. + """ + domain: String + + """ + Checks for equality with the object’s `id` field. + """ + id: UUID + + """ + Checks for equality with the object’s `siteId` field. + """ + siteId: UUID + + """ + Checks for equality with the object’s `subdomain` field. + """ + subdomain: String +} + +""" +A filter to be used against `Domain` object types. All fields are combined with a logical ‘and.’ +""" +input DomainFilter { + """ + Checks for all expressions in this list. + """ + and: [DomainFilter!] + + """ + Filter by the object’s `apiId` field. + """ + apiId: UUIDFilter + + """ + Filter by the object’s `databaseId` field. + """ + databaseId: UUIDFilter + + """ + Filter by the object’s `domain` field. + """ + domain: StringFilter + + """ + Filter by the object’s `id` field. + """ + id: UUIDFilter + + """ + Negates the expression. + """ + not: DomainFilter + + """ + Checks for any expressions in this list. + """ + or: [DomainFilter!] + + """ + Filter by the object’s `siteId` field. + """ + siteId: UUIDFilter + + """ + Filter by the object’s `subdomain` field. + """ + subdomain: StringFilter +} + +""" +An input for mutations affecting `Domain` +""" +input DomainInput { + apiId: UUID + databaseId: UUID! + domain: String + id: UUID + siteId: UUID + subdomain: String +} + +""" +Represents an update to a `Domain`. Fields that are set will be updated. +""" +input DomainPatch { + apiId: UUID + databaseId: UUID + domain: String + id: UUID + siteId: UUID + subdomain: String +} + +""" +A connection to a list of `Domain` values. +""" +type DomainsConnection { + """ + A list of edges which contains the `Domain` and cursor to aid in pagination. + """ + edges: [DomainsEdge!]! + + """ + A list of `Domain` objects. + """ + nodes: [Domain!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `Domain` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `Domain` edge in the connection. +""" +type DomainsEdge { + """ + A cursor for use in pagination. + """ + cursor: Cursor + + """ + The `Domain` at the end of the edge. + """ + node: Domain! +} + +""" +Methods to use when ordering `Domain`. +""" +enum DomainsOrderBy { + API_ID_ASC + API_ID_DESC + DATABASE_ID_ASC + DATABASE_ID_DESC + DOMAIN_ASC + DOMAIN_DESC + ID_ASC + ID_DESC + NATURAL + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC + SITE_ID_ASC + SITE_ID_DESC + SUBDOMAIN_ASC + SUBDOMAIN_DESC +} + +type Email { + email: String! + id: UUID! + isPrimary: Boolean! + isVerified: Boolean! + + """ + Reads a single `User` that is related to this `Email`. + """ + owner: User + ownerId: UUID! +} + +""" +A condition to be used against `Email` object types. All fields are tested for equality and combined with a logical ‘and.’ +""" +input EmailCondition { + """ + Checks for equality with the object’s `email` field. + """ + email: String + + """ + Checks for equality with the object’s `id` field. + """ + id: UUID + + """ + Checks for equality with the object’s `isPrimary` field. + """ + isPrimary: Boolean + + """ + Checks for equality with the object’s `isVerified` field. + """ + isVerified: Boolean + + """ + Checks for equality with the object’s `ownerId` field. + """ + ownerId: UUID +} + +""" +A filter to be used against `Email` object types. All fields are combined with a logical ‘and.’ +""" +input EmailFilter { + """ + Checks for all expressions in this list. + """ + and: [EmailFilter!] + + """ + Filter by the object’s `email` field. + """ + email: StringFilter + + """ + Filter by the object’s `id` field. + """ + id: UUIDFilter + + """ + Filter by the object’s `isPrimary` field. + """ + isPrimary: BooleanFilter + + """ + Filter by the object’s `isVerified` field. + """ + isVerified: BooleanFilter + + """ + Negates the expression. + """ + not: EmailFilter + + """ + Checks for any expressions in this list. + """ + or: [EmailFilter!] + + """ + Filter by the object’s `ownerId` field. + """ + ownerId: UUIDFilter +} + +""" +An input for mutations affecting `Email` +""" +input EmailInput { + email: String! + id: UUID + isPrimary: Boolean + isVerified: Boolean + ownerId: UUID +} + +""" +Represents an update to a `Email`. Fields that are set will be updated. +""" +input EmailPatch { + email: String + id: UUID + isPrimary: Boolean + isVerified: Boolean + ownerId: UUID +} + +""" +A connection to a list of `Email` values. +""" +type EmailsConnection { + """ + A list of edges which contains the `Email` and cursor to aid in pagination. + """ + edges: [EmailsEdge!]! + + """ + A list of `Email` objects. + """ + nodes: [Email!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `Email` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `Email` edge in the connection. +""" +type EmailsEdge { + """ + A cursor for use in pagination. + """ + cursor: Cursor + + """ + The `Email` at the end of the edge. + """ + node: Email! +} + +""" +Methods to use when ordering `Email`. +""" +enum EmailsOrderBy { + EMAIL_ASC + EMAIL_DESC + ID_ASC + ID_DESC + IS_PRIMARY_ASC + IS_PRIMARY_DESC + IS_VERIFIED_ASC + IS_VERIFIED_DESC + NATURAL + OWNER_ID_ASC + OWNER_ID_DESC + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC +} + +""" +All input for the `extendTokenExpires` mutation. +""" +input ExtendTokenExpiresInput { + amount: IntervalInput + + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String +} + +""" +The output of our `extendTokenExpires` mutation. +""" +type ExtendTokenExpiresPayload { + apiToken: ApiToken + + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +type Extension { + """ + Reads a single `DatabaseExtension` that is related to this `Extension`. + """ + databaseExtensionByName: DatabaseExtension + name: String! + privateSchemas: [String] + publicSchemas: [String] +} + +""" +A condition to be used against `Extension` object types. All fields are tested +for equality and combined with a logical ‘and.’ +""" +input ExtensionCondition { + """ + Checks for equality with the object’s `name` field. + """ + name: String + + """ + Checks for equality with the object’s `privateSchemas` field. + """ + privateSchemas: [String] + + """ + Checks for equality with the object’s `publicSchemas` field. + """ + publicSchemas: [String] +} + +""" +A filter to be used against `Extension` object types. All fields are combined with a logical ‘and.’ +""" +input ExtensionFilter { + """ + Checks for all expressions in this list. + """ + and: [ExtensionFilter!] + + """ + Filter by the object’s `name` field. + """ + name: StringFilter + + """ + Negates the expression. + """ + not: ExtensionFilter + + """ + Checks for any expressions in this list. + """ + or: [ExtensionFilter!] + + """ + Filter by the object’s `privateSchemas` field. + """ + privateSchemas: StringListFilter + + """ + Filter by the object’s `publicSchemas` field. + """ + publicSchemas: StringListFilter +} + +""" +An input for mutations affecting `Extension` +""" +input ExtensionInput { + name: String! + privateSchemas: [String] + publicSchemas: [String] +} + +""" +Represents an update to a `Extension`. Fields that are set will be updated. +""" +input ExtensionPatch { + name: String + privateSchemas: [String] + publicSchemas: [String] +} + +""" +A connection to a list of `Extension` values. +""" +type ExtensionsConnection { + """ + A list of edges which contains the `Extension` and cursor to aid in pagination. + """ + edges: [ExtensionsEdge!]! + + """ + A list of `Extension` objects. + """ + nodes: [Extension!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `Extension` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `Extension` edge in the connection. +""" +type ExtensionsEdge { + """ + A cursor for use in pagination. + """ + cursor: Cursor + + """ + The `Extension` at the end of the edge. + """ + node: Extension! +} + +""" +Methods to use when ordering `Extension`. +""" +enum ExtensionsOrderBy { + NAME_ASC + NAME_DESC + NATURAL + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC + PRIVATE_SCHEMAS_ASC + PRIVATE_SCHEMAS_DESC + PUBLIC_SCHEMAS_ASC + PUBLIC_SCHEMAS_DESC +} + +type Field { + category: FieldCategory! + chk: JSON + chkExpr: JSON + createdAt: Datetime + + """ + Reads a single `Database` that is related to this `Field`. + """ + database: Database + databaseId: UUID! + defaultValue: String + defaultValueAst: JSON + description: String + fieldOrder: Int! + id: UUID! + isHidden: Boolean! + isRequired: Boolean! + label: String + max: Float + min: Float + module: String + name: String! + regexp: String + scope: Int + smartTags: JSON + + """ + Reads a single `Table` that is related to this `Field`. + """ + table: Table + tableId: UUID! + tags: [String]! + type: String! + updatedAt: Datetime +} + +enum FieldCategory { + APP + CORE + MODULE +} + +""" +A filter to be used against FieldCategory fields. All fields are combined with a logical ‘and.’ +""" +input FieldCategoryFilter { + """ + Not equal to the specified value, treating null like an ordinary value. + """ + distinctFrom: FieldCategory + + """ + Equal to the specified value. + """ + equalTo: FieldCategory + + """ + Greater than the specified value. + """ + greaterThan: FieldCategory + + """ + Greater than or equal to the specified value. + """ + greaterThanOrEqualTo: FieldCategory + + """ + Included in the specified list. + """ + in: [FieldCategory!] + + """ + Is null (if `true` is specified) or is not null (if `false` is specified). + """ + isNull: Boolean + + """ + Less than the specified value. + """ + lessThan: FieldCategory + + """ + Less than or equal to the specified value. + """ + lessThanOrEqualTo: FieldCategory + + """ + Equal to the specified value, treating null like an ordinary value. + """ + notDistinctFrom: FieldCategory + + """ + Not equal to the specified value. + """ + notEqualTo: FieldCategory + + """ + Not included in the specified list. + """ + notIn: [FieldCategory!] +} + +""" +A condition to be used against `Field` object types. All fields are tested for equality and combined with a logical ‘and.’ +""" +input FieldCondition { + """ + Checks for equality with the object’s `category` field. + """ + category: FieldCategory + + """ + Checks for equality with the object’s `chk` field. + """ + chk: JSON + + """ + Checks for equality with the object’s `chkExpr` field. + """ + chkExpr: JSON + + """ + Checks for equality with the object’s `createdAt` field. + """ + createdAt: Datetime + + """ + Checks for equality with the object’s `databaseId` field. + """ + databaseId: UUID + + """ + Checks for equality with the object’s `defaultValue` field. + """ + defaultValue: String + + """ + Checks for equality with the object’s `defaultValueAst` field. + """ + defaultValueAst: JSON + + """ + Checks for equality with the object’s `description` field. + """ + description: String + + """ + Checks for equality with the object’s `fieldOrder` field. + """ + fieldOrder: Int + + """ + Checks for equality with the object’s `id` field. + """ + id: UUID + + """ + Checks for equality with the object’s `isHidden` field. + """ + isHidden: Boolean + + """ + Checks for equality with the object’s `isRequired` field. + """ + isRequired: Boolean + + """ + Checks for equality with the object’s `label` field. + """ + label: String + + """ + Checks for equality with the object’s `max` field. + """ + max: Float + + """ + Checks for equality with the object’s `min` field. + """ + min: Float + + """ + Checks for equality with the object’s `module` field. + """ + module: String + + """ + Checks for equality with the object’s `name` field. + """ + name: String + + """ + Checks for equality with the object’s `regexp` field. + """ + regexp: String + + """ + Checks for equality with the object’s `scope` field. + """ + scope: Int + + """ + Checks for equality with the object’s `smartTags` field. + """ + smartTags: JSON + + """ + Checks for equality with the object’s `tableId` field. + """ + tableId: UUID + + """ + Checks for equality with the object’s `tags` field. + """ + tags: [String] + + """ + Checks for equality with the object’s `type` field. + """ + type: String + + """ + Checks for equality with the object’s `updatedAt` field. + """ + updatedAt: Datetime +} + +""" +A filter to be used against `Field` object types. All fields are combined with a logical ‘and.’ +""" +input FieldFilter { + """ + Checks for all expressions in this list. + """ + and: [FieldFilter!] + + """ + Filter by the object’s `category` field. + """ + category: FieldCategoryFilter + + """ + Filter by the object’s `chk` field. + """ + chk: JSONFilter + + """ + Filter by the object’s `chkExpr` field. + """ + chkExpr: JSONFilter + + """ + Filter by the object’s `createdAt` field. + """ + createdAt: DatetimeFilter + + """ + Filter by the object’s `databaseId` field. + """ + databaseId: UUIDFilter + + """ + Filter by the object’s `defaultValue` field. + """ + defaultValue: StringFilter + + """ + Filter by the object’s `defaultValueAst` field. + """ + defaultValueAst: JSONFilter + + """ + Filter by the object’s `description` field. + """ + description: StringFilter + + """ + Filter by the object’s `fieldOrder` field. + """ + fieldOrder: IntFilter + + """ + Filter by the object’s `id` field. + """ + id: UUIDFilter + + """ + Filter by the object’s `isHidden` field. + """ + isHidden: BooleanFilter + + """ + Filter by the object’s `isRequired` field. + """ + isRequired: BooleanFilter + + """ + Filter by the object’s `label` field. + """ + label: StringFilter + + """ + Filter by the object’s `max` field. + """ + max: FloatFilter + + """ + Filter by the object’s `min` field. + """ + min: FloatFilter + + """ + Filter by the object’s `module` field. + """ + module: StringFilter + + """ + Filter by the object’s `name` field. + """ + name: StringFilter + + """ + Negates the expression. + """ + not: FieldFilter + + """ + Checks for any expressions in this list. + """ + or: [FieldFilter!] + + """ + Filter by the object’s `regexp` field. + """ + regexp: StringFilter + + """ + Filter by the object’s `scope` field. + """ + scope: IntFilter + + """ + Filter by the object’s `smartTags` field. + """ + smartTags: JSONFilter + + """ + Filter by the object’s `tableId` field. + """ + tableId: UUIDFilter + + """ + Filter by the object’s `tags` field. + """ + tags: StringListFilter + + """ + Filter by the object’s `type` field. + """ + type: StringFilter + + """ + Filter by the object’s `updatedAt` field. + """ + updatedAt: DatetimeFilter +} + +""" +An input for mutations affecting `Field` +""" +input FieldInput { + category: FieldCategory + chk: JSON + chkExpr: JSON + createdAt: Datetime + databaseId: UUID + defaultValue: String + defaultValueAst: JSON + description: String + fieldOrder: Int + id: UUID + isHidden: Boolean + isRequired: Boolean + label: String + max: Float + min: Float + module: String + name: String! + regexp: String + scope: Int + smartTags: JSON + tableId: UUID! + tags: [String] + type: String! + updatedAt: Datetime +} + +""" +Represents an update to a `Field`. Fields that are set will be updated. +""" +input FieldPatch { + category: FieldCategory + chk: JSON + chkExpr: JSON + createdAt: Datetime + databaseId: UUID + defaultValue: String + defaultValueAst: JSON + description: String + fieldOrder: Int + id: UUID + isHidden: Boolean + isRequired: Boolean + label: String + max: Float + min: Float + module: String + name: String + regexp: String + scope: Int + smartTags: JSON + tableId: UUID + tags: [String] + type: String + updatedAt: Datetime +} + +""" +A connection to a list of `Field` values. +""" +type FieldsConnection { + """ + A list of edges which contains the `Field` and cursor to aid in pagination. + """ + edges: [FieldsEdge!]! + + """ + A list of `Field` objects. + """ + nodes: [Field!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `Field` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `Field` edge in the connection. +""" +type FieldsEdge { + """ + A cursor for use in pagination. + """ + cursor: Cursor + + """ + The `Field` at the end of the edge. + """ + node: Field! +} + +""" +Methods to use when ordering `Field`. +""" +enum FieldsOrderBy { + CATEGORY_ASC + CATEGORY_DESC + CHK_ASC + CHK_DESC + CHK_EXPR_ASC + CHK_EXPR_DESC + CREATED_AT_ASC + CREATED_AT_DESC + DATABASE_ID_ASC + DATABASE_ID_DESC + DEFAULT_VALUE_ASC + DEFAULT_VALUE_AST_ASC + DEFAULT_VALUE_AST_DESC + DEFAULT_VALUE_DESC + DESCRIPTION_ASC + DESCRIPTION_DESC + FIELD_ORDER_ASC + FIELD_ORDER_DESC + ID_ASC + ID_DESC + IS_HIDDEN_ASC + IS_HIDDEN_DESC + IS_REQUIRED_ASC + IS_REQUIRED_DESC + LABEL_ASC + LABEL_DESC + MAX_ASC + MAX_DESC + MIN_ASC + MIN_DESC + MODULE_ASC + MODULE_DESC + NAME_ASC + NAME_DESC + NATURAL + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC + REGEXP_ASC + REGEXP_DESC + SCOPE_ASC + SCOPE_DESC + SMART_TAGS_ASC + SMART_TAGS_DESC + TABLE_ID_ASC + TABLE_ID_DESC + TAGS_ASC + TAGS_DESC + TYPE_ASC + TYPE_DESC + UPDATED_AT_ASC + UPDATED_AT_DESC +} + +""" +A filter to be used against Float fields. All fields are combined with a logical ‘and.’ +""" +input FloatFilter { + """ + Not equal to the specified value, treating null like an ordinary value. + """ + distinctFrom: Float + + """ + Equal to the specified value. + """ + equalTo: Float + + """ + Greater than the specified value. + """ + greaterThan: Float + + """ + Greater than or equal to the specified value. + """ + greaterThanOrEqualTo: Float + + """ + Included in the specified list. + """ + in: [Float!] + + """ + Is null (if `true` is specified) or is not null (if `false` is specified). + """ + isNull: Boolean + + """ + Less than the specified value. + """ + lessThan: Float + + """ + Less than or equal to the specified value. + """ + lessThanOrEqualTo: Float + + """ + Equal to the specified value, treating null like an ordinary value. + """ + notDistinctFrom: Float + + """ + Not equal to the specified value. + """ + notEqualTo: Float + + """ + Not included in the specified list. + """ + notIn: [Float!] +} + +type ForeignKeyConstraint { + createdAt: Datetime + + """ + Reads a single `Database` that is related to this `ForeignKeyConstraint`. + """ + database: Database + databaseId: UUID! + deleteAction: String + description: String + fieldIds: [UUID]! + id: UUID! + name: String + refFieldIds: [UUID]! + + """ + Reads a single `Table` that is related to this `ForeignKeyConstraint`. + """ + refTable: Table + refTableId: UUID! + smartTags: JSON + + """ + Reads a single `Table` that is related to this `ForeignKeyConstraint`. + """ + table: Table + tableId: UUID! + type: String + updateAction: String + updatedAt: Datetime +} + +""" +A condition to be used against `ForeignKeyConstraint` object types. All fields +are tested for equality and combined with a logical ‘and.’ +""" +input ForeignKeyConstraintCondition { + """ + Checks for equality with the object’s `createdAt` field. + """ + createdAt: Datetime + + """ + Checks for equality with the object’s `databaseId` field. + """ + databaseId: UUID + + """ + Checks for equality with the object’s `deleteAction` field. + """ + deleteAction: String + + """ + Checks for equality with the object’s `description` field. + """ + description: String + + """ + Checks for equality with the object’s `fieldIds` field. + """ + fieldIds: [UUID] + + """ + Checks for equality with the object’s `id` field. + """ + id: UUID + + """ + Checks for equality with the object’s `name` field. + """ + name: String + + """ + Checks for equality with the object’s `refFieldIds` field. + """ + refFieldIds: [UUID] + + """ + Checks for equality with the object’s `refTableId` field. + """ + refTableId: UUID + + """ + Checks for equality with the object’s `smartTags` field. + """ + smartTags: JSON + + """ + Checks for equality with the object’s `tableId` field. + """ + tableId: UUID + + """ + Checks for equality with the object’s `type` field. + """ + type: String + + """ + Checks for equality with the object’s `updateAction` field. + """ + updateAction: String + + """ + Checks for equality with the object’s `updatedAt` field. + """ + updatedAt: Datetime +} + +""" +A filter to be used against `ForeignKeyConstraint` object types. All fields are combined with a logical ‘and.’ +""" +input ForeignKeyConstraintFilter { + """ + Checks for all expressions in this list. + """ + and: [ForeignKeyConstraintFilter!] + + """ + Filter by the object’s `createdAt` field. + """ + createdAt: DatetimeFilter + + """ + Filter by the object’s `databaseId` field. + """ + databaseId: UUIDFilter + + """ + Filter by the object’s `deleteAction` field. + """ + deleteAction: StringFilter + + """ + Filter by the object’s `description` field. + """ + description: StringFilter + + """ + Filter by the object’s `fieldIds` field. + """ + fieldIds: UUIDListFilter + + """ + Filter by the object’s `id` field. + """ + id: UUIDFilter + + """ + Filter by the object’s `name` field. + """ + name: StringFilter + + """ + Negates the expression. + """ + not: ForeignKeyConstraintFilter + + """ + Checks for any expressions in this list. + """ + or: [ForeignKeyConstraintFilter!] + + """ + Filter by the object’s `refFieldIds` field. + """ + refFieldIds: UUIDListFilter + + """ + Filter by the object’s `refTableId` field. + """ + refTableId: UUIDFilter + + """ + Filter by the object’s `smartTags` field. + """ + smartTags: JSONFilter + + """ + Filter by the object’s `tableId` field. + """ + tableId: UUIDFilter + + """ + Filter by the object’s `type` field. + """ + type: StringFilter + + """ + Filter by the object’s `updateAction` field. + """ + updateAction: StringFilter + + """ + Filter by the object’s `updatedAt` field. + """ + updatedAt: DatetimeFilter +} + +""" +An input for mutations affecting `ForeignKeyConstraint` +""" +input ForeignKeyConstraintInput { + createdAt: Datetime + databaseId: UUID + deleteAction: String + description: String + fieldIds: [UUID]! + id: UUID + name: String + refFieldIds: [UUID]! + refTableId: UUID! + smartTags: JSON + tableId: UUID! + type: String + updateAction: String + updatedAt: Datetime +} + +""" +Represents an update to a `ForeignKeyConstraint`. Fields that are set will be updated. +""" +input ForeignKeyConstraintPatch { + createdAt: Datetime + databaseId: UUID + deleteAction: String + description: String + fieldIds: [UUID] + id: UUID + name: String + refFieldIds: [UUID] + refTableId: UUID + smartTags: JSON + tableId: UUID + type: String + updateAction: String + updatedAt: Datetime +} + +""" +A connection to a list of `ForeignKeyConstraint` values. +""" +type ForeignKeyConstraintsConnection { + """ + A list of edges which contains the `ForeignKeyConstraint` and cursor to aid in pagination. + """ + edges: [ForeignKeyConstraintsEdge!]! + + """ + A list of `ForeignKeyConstraint` objects. + """ + nodes: [ForeignKeyConstraint!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `ForeignKeyConstraint` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `ForeignKeyConstraint` edge in the connection. +""" +type ForeignKeyConstraintsEdge { + """ + A cursor for use in pagination. + """ + cursor: Cursor + + """ + The `ForeignKeyConstraint` at the end of the edge. + """ + node: ForeignKeyConstraint! +} + +""" +Methods to use when ordering `ForeignKeyConstraint`. +""" +enum ForeignKeyConstraintsOrderBy { + CREATED_AT_ASC + CREATED_AT_DESC + DATABASE_ID_ASC + DATABASE_ID_DESC + DELETE_ACTION_ASC + DELETE_ACTION_DESC + DESCRIPTION_ASC + DESCRIPTION_DESC + FIELD_IDS_ASC + FIELD_IDS_DESC + ID_ASC + ID_DESC + NAME_ASC + NAME_DESC + NATURAL + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC + REF_FIELD_IDS_ASC + REF_FIELD_IDS_DESC + REF_TABLE_ID_ASC + REF_TABLE_ID_DESC + SMART_TAGS_ASC + SMART_TAGS_DESC + TABLE_ID_ASC + TABLE_ID_DESC + TYPE_ASC + TYPE_DESC + UPDATED_AT_ASC + UPDATED_AT_DESC + UPDATE_ACTION_ASC + UPDATE_ACTION_DESC +} + +""" +All input for the `forgotPassword` mutation. +""" +input ForgotPasswordInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + email: String +} + +""" +The output of our `forgotPassword` mutation. +""" +type ForgotPasswordPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +scalar FullText + +""" +A filter to be used against FullText fields. All fields are combined with a logical ‘and.’ +""" +input FullTextFilter { + """ + Performs a full text search on the field. + """ + matches: String +} + +type FullTextSearch { + createdAt: Datetime + + """ + Reads a single `Database` that is related to this `FullTextSearch`. + """ + database: Database + databaseId: UUID! + fieldId: UUID! + fieldIds: [UUID]! + id: UUID! + langs: [String]! + + """ + Reads a single `Table` that is related to this `FullTextSearch`. + """ + table: Table + tableId: UUID! + updatedAt: Datetime + weights: [String]! +} + +""" +A condition to be used against `FullTextSearch` object types. All fields are +tested for equality and combined with a logical ‘and.’ +""" +input FullTextSearchCondition { + """ + Checks for equality with the object’s `createdAt` field. + """ + createdAt: Datetime + + """ + Checks for equality with the object’s `databaseId` field. + """ + databaseId: UUID + + """ + Checks for equality with the object’s `fieldId` field. + """ + fieldId: UUID + + """ + Checks for equality with the object’s `fieldIds` field. + """ + fieldIds: [UUID] + + """ + Checks for equality with the object’s `id` field. + """ + id: UUID + + """ + Checks for equality with the object’s `langs` field. + """ + langs: [String] + + """ + Checks for equality with the object’s `tableId` field. + """ + tableId: UUID + + """ + Checks for equality with the object’s `updatedAt` field. + """ + updatedAt: Datetime + + """ + Checks for equality with the object’s `weights` field. + """ + weights: [String] +} + +""" +A filter to be used against `FullTextSearch` object types. All fields are combined with a logical ‘and.’ +""" +input FullTextSearchFilter { + """ + Checks for all expressions in this list. + """ + and: [FullTextSearchFilter!] + + """ + Filter by the object’s `createdAt` field. + """ + createdAt: DatetimeFilter + + """ + Filter by the object’s `databaseId` field. + """ + databaseId: UUIDFilter + + """ + Filter by the object’s `fieldId` field. + """ + fieldId: UUIDFilter + + """ + Filter by the object’s `fieldIds` field. + """ + fieldIds: UUIDListFilter + + """ + Filter by the object’s `id` field. + """ + id: UUIDFilter + + """ + Filter by the object’s `langs` field. + """ + langs: StringListFilter + + """ + Negates the expression. + """ + not: FullTextSearchFilter + + """ + Checks for any expressions in this list. + """ + or: [FullTextSearchFilter!] + + """ + Filter by the object’s `tableId` field. + """ + tableId: UUIDFilter + + """ + Filter by the object’s `updatedAt` field. + """ + updatedAt: DatetimeFilter + + """ + Filter by the object’s `weights` field. + """ + weights: StringListFilter +} + +""" +An input for mutations affecting `FullTextSearch` +""" +input FullTextSearchInput { + createdAt: Datetime + databaseId: UUID + fieldId: UUID! + fieldIds: [UUID]! + id: UUID + langs: [String]! + tableId: UUID! + updatedAt: Datetime + weights: [String]! +} + +""" +Represents an update to a `FullTextSearch`. Fields that are set will be updated. +""" +input FullTextSearchPatch { + createdAt: Datetime + databaseId: UUID + fieldId: UUID + fieldIds: [UUID] + id: UUID + langs: [String] + tableId: UUID + updatedAt: Datetime + weights: [String] +} + +""" +A connection to a list of `FullTextSearch` values. +""" +type FullTextSearchesConnection { + """ + A list of edges which contains the `FullTextSearch` and cursor to aid in pagination. + """ + edges: [FullTextSearchesEdge!]! + + """ + A list of `FullTextSearch` objects. + """ + nodes: [FullTextSearch!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `FullTextSearch` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `FullTextSearch` edge in the connection. +""" +type FullTextSearchesEdge { + """ + A cursor for use in pagination. + """ + cursor: Cursor + + """ + The `FullTextSearch` at the end of the edge. + """ + node: FullTextSearch! +} + +""" +Methods to use when ordering `FullTextSearch`. +""" +enum FullTextSearchesOrderBy { + CREATED_AT_ASC + CREATED_AT_DESC + DATABASE_ID_ASC + DATABASE_ID_DESC + FIELD_IDS_ASC + FIELD_IDS_DESC + FIELD_ID_ASC + FIELD_ID_DESC + ID_ASC + ID_DESC + LANGS_ASC + LANGS_DESC + NATURAL + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC + TABLE_ID_ASC + TABLE_ID_DESC + UPDATED_AT_ASC + UPDATED_AT_DESC + WEIGHTS_ASC + WEIGHTS_DESC +} + +type Grant { + """ + Reads a single `User` that is related to this `Grant`. + """ + entity: User + entityId: UUID! + + """ + Reads a single `User` that is related to this `Grant`. + """ + grantor: User + grantorId: UUID + id: UUID! + isGrant: Boolean! + + """ + Reads a single `Membership` that is related to this `Grant`. + """ + membership: Membership + membershipId: UUID! + permissions: BitString! +} + +""" +A condition to be used against `Grant` object types. All fields are tested for equality and combined with a logical ‘and.’ +""" +input GrantCondition { + """ + Checks for equality with the object’s `entityId` field. + """ + entityId: UUID + + """ + Checks for equality with the object’s `grantorId` field. + """ + grantorId: UUID + + """ + Checks for equality with the object’s `id` field. + """ + id: UUID + + """ + Checks for equality with the object’s `isGrant` field. + """ + isGrant: Boolean + + """ + Checks for equality with the object’s `membershipId` field. + """ + membershipId: UUID + + """ + Checks for equality with the object’s `permissions` field. + """ + permissions: BitString +} + +""" +A filter to be used against `Grant` object types. All fields are combined with a logical ‘and.’ +""" +input GrantFilter { + """ + Checks for all expressions in this list. + """ + and: [GrantFilter!] + + """ + Filter by the object’s `entityId` field. + """ + entityId: UUIDFilter + + """ + Filter by the object’s `grantorId` field. + """ + grantorId: UUIDFilter + + """ + Filter by the object’s `id` field. + """ + id: UUIDFilter + + """ + Filter by the object’s `isGrant` field. + """ + isGrant: BooleanFilter + + """ + Filter by the object’s `membershipId` field. + """ + membershipId: UUIDFilter + + """ + Negates the expression. + """ + not: GrantFilter + + """ + Checks for any expressions in this list. + """ + or: [GrantFilter!] + + """ + Filter by the object’s `permissions` field. + """ + permissions: BitStringFilter +} + +""" +An input for mutations affecting `Grant` +""" +input GrantInput { + entityId: UUID! + grantorId: UUID + id: UUID + isGrant: Boolean + membershipId: UUID! + permissions: BitString +} + +""" +Represents an update to a `Grant`. Fields that are set will be updated. +""" +input GrantPatch { + entityId: UUID + grantorId: UUID + id: UUID + isGrant: Boolean + membershipId: UUID + permissions: BitString +} + +""" +A connection to a list of `Grant` values. +""" +type GrantsConnection { + """ + A list of edges which contains the `Grant` and cursor to aid in pagination. + """ + edges: [GrantsEdge!]! + + """ + A list of `Grant` objects. + """ + nodes: [Grant!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `Grant` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `Grant` edge in the connection. +""" +type GrantsEdge { + """ + A cursor for use in pagination. + """ + cursor: Cursor + + """ + The `Grant` at the end of the edge. + """ + node: Grant! +} + +""" +Methods to use when ordering `Grant`. +""" +enum GrantsOrderBy { + ENTITY_ID_ASC + ENTITY_ID_DESC + GRANTOR_ID_ASC + GRANTOR_ID_DESC + ID_ASC + ID_DESC + IS_GRANT_ASC + IS_GRANT_DESC + MEMBERSHIP_ID_ASC + MEMBERSHIP_ID_DESC + NATURAL + PERMISSIONS_ASC + PERMISSIONS_DESC + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC +} + +type Index { + accessMethod: String! + createdAt: Datetime + + """ + Reads a single `Database` that is related to this `Index`. + """ + database: Database + databaseId: UUID! + fieldIds: [UUID] + id: UUID! + includeFieldIds: [UUID] + indexParams: JSON + isUnique: Boolean! + name: String! + + """ + Reads a single `Table` that is related to this `Index`. + """ + table: Table + tableId: UUID! + updatedAt: Datetime + whereClause: JSON +} + +""" +A condition to be used against `Index` object types. All fields are tested for equality and combined with a logical ‘and.’ +""" +input IndexCondition { + """ + Checks for equality with the object’s `accessMethod` field. + """ + accessMethod: String + + """ + Checks for equality with the object’s `createdAt` field. + """ + createdAt: Datetime + + """ + Checks for equality with the object’s `databaseId` field. + """ + databaseId: UUID + + """ + Checks for equality with the object’s `fieldIds` field. + """ + fieldIds: [UUID] + + """ + Checks for equality with the object’s `id` field. + """ + id: UUID + + """ + Checks for equality with the object’s `includeFieldIds` field. + """ + includeFieldIds: [UUID] + + """ + Checks for equality with the object’s `indexParams` field. + """ + indexParams: JSON + + """ + Checks for equality with the object’s `isUnique` field. + """ + isUnique: Boolean + + """ + Checks for equality with the object’s `name` field. + """ + name: String + + """ + Checks for equality with the object’s `tableId` field. + """ + tableId: UUID + + """ + Checks for equality with the object’s `updatedAt` field. + """ + updatedAt: Datetime + + """ + Checks for equality with the object’s `whereClause` field. + """ + whereClause: JSON +} + +""" +A filter to be used against `Index` object types. All fields are combined with a logical ‘and.’ +""" +input IndexFilter { + """ + Filter by the object’s `accessMethod` field. + """ + accessMethod: StringFilter + + """ + Checks for all expressions in this list. + """ + and: [IndexFilter!] + + """ + Filter by the object’s `createdAt` field. + """ + createdAt: DatetimeFilter + + """ + Filter by the object’s `databaseId` field. + """ + databaseId: UUIDFilter + + """ + Filter by the object’s `fieldIds` field. + """ + fieldIds: UUIDListFilter + + """ + Filter by the object’s `id` field. + """ + id: UUIDFilter + + """ + Filter by the object’s `includeFieldIds` field. + """ + includeFieldIds: UUIDListFilter + + """ + Filter by the object’s `indexParams` field. + """ + indexParams: JSONFilter + + """ + Filter by the object’s `isUnique` field. + """ + isUnique: BooleanFilter + + """ + Filter by the object’s `name` field. + """ + name: StringFilter + + """ + Negates the expression. + """ + not: IndexFilter + + """ + Checks for any expressions in this list. + """ + or: [IndexFilter!] + + """ + Filter by the object’s `tableId` field. + """ + tableId: UUIDFilter + + """ + Filter by the object’s `updatedAt` field. + """ + updatedAt: DatetimeFilter + + """ + Filter by the object’s `whereClause` field. + """ + whereClause: JSONFilter +} + +""" +An input for mutations affecting `Index` +""" +input IndexInput { + accessMethod: String + createdAt: Datetime + databaseId: UUID! + fieldIds: [UUID] + id: UUID + includeFieldIds: [UUID] + indexParams: JSON + isUnique: Boolean + name: String + tableId: UUID! + updatedAt: Datetime + whereClause: JSON +} + +""" +Represents an update to a `Index`. Fields that are set will be updated. +""" +input IndexPatch { + accessMethod: String + createdAt: Datetime + databaseId: UUID + fieldIds: [UUID] + id: UUID + includeFieldIds: [UUID] + indexParams: JSON + isUnique: Boolean + name: String + tableId: UUID + updatedAt: Datetime + whereClause: JSON +} + +""" +A connection to a list of `Index` values. +""" +type IndicesConnection { + """ + A list of edges which contains the `Index` and cursor to aid in pagination. + """ + edges: [IndicesEdge!]! + + """ + A list of `Index` objects. + """ + nodes: [Index!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `Index` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `Index` edge in the connection. +""" +type IndicesEdge { + """ + A cursor for use in pagination. + """ + cursor: Cursor + + """ + The `Index` at the end of the edge. + """ + node: Index! +} + +""" +Methods to use when ordering `Index`. +""" +enum IndicesOrderBy { + ACCESS_METHOD_ASC + ACCESS_METHOD_DESC + CREATED_AT_ASC + CREATED_AT_DESC + DATABASE_ID_ASC + DATABASE_ID_DESC + FIELD_IDS_ASC + FIELD_IDS_DESC + ID_ASC + ID_DESC + INCLUDE_FIELD_IDS_ASC + INCLUDE_FIELD_IDS_DESC + INDEX_PARAMS_ASC + INDEX_PARAMS_DESC + IS_UNIQUE_ASC + IS_UNIQUE_DESC + NAME_ASC + NAME_DESC + NATURAL + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC + TABLE_ID_ASC + TABLE_ID_DESC + UPDATED_AT_ASC + UPDATED_AT_DESC + WHERE_CLAUSE_ASC + WHERE_CLAUSE_DESC +} + +""" +A filter to be used against Int fields. All fields are combined with a logical ‘and.’ +""" +input IntFilter { + """ + Not equal to the specified value, treating null like an ordinary value. + """ + distinctFrom: Int + + """ + Equal to the specified value. + """ + equalTo: Int + + """ + Greater than the specified value. + """ + greaterThan: Int + + """ + Greater than or equal to the specified value. + """ + greaterThanOrEqualTo: Int + + """ + Included in the specified list. + """ + in: [Int!] + + """ + Is null (if `true` is specified) or is not null (if `false` is specified). + """ + isNull: Boolean + + """ + Less than the specified value. + """ + lessThan: Int + + """ + Less than or equal to the specified value. + """ + lessThanOrEqualTo: Int + + """ + Equal to the specified value, treating null like an ordinary value. + """ + notDistinctFrom: Int + + """ + Not equal to the specified value. + """ + notEqualTo: Int + + """ + Not included in the specified list. + """ + notIn: [Int!] +} + +""" +An IPv4 or IPv6 host address, and optionally its subnet. +""" +scalar InternetAddress + +""" +An interval of time that has passed where the smallest distinct unit is a second. +""" +input IntervalInput { + """ + A quantity of days. + """ + days: Int + + """ + A quantity of hours. + """ + hours: Int + + """ + A quantity of minutes. + """ + minutes: Int + + """ + A quantity of months. + """ + months: Int + + """ + A quantity of seconds. This is the only non-integer field, as all the other + fields will dump their overflow into a smaller unit of time. Intervals don’t + have a smaller unit than seconds. + """ + seconds: Float + + """ + A quantity of years. + """ + years: Int +} + +type Invite { + createdAt: Datetime! + data: JSON + email: String + expiresAt: Datetime! + id: UUID! + inviteCount: Int! + inviteLimit: Int! + inviteToken: String! + inviteValid: Boolean! + multiple: Boolean! + + """ + Reads a single `User` that is related to this `Invite`. + """ + sender: User + senderId: UUID! +} + +""" +A condition to be used against `Invite` object types. All fields are tested for equality and combined with a logical ‘and.’ +""" +input InviteCondition { + """ + Checks for equality with the object’s `createdAt` field. + """ + createdAt: Datetime + + """ + Checks for equality with the object’s `data` field. + """ + data: JSON + + """ + Checks for equality with the object’s `email` field. + """ + email: String + + """ + Checks for equality with the object’s `expiresAt` field. + """ + expiresAt: Datetime + + """ + Checks for equality with the object’s `id` field. + """ + id: UUID + + """ + Checks for equality with the object’s `inviteCount` field. + """ + inviteCount: Int + + """ + Checks for equality with the object’s `inviteLimit` field. + """ + inviteLimit: Int + + """ + Checks for equality with the object’s `inviteToken` field. + """ + inviteToken: String + + """ + Checks for equality with the object’s `inviteValid` field. + """ + inviteValid: Boolean + + """ + Checks for equality with the object’s `multiple` field. + """ + multiple: Boolean + + """ + Checks for equality with the object’s `senderId` field. + """ + senderId: UUID +} + +""" +A filter to be used against `Invite` object types. All fields are combined with a logical ‘and.’ +""" +input InviteFilter { + """ + Checks for all expressions in this list. + """ + and: [InviteFilter!] + + """ + Filter by the object’s `createdAt` field. + """ + createdAt: DatetimeFilter + + """ + Filter by the object’s `email` field. + """ + email: StringFilter + + """ + Filter by the object’s `expiresAt` field. + """ + expiresAt: DatetimeFilter + + """ + Filter by the object’s `id` field. + """ + id: UUIDFilter + + """ + Filter by the object’s `inviteCount` field. + """ + inviteCount: IntFilter + + """ + Filter by the object’s `inviteLimit` field. + """ + inviteLimit: IntFilter + + """ + Filter by the object’s `inviteToken` field. + """ + inviteToken: StringFilter + + """ + Filter by the object’s `inviteValid` field. + """ + inviteValid: BooleanFilter + + """ + Filter by the object’s `multiple` field. + """ + multiple: BooleanFilter + + """ + Negates the expression. + """ + not: InviteFilter + + """ + Checks for any expressions in this list. + """ + or: [InviteFilter!] + + """ + Filter by the object’s `senderId` field. + """ + senderId: UUIDFilter +} + +""" +An input for mutations affecting `Invite` +""" +input InviteInput { + createdAt: Datetime + data: JSON + email: String + expiresAt: Datetime + id: UUID + inviteCount: Int + inviteLimit: Int + inviteToken: String + inviteValid: Boolean + multiple: Boolean + senderId: UUID +} + +""" +Represents an update to a `Invite`. Fields that are set will be updated. +""" +input InvitePatch { + createdAt: Datetime + data: JSON + email: String + expiresAt: Datetime + id: UUID + inviteCount: Int + inviteLimit: Int + inviteToken: String + inviteValid: Boolean + multiple: Boolean + senderId: UUID +} + +""" +A connection to a list of `Invite` values. +""" +type InvitesConnection { + """ + A list of edges which contains the `Invite` and cursor to aid in pagination. + """ + edges: [InvitesEdge!]! + + """ + A list of `Invite` objects. + """ + nodes: [Invite!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `Invite` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `Invite` edge in the connection. +""" +type InvitesEdge { + """ + A cursor for use in pagination. + """ + cursor: Cursor + + """ + The `Invite` at the end of the edge. + """ + node: Invite! +} + +""" +Methods to use when ordering `Invite`. +""" +enum InvitesOrderBy { + CREATED_AT_ASC + CREATED_AT_DESC + DATA_ASC + DATA_DESC + EMAIL_ASC + EMAIL_DESC + EXPIRES_AT_ASC + EXPIRES_AT_DESC + ID_ASC + ID_DESC + INVITE_COUNT_ASC + INVITE_COUNT_DESC + INVITE_LIMIT_ASC + INVITE_LIMIT_DESC + INVITE_TOKEN_ASC + INVITE_TOKEN_DESC + INVITE_VALID_ASC + INVITE_VALID_DESC + MULTIPLE_ASC + MULTIPLE_DESC + NATURAL + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC + SENDER_ID_ASC + SENDER_ID_DESC +} + +""" +The `JSON` scalar type represents JSON values as specified by [ECMA-404](http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf). +""" +scalar JSON + +""" +A filter to be used against JSON fields. All fields are combined with a logical ‘and.’ +""" +input JSONFilter { + """ + Contained by the specified JSON. + """ + containedBy: JSON + + """ + Contains the specified JSON. + """ + contains: JSON + + """ + Contains all of the specified keys. + """ + containsAllKeys: [String!] + + """ + Contains any of the specified keys. + """ + containsAnyKeys: [String!] + + """ + Contains the specified key. + """ + containsKey: String + + """ + Not equal to the specified value, treating null like an ordinary value. + """ + distinctFrom: JSON + + """ + Equal to the specified value. + """ + equalTo: JSON + + """ + Greater than the specified value. + """ + greaterThan: JSON + + """ + Greater than or equal to the specified value. + """ + greaterThanOrEqualTo: JSON + + """ + Included in the specified list. + """ + in: [JSON!] + + """ + Is null (if `true` is specified) or is not null (if `false` is specified). + """ + isNull: Boolean + + """ + Less than the specified value. + """ + lessThan: JSON + + """ + Less than or equal to the specified value. + """ + lessThanOrEqualTo: JSON + + """ + Equal to the specified value, treating null like an ordinary value. + """ + notDistinctFrom: JSON + + """ + Not equal to the specified value. + """ + notEqualTo: JSON + + """ + Not included in the specified list. + """ + notIn: [JSON!] +} + +type LimitFunction { + data: JSON + + """ + Reads a single `Database` that is related to this `LimitFunction`. + """ + database: Database + databaseId: UUID! + description: String + id: UUID! + label: String + name: String + security: Int + + """ + Reads a single `Table` that is related to this `LimitFunction`. + """ + table: Table + tableId: UUID! +} + +""" +A condition to be used against `LimitFunction` object types. All fields are +tested for equality and combined with a logical ‘and.’ +""" +input LimitFunctionCondition { + """ + Checks for equality with the object’s `data` field. + """ + data: JSON + + """ + Checks for equality with the object’s `databaseId` field. + """ + databaseId: UUID + + """ + Checks for equality with the object’s `description` field. + """ + description: String + + """ + Checks for equality with the object’s `id` field. + """ + id: UUID + + """ + Checks for equality with the object’s `label` field. + """ + label: String + + """ + Checks for equality with the object’s `name` field. + """ + name: String + + """ + Checks for equality with the object’s `security` field. + """ + security: Int + + """ + Checks for equality with the object’s `tableId` field. + """ + tableId: UUID +} + +""" +A filter to be used against `LimitFunction` object types. All fields are combined with a logical ‘and.’ +""" +input LimitFunctionFilter { + """ + Checks for all expressions in this list. + """ + and: [LimitFunctionFilter!] + + """ + Filter by the object’s `data` field. + """ + data: JSONFilter + + """ + Filter by the object’s `databaseId` field. + """ + databaseId: UUIDFilter + + """ + Filter by the object’s `description` field. + """ + description: StringFilter + + """ + Filter by the object’s `id` field. + """ + id: UUIDFilter + + """ + Filter by the object’s `label` field. + """ + label: StringFilter + + """ + Filter by the object’s `name` field. + """ + name: StringFilter + + """ + Negates the expression. + """ + not: LimitFunctionFilter + + """ + Checks for any expressions in this list. + """ + or: [LimitFunctionFilter!] + + """ + Filter by the object’s `security` field. + """ + security: IntFilter + + """ + Filter by the object’s `tableId` field. + """ + tableId: UUIDFilter +} + +""" +An input for mutations affecting `LimitFunction` +""" +input LimitFunctionInput { + data: JSON + databaseId: UUID + description: String + id: UUID + label: String + name: String + security: Int + tableId: UUID! +} + +""" +Represents an update to a `LimitFunction`. Fields that are set will be updated. +""" +input LimitFunctionPatch { + data: JSON + databaseId: UUID + description: String + id: UUID + label: String + name: String + security: Int + tableId: UUID +} + +""" +A connection to a list of `LimitFunction` values. +""" +type LimitFunctionsConnection { + """ + A list of edges which contains the `LimitFunction` and cursor to aid in pagination. + """ + edges: [LimitFunctionsEdge!]! + + """ + A list of `LimitFunction` objects. + """ + nodes: [LimitFunction!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `LimitFunction` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `LimitFunction` edge in the connection. +""" +type LimitFunctionsEdge { + """ + A cursor for use in pagination. + """ + cursor: Cursor + + """ + The `LimitFunction` at the end of the edge. + """ + node: LimitFunction! +} + +""" +Methods to use when ordering `LimitFunction`. +""" +enum LimitFunctionsOrderBy { + DATABASE_ID_ASC + DATABASE_ID_DESC + DATA_ASC + DATA_DESC + DESCRIPTION_ASC + DESCRIPTION_DESC + ID_ASC + ID_DESC + LABEL_ASC + LABEL_DESC + NAME_ASC + NAME_DESC + NATURAL + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC + SECURITY_ASC + SECURITY_DESC + TABLE_ID_ASC + TABLE_ID_DESC +} + +""" +All input for the `login` mutation. +""" +input LoginInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + email: String! + password: String! + rememberMe: Boolean +} + +""" +All input for the `loginOneTimeToken` mutation. +""" +input LoginOneTimeTokenInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + token: String! +} + +""" +The output of our `loginOneTimeToken` mutation. +""" +type LoginOneTimeTokenPayload { + apiToken: ApiToken + + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +The output of our `login` mutation. +""" +type LoginPayload { + apiToken: ApiToken + + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the `logout` mutation. +""" +input LogoutInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String +} + +""" +The output of our `logout` mutation. +""" +type LogoutPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +type Member { + """ + Reads a single `User` that is related to this `Member`. + """ + actor: User + actorId: UUID! + + """ + Reads a single `User` that is related to this `Member`. + """ + entity: User + entityId: UUID! + id: UUID! + isAdmin: Boolean! +} + +type MemberClaimedInvite { + createdAt: Datetime! + data: JSON + + """ + Reads a single `User` that is related to this `MemberClaimedInvite`. + """ + entity: User + entityId: UUID! + id: UUID! + + """ + Reads a single `User` that is related to this `MemberClaimedInvite`. + """ + receiver: User + receiverId: UUID + + """ + Reads a single `User` that is related to this `MemberClaimedInvite`. + """ + sender: User + senderId: UUID +} + +""" +A condition to be used against `MemberClaimedInvite` object types. All fields +are tested for equality and combined with a logical ‘and.’ +""" +input MemberClaimedInviteCondition { + """ + Checks for equality with the object’s `createdAt` field. + """ + createdAt: Datetime + + """ + Checks for equality with the object’s `data` field. + """ + data: JSON + + """ + Checks for equality with the object’s `entityId` field. + """ + entityId: UUID + + """ + Checks for equality with the object’s `id` field. + """ + id: UUID + + """ + Checks for equality with the object’s `receiverId` field. + """ + receiverId: UUID + + """ + Checks for equality with the object’s `senderId` field. + """ + senderId: UUID +} + +""" +A filter to be used against `MemberClaimedInvite` object types. All fields are combined with a logical ‘and.’ +""" +input MemberClaimedInviteFilter { + """ + Checks for all expressions in this list. + """ + and: [MemberClaimedInviteFilter!] + + """ + Filter by the object’s `createdAt` field. + """ + createdAt: DatetimeFilter + + """ + Filter by the object’s `entityId` field. + """ + entityId: UUIDFilter + + """ + Filter by the object’s `id` field. + """ + id: UUIDFilter + + """ + Negates the expression. + """ + not: MemberClaimedInviteFilter + + """ + Checks for any expressions in this list. + """ + or: [MemberClaimedInviteFilter!] + + """ + Filter by the object’s `receiverId` field. + """ + receiverId: UUIDFilter + + """ + Filter by the object’s `senderId` field. + """ + senderId: UUIDFilter +} + +""" +An input for mutations affecting `MemberClaimedInvite` +""" +input MemberClaimedInviteInput { + createdAt: Datetime + data: JSON + entityId: UUID! + id: UUID + receiverId: UUID + senderId: UUID +} + +""" +Represents an update to a `MemberClaimedInvite`. Fields that are set will be updated. +""" +input MemberClaimedInvitePatch { + createdAt: Datetime + data: JSON + entityId: UUID + id: UUID + receiverId: UUID + senderId: UUID +} + +""" +A connection to a list of `MemberClaimedInvite` values. +""" +type MemberClaimedInvitesConnection { + """ + A list of edges which contains the `MemberClaimedInvite` and cursor to aid in pagination. + """ + edges: [MemberClaimedInvitesEdge!]! + + """ + A list of `MemberClaimedInvite` objects. + """ + nodes: [MemberClaimedInvite!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `MemberClaimedInvite` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `MemberClaimedInvite` edge in the connection. +""" +type MemberClaimedInvitesEdge { + """ + A cursor for use in pagination. + """ + cursor: Cursor + + """ + The `MemberClaimedInvite` at the end of the edge. + """ + node: MemberClaimedInvite! +} + +""" +Methods to use when ordering `MemberClaimedInvite`. +""" +enum MemberClaimedInvitesOrderBy { + CREATED_AT_ASC + CREATED_AT_DESC + DATA_ASC + DATA_DESC + ENTITY_ID_ASC + ENTITY_ID_DESC + ID_ASC + ID_DESC + NATURAL + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC + RECEIVER_ID_ASC + RECEIVER_ID_DESC + SENDER_ID_ASC + SENDER_ID_DESC +} + +""" +A condition to be used against `Member` object types. All fields are tested for equality and combined with a logical ‘and.’ +""" +input MemberCondition { + """ + Checks for equality with the object’s `actorId` field. + """ + actorId: UUID + + """ + Checks for equality with the object’s `entityId` field. + """ + entityId: UUID + + """ + Checks for equality with the object’s `id` field. + """ + id: UUID + + """ + Checks for equality with the object’s `isAdmin` field. + """ + isAdmin: Boolean +} + +""" +A filter to be used against `Member` object types. All fields are combined with a logical ‘and.’ +""" +input MemberFilter { + """ + Filter by the object’s `actorId` field. + """ + actorId: UUIDFilter + + """ + Checks for all expressions in this list. + """ + and: [MemberFilter!] + + """ + Filter by the object’s `entityId` field. + """ + entityId: UUIDFilter + + """ + Filter by the object’s `id` field. + """ + id: UUIDFilter + + """ + Filter by the object’s `isAdmin` field. + """ + isAdmin: BooleanFilter + + """ + Negates the expression. + """ + not: MemberFilter + + """ + Checks for any expressions in this list. + """ + or: [MemberFilter!] +} + +""" +An input for mutations affecting `Member` +""" +input MemberInput { + actorId: UUID! + entityId: UUID! + id: UUID + isAdmin: Boolean +} + +type MemberInvite { + createdAt: Datetime! + data: JSON + email: String + + """ + Reads a single `User` that is related to this `MemberInvite`. + """ + entity: User + entityId: UUID! + expiresAt: Datetime! + id: UUID! + inviteCount: Int! + inviteLimit: Int! + inviteToken: String! + inviteValid: Boolean! + multiple: Boolean! + + """ + Reads a single `User` that is related to this `MemberInvite`. + """ + sender: User + senderId: UUID! +} + +""" +A condition to be used against `MemberInvite` object types. All fields are +tested for equality and combined with a logical ‘and.’ +""" +input MemberInviteCondition { + """ + Checks for equality with the object’s `createdAt` field. + """ + createdAt: Datetime + + """ + Checks for equality with the object’s `data` field. + """ + data: JSON + + """ + Checks for equality with the object’s `email` field. + """ + email: String + + """ + Checks for equality with the object’s `entityId` field. + """ + entityId: UUID + + """ + Checks for equality with the object’s `expiresAt` field. + """ + expiresAt: Datetime + + """ + Checks for equality with the object’s `id` field. + """ + id: UUID + + """ + Checks for equality with the object’s `inviteCount` field. + """ + inviteCount: Int + + """ + Checks for equality with the object’s `inviteLimit` field. + """ + inviteLimit: Int + + """ + Checks for equality with the object’s `inviteToken` field. + """ + inviteToken: String + + """ + Checks for equality with the object’s `inviteValid` field. + """ + inviteValid: Boolean + + """ + Checks for equality with the object’s `multiple` field. + """ + multiple: Boolean + + """ + Checks for equality with the object’s `senderId` field. + """ + senderId: UUID +} + +""" +A filter to be used against `MemberInvite` object types. All fields are combined with a logical ‘and.’ +""" +input MemberInviteFilter { + """ + Checks for all expressions in this list. + """ + and: [MemberInviteFilter!] + + """ + Filter by the object’s `createdAt` field. + """ + createdAt: DatetimeFilter + + """ + Filter by the object’s `email` field. + """ + email: StringFilter + + """ + Filter by the object’s `entityId` field. + """ + entityId: UUIDFilter + + """ + Filter by the object’s `expiresAt` field. + """ + expiresAt: DatetimeFilter + + """ + Filter by the object’s `id` field. + """ + id: UUIDFilter + + """ + Filter by the object’s `inviteCount` field. + """ + inviteCount: IntFilter + + """ + Filter by the object’s `inviteLimit` field. + """ + inviteLimit: IntFilter + + """ + Filter by the object’s `inviteToken` field. + """ + inviteToken: StringFilter + + """ + Filter by the object’s `inviteValid` field. + """ + inviteValid: BooleanFilter + + """ + Filter by the object’s `multiple` field. + """ + multiple: BooleanFilter + + """ + Negates the expression. + """ + not: MemberInviteFilter + + """ + Checks for any expressions in this list. + """ + or: [MemberInviteFilter!] + + """ + Filter by the object’s `senderId` field. + """ + senderId: UUIDFilter +} + +""" +An input for mutations affecting `MemberInvite` +""" +input MemberInviteInput { + createdAt: Datetime + data: JSON + email: String + entityId: UUID! + expiresAt: Datetime + id: UUID + inviteCount: Int + inviteLimit: Int + inviteToken: String + inviteValid: Boolean + multiple: Boolean + senderId: UUID +} + +""" +Represents an update to a `MemberInvite`. Fields that are set will be updated. +""" +input MemberInvitePatch { + createdAt: Datetime + data: JSON + email: String + entityId: UUID + expiresAt: Datetime + id: UUID + inviteCount: Int + inviteLimit: Int + inviteToken: String + inviteValid: Boolean + multiple: Boolean + senderId: UUID +} + +""" +A connection to a list of `MemberInvite` values. +""" +type MemberInvitesConnection { + """ + A list of edges which contains the `MemberInvite` and cursor to aid in pagination. + """ + edges: [MemberInvitesEdge!]! + + """ + A list of `MemberInvite` objects. + """ + nodes: [MemberInvite!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `MemberInvite` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `MemberInvite` edge in the connection. +""" +type MemberInvitesEdge { + """ + A cursor for use in pagination. + """ + cursor: Cursor + + """ + The `MemberInvite` at the end of the edge. + """ + node: MemberInvite! +} + +""" +Methods to use when ordering `MemberInvite`. +""" +enum MemberInvitesOrderBy { + CREATED_AT_ASC + CREATED_AT_DESC + DATA_ASC + DATA_DESC + EMAIL_ASC + EMAIL_DESC + ENTITY_ID_ASC + ENTITY_ID_DESC + EXPIRES_AT_ASC + EXPIRES_AT_DESC + ID_ASC + ID_DESC + INVITE_COUNT_ASC + INVITE_COUNT_DESC + INVITE_LIMIT_ASC + INVITE_LIMIT_DESC + INVITE_TOKEN_ASC + INVITE_TOKEN_DESC + INVITE_VALID_ASC + INVITE_VALID_DESC + MULTIPLE_ASC + MULTIPLE_DESC + NATURAL + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC + SENDER_ID_ASC + SENDER_ID_DESC +} + +""" +Represents an update to a `Member`. Fields that are set will be updated. +""" +input MemberPatch { + actorId: UUID + entityId: UUID + id: UUID + isAdmin: Boolean +} + +""" +A connection to a list of `Member` values. +""" +type MembersConnection { + """ + A list of edges which contains the `Member` and cursor to aid in pagination. + """ + edges: [MembersEdge!]! + + """ + A list of `Member` objects. + """ + nodes: [Member!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `Member` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `Member` edge in the connection. +""" +type MembersEdge { + """ + A cursor for use in pagination. + """ + cursor: Cursor + + """ + The `Member` at the end of the edge. + """ + node: Member! +} + +""" +Methods to use when ordering `Member`. +""" +enum MembersOrderBy { + ACTOR_ID_ASC + ACTOR_ID_DESC + ENTITY_ID_ASC + ENTITY_ID_DESC + ID_ASC + ID_DESC + IS_ADMIN_ASC + IS_ADMIN_DESC + NATURAL + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC +} + +type Membership { + """ + Reads a single `User` that is related to this `Membership`. + """ + actor: User + actorId: UUID! + + """ + Reads a single `User` that is related to this `Membership`. + """ + entity: User + entityId: UUID! + granted: BitString! + + """ + Reads and enables pagination through a set of `Grant`. + """ + grants( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: GrantCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: GrantFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `Grant`. + """ + orderBy: [GrantsOrderBy!] = [PRIMARY_KEY_ASC] + ): GrantsConnection! + id: UUID! + isAccepted: Boolean! + isActive: Boolean! + isAdmin: Boolean! + isApproved: Boolean! + isBanned: Boolean! + isDisabled: Boolean! + isOwner: Boolean! + permissions: BitString! + + """ + Reads and enables pagination through a set of `User`. + """ + usersByGrantMembershipIdAndEntityId( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: UserCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: UserFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `User`. + """ + orderBy: [UsersOrderBy!] = [PRIMARY_KEY_ASC] + ): MembershipUsersByGrantMembershipIdAndEntityIdManyToManyConnection! + + """ + Reads and enables pagination through a set of `User`. + """ + usersByGrantMembershipIdAndGrantorId( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: UserCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: UserFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `User`. + """ + orderBy: [UsersOrderBy!] = [PRIMARY_KEY_ASC] + ): MembershipUsersByGrantMembershipIdAndGrantorIdManyToManyConnection! +} + +""" +A condition to be used against `Membership` object types. All fields are tested +for equality and combined with a logical ‘and.’ +""" +input MembershipCondition { + """ + Checks for equality with the object’s `actorId` field. + """ + actorId: UUID + + """ + Checks for equality with the object’s `entityId` field. + """ + entityId: UUID + + """ + Checks for equality with the object’s `granted` field. + """ + granted: BitString + + """ + Checks for equality with the object’s `id` field. + """ + id: UUID + + """ + Checks for equality with the object’s `isAccepted` field. + """ + isAccepted: Boolean + + """ + Checks for equality with the object’s `isActive` field. + """ + isActive: Boolean + + """ + Checks for equality with the object’s `isAdmin` field. + """ + isAdmin: Boolean + + """ + Checks for equality with the object’s `isApproved` field. + """ + isApproved: Boolean + + """ + Checks for equality with the object’s `isBanned` field. + """ + isBanned: Boolean + + """ + Checks for equality with the object’s `isDisabled` field. + """ + isDisabled: Boolean + + """ + Checks for equality with the object’s `isOwner` field. + """ + isOwner: Boolean + + """ + Checks for equality with the object’s `permissions` field. + """ + permissions: BitString +} + +type MembershipDefault { + """ + Reads a single `User` that is related to this `MembershipDefault`. + """ + entity: User + entityId: UUID! + id: UUID! + isAccepted: Boolean! + isApproved: Boolean! +} + +""" +A condition to be used against `MembershipDefault` object types. All fields are +tested for equality and combined with a logical ‘and.’ +""" +input MembershipDefaultCondition { + """ + Checks for equality with the object’s `entityId` field. + """ + entityId: UUID + + """ + Checks for equality with the object’s `id` field. + """ + id: UUID + + """ + Checks for equality with the object’s `isAccepted` field. + """ + isAccepted: Boolean + + """ + Checks for equality with the object’s `isApproved` field. + """ + isApproved: Boolean +} + +""" +A filter to be used against `MembershipDefault` object types. All fields are combined with a logical ‘and.’ +""" +input MembershipDefaultFilter { + """ + Checks for all expressions in this list. + """ + and: [MembershipDefaultFilter!] + + """ + Filter by the object’s `entityId` field. + """ + entityId: UUIDFilter + + """ + Filter by the object’s `id` field. + """ + id: UUIDFilter + + """ + Filter by the object’s `isAccepted` field. + """ + isAccepted: BooleanFilter + + """ + Filter by the object’s `isApproved` field. + """ + isApproved: BooleanFilter + + """ + Negates the expression. + """ + not: MembershipDefaultFilter + + """ + Checks for any expressions in this list. + """ + or: [MembershipDefaultFilter!] +} + +""" +An input for mutations affecting `MembershipDefault` +""" +input MembershipDefaultInput { + entityId: UUID! + id: UUID + isAccepted: Boolean + isApproved: Boolean +} + +""" +Represents an update to a `MembershipDefault`. Fields that are set will be updated. +""" +input MembershipDefaultPatch { + entityId: UUID + id: UUID + isAccepted: Boolean + isApproved: Boolean +} + +""" +A connection to a list of `MembershipDefault` values. +""" +type MembershipDefaultsConnection { + """ + A list of edges which contains the `MembershipDefault` and cursor to aid in pagination. + """ + edges: [MembershipDefaultsEdge!]! + + """ + A list of `MembershipDefault` objects. + """ + nodes: [MembershipDefault!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `MembershipDefault` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `MembershipDefault` edge in the connection. +""" +type MembershipDefaultsEdge { + """ + A cursor for use in pagination. + """ + cursor: Cursor + + """ + The `MembershipDefault` at the end of the edge. + """ + node: MembershipDefault! +} + +""" +Methods to use when ordering `MembershipDefault`. +""" +enum MembershipDefaultsOrderBy { + ENTITY_ID_ASC + ENTITY_ID_DESC + ID_ASC + ID_DESC + IS_ACCEPTED_ASC + IS_ACCEPTED_DESC + IS_APPROVED_ASC + IS_APPROVED_DESC + NATURAL + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC +} + +""" +A filter to be used against `Membership` object types. All fields are combined with a logical ‘and.’ +""" +input MembershipFilter { + """ + Filter by the object’s `actorId` field. + """ + actorId: UUIDFilter + + """ + Checks for all expressions in this list. + """ + and: [MembershipFilter!] + + """ + Filter by the object’s `entityId` field. + """ + entityId: UUIDFilter + + """ + Filter by the object’s `granted` field. + """ + granted: BitStringFilter + + """ + Filter by the object’s `id` field. + """ + id: UUIDFilter + + """ + Filter by the object’s `isAccepted` field. + """ + isAccepted: BooleanFilter + + """ + Filter by the object’s `isActive` field. + """ + isActive: BooleanFilter + + """ + Filter by the object’s `isAdmin` field. + """ + isAdmin: BooleanFilter + + """ + Filter by the object’s `isApproved` field. + """ + isApproved: BooleanFilter + + """ + Filter by the object’s `isBanned` field. + """ + isBanned: BooleanFilter + + """ + Filter by the object’s `isDisabled` field. + """ + isDisabled: BooleanFilter + + """ + Filter by the object’s `isOwner` field. + """ + isOwner: BooleanFilter + + """ + Negates the expression. + """ + not: MembershipFilter + + """ + Checks for any expressions in this list. + """ + or: [MembershipFilter!] + + """ + Filter by the object’s `permissions` field. + """ + permissions: BitStringFilter +} + +""" +An input for mutations affecting `Membership` +""" +input MembershipInput { + actorId: UUID! + entityId: UUID! + granted: BitString + id: UUID + isAccepted: Boolean + isActive: Boolean + isAdmin: Boolean + isApproved: Boolean + isBanned: Boolean + isDisabled: Boolean + isOwner: Boolean + permissions: BitString +} + +type MembershipLimit { + """ + Reads a single `User` that is related to this `MembershipLimit`. + """ + actor: User + actorId: UUID! + + """ + Reads a single `User` that is related to this `MembershipLimit`. + """ + entity: User + entityId: UUID! + id: UUID! + max: Int + name: String + num: Int +} + +""" +A condition to be used against `MembershipLimit` object types. All fields are +tested for equality and combined with a logical ‘and.’ +""" +input MembershipLimitCondition { + """ + Checks for equality with the object’s `actorId` field. + """ + actorId: UUID + + """ + Checks for equality with the object’s `entityId` field. + """ + entityId: UUID + + """ + Checks for equality with the object’s `id` field. + """ + id: UUID + + """ + Checks for equality with the object’s `max` field. + """ + max: Int + + """ + Checks for equality with the object’s `name` field. + """ + name: String + + """ + Checks for equality with the object’s `num` field. + """ + num: Int +} + +type MembershipLimitDefault { + id: UUID! + max: Int + name: String! +} + +""" +A condition to be used against `MembershipLimitDefault` object types. All fields +are tested for equality and combined with a logical ‘and.’ +""" +input MembershipLimitDefaultCondition { + """ + Checks for equality with the object’s `id` field. + """ + id: UUID + + """ + Checks for equality with the object’s `max` field. + """ + max: Int + + """ + Checks for equality with the object’s `name` field. + """ + name: String +} + +""" +A filter to be used against `MembershipLimitDefault` object types. All fields are combined with a logical ‘and.’ +""" +input MembershipLimitDefaultFilter { + """ + Checks for all expressions in this list. + """ + and: [MembershipLimitDefaultFilter!] + + """ + Filter by the object’s `id` field. + """ + id: UUIDFilter + + """ + Filter by the object’s `max` field. + """ + max: IntFilter + + """ + Filter by the object’s `name` field. + """ + name: StringFilter + + """ + Negates the expression. + """ + not: MembershipLimitDefaultFilter + + """ + Checks for any expressions in this list. + """ + or: [MembershipLimitDefaultFilter!] +} + +""" +An input for mutations affecting `MembershipLimitDefault` +""" +input MembershipLimitDefaultInput { + id: UUID + max: Int + name: String! +} + +""" +Represents an update to a `MembershipLimitDefault`. Fields that are set will be updated. +""" +input MembershipLimitDefaultPatch { + id: UUID + max: Int + name: String +} + +""" +A connection to a list of `MembershipLimitDefault` values. +""" +type MembershipLimitDefaultsConnection { + """ + A list of edges which contains the `MembershipLimitDefault` and cursor to aid in pagination. + """ + edges: [MembershipLimitDefaultsEdge!]! + + """ + A list of `MembershipLimitDefault` objects. + """ + nodes: [MembershipLimitDefault!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `MembershipLimitDefault` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `MembershipLimitDefault` edge in the connection. +""" +type MembershipLimitDefaultsEdge { + """ + A cursor for use in pagination. + """ + cursor: Cursor + + """ + The `MembershipLimitDefault` at the end of the edge. + """ + node: MembershipLimitDefault! +} + +""" +Methods to use when ordering `MembershipLimitDefault`. +""" +enum MembershipLimitDefaultsOrderBy { + ID_ASC + ID_DESC + MAX_ASC + MAX_DESC + NAME_ASC + NAME_DESC + NATURAL + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC +} + +""" +A filter to be used against `MembershipLimit` object types. All fields are combined with a logical ‘and.’ +""" +input MembershipLimitFilter { + """ + Filter by the object’s `actorId` field. + """ + actorId: UUIDFilter + + """ + Checks for all expressions in this list. + """ + and: [MembershipLimitFilter!] + + """ + Filter by the object’s `entityId` field. + """ + entityId: UUIDFilter + + """ + Filter by the object’s `id` field. + """ + id: UUIDFilter + + """ + Filter by the object’s `max` field. + """ + max: IntFilter + + """ + Filter by the object’s `name` field. + """ + name: StringFilter + + """ + Negates the expression. + """ + not: MembershipLimitFilter + + """ + Filter by the object’s `num` field. + """ + num: IntFilter + + """ + Checks for any expressions in this list. + """ + or: [MembershipLimitFilter!] +} + +""" +An input for mutations affecting `MembershipLimit` +""" +input MembershipLimitInput { + actorId: UUID! + entityId: UUID! + id: UUID + max: Int + name: String + num: Int +} + +""" +Represents an update to a `MembershipLimit`. Fields that are set will be updated. +""" +input MembershipLimitPatch { + actorId: UUID + entityId: UUID + id: UUID + max: Int + name: String + num: Int +} + +""" +A connection to a list of `MembershipLimit` values. +""" +type MembershipLimitsConnection { + """ + A list of edges which contains the `MembershipLimit` and cursor to aid in pagination. + """ + edges: [MembershipLimitsEdge!]! + + """ + A list of `MembershipLimit` objects. + """ + nodes: [MembershipLimit!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `MembershipLimit` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `MembershipLimit` edge in the connection. +""" +type MembershipLimitsEdge { + """ + A cursor for use in pagination. + """ + cursor: Cursor + + """ + The `MembershipLimit` at the end of the edge. + """ + node: MembershipLimit! +} + +""" +Methods to use when ordering `MembershipLimit`. +""" +enum MembershipLimitsOrderBy { + ACTOR_ID_ASC + ACTOR_ID_DESC + ENTITY_ID_ASC + ENTITY_ID_DESC + ID_ASC + ID_DESC + MAX_ASC + MAX_DESC + NAME_ASC + NAME_DESC + NATURAL + NUM_ASC + NUM_DESC + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC +} + +""" +Represents an update to a `Membership`. Fields that are set will be updated. +""" +input MembershipPatch { + actorId: UUID + entityId: UUID + granted: BitString + id: UUID + isAccepted: Boolean + isActive: Boolean + isAdmin: Boolean + isApproved: Boolean + isBanned: Boolean + isDisabled: Boolean + isOwner: Boolean + permissions: BitString +} + +type MembershipPermission { + bitnum: Int + bitstr: BitString! + description: String + id: UUID! + name: String +} + +""" +A condition to be used against `MembershipPermission` object types. All fields +are tested for equality and combined with a logical ‘and.’ +""" +input MembershipPermissionCondition { + """ + Checks for equality with the object’s `bitnum` field. + """ + bitnum: Int + + """ + Checks for equality with the object’s `bitstr` field. + """ + bitstr: BitString + + """ + Checks for equality with the object’s `description` field. + """ + description: String + + """ + Checks for equality with the object’s `id` field. + """ + id: UUID + + """ + Checks for equality with the object’s `name` field. + """ + name: String +} + +type MembershipPermissionDefault { + """ + Reads a single `User` that is related to this `MembershipPermissionDefault`. + """ + entity: User + entityId: UUID! + id: UUID! + permissions: BitString! +} + +""" +A condition to be used against `MembershipPermissionDefault` object types. All +fields are tested for equality and combined with a logical ‘and.’ +""" +input MembershipPermissionDefaultCondition { + """ + Checks for equality with the object’s `entityId` field. + """ + entityId: UUID + + """ + Checks for equality with the object’s `id` field. + """ + id: UUID + + """ + Checks for equality with the object’s `permissions` field. + """ + permissions: BitString +} + +""" +A filter to be used against `MembershipPermissionDefault` object types. All fields are combined with a logical ‘and.’ +""" +input MembershipPermissionDefaultFilter { + """ + Checks for all expressions in this list. + """ + and: [MembershipPermissionDefaultFilter!] + + """ + Filter by the object’s `entityId` field. + """ + entityId: UUIDFilter + + """ + Filter by the object’s `id` field. + """ + id: UUIDFilter + + """ + Negates the expression. + """ + not: MembershipPermissionDefaultFilter + + """ + Checks for any expressions in this list. + """ + or: [MembershipPermissionDefaultFilter!] + + """ + Filter by the object’s `permissions` field. + """ + permissions: BitStringFilter +} + +""" +An input for mutations affecting `MembershipPermissionDefault` +""" +input MembershipPermissionDefaultInput { + entityId: UUID! + id: UUID + permissions: BitString +} + +""" +Represents an update to a `MembershipPermissionDefault`. Fields that are set will be updated. +""" +input MembershipPermissionDefaultPatch { + entityId: UUID + id: UUID + permissions: BitString +} + +""" +A connection to a list of `MembershipPermissionDefault` values. +""" +type MembershipPermissionDefaultsConnection { + """ + A list of edges which contains the `MembershipPermissionDefault` and cursor to aid in pagination. + """ + edges: [MembershipPermissionDefaultsEdge!]! + + """ + A list of `MembershipPermissionDefault` objects. + """ + nodes: [MembershipPermissionDefault!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `MembershipPermissionDefault` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `MembershipPermissionDefault` edge in the connection. +""" +type MembershipPermissionDefaultsEdge { + """ + A cursor for use in pagination. + """ + cursor: Cursor + + """ + The `MembershipPermissionDefault` at the end of the edge. + """ + node: MembershipPermissionDefault! +} + +""" +Methods to use when ordering `MembershipPermissionDefault`. +""" +enum MembershipPermissionDefaultsOrderBy { + ENTITY_ID_ASC + ENTITY_ID_DESC + ID_ASC + ID_DESC + NATURAL + PERMISSIONS_ASC + PERMISSIONS_DESC + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC +} + +""" +A filter to be used against `MembershipPermission` object types. All fields are combined with a logical ‘and.’ +""" +input MembershipPermissionFilter { + """ + Checks for all expressions in this list. + """ + and: [MembershipPermissionFilter!] + + """ + Filter by the object’s `bitnum` field. + """ + bitnum: IntFilter + + """ + Filter by the object’s `bitstr` field. + """ + bitstr: BitStringFilter + + """ + Filter by the object’s `description` field. + """ + description: StringFilter + + """ + Filter by the object’s `id` field. + """ + id: UUIDFilter + + """ + Filter by the object’s `name` field. + """ + name: StringFilter + + """ + Negates the expression. + """ + not: MembershipPermissionFilter + + """ + Checks for any expressions in this list. + """ + or: [MembershipPermissionFilter!] +} + +""" +An input for mutations affecting `MembershipPermission` +""" +input MembershipPermissionInput { + bitnum: Int + bitstr: BitString + description: String + id: UUID + name: String +} + +""" +Represents an update to a `MembershipPermission`. Fields that are set will be updated. +""" +input MembershipPermissionPatch { + bitnum: Int + bitstr: BitString + description: String + id: UUID + name: String +} + +""" +A connection to a list of `MembershipPermission` values. +""" +type MembershipPermissionsConnection { + """ + A list of edges which contains the `MembershipPermission` and cursor to aid in pagination. + """ + edges: [MembershipPermissionsEdge!]! + + """ + A list of `MembershipPermission` objects. + """ + nodes: [MembershipPermission!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `MembershipPermission` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `MembershipPermission` edge in the connection. +""" +type MembershipPermissionsEdge { + """ + A cursor for use in pagination. + """ + cursor: Cursor + + """ + The `MembershipPermission` at the end of the edge. + """ + node: MembershipPermission! +} + +""" +Methods to use when ordering `MembershipPermission`. +""" +enum MembershipPermissionsOrderBy { + BITNUM_ASC + BITNUM_DESC + BITSTR_ASC + BITSTR_DESC + DESCRIPTION_ASC + DESCRIPTION_DESC + ID_ASC + ID_DESC + NAME_ASC + NAME_DESC + NATURAL + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC +} + +type MembershipType { + description: String! + id: Int! + name: String! + prefix: String! +} + +""" +A condition to be used against `MembershipType` object types. All fields are +tested for equality and combined with a logical ‘and.’ +""" +input MembershipTypeCondition { + """ + Checks for equality with the object’s `description` field. + """ + description: String + + """ + Checks for equality with the object’s `id` field. + """ + id: Int + + """ + Checks for equality with the object’s `name` field. + """ + name: String + + """ + Checks for equality with the object’s `prefix` field. + """ + prefix: String +} + +""" +A filter to be used against `MembershipType` object types. All fields are combined with a logical ‘and.’ +""" +input MembershipTypeFilter { + """ + Checks for all expressions in this list. + """ + and: [MembershipTypeFilter!] + + """ + Filter by the object’s `description` field. + """ + description: StringFilter + + """ + Filter by the object’s `id` field. + """ + id: IntFilter + + """ + Filter by the object’s `name` field. + """ + name: StringFilter + + """ + Negates the expression. + """ + not: MembershipTypeFilter + + """ + Checks for any expressions in this list. + """ + or: [MembershipTypeFilter!] + + """ + Filter by the object’s `prefix` field. + """ + prefix: StringFilter +} + +""" +An input for mutations affecting `MembershipType` +""" +input MembershipTypeInput { + description: String! + id: Int! + name: String! + prefix: String! +} + +""" +Represents an update to a `MembershipType`. Fields that are set will be updated. +""" +input MembershipTypePatch { + description: String + id: Int + name: String + prefix: String +} + +""" +A connection to a list of `MembershipType` values. +""" +type MembershipTypesConnection { + """ + A list of edges which contains the `MembershipType` and cursor to aid in pagination. + """ + edges: [MembershipTypesEdge!]! + + """ + A list of `MembershipType` objects. + """ + nodes: [MembershipType!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `MembershipType` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `MembershipType` edge in the connection. +""" +type MembershipTypesEdge { + """ + A cursor for use in pagination. + """ + cursor: Cursor + + """ + The `MembershipType` at the end of the edge. + """ + node: MembershipType! +} + +""" +Methods to use when ordering `MembershipType`. +""" +enum MembershipTypesOrderBy { + DESCRIPTION_ASC + DESCRIPTION_DESC + ID_ASC + ID_DESC + NAME_ASC + NAME_DESC + NATURAL + PREFIX_ASC + PREFIX_DESC + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC +} + +""" +A connection to a list of `User` values, with data from `Grant`. +""" +type MembershipUsersByGrantMembershipIdAndEntityIdManyToManyConnection { + """ + A list of edges which contains the `User`, info from the `Grant`, and the cursor to aid in pagination. + """ + edges: [MembershipUsersByGrantMembershipIdAndEntityIdManyToManyEdge!]! + + """ + A list of `User` objects. + """ + nodes: [User!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `User` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `User` edge in the connection, with data from `Grant`. +""" +type MembershipUsersByGrantMembershipIdAndEntityIdManyToManyEdge { + """ + A cursor for use in pagination. + """ + cursor: Cursor + + """ + Reads and enables pagination through a set of `Grant`. + """ + grantsByEntityId( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: GrantCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: GrantFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `Grant`. + """ + orderBy: [GrantsOrderBy!] = [PRIMARY_KEY_ASC] + ): GrantsConnection! + + """ + The `User` at the end of the edge. + """ + node: User! +} + +""" +A connection to a list of `User` values, with data from `Grant`. +""" +type MembershipUsersByGrantMembershipIdAndGrantorIdManyToManyConnection { + """ + A list of edges which contains the `User`, info from the `Grant`, and the cursor to aid in pagination. + """ + edges: [MembershipUsersByGrantMembershipIdAndGrantorIdManyToManyEdge!]! + + """ + A list of `User` objects. + """ + nodes: [User!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `User` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `User` edge in the connection, with data from `Grant`. +""" +type MembershipUsersByGrantMembershipIdAndGrantorIdManyToManyEdge { + """ + A cursor for use in pagination. + """ + cursor: Cursor + + """ + Reads and enables pagination through a set of `Grant`. + """ + grantsByGrantorId( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: GrantCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: GrantFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `Grant`. + """ + orderBy: [GrantsOrderBy!] = [PRIMARY_KEY_ASC] + ): GrantsConnection! + + """ + The `User` at the end of the edge. + """ + node: User! +} + +""" +A connection to a list of `Membership` values. +""" +type MembershipsConnection { + """ + A list of edges which contains the `Membership` and cursor to aid in pagination. + """ + edges: [MembershipsEdge!]! + + """ + A list of `Membership` objects. + """ + nodes: [Membership!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `Membership` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `Membership` edge in the connection. +""" +type MembershipsEdge { + """ + A cursor for use in pagination. + """ + cursor: Cursor + + """ + The `Membership` at the end of the edge. + """ + node: Membership! +} + +""" +Methods to use when ordering `Membership`. +""" +enum MembershipsOrderBy { + ACTOR_ID_ASC + ACTOR_ID_DESC + ENTITY_ID_ASC + ENTITY_ID_DESC + GRANTED_ASC + GRANTED_DESC + ID_ASC + ID_DESC + IS_ACCEPTED_ASC + IS_ACCEPTED_DESC + IS_ACTIVE_ASC + IS_ACTIVE_DESC + IS_ADMIN_ASC + IS_ADMIN_DESC + IS_APPROVED_ASC + IS_APPROVED_DESC + IS_BANNED_ASC + IS_BANNED_DESC + IS_DISABLED_ASC + IS_DISABLED_DESC + IS_OWNER_ASC + IS_OWNER_DESC + NATURAL + PERMISSIONS_ASC + PERMISSIONS_DESC + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC +} + +type Metaschema { + tables: [MetaschemaTable] +} + +type MetaschemaCheckConstraint { + fields: [MetaschemaField] + name: String! +} + +union MetaschemaConstraint = + | MetaschemaCheckConstraint + | MetaschemaExclusionConstraint + | MetaschemaForeignKeyConstraint + | MetaschemaPrimaryKeyConstraint + | MetaschemaUniqueConstraint + +type MetaschemaExclusionConstraint { + fields: [MetaschemaField] + name: String! +} + +type MetaschemaField { + name: String! + type: MetaschemaType! +} + +type MetaschemaForeignKeyConstraint { + fields: [MetaschemaField] + name: String! + refFields: [MetaschemaField] + refTable: MetaschemaTable +} + +type MetaschemaPrimaryKeyConstraint { + fields: [MetaschemaField] + name: String! +} + +type MetaschemaTable { + checkConstraints: [MetaschemaCheckConstraint] + constraints: [MetaschemaConstraint] + exclusionConstraints: [MetaschemaExclusionConstraint] + fields: [MetaschemaField] + foreignKeyConstraints: [MetaschemaForeignKeyConstraint] + inflection: MetaschemaTableInflection! + name: String! + primaryKeyConstraints: [MetaschemaPrimaryKeyConstraint] + query: MetaschemaTableQuery! + relations: MetaschemaTableRelation + uniqueConstraints: [MetaschemaUniqueConstraint] +} + +type MetaschemaTableBelongsToRelation { + fieldName: String + isUnique: Boolean! + keys: [MetaschemaField] + references: MetaschemaTable! + type: String +} + +type MetaschemaTableHasRelation { + fieldName: String + isUnique: Boolean! + keys: [MetaschemaField] + referencedBy: MetaschemaTable! + type: String +} + +type MetaschemaTableInflection { + allRows: String! + allRowsSimple: String! + conditionType: String! + connection: String! + createField: String! + createInputType: String! + createPayloadType: String! + deleteByPrimaryKey: String + deletePayloadType: String! + edge: String! + edgeField: String! + enumType: String! + filterType: String + inputType: String! + orderByType: String! + patchField: String! + patchType: String + tableFieldName: String! + tableType: String! + typeName: String! + updateByPrimaryKey: String + updatePayloadType: String +} + +type MetaschemaTableManyToManyRelation { + fieldName: String + junctionLeftConstraint: MetaschemaForeignKeyConstraint! + junctionLeftKeyAttributes: [MetaschemaField]! + junctionRightConstraint: MetaschemaForeignKeyConstraint! + junctionRightKeyAttributes: [MetaschemaField]! + junctionTable: MetaschemaTable! + leftKeyAttributes: [MetaschemaField]! + rightKeyAttributes: [MetaschemaField]! + rightTable: MetaschemaTable! + type: String +} + +type MetaschemaTableQuery { + all: String! + create: String! + delete: String + one: String! + update: String +} + +type MetaschemaTableRelation { + belongsTo: [MetaschemaTableBelongsToRelation] + has: [MetaschemaTableHasRelation] + hasMany: [MetaschemaTableHasRelation] + hasOne: [MetaschemaTableHasRelation] + manyToMany: [MetaschemaTableManyToManyRelation] +} + +type MetaschemaType { + gqlType: String! + isArray: Boolean! + modifier: Int + pgAlias: String! + pgType: String! + subtype: String + typmod: JSON +} + +type MetaschemaUniqueConstraint { + fields: [MetaschemaField] + name: String! +} + +""" +The root mutation type which contains root level fields which mutate data. +""" +type Mutation { + applyRls( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: ApplyRlsInput! + ): ApplyRlsPayload + bootstrapUser( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: BootstrapUserInput! + ): BootstrapUserPayload + confirmDeleteAccount( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: ConfirmDeleteAccountInput! + ): ConfirmDeleteAccountPayload + + """ + Creates a single `Address`. + """ + createAddress( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateAddressInput! + ): CreateAddressPayload + + """ + Creates a single `Api`. + """ + createApi( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateApiInput! + ): CreateApiPayload + + """ + Creates a single `ApiExtension`. + """ + createApiExtension( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateApiExtensionInput! + ): CreateApiExtensionPayload + + """ + Creates a single `ApiModule`. + """ + createApiModule( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateApiModuleInput! + ): CreateApiModulePayload + + """ + Creates a single `ApiSchema`. + """ + createApiSchema( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateApiSchemaInput! + ): CreateApiSchemaPayload + + """ + Creates a single `App`. + """ + createApp( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateAppInput! + ): CreateAppPayload + + """ + Creates a single `AppAchievement`. + """ + createAppAchievement( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateAppAchievementInput! + ): CreateAppAchievementPayload + + """ + Creates a single `AppGrant`. + """ + createAppGrant( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateAppGrantInput! + ): CreateAppGrantPayload + + """ + Creates a single `AppLevel`. + """ + createAppLevel( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateAppLevelInput! + ): CreateAppLevelPayload + + """ + Creates a single `AppLevelRequirement`. + """ + createAppLevelRequirement( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateAppLevelRequirementInput! + ): CreateAppLevelRequirementPayload + + """ + Creates a single `AppLimit`. + """ + createAppLimit( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateAppLimitInput! + ): CreateAppLimitPayload + + """ + Creates a single `AppLimitDefault`. + """ + createAppLimitDefault( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateAppLimitDefaultInput! + ): CreateAppLimitDefaultPayload + + """ + Creates a single `AppMembership`. + """ + createAppMembership( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateAppMembershipInput! + ): CreateAppMembershipPayload + + """ + Creates a single `AppMembershipDefault`. + """ + createAppMembershipDefault( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateAppMembershipDefaultInput! + ): CreateAppMembershipDefaultPayload + + """ + Creates a single `AppPermission`. + """ + createAppPermission( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateAppPermissionInput! + ): CreateAppPermissionPayload + + """ + Creates a single `AppPermissionDefault`. + """ + createAppPermissionDefault( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateAppPermissionDefaultInput! + ): CreateAppPermissionDefaultPayload + + """ + Creates a single `AppStep`. + """ + createAppStep( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateAppStepInput! + ): CreateAppStepPayload + + """ + Creates a single `AuthAccount`. + """ + createAuthAccount( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateAuthAccountInput! + ): CreateAuthAccountPayload + + """ + Creates a single `CheckConstraint`. + """ + createCheckConstraint( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateCheckConstraintInput! + ): CreateCheckConstraintPayload + + """ + Creates a single `ClaimedInvite`. + """ + createClaimedInvite( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateClaimedInviteInput! + ): CreateClaimedInvitePayload + + """ + Creates a single `ConnectedAccount`. + """ + createConnectedAccount( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateConnectedAccountInput! + ): CreateConnectedAccountPayload + + """ + Creates a single `CryptoAddress`. + """ + createCryptoAddress( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateCryptoAddressInput! + ): CreateCryptoAddressPayload + + """ + Creates a single `Database`. + """ + createDatabase( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateDatabaseInput! + ): CreateDatabasePayload + + """ + Creates a single `DatabaseExtension`. + """ + createDatabaseExtension( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateDatabaseExtensionInput! + ): CreateDatabaseExtensionPayload + + """ + Creates a single `DatabaseProvision`. + """ + createDatabaseProvision( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateDatabaseProvisionInput! + ): CreateDatabaseProvisionPayload + + """ + Creates a single `Domain`. + """ + createDomain( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateDomainInput! + ): CreateDomainPayload + + """ + Creates a single `Email`. + """ + createEmail( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateEmailInput! + ): CreateEmailPayload + + """ + Creates a single `Extension`. + """ + createExtension( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateExtensionInput! + ): CreateExtensionPayload + + """ + Creates a single `Field`. + """ + createField( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateFieldInput! + ): CreateFieldPayload + + """ + Creates a single `ForeignKeyConstraint`. + """ + createForeignKeyConstraint( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateForeignKeyConstraintInput! + ): CreateForeignKeyConstraintPayload + + """ + Creates a single `FullTextSearch`. + """ + createFullTextSearch( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateFullTextSearchInput! + ): CreateFullTextSearchPayload + + """ + Creates a single `Grant`. + """ + createGrant( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateGrantInput! + ): CreateGrantPayload + + """ + Creates a single `Index`. + """ + createIndex( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateIndexInput! + ): CreateIndexPayload + + """ + Creates a single `Invite`. + """ + createInvite( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateInviteInput! + ): CreateInvitePayload + + """ + Creates a single `LimitFunction`. + """ + createLimitFunction( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateLimitFunctionInput! + ): CreateLimitFunctionPayload + + """ + Creates a single `Member`. + """ + createMember( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateMemberInput! + ): CreateMemberPayload + + """ + Creates a single `MemberClaimedInvite`. + """ + createMemberClaimedInvite( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateMemberClaimedInviteInput! + ): CreateMemberClaimedInvitePayload + + """ + Creates a single `MemberInvite`. + """ + createMemberInvite( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateMemberInviteInput! + ): CreateMemberInvitePayload + + """ + Creates a single `Membership`. + """ + createMembership( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateMembershipInput! + ): CreateMembershipPayload + + """ + Creates a single `MembershipDefault`. + """ + createMembershipDefault( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateMembershipDefaultInput! + ): CreateMembershipDefaultPayload + + """ + Creates a single `MembershipLimit`. + """ + createMembershipLimit( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateMembershipLimitInput! + ): CreateMembershipLimitPayload + + """ + Creates a single `MembershipLimitDefault`. + """ + createMembershipLimitDefault( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateMembershipLimitDefaultInput! + ): CreateMembershipLimitDefaultPayload + + """ + Creates a single `MembershipPermission`. + """ + createMembershipPermission( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateMembershipPermissionInput! + ): CreateMembershipPermissionPayload + + """ + Creates a single `MembershipPermissionDefault`. + """ + createMembershipPermissionDefault( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateMembershipPermissionDefaultInput! + ): CreateMembershipPermissionDefaultPayload + + """ + Creates a single `MembershipType`. + """ + createMembershipType( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateMembershipTypeInput! + ): CreateMembershipTypePayload + + """ + Creates a single `OrganizationSetting`. + """ + createOrganizationSetting( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateOrganizationSettingInput! + ): CreateOrganizationSettingPayload + + """ + Creates a single `PhoneNumber`. + """ + createPhoneNumber( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreatePhoneNumberInput! + ): CreatePhoneNumberPayload + + """ + Creates a single `Policy`. + """ + createPolicy( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreatePolicyInput! + ): CreatePolicyPayload + + """ + Creates a single `PrimaryKeyConstraint`. + """ + createPrimaryKeyConstraint( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreatePrimaryKeyConstraintInput! + ): CreatePrimaryKeyConstraintPayload + + """ + Creates a single `Procedure`. + """ + createProcedure( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateProcedureInput! + ): CreateProcedurePayload + + """ + Creates a single `RlsFunction`. + """ + createRlsFunction( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateRlsFunctionInput! + ): CreateRlsFunctionPayload + + """ + Creates a single `RoleType`. + """ + createRoleType( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateRoleTypeInput! + ): CreateRoleTypePayload + + """ + Creates a single `Schema`. + """ + createSchema( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateSchemaInput! + ): CreateSchemaPayload + + """ + Creates a single `SchemaGrant`. + """ + createSchemaGrant( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateSchemaGrantInput! + ): CreateSchemaGrantPayload + + """ + Creates a single `Site`. + """ + createSite( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateSiteInput! + ): CreateSitePayload + + """ + Creates a single `SiteMetadatum`. + """ + createSiteMetadatum( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateSiteMetadatumInput! + ): CreateSiteMetadatumPayload + + """ + Creates a single `SiteModule`. + """ + createSiteModule( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateSiteModuleInput! + ): CreateSiteModulePayload + + """ + Creates a single `SiteTheme`. + """ + createSiteTheme( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateSiteThemeInput! + ): CreateSiteThemePayload + + """ + Creates a single `Table`. + """ + createTable( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateTableInput! + ): CreateTablePayload + + """ + Creates a single `TableGrant`. + """ + createTableGrant( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateTableGrantInput! + ): CreateTableGrantPayload + + """ + Creates a single `Trigger`. + """ + createTrigger( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateTriggerInput! + ): CreateTriggerPayload + + """ + Creates a single `TriggerFunction`. + """ + createTriggerFunction( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateTriggerFunctionInput! + ): CreateTriggerFunctionPayload + + """ + Creates a single `UniqueConstraint`. + """ + createUniqueConstraint( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateUniqueConstraintInput! + ): CreateUniqueConstraintPayload + + """ + Creates a single `User`. + """ + createUser( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateUserInput! + ): CreateUserPayload + + """ + Creates a single `UserConnection`. + """ + createUserConnection( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateUserConnectionInput! + ): CreateUserConnectionPayload + + """ + Creates a single `UserContact`. + """ + createUserContact( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateUserContactInput! + ): CreateUserContactPayload + + """ + Creates a new user database with all required modules, permissions, and RLS policies. + + Parameters: + - database_name: Name for the new database (required) + - owner_id: UUID of the owner user (required) + - include_invites: Include invite system (default: true) + - include_groups: Include group-level memberships (default: false) + - include_levels: Include levels/achievements (default: false) + - bitlen: Bit length for permission masks (default: 64) + - tokens_expiration: Token expiration interval (default: 30 days) + + Returns the database_id UUID of the newly created database. + + Example usage: + SELECT metaschema_public.create_user_database('my_app', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11'::uuid); + SELECT metaschema_public.create_user_database('my_app', 'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11'::uuid, true, true); -- with invites and groups + """ + createUserDatabase( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateUserDatabaseInput! + ): CreateUserDatabasePayload + + """ + Creates a single `UserProfile`. + """ + createUserProfile( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateUserProfileInput! + ): CreateUserProfilePayload + + """ + Creates a single `UserSetting`. + """ + createUserSetting( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: CreateUserSettingInput! + ): CreateUserSettingPayload + + """ + Deletes a single `Address` using a unique key. + """ + deleteAddress( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteAddressInput! + ): DeleteAddressPayload + + """ + Deletes a single `Api` using a unique key. + """ + deleteApi( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteApiInput! + ): DeleteApiPayload + + """ + Deletes a single `Api` using a unique key. + """ + deleteApiByDatabaseIdAndName( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteApiByDatabaseIdAndNameInput! + ): DeleteApiPayload + + """ + Deletes a single `ApiExtension` using a unique key. + """ + deleteApiExtension( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteApiExtensionInput! + ): DeleteApiExtensionPayload + + """ + Deletes a single `ApiExtension` using a unique key. + """ + deleteApiExtensionBySchemaNameAndApiId( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteApiExtensionBySchemaNameAndApiIdInput! + ): DeleteApiExtensionPayload + + """ + Deletes a single `ApiModule` using a unique key. + """ + deleteApiModule( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteApiModuleInput! + ): DeleteApiModulePayload + + """ + Deletes a single `ApiSchema` using a unique key. + """ + deleteApiSchema( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteApiSchemaInput! + ): DeleteApiSchemaPayload + + """ + Deletes a single `ApiSchema` using a unique key. + """ + deleteApiSchemaByApiIdAndSchemaId( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteApiSchemaByApiIdAndSchemaIdInput! + ): DeleteApiSchemaPayload + + """ + Deletes a single `App` using a unique key. + """ + deleteApp( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteAppInput! + ): DeleteAppPayload + + """ + Deletes a single `AppAchievement` using a unique key. + """ + deleteAppAchievement( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteAppAchievementInput! + ): DeleteAppAchievementPayload + + """ + Deletes a single `AppAchievement` using a unique key. + """ + deleteAppAchievementByActorIdAndName( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteAppAchievementByActorIdAndNameInput! + ): DeleteAppAchievementPayload + + """ + Deletes a single `App` using a unique key. + """ + deleteAppBySiteId( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteAppBySiteIdInput! + ): DeleteAppPayload + + """ + Deletes a single `AppGrant` using a unique key. + """ + deleteAppGrant( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteAppGrantInput! + ): DeleteAppGrantPayload + + """ + Deletes a single `AppLevel` using a unique key. + """ + deleteAppLevel( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteAppLevelInput! + ): DeleteAppLevelPayload + + """ + Deletes a single `AppLevel` using a unique key. + """ + deleteAppLevelByName( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteAppLevelByNameInput! + ): DeleteAppLevelPayload + + """ + Deletes a single `AppLevelRequirement` using a unique key. + """ + deleteAppLevelRequirement( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteAppLevelRequirementInput! + ): DeleteAppLevelRequirementPayload + + """ + Deletes a single `AppLevelRequirement` using a unique key. + """ + deleteAppLevelRequirementByNameAndLevel( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteAppLevelRequirementByNameAndLevelInput! + ): DeleteAppLevelRequirementPayload + + """ + Deletes a single `AppLimit` using a unique key. + """ + deleteAppLimit( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteAppLimitInput! + ): DeleteAppLimitPayload + + """ + Deletes a single `AppLimit` using a unique key. + """ + deleteAppLimitByNameAndActorId( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteAppLimitByNameAndActorIdInput! + ): DeleteAppLimitPayload + + """ + Deletes a single `AppLimitDefault` using a unique key. + """ + deleteAppLimitDefault( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteAppLimitDefaultInput! + ): DeleteAppLimitDefaultPayload + + """ + Deletes a single `AppLimitDefault` using a unique key. + """ + deleteAppLimitDefaultByName( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteAppLimitDefaultByNameInput! + ): DeleteAppLimitDefaultPayload + + """ + Deletes a single `AppMembership` using a unique key. + """ + deleteAppMembership( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteAppMembershipInput! + ): DeleteAppMembershipPayload + + """ + Deletes a single `AppMembership` using a unique key. + """ + deleteAppMembershipByActorId( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteAppMembershipByActorIdInput! + ): DeleteAppMembershipPayload + + """ + Deletes a single `AppMembershipDefault` using a unique key. + """ + deleteAppMembershipDefault( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteAppMembershipDefaultInput! + ): DeleteAppMembershipDefaultPayload + + """ + Deletes a single `AppPermission` using a unique key. + """ + deleteAppPermission( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteAppPermissionInput! + ): DeleteAppPermissionPayload + + """ + Deletes a single `AppPermission` using a unique key. + """ + deleteAppPermissionByBitnum( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteAppPermissionByBitnumInput! + ): DeleteAppPermissionPayload + + """ + Deletes a single `AppPermission` using a unique key. + """ + deleteAppPermissionByName( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteAppPermissionByNameInput! + ): DeleteAppPermissionPayload + + """ + Deletes a single `AppPermissionDefault` using a unique key. + """ + deleteAppPermissionDefault( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteAppPermissionDefaultInput! + ): DeleteAppPermissionDefaultPayload + + """ + Deletes a single `AppStep` using a unique key. + """ + deleteAppStep( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteAppStepInput! + ): DeleteAppStepPayload + + """ + Deletes a single `AuthAccount` using a unique key. + """ + deleteAuthAccount( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteAuthAccountInput! + ): DeleteAuthAccountPayload + + """ + Deletes a single `AuthAccount` using a unique key. + """ + deleteAuthAccountByServiceAndIdentifier( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteAuthAccountByServiceAndIdentifierInput! + ): DeleteAuthAccountPayload + + """ + Deletes a single `CheckConstraint` using a unique key. + """ + deleteCheckConstraint( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteCheckConstraintInput! + ): DeleteCheckConstraintPayload + + """ + Deletes a single `CheckConstraint` using a unique key. + """ + deleteCheckConstraintByTableIdAndName( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteCheckConstraintByTableIdAndNameInput! + ): DeleteCheckConstraintPayload + + """ + Deletes a single `ClaimedInvite` using a unique key. + """ + deleteClaimedInvite( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteClaimedInviteInput! + ): DeleteClaimedInvitePayload + + """ + Deletes a single `ConnectedAccount` using a unique key. + """ + deleteConnectedAccount( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteConnectedAccountInput! + ): DeleteConnectedAccountPayload + + """ + Deletes a single `ConnectedAccount` using a unique key. + """ + deleteConnectedAccountByServiceAndIdentifier( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteConnectedAccountByServiceAndIdentifierInput! + ): DeleteConnectedAccountPayload + + """ + Deletes a single `CryptoAddress` using a unique key. + """ + deleteCryptoAddress( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteCryptoAddressInput! + ): DeleteCryptoAddressPayload + + """ + Deletes a single `CryptoAddress` using a unique key. + """ + deleteCryptoAddressByAddress( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteCryptoAddressByAddressInput! + ): DeleteCryptoAddressPayload + + """ + Deletes a single `Database` using a unique key. + """ + deleteDatabase( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteDatabaseInput! + ): DeleteDatabasePayload + + """ + Deletes a single `Database` using a unique key. + """ + deleteDatabaseByPrivateSchemaName( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteDatabaseByPrivateSchemaNameInput! + ): DeleteDatabasePayload + + """ + Deletes a single `Database` using a unique key. + """ + deleteDatabaseBySchemaName( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteDatabaseBySchemaNameInput! + ): DeleteDatabasePayload + + """ + Deletes a single `DatabaseExtension` using a unique key. + """ + deleteDatabaseExtension( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteDatabaseExtensionInput! + ): DeleteDatabaseExtensionPayload + + """ + Deletes a single `DatabaseExtension` using a unique key. + """ + deleteDatabaseExtensionByDatabaseIdAndName( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteDatabaseExtensionByDatabaseIdAndNameInput! + ): DeleteDatabaseExtensionPayload + + """ + Deletes a single `DatabaseProvision` using a unique key. + """ + deleteDatabaseProvision( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteDatabaseProvisionInput! + ): DeleteDatabaseProvisionPayload + + """ + Deletes a single `Domain` using a unique key. + """ + deleteDomain( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteDomainInput! + ): DeleteDomainPayload + + """ + Deletes a single `Domain` using a unique key. + """ + deleteDomainBySubdomainAndDomain( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteDomainBySubdomainAndDomainInput! + ): DeleteDomainPayload + + """ + Deletes a single `Email` using a unique key. + """ + deleteEmail( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteEmailInput! + ): DeleteEmailPayload + + """ + Deletes a single `Email` using a unique key. + """ + deleteEmailByEmail( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteEmailByEmailInput! + ): DeleteEmailPayload + + """ + Deletes a single `Extension` using a unique key. + """ + deleteExtension( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteExtensionInput! + ): DeleteExtensionPayload + + """ + Deletes a single `Field` using a unique key. + """ + deleteField( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteFieldInput! + ): DeleteFieldPayload + + """ + Deletes a single `Field` using a unique key. + """ + deleteFieldByTableIdAndName( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteFieldByTableIdAndNameInput! + ): DeleteFieldPayload + + """ + Deletes a single `ForeignKeyConstraint` using a unique key. + """ + deleteForeignKeyConstraint( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteForeignKeyConstraintInput! + ): DeleteForeignKeyConstraintPayload + + """ + Deletes a single `ForeignKeyConstraint` using a unique key. + """ + deleteForeignKeyConstraintByTableIdAndName( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteForeignKeyConstraintByTableIdAndNameInput! + ): DeleteForeignKeyConstraintPayload + + """ + Deletes a single `FullTextSearch` using a unique key. + """ + deleteFullTextSearch( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteFullTextSearchInput! + ): DeleteFullTextSearchPayload + + """ + Deletes a single `Grant` using a unique key. + """ + deleteGrant( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteGrantInput! + ): DeleteGrantPayload + + """ + Deletes a single `Index` using a unique key. + """ + deleteIndex( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteIndexInput! + ): DeleteIndexPayload + + """ + Deletes a single `Index` using a unique key. + """ + deleteIndexByDatabaseIdAndName( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteIndexByDatabaseIdAndNameInput! + ): DeleteIndexPayload + + """ + Deletes a single `Invite` using a unique key. + """ + deleteInvite( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteInviteInput! + ): DeleteInvitePayload + + """ + Deletes a single `Invite` using a unique key. + """ + deleteInviteByEmailAndSenderId( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteInviteByEmailAndSenderIdInput! + ): DeleteInvitePayload + + """ + Deletes a single `Invite` using a unique key. + """ + deleteInviteByInviteToken( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteInviteByInviteTokenInput! + ): DeleteInvitePayload + + """ + Deletes a single `LimitFunction` using a unique key. + """ + deleteLimitFunction( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteLimitFunctionInput! + ): DeleteLimitFunctionPayload + + """ + Deletes a single `LimitFunction` using a unique key. + """ + deleteLimitFunctionByDatabaseIdAndName( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteLimitFunctionByDatabaseIdAndNameInput! + ): DeleteLimitFunctionPayload + + """ + Deletes a single `Member` using a unique key. + """ + deleteMember( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteMemberInput! + ): DeleteMemberPayload + + """ + Deletes a single `Member` using a unique key. + """ + deleteMemberByActorIdAndEntityId( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteMemberByActorIdAndEntityIdInput! + ): DeleteMemberPayload + + """ + Deletes a single `MemberClaimedInvite` using a unique key. + """ + deleteMemberClaimedInvite( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteMemberClaimedInviteInput! + ): DeleteMemberClaimedInvitePayload + + """ + Deletes a single `MemberInvite` using a unique key. + """ + deleteMemberInvite( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteMemberInviteInput! + ): DeleteMemberInvitePayload + + """ + Deletes a single `MemberInvite` using a unique key. + """ + deleteMemberInviteByEmailAndSenderIdAndEntityId( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteMemberInviteByEmailAndSenderIdAndEntityIdInput! + ): DeleteMemberInvitePayload + + """ + Deletes a single `MemberInvite` using a unique key. + """ + deleteMemberInviteByInviteToken( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteMemberInviteByInviteTokenInput! + ): DeleteMemberInvitePayload + + """ + Deletes a single `Membership` using a unique key. + """ + deleteMembership( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteMembershipInput! + ): DeleteMembershipPayload + + """ + Deletes a single `Membership` using a unique key. + """ + deleteMembershipByActorIdAndEntityId( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteMembershipByActorIdAndEntityIdInput! + ): DeleteMembershipPayload + + """ + Deletes a single `MembershipDefault` using a unique key. + """ + deleteMembershipDefault( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteMembershipDefaultInput! + ): DeleteMembershipDefaultPayload + + """ + Deletes a single `MembershipDefault` using a unique key. + """ + deleteMembershipDefaultByEntityId( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteMembershipDefaultByEntityIdInput! + ): DeleteMembershipDefaultPayload + + """ + Deletes a single `MembershipLimit` using a unique key. + """ + deleteMembershipLimit( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteMembershipLimitInput! + ): DeleteMembershipLimitPayload + + """ + Deletes a single `MembershipLimit` using a unique key. + """ + deleteMembershipLimitByNameAndActorIdAndEntityId( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteMembershipLimitByNameAndActorIdAndEntityIdInput! + ): DeleteMembershipLimitPayload + + """ + Deletes a single `MembershipLimitDefault` using a unique key. + """ + deleteMembershipLimitDefault( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteMembershipLimitDefaultInput! + ): DeleteMembershipLimitDefaultPayload + + """ + Deletes a single `MembershipLimitDefault` using a unique key. + """ + deleteMembershipLimitDefaultByName( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteMembershipLimitDefaultByNameInput! + ): DeleteMembershipLimitDefaultPayload + + """ + Deletes a single `MembershipPermission` using a unique key. + """ + deleteMembershipPermission( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteMembershipPermissionInput! + ): DeleteMembershipPermissionPayload + + """ + Deletes a single `MembershipPermission` using a unique key. + """ + deleteMembershipPermissionByBitnum( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteMembershipPermissionByBitnumInput! + ): DeleteMembershipPermissionPayload + + """ + Deletes a single `MembershipPermission` using a unique key. + """ + deleteMembershipPermissionByName( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteMembershipPermissionByNameInput! + ): DeleteMembershipPermissionPayload + + """ + Deletes a single `MembershipPermissionDefault` using a unique key. + """ + deleteMembershipPermissionDefault( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteMembershipPermissionDefaultInput! + ): DeleteMembershipPermissionDefaultPayload + + """ + Deletes a single `MembershipType` using a unique key. + """ + deleteMembershipType( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteMembershipTypeInput! + ): DeleteMembershipTypePayload + + """ + Deletes a single `MembershipType` using a unique key. + """ + deleteMembershipTypeByName( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteMembershipTypeByNameInput! + ): DeleteMembershipTypePayload + + """ + Deletes a single `OrganizationSetting` using a unique key. + """ + deleteOrganizationSetting( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteOrganizationSettingInput! + ): DeleteOrganizationSettingPayload + + """ + Deletes a single `PhoneNumber` using a unique key. + """ + deletePhoneNumber( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeletePhoneNumberInput! + ): DeletePhoneNumberPayload + + """ + Deletes a single `PhoneNumber` using a unique key. + """ + deletePhoneNumberByNumber( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeletePhoneNumberByNumberInput! + ): DeletePhoneNumberPayload + + """ + Deletes a single `Policy` using a unique key. + """ + deletePolicy( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeletePolicyInput! + ): DeletePolicyPayload + + """ + Deletes a single `Policy` using a unique key. + """ + deletePolicyByTableIdAndName( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeletePolicyByTableIdAndNameInput! + ): DeletePolicyPayload + + """ + Deletes a single `PrimaryKeyConstraint` using a unique key. + """ + deletePrimaryKeyConstraint( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeletePrimaryKeyConstraintInput! + ): DeletePrimaryKeyConstraintPayload + + """ + Deletes a single `PrimaryKeyConstraint` using a unique key. + """ + deletePrimaryKeyConstraintByTableIdAndName( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeletePrimaryKeyConstraintByTableIdAndNameInput! + ): DeletePrimaryKeyConstraintPayload + + """ + Deletes a single `Procedure` using a unique key. + """ + deleteProcedure( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteProcedureInput! + ): DeleteProcedurePayload + + """ + Deletes a single `Procedure` using a unique key. + """ + deleteProcedureByDatabaseIdAndName( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteProcedureByDatabaseIdAndNameInput! + ): DeleteProcedurePayload + + """ + Deletes a single `RlsFunction` using a unique key. + """ + deleteRlsFunction( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteRlsFunctionInput! + ): DeleteRlsFunctionPayload + + """ + Deletes a single `RlsFunction` using a unique key. + """ + deleteRlsFunctionByDatabaseIdAndName( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteRlsFunctionByDatabaseIdAndNameInput! + ): DeleteRlsFunctionPayload + + """ + Deletes a single `RoleType` using a unique key. + """ + deleteRoleType( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteRoleTypeInput! + ): DeleteRoleTypePayload + + """ + Deletes a single `RoleType` using a unique key. + """ + deleteRoleTypeByName( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteRoleTypeByNameInput! + ): DeleteRoleTypePayload + + """ + Deletes a single `Schema` using a unique key. + """ + deleteSchema( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteSchemaInput! + ): DeleteSchemaPayload + + """ + Deletes a single `Schema` using a unique key. + """ + deleteSchemaByDatabaseIdAndName( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteSchemaByDatabaseIdAndNameInput! + ): DeleteSchemaPayload + + """ + Deletes a single `Schema` using a unique key. + """ + deleteSchemaBySchemaName( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteSchemaBySchemaNameInput! + ): DeleteSchemaPayload + + """ + Deletes a single `SchemaGrant` using a unique key. + """ + deleteSchemaGrant( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteSchemaGrantInput! + ): DeleteSchemaGrantPayload + + """ + Deletes a single `Site` using a unique key. + """ + deleteSite( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteSiteInput! + ): DeleteSitePayload + + """ + Deletes a single `SiteMetadatum` using a unique key. + """ + deleteSiteMetadatum( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteSiteMetadatumInput! + ): DeleteSiteMetadatumPayload + + """ + Deletes a single `SiteModule` using a unique key. + """ + deleteSiteModule( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteSiteModuleInput! + ): DeleteSiteModulePayload + + """ + Deletes a single `SiteTheme` using a unique key. + """ + deleteSiteTheme( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteSiteThemeInput! + ): DeleteSiteThemePayload + + """ + Deletes a single `Table` using a unique key. + """ + deleteTable( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteTableInput! + ): DeleteTablePayload + + """ + Deletes a single `Table` using a unique key. + """ + deleteTableByDatabaseIdAndName( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteTableByDatabaseIdAndNameInput! + ): DeleteTablePayload + + """ + Deletes a single `TableGrant` using a unique key. + """ + deleteTableGrant( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteTableGrantInput! + ): DeleteTableGrantPayload + + """ + Deletes a single `Trigger` using a unique key. + """ + deleteTrigger( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteTriggerInput! + ): DeleteTriggerPayload + + """ + Deletes a single `Trigger` using a unique key. + """ + deleteTriggerByTableIdAndName( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteTriggerByTableIdAndNameInput! + ): DeleteTriggerPayload + + """ + Deletes a single `TriggerFunction` using a unique key. + """ + deleteTriggerFunction( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteTriggerFunctionInput! + ): DeleteTriggerFunctionPayload + + """ + Deletes a single `TriggerFunction` using a unique key. + """ + deleteTriggerFunctionByDatabaseIdAndName( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteTriggerFunctionByDatabaseIdAndNameInput! + ): DeleteTriggerFunctionPayload + + """ + Deletes a single `UniqueConstraint` using a unique key. + """ + deleteUniqueConstraint( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteUniqueConstraintInput! + ): DeleteUniqueConstraintPayload + + """ + Deletes a single `UniqueConstraint` using a unique key. + """ + deleteUniqueConstraintByTableIdAndName( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteUniqueConstraintByTableIdAndNameInput! + ): DeleteUniqueConstraintPayload + + """ + Deletes a single `User` using a unique key. + """ + deleteUser( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteUserInput! + ): DeleteUserPayload + + """ + Deletes a single `User` using a unique key. + """ + deleteUserByUsername( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteUserByUsernameInput! + ): DeleteUserPayload + + """ + Deletes a single `UserConnection` using a unique key. + """ + deleteUserConnection( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteUserConnectionInput! + ): DeleteUserConnectionPayload + + """ + Deletes a single `UserContact` using a unique key. + """ + deleteUserContact( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteUserContactInput! + ): DeleteUserContactPayload + + """ + Deletes a single `UserProfile` using a unique key. + """ + deleteUserProfile( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteUserProfileInput! + ): DeleteUserProfilePayload + + """ + Deletes a single `UserProfile` using a unique key. + """ + deleteUserProfileByUserId( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteUserProfileByUserIdInput! + ): DeleteUserProfilePayload + + """ + Deletes a single `UserSetting` using a unique key. + """ + deleteUserSetting( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteUserSettingInput! + ): DeleteUserSettingPayload + + """ + Deletes a single `UserSetting` using a unique key. + """ + deleteUserSettingByUserId( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: DeleteUserSettingByUserIdInput! + ): DeleteUserSettingPayload + extendTokenExpires( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: ExtendTokenExpiresInput! + ): ExtendTokenExpiresPayload + forgotPassword( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: ForgotPasswordInput! + ): ForgotPasswordPayload + login( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: LoginInput! + ): LoginPayload + loginOneTimeToken( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: LoginOneTimeTokenInput! + ): LoginOneTimeTokenPayload + logout( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: LogoutInput! + ): LogoutPayload + oneTimeToken( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: OneTimeTokenInput! + ): OneTimeTokenPayload + register( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: RegisterInput! + ): RegisterPayload + resetPassword( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: ResetPasswordInput! + ): ResetPasswordPayload + sendAccountDeletionEmail( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: SendAccountDeletionEmailInput! + ): SendAccountDeletionEmailPayload + sendVerificationEmail( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: SendVerificationEmailInput! + ): SendVerificationEmailPayload + setFieldOrder( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: SetFieldOrderInput! + ): SetFieldOrderPayload + setPassword( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: SetPasswordInput! + ): SetPasswordPayload + submitInviteCode( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: SubmitInviteCodeInput! + ): SubmitInviteCodePayload + submitMemberInviteCode( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: SubmitMemberInviteCodeInput! + ): SubmitMemberInviteCodePayload + + """ + Updates a single `Address` using a unique key and a patch. + """ + updateAddress( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateAddressInput! + ): UpdateAddressPayload + + """ + Updates a single `Api` using a unique key and a patch. + """ + updateApi( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateApiInput! + ): UpdateApiPayload + + """ + Updates a single `Api` using a unique key and a patch. + """ + updateApiByDatabaseIdAndName( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateApiByDatabaseIdAndNameInput! + ): UpdateApiPayload + + """ + Updates a single `ApiExtension` using a unique key and a patch. + """ + updateApiExtension( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateApiExtensionInput! + ): UpdateApiExtensionPayload + + """ + Updates a single `ApiExtension` using a unique key and a patch. + """ + updateApiExtensionBySchemaNameAndApiId( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateApiExtensionBySchemaNameAndApiIdInput! + ): UpdateApiExtensionPayload + + """ + Updates a single `ApiModule` using a unique key and a patch. + """ + updateApiModule( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateApiModuleInput! + ): UpdateApiModulePayload + + """ + Updates a single `ApiSchema` using a unique key and a patch. + """ + updateApiSchema( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateApiSchemaInput! + ): UpdateApiSchemaPayload + + """ + Updates a single `ApiSchema` using a unique key and a patch. + """ + updateApiSchemaByApiIdAndSchemaId( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateApiSchemaByApiIdAndSchemaIdInput! + ): UpdateApiSchemaPayload + + """ + Updates a single `App` using a unique key and a patch. + """ + updateApp( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateAppInput! + ): UpdateAppPayload + + """ + Updates a single `AppAchievement` using a unique key and a patch. + """ + updateAppAchievement( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateAppAchievementInput! + ): UpdateAppAchievementPayload + + """ + Updates a single `AppAchievement` using a unique key and a patch. + """ + updateAppAchievementByActorIdAndName( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateAppAchievementByActorIdAndNameInput! + ): UpdateAppAchievementPayload + + """ + Updates a single `App` using a unique key and a patch. + """ + updateAppBySiteId( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateAppBySiteIdInput! + ): UpdateAppPayload + + """ + Updates a single `AppGrant` using a unique key and a patch. + """ + updateAppGrant( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateAppGrantInput! + ): UpdateAppGrantPayload + + """ + Updates a single `AppLevel` using a unique key and a patch. + """ + updateAppLevel( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateAppLevelInput! + ): UpdateAppLevelPayload + + """ + Updates a single `AppLevel` using a unique key and a patch. + """ + updateAppLevelByName( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateAppLevelByNameInput! + ): UpdateAppLevelPayload + + """ + Updates a single `AppLevelRequirement` using a unique key and a patch. + """ + updateAppLevelRequirement( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateAppLevelRequirementInput! + ): UpdateAppLevelRequirementPayload + + """ + Updates a single `AppLevelRequirement` using a unique key and a patch. + """ + updateAppLevelRequirementByNameAndLevel( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateAppLevelRequirementByNameAndLevelInput! + ): UpdateAppLevelRequirementPayload + + """ + Updates a single `AppLimit` using a unique key and a patch. + """ + updateAppLimit( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateAppLimitInput! + ): UpdateAppLimitPayload + + """ + Updates a single `AppLimit` using a unique key and a patch. + """ + updateAppLimitByNameAndActorId( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateAppLimitByNameAndActorIdInput! + ): UpdateAppLimitPayload + + """ + Updates a single `AppLimitDefault` using a unique key and a patch. + """ + updateAppLimitDefault( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateAppLimitDefaultInput! + ): UpdateAppLimitDefaultPayload + + """ + Updates a single `AppLimitDefault` using a unique key and a patch. + """ + updateAppLimitDefaultByName( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateAppLimitDefaultByNameInput! + ): UpdateAppLimitDefaultPayload + + """ + Updates a single `AppMembership` using a unique key and a patch. + """ + updateAppMembership( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateAppMembershipInput! + ): UpdateAppMembershipPayload + + """ + Updates a single `AppMembership` using a unique key and a patch. + """ + updateAppMembershipByActorId( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateAppMembershipByActorIdInput! + ): UpdateAppMembershipPayload + + """ + Updates a single `AppMembershipDefault` using a unique key and a patch. + """ + updateAppMembershipDefault( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateAppMembershipDefaultInput! + ): UpdateAppMembershipDefaultPayload + + """ + Updates a single `AppPermission` using a unique key and a patch. + """ + updateAppPermission( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateAppPermissionInput! + ): UpdateAppPermissionPayload + + """ + Updates a single `AppPermission` using a unique key and a patch. + """ + updateAppPermissionByBitnum( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateAppPermissionByBitnumInput! + ): UpdateAppPermissionPayload + + """ + Updates a single `AppPermission` using a unique key and a patch. + """ + updateAppPermissionByName( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateAppPermissionByNameInput! + ): UpdateAppPermissionPayload + + """ + Updates a single `AppPermissionDefault` using a unique key and a patch. + """ + updateAppPermissionDefault( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateAppPermissionDefaultInput! + ): UpdateAppPermissionDefaultPayload + + """ + Updates a single `AppStep` using a unique key and a patch. + """ + updateAppStep( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateAppStepInput! + ): UpdateAppStepPayload + + """ + Updates a single `AuthAccount` using a unique key and a patch. + """ + updateAuthAccount( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateAuthAccountInput! + ): UpdateAuthAccountPayload + + """ + Updates a single `AuthAccount` using a unique key and a patch. + """ + updateAuthAccountByServiceAndIdentifier( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateAuthAccountByServiceAndIdentifierInput! + ): UpdateAuthAccountPayload + + """ + Updates a single `CheckConstraint` using a unique key and a patch. + """ + updateCheckConstraint( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateCheckConstraintInput! + ): UpdateCheckConstraintPayload + + """ + Updates a single `CheckConstraint` using a unique key and a patch. + """ + updateCheckConstraintByTableIdAndName( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateCheckConstraintByTableIdAndNameInput! + ): UpdateCheckConstraintPayload + + """ + Updates a single `ClaimedInvite` using a unique key and a patch. + """ + updateClaimedInvite( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateClaimedInviteInput! + ): UpdateClaimedInvitePayload + + """ + Updates a single `ConnectedAccount` using a unique key and a patch. + """ + updateConnectedAccount( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateConnectedAccountInput! + ): UpdateConnectedAccountPayload + + """ + Updates a single `ConnectedAccount` using a unique key and a patch. + """ + updateConnectedAccountByServiceAndIdentifier( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateConnectedAccountByServiceAndIdentifierInput! + ): UpdateConnectedAccountPayload + + """ + Updates a single `CryptoAddress` using a unique key and a patch. + """ + updateCryptoAddress( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateCryptoAddressInput! + ): UpdateCryptoAddressPayload + + """ + Updates a single `CryptoAddress` using a unique key and a patch. + """ + updateCryptoAddressByAddress( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateCryptoAddressByAddressInput! + ): UpdateCryptoAddressPayload + + """ + Updates a single `Database` using a unique key and a patch. + """ + updateDatabase( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateDatabaseInput! + ): UpdateDatabasePayload + + """ + Updates a single `Database` using a unique key and a patch. + """ + updateDatabaseByPrivateSchemaName( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateDatabaseByPrivateSchemaNameInput! + ): UpdateDatabasePayload + + """ + Updates a single `Database` using a unique key and a patch. + """ + updateDatabaseBySchemaName( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateDatabaseBySchemaNameInput! + ): UpdateDatabasePayload + + """ + Updates a single `DatabaseExtension` using a unique key and a patch. + """ + updateDatabaseExtension( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateDatabaseExtensionInput! + ): UpdateDatabaseExtensionPayload + + """ + Updates a single `DatabaseExtension` using a unique key and a patch. + """ + updateDatabaseExtensionByDatabaseIdAndName( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateDatabaseExtensionByDatabaseIdAndNameInput! + ): UpdateDatabaseExtensionPayload + + """ + Updates a single `DatabaseProvision` using a unique key and a patch. + """ + updateDatabaseProvision( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateDatabaseProvisionInput! + ): UpdateDatabaseProvisionPayload + + """ + Updates a single `Domain` using a unique key and a patch. + """ + updateDomain( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateDomainInput! + ): UpdateDomainPayload + + """ + Updates a single `Domain` using a unique key and a patch. + """ + updateDomainBySubdomainAndDomain( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateDomainBySubdomainAndDomainInput! + ): UpdateDomainPayload + + """ + Updates a single `Email` using a unique key and a patch. + """ + updateEmail( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateEmailInput! + ): UpdateEmailPayload + + """ + Updates a single `Email` using a unique key and a patch. + """ + updateEmailByEmail( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateEmailByEmailInput! + ): UpdateEmailPayload + + """ + Updates a single `Extension` using a unique key and a patch. + """ + updateExtension( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateExtensionInput! + ): UpdateExtensionPayload + + """ + Updates a single `Field` using a unique key and a patch. + """ + updateField( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateFieldInput! + ): UpdateFieldPayload + + """ + Updates a single `Field` using a unique key and a patch. + """ + updateFieldByTableIdAndName( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateFieldByTableIdAndNameInput! + ): UpdateFieldPayload + + """ + Updates a single `ForeignKeyConstraint` using a unique key and a patch. + """ + updateForeignKeyConstraint( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateForeignKeyConstraintInput! + ): UpdateForeignKeyConstraintPayload + + """ + Updates a single `ForeignKeyConstraint` using a unique key and a patch. + """ + updateForeignKeyConstraintByTableIdAndName( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateForeignKeyConstraintByTableIdAndNameInput! + ): UpdateForeignKeyConstraintPayload + + """ + Updates a single `FullTextSearch` using a unique key and a patch. + """ + updateFullTextSearch( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateFullTextSearchInput! + ): UpdateFullTextSearchPayload + + """ + Updates a single `Grant` using a unique key and a patch. + """ + updateGrant( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateGrantInput! + ): UpdateGrantPayload + + """ + Updates a single `Index` using a unique key and a patch. + """ + updateIndex( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateIndexInput! + ): UpdateIndexPayload + + """ + Updates a single `Index` using a unique key and a patch. + """ + updateIndexByDatabaseIdAndName( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateIndexByDatabaseIdAndNameInput! + ): UpdateIndexPayload + + """ + Updates a single `Invite` using a unique key and a patch. + """ + updateInvite( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateInviteInput! + ): UpdateInvitePayload + + """ + Updates a single `Invite` using a unique key and a patch. + """ + updateInviteByEmailAndSenderId( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateInviteByEmailAndSenderIdInput! + ): UpdateInvitePayload + + """ + Updates a single `Invite` using a unique key and a patch. + """ + updateInviteByInviteToken( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateInviteByInviteTokenInput! + ): UpdateInvitePayload + + """ + Updates a single `LimitFunction` using a unique key and a patch. + """ + updateLimitFunction( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateLimitFunctionInput! + ): UpdateLimitFunctionPayload + + """ + Updates a single `LimitFunction` using a unique key and a patch. + """ + updateLimitFunctionByDatabaseIdAndName( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateLimitFunctionByDatabaseIdAndNameInput! + ): UpdateLimitFunctionPayload + + """ + Updates a single `Member` using a unique key and a patch. + """ + updateMember( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateMemberInput! + ): UpdateMemberPayload + + """ + Updates a single `Member` using a unique key and a patch. + """ + updateMemberByActorIdAndEntityId( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateMemberByActorIdAndEntityIdInput! + ): UpdateMemberPayload + + """ + Updates a single `MemberClaimedInvite` using a unique key and a patch. + """ + updateMemberClaimedInvite( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateMemberClaimedInviteInput! + ): UpdateMemberClaimedInvitePayload + + """ + Updates a single `MemberInvite` using a unique key and a patch. + """ + updateMemberInvite( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateMemberInviteInput! + ): UpdateMemberInvitePayload + + """ + Updates a single `MemberInvite` using a unique key and a patch. + """ + updateMemberInviteByEmailAndSenderIdAndEntityId( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateMemberInviteByEmailAndSenderIdAndEntityIdInput! + ): UpdateMemberInvitePayload + + """ + Updates a single `MemberInvite` using a unique key and a patch. + """ + updateMemberInviteByInviteToken( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateMemberInviteByInviteTokenInput! + ): UpdateMemberInvitePayload + + """ + Updates a single `Membership` using a unique key and a patch. + """ + updateMembership( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateMembershipInput! + ): UpdateMembershipPayload + + """ + Updates a single `Membership` using a unique key and a patch. + """ + updateMembershipByActorIdAndEntityId( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateMembershipByActorIdAndEntityIdInput! + ): UpdateMembershipPayload + + """ + Updates a single `MembershipDefault` using a unique key and a patch. + """ + updateMembershipDefault( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateMembershipDefaultInput! + ): UpdateMembershipDefaultPayload + + """ + Updates a single `MembershipDefault` using a unique key and a patch. + """ + updateMembershipDefaultByEntityId( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateMembershipDefaultByEntityIdInput! + ): UpdateMembershipDefaultPayload + + """ + Updates a single `MembershipLimit` using a unique key and a patch. + """ + updateMembershipLimit( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateMembershipLimitInput! + ): UpdateMembershipLimitPayload + + """ + Updates a single `MembershipLimit` using a unique key and a patch. + """ + updateMembershipLimitByNameAndActorIdAndEntityId( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateMembershipLimitByNameAndActorIdAndEntityIdInput! + ): UpdateMembershipLimitPayload + + """ + Updates a single `MembershipLimitDefault` using a unique key and a patch. + """ + updateMembershipLimitDefault( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateMembershipLimitDefaultInput! + ): UpdateMembershipLimitDefaultPayload + + """ + Updates a single `MembershipLimitDefault` using a unique key and a patch. + """ + updateMembershipLimitDefaultByName( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateMembershipLimitDefaultByNameInput! + ): UpdateMembershipLimitDefaultPayload + + """ + Updates a single `MembershipPermission` using a unique key and a patch. + """ + updateMembershipPermission( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateMembershipPermissionInput! + ): UpdateMembershipPermissionPayload + + """ + Updates a single `MembershipPermission` using a unique key and a patch. + """ + updateMembershipPermissionByBitnum( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateMembershipPermissionByBitnumInput! + ): UpdateMembershipPermissionPayload + + """ + Updates a single `MembershipPermission` using a unique key and a patch. + """ + updateMembershipPermissionByName( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateMembershipPermissionByNameInput! + ): UpdateMembershipPermissionPayload + + """ + Updates a single `MembershipPermissionDefault` using a unique key and a patch. + """ + updateMembershipPermissionDefault( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateMembershipPermissionDefaultInput! + ): UpdateMembershipPermissionDefaultPayload + + """ + Updates a single `MembershipType` using a unique key and a patch. + """ + updateMembershipType( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateMembershipTypeInput! + ): UpdateMembershipTypePayload + + """ + Updates a single `MembershipType` using a unique key and a patch. + """ + updateMembershipTypeByName( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateMembershipTypeByNameInput! + ): UpdateMembershipTypePayload + + """ + Updates a single `OrganizationSetting` using a unique key and a patch. + """ + updateOrganizationSetting( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateOrganizationSettingInput! + ): UpdateOrganizationSettingPayload + + """ + Updates a single `PhoneNumber` using a unique key and a patch. + """ + updatePhoneNumber( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdatePhoneNumberInput! + ): UpdatePhoneNumberPayload + + """ + Updates a single `PhoneNumber` using a unique key and a patch. + """ + updatePhoneNumberByNumber( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdatePhoneNumberByNumberInput! + ): UpdatePhoneNumberPayload + + """ + Updates a single `Policy` using a unique key and a patch. + """ + updatePolicy( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdatePolicyInput! + ): UpdatePolicyPayload + + """ + Updates a single `Policy` using a unique key and a patch. + """ + updatePolicyByTableIdAndName( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdatePolicyByTableIdAndNameInput! + ): UpdatePolicyPayload + + """ + Updates a single `PrimaryKeyConstraint` using a unique key and a patch. + """ + updatePrimaryKeyConstraint( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdatePrimaryKeyConstraintInput! + ): UpdatePrimaryKeyConstraintPayload + + """ + Updates a single `PrimaryKeyConstraint` using a unique key and a patch. + """ + updatePrimaryKeyConstraintByTableIdAndName( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdatePrimaryKeyConstraintByTableIdAndNameInput! + ): UpdatePrimaryKeyConstraintPayload + + """ + Updates a single `Procedure` using a unique key and a patch. + """ + updateProcedure( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateProcedureInput! + ): UpdateProcedurePayload + + """ + Updates a single `Procedure` using a unique key and a patch. + """ + updateProcedureByDatabaseIdAndName( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateProcedureByDatabaseIdAndNameInput! + ): UpdateProcedurePayload + + """ + Updates a single `RlsFunction` using a unique key and a patch. + """ + updateRlsFunction( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateRlsFunctionInput! + ): UpdateRlsFunctionPayload + + """ + Updates a single `RlsFunction` using a unique key and a patch. + """ + updateRlsFunctionByDatabaseIdAndName( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateRlsFunctionByDatabaseIdAndNameInput! + ): UpdateRlsFunctionPayload + + """ + Updates a single `RoleType` using a unique key and a patch. + """ + updateRoleType( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateRoleTypeInput! + ): UpdateRoleTypePayload + + """ + Updates a single `RoleType` using a unique key and a patch. + """ + updateRoleTypeByName( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateRoleTypeByNameInput! + ): UpdateRoleTypePayload + + """ + Updates a single `Schema` using a unique key and a patch. + """ + updateSchema( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateSchemaInput! + ): UpdateSchemaPayload + + """ + Updates a single `Schema` using a unique key and a patch. + """ + updateSchemaByDatabaseIdAndName( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateSchemaByDatabaseIdAndNameInput! + ): UpdateSchemaPayload + + """ + Updates a single `Schema` using a unique key and a patch. + """ + updateSchemaBySchemaName( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateSchemaBySchemaNameInput! + ): UpdateSchemaPayload + + """ + Updates a single `SchemaGrant` using a unique key and a patch. + """ + updateSchemaGrant( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateSchemaGrantInput! + ): UpdateSchemaGrantPayload + + """ + Updates a single `Site` using a unique key and a patch. + """ + updateSite( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateSiteInput! + ): UpdateSitePayload + + """ + Updates a single `SiteMetadatum` using a unique key and a patch. + """ + updateSiteMetadatum( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateSiteMetadatumInput! + ): UpdateSiteMetadatumPayload + + """ + Updates a single `SiteModule` using a unique key and a patch. + """ + updateSiteModule( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateSiteModuleInput! + ): UpdateSiteModulePayload + + """ + Updates a single `SiteTheme` using a unique key and a patch. + """ + updateSiteTheme( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateSiteThemeInput! + ): UpdateSiteThemePayload + + """ + Updates a single `Table` using a unique key and a patch. + """ + updateTable( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateTableInput! + ): UpdateTablePayload + + """ + Updates a single `Table` using a unique key and a patch. + """ + updateTableByDatabaseIdAndName( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateTableByDatabaseIdAndNameInput! + ): UpdateTablePayload + + """ + Updates a single `TableGrant` using a unique key and a patch. + """ + updateTableGrant( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateTableGrantInput! + ): UpdateTableGrantPayload + + """ + Updates a single `Trigger` using a unique key and a patch. + """ + updateTrigger( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateTriggerInput! + ): UpdateTriggerPayload + + """ + Updates a single `Trigger` using a unique key and a patch. + """ + updateTriggerByTableIdAndName( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateTriggerByTableIdAndNameInput! + ): UpdateTriggerPayload + + """ + Updates a single `TriggerFunction` using a unique key and a patch. + """ + updateTriggerFunction( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateTriggerFunctionInput! + ): UpdateTriggerFunctionPayload + + """ + Updates a single `TriggerFunction` using a unique key and a patch. + """ + updateTriggerFunctionByDatabaseIdAndName( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateTriggerFunctionByDatabaseIdAndNameInput! + ): UpdateTriggerFunctionPayload + + """ + Updates a single `UniqueConstraint` using a unique key and a patch. + """ + updateUniqueConstraint( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateUniqueConstraintInput! + ): UpdateUniqueConstraintPayload + + """ + Updates a single `UniqueConstraint` using a unique key and a patch. + """ + updateUniqueConstraintByTableIdAndName( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateUniqueConstraintByTableIdAndNameInput! + ): UpdateUniqueConstraintPayload + + """ + Updates a single `User` using a unique key and a patch. + """ + updateUser( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateUserInput! + ): UpdateUserPayload + + """ + Updates a single `User` using a unique key and a patch. + """ + updateUserByUsername( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateUserByUsernameInput! + ): UpdateUserPayload + + """ + Updates a single `UserConnection` using a unique key and a patch. + """ + updateUserConnection( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateUserConnectionInput! + ): UpdateUserConnectionPayload + + """ + Updates a single `UserContact` using a unique key and a patch. + """ + updateUserContact( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateUserContactInput! + ): UpdateUserContactPayload + + """ + Updates a single `UserProfile` using a unique key and a patch. + """ + updateUserProfile( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateUserProfileInput! + ): UpdateUserProfilePayload + + """ + Updates a single `UserProfile` using a unique key and a patch. + """ + updateUserProfileByUserId( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateUserProfileByUserIdInput! + ): UpdateUserProfilePayload + + """ + Updates a single `UserSetting` using a unique key and a patch. + """ + updateUserSetting( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateUserSettingInput! + ): UpdateUserSettingPayload + + """ + Updates a single `UserSetting` using a unique key and a patch. + """ + updateUserSettingByUserId( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: UpdateUserSettingByUserIdInput! + ): UpdateUserSettingPayload + verifyEmail( + """ + The exclusive input argument for this mutation. An object type, make sure to see documentation for this object’s fields. + """ + input: VerifyEmailInput! + ): VerifyEmailPayload +} + +""" +All input for the `oneTimeToken` mutation. +""" +input OneTimeTokenInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + email: String! + origin: String! + password: String! + rememberMe: Boolean +} + +""" +The output of our `oneTimeToken` mutation. +""" +type OneTimeTokenPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + string: String +} + +type OrganizationSetting { + addressLineOne: String + addressLineTwo: String + city: String + createdAt: Datetime + createdBy: UUID + id: UUID! + legalName: String + + """ + Reads a single `User` that is related to this `OrganizationSetting`. + """ + organization: User + organizationId: UUID! + state: String + updatedAt: Datetime + updatedBy: UUID +} + +""" +A condition to be used against `OrganizationSetting` object types. All fields +are tested for equality and combined with a logical ‘and.’ +""" +input OrganizationSettingCondition { + """ + Checks for equality with the object’s `addressLineOne` field. + """ + addressLineOne: String + + """ + Checks for equality with the object’s `addressLineTwo` field. + """ + addressLineTwo: String + + """ + Checks for equality with the object’s `city` field. + """ + city: String + + """ + Checks for equality with the object’s `createdAt` field. + """ + createdAt: Datetime + + """ + Checks for equality with the object’s `createdBy` field. + """ + createdBy: UUID + + """ + Checks for equality with the object’s `id` field. + """ + id: UUID + + """ + Checks for equality with the object’s `legalName` field. + """ + legalName: String + + """ + Checks for equality with the object’s `organizationId` field. + """ + organizationId: UUID + + """ + Checks for equality with the object’s `state` field. + """ + state: String + + """ + Checks for equality with the object’s `updatedAt` field. + """ + updatedAt: Datetime + + """ + Checks for equality with the object’s `updatedBy` field. + """ + updatedBy: UUID +} + +""" +A filter to be used against `OrganizationSetting` object types. All fields are combined with a logical ‘and.’ +""" +input OrganizationSettingFilter { + """ + Filter by the object’s `addressLineOne` field. + """ + addressLineOne: StringFilter + + """ + Filter by the object’s `addressLineTwo` field. + """ + addressLineTwo: StringFilter + + """ + Checks for all expressions in this list. + """ + and: [OrganizationSettingFilter!] + + """ + Filter by the object’s `city` field. + """ + city: StringFilter + + """ + Filter by the object’s `createdAt` field. + """ + createdAt: DatetimeFilter + + """ + Filter by the object’s `createdBy` field. + """ + createdBy: UUIDFilter + + """ + Filter by the object’s `id` field. + """ + id: UUIDFilter + + """ + Filter by the object’s `legalName` field. + """ + legalName: StringFilter + + """ + Negates the expression. + """ + not: OrganizationSettingFilter + + """ + Checks for any expressions in this list. + """ + or: [OrganizationSettingFilter!] + + """ + Filter by the object’s `organizationId` field. + """ + organizationId: UUIDFilter + + """ + Filter by the object’s `state` field. + """ + state: StringFilter + + """ + Filter by the object’s `updatedAt` field. + """ + updatedAt: DatetimeFilter + + """ + Filter by the object’s `updatedBy` field. + """ + updatedBy: UUIDFilter +} + +""" +An input for mutations affecting `OrganizationSetting` +""" +input OrganizationSettingInput { + addressLineOne: String + addressLineTwo: String + city: String + createdAt: Datetime + createdBy: UUID + id: UUID + legalName: String + organizationId: UUID! + state: String + updatedAt: Datetime + updatedBy: UUID +} + +""" +Represents an update to a `OrganizationSetting`. Fields that are set will be updated. +""" +input OrganizationSettingPatch { + addressLineOne: String + addressLineTwo: String + city: String + createdAt: Datetime + createdBy: UUID + id: UUID + legalName: String + organizationId: UUID + state: String + updatedAt: Datetime + updatedBy: UUID +} + +""" +A connection to a list of `OrganizationSetting` values. +""" +type OrganizationSettingsConnection { + """ + A list of edges which contains the `OrganizationSetting` and cursor to aid in pagination. + """ + edges: [OrganizationSettingsEdge!]! + + """ + A list of `OrganizationSetting` objects. + """ + nodes: [OrganizationSetting!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `OrganizationSetting` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `OrganizationSetting` edge in the connection. +""" +type OrganizationSettingsEdge { + """ + A cursor for use in pagination. + """ + cursor: Cursor + + """ + The `OrganizationSetting` at the end of the edge. + """ + node: OrganizationSetting! +} + +""" +Methods to use when ordering `OrganizationSetting`. +""" +enum OrganizationSettingsOrderBy { + ADDRESS_LINE_ONE_ASC + ADDRESS_LINE_ONE_DESC + ADDRESS_LINE_TWO_ASC + ADDRESS_LINE_TWO_DESC + CITY_ASC + CITY_DESC + CREATED_AT_ASC + CREATED_AT_DESC + CREATED_BY_ASC + CREATED_BY_DESC + ID_ASC + ID_DESC + LEGAL_NAME_ASC + LEGAL_NAME_DESC + NATURAL + ORGANIZATION_ID_ASC + ORGANIZATION_ID_DESC + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC + STATE_ASC + STATE_DESC + UPDATED_AT_ASC + UPDATED_AT_DESC + UPDATED_BY_ASC + UPDATED_BY_DESC +} + +""" +Information about pagination in a connection. +""" +type PageInfo { + """ + When paginating forwards, the cursor to continue. + """ + endCursor: Cursor + + """ + When paginating forwards, are there more items? + """ + hasNextPage: Boolean! + + """ + When paginating backwards, are there more items? + """ + hasPreviousPage: Boolean! + + """ + When paginating backwards, the cursor to continue. + """ + startCursor: Cursor +} + +type PhoneNumber { + cc: String! + id: UUID! + isPrimary: Boolean! + isVerified: Boolean! + number: String! + + """ + Reads a single `User` that is related to this `PhoneNumber`. + """ + owner: User + ownerId: UUID! +} + +""" +A condition to be used against `PhoneNumber` object types. All fields are tested +for equality and combined with a logical ‘and.’ +""" +input PhoneNumberCondition { + """ + Checks for equality with the object’s `cc` field. + """ + cc: String + + """ + Checks for equality with the object’s `id` field. + """ + id: UUID + + """ + Checks for equality with the object’s `isPrimary` field. + """ + isPrimary: Boolean + + """ + Checks for equality with the object’s `isVerified` field. + """ + isVerified: Boolean + + """ + Checks for equality with the object’s `number` field. + """ + number: String + + """ + Checks for equality with the object’s `ownerId` field. + """ + ownerId: UUID +} + +""" +A filter to be used against `PhoneNumber` object types. All fields are combined with a logical ‘and.’ +""" +input PhoneNumberFilter { + """ + Checks for all expressions in this list. + """ + and: [PhoneNumberFilter!] + + """ + Filter by the object’s `cc` field. + """ + cc: StringFilter + + """ + Filter by the object’s `id` field. + """ + id: UUIDFilter + + """ + Filter by the object’s `isPrimary` field. + """ + isPrimary: BooleanFilter + + """ + Filter by the object’s `isVerified` field. + """ + isVerified: BooleanFilter + + """ + Negates the expression. + """ + not: PhoneNumberFilter + + """ + Filter by the object’s `number` field. + """ + number: StringFilter + + """ + Checks for any expressions in this list. + """ + or: [PhoneNumberFilter!] + + """ + Filter by the object’s `ownerId` field. + """ + ownerId: UUIDFilter +} + +""" +An input for mutations affecting `PhoneNumber` +""" +input PhoneNumberInput { + cc: String! + id: UUID + isPrimary: Boolean + isVerified: Boolean + number: String! + ownerId: UUID +} + +""" +Represents an update to a `PhoneNumber`. Fields that are set will be updated. +""" +input PhoneNumberPatch { + cc: String + id: UUID + isPrimary: Boolean + isVerified: Boolean + number: String + ownerId: UUID +} + +""" +A connection to a list of `PhoneNumber` values. +""" +type PhoneNumbersConnection { + """ + A list of edges which contains the `PhoneNumber` and cursor to aid in pagination. + """ + edges: [PhoneNumbersEdge!]! + + """ + A list of `PhoneNumber` objects. + """ + nodes: [PhoneNumber!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `PhoneNumber` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `PhoneNumber` edge in the connection. +""" +type PhoneNumbersEdge { + """ + A cursor for use in pagination. + """ + cursor: Cursor + + """ + The `PhoneNumber` at the end of the edge. + """ + node: PhoneNumber! +} + +""" +Methods to use when ordering `PhoneNumber`. +""" +enum PhoneNumbersOrderBy { + CC_ASC + CC_DESC + ID_ASC + ID_DESC + IS_PRIMARY_ASC + IS_PRIMARY_DESC + IS_VERIFIED_ASC + IS_VERIFIED_DESC + NATURAL + NUMBER_ASC + NUMBER_DESC + OWNER_ID_ASC + OWNER_ID_DESC + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC +} + +""" +A connection to a list of `Policy` values. +""" +type PoliciesConnection { + """ + A list of edges which contains the `Policy` and cursor to aid in pagination. + """ + edges: [PoliciesEdge!]! + + """ + A list of `Policy` objects. + """ + nodes: [Policy!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `Policy` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `Policy` edge in the connection. +""" +type PoliciesEdge { + """ + A cursor for use in pagination. + """ + cursor: Cursor + + """ + The `Policy` at the end of the edge. + """ + node: Policy! +} + +""" +Methods to use when ordering `Policy`. +""" +enum PoliciesOrderBy { + CREATED_AT_ASC + CREATED_AT_DESC + DATABASE_ID_ASC + DATABASE_ID_DESC + DATA_ASC + DATA_DESC + DISABLED_ASC + DISABLED_DESC + ID_ASC + ID_DESC + NAME_ASC + NAME_DESC + NATURAL + PERMISSIVE_ASC + PERMISSIVE_DESC + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC + PRIVILEGE_ASC + PRIVILEGE_DESC + ROLE_NAME_ASC + ROLE_NAME_DESC + TABLE_ID_ASC + TABLE_ID_DESC + TEMPLATE_ASC + TEMPLATE_DESC + UPDATED_AT_ASC + UPDATED_AT_DESC +} + +type Policy { + createdAt: Datetime + data: JSON + + """ + Reads a single `Database` that is related to this `Policy`. + """ + database: Database + databaseId: UUID! + disabled: Boolean + id: UUID! + name: String + permissive: Boolean + privilege: String + roleName: String + + """ + Reads a single `Table` that is related to this `Policy`. + """ + table: Table + tableId: UUID! + template: String + updatedAt: Datetime +} + +""" +A condition to be used against `Policy` object types. All fields are tested for equality and combined with a logical ‘and.’ +""" +input PolicyCondition { + """ + Checks for equality with the object’s `createdAt` field. + """ + createdAt: Datetime + + """ + Checks for equality with the object’s `data` field. + """ + data: JSON + + """ + Checks for equality with the object’s `databaseId` field. + """ + databaseId: UUID + + """ + Checks for equality with the object’s `disabled` field. + """ + disabled: Boolean + + """ + Checks for equality with the object’s `id` field. + """ + id: UUID + + """ + Checks for equality with the object’s `name` field. + """ + name: String + + """ + Checks for equality with the object’s `permissive` field. + """ + permissive: Boolean + + """ + Checks for equality with the object’s `privilege` field. + """ + privilege: String + + """ + Checks for equality with the object’s `roleName` field. + """ + roleName: String + + """ + Checks for equality with the object’s `tableId` field. + """ + tableId: UUID + + """ + Checks for equality with the object’s `template` field. + """ + template: String + + """ + Checks for equality with the object’s `updatedAt` field. + """ + updatedAt: Datetime +} + +""" +A filter to be used against `Policy` object types. All fields are combined with a logical ‘and.’ +""" +input PolicyFilter { + """ + Checks for all expressions in this list. + """ + and: [PolicyFilter!] + + """ + Filter by the object’s `createdAt` field. + """ + createdAt: DatetimeFilter + + """ + Filter by the object’s `data` field. + """ + data: JSONFilter + + """ + Filter by the object’s `databaseId` field. + """ + databaseId: UUIDFilter + + """ + Filter by the object’s `disabled` field. + """ + disabled: BooleanFilter + + """ + Filter by the object’s `id` field. + """ + id: UUIDFilter + + """ + Filter by the object’s `name` field. + """ + name: StringFilter + + """ + Negates the expression. + """ + not: PolicyFilter + + """ + Checks for any expressions in this list. + """ + or: [PolicyFilter!] + + """ + Filter by the object’s `permissive` field. + """ + permissive: BooleanFilter + + """ + Filter by the object’s `privilege` field. + """ + privilege: StringFilter + + """ + Filter by the object’s `roleName` field. + """ + roleName: StringFilter + + """ + Filter by the object’s `tableId` field. + """ + tableId: UUIDFilter + + """ + Filter by the object’s `template` field. + """ + template: StringFilter + + """ + Filter by the object’s `updatedAt` field. + """ + updatedAt: DatetimeFilter +} + +""" +An input for mutations affecting `Policy` +""" +input PolicyInput { + createdAt: Datetime + data: JSON + databaseId: UUID + disabled: Boolean + id: UUID + name: String + permissive: Boolean + privilege: String + roleName: String + tableId: UUID! + template: String + updatedAt: Datetime +} + +""" +Represents an update to a `Policy`. Fields that are set will be updated. +""" +input PolicyPatch { + createdAt: Datetime + data: JSON + databaseId: UUID + disabled: Boolean + id: UUID + name: String + permissive: Boolean + privilege: String + roleName: String + tableId: UUID + template: String + updatedAt: Datetime +} + +type PrimaryKeyConstraint { + createdAt: Datetime + + """ + Reads a single `Database` that is related to this `PrimaryKeyConstraint`. + """ + database: Database + databaseId: UUID! + fieldIds: [UUID]! + id: UUID! + name: String + + """ + Reads a single `Table` that is related to this `PrimaryKeyConstraint`. + """ + table: Table + tableId: UUID! + type: String + updatedAt: Datetime +} + +""" +A condition to be used against `PrimaryKeyConstraint` object types. All fields +are tested for equality and combined with a logical ‘and.’ +""" +input PrimaryKeyConstraintCondition { + """ + Checks for equality with the object’s `createdAt` field. + """ + createdAt: Datetime + + """ + Checks for equality with the object’s `databaseId` field. + """ + databaseId: UUID + + """ + Checks for equality with the object’s `fieldIds` field. + """ + fieldIds: [UUID] + + """ + Checks for equality with the object’s `id` field. + """ + id: UUID + + """ + Checks for equality with the object’s `name` field. + """ + name: String + + """ + Checks for equality with the object’s `tableId` field. + """ + tableId: UUID + + """ + Checks for equality with the object’s `type` field. + """ + type: String + + """ + Checks for equality with the object’s `updatedAt` field. + """ + updatedAt: Datetime +} + +""" +A filter to be used against `PrimaryKeyConstraint` object types. All fields are combined with a logical ‘and.’ +""" +input PrimaryKeyConstraintFilter { + """ + Checks for all expressions in this list. + """ + and: [PrimaryKeyConstraintFilter!] + + """ + Filter by the object’s `createdAt` field. + """ + createdAt: DatetimeFilter + + """ + Filter by the object’s `databaseId` field. + """ + databaseId: UUIDFilter + + """ + Filter by the object’s `fieldIds` field. + """ + fieldIds: UUIDListFilter + + """ + Filter by the object’s `id` field. + """ + id: UUIDFilter + + """ + Filter by the object’s `name` field. + """ + name: StringFilter + + """ + Negates the expression. + """ + not: PrimaryKeyConstraintFilter + + """ + Checks for any expressions in this list. + """ + or: [PrimaryKeyConstraintFilter!] + + """ + Filter by the object’s `tableId` field. + """ + tableId: UUIDFilter + + """ + Filter by the object’s `type` field. + """ + type: StringFilter + + """ + Filter by the object’s `updatedAt` field. + """ + updatedAt: DatetimeFilter +} + +""" +An input for mutations affecting `PrimaryKeyConstraint` +""" +input PrimaryKeyConstraintInput { + createdAt: Datetime + databaseId: UUID + fieldIds: [UUID]! + id: UUID + name: String + tableId: UUID! + type: String + updatedAt: Datetime +} + +""" +Represents an update to a `PrimaryKeyConstraint`. Fields that are set will be updated. +""" +input PrimaryKeyConstraintPatch { + createdAt: Datetime + databaseId: UUID + fieldIds: [UUID] + id: UUID + name: String + tableId: UUID + type: String + updatedAt: Datetime +} + +""" +A connection to a list of `PrimaryKeyConstraint` values. +""" +type PrimaryKeyConstraintsConnection { + """ + A list of edges which contains the `PrimaryKeyConstraint` and cursor to aid in pagination. + """ + edges: [PrimaryKeyConstraintsEdge!]! + + """ + A list of `PrimaryKeyConstraint` objects. + """ + nodes: [PrimaryKeyConstraint!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `PrimaryKeyConstraint` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `PrimaryKeyConstraint` edge in the connection. +""" +type PrimaryKeyConstraintsEdge { + """ + A cursor for use in pagination. + """ + cursor: Cursor + + """ + The `PrimaryKeyConstraint` at the end of the edge. + """ + node: PrimaryKeyConstraint! +} + +""" +Methods to use when ordering `PrimaryKeyConstraint`. +""" +enum PrimaryKeyConstraintsOrderBy { + CREATED_AT_ASC + CREATED_AT_DESC + DATABASE_ID_ASC + DATABASE_ID_DESC + FIELD_IDS_ASC + FIELD_IDS_DESC + ID_ASC + ID_DESC + NAME_ASC + NAME_DESC + NATURAL + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC + TABLE_ID_ASC + TABLE_ID_DESC + TYPE_ASC + TYPE_DESC + UPDATED_AT_ASC + UPDATED_AT_DESC +} + +type Procedure { + argdefaults: [String] + argnames: [String] + argtypes: [String] + createdAt: Datetime + + """ + Reads a single `Database` that is related to this `Procedure`. + """ + database: Database + databaseId: UUID! + definition: String + id: UUID! + langName: String + name: String! + updatedAt: Datetime +} + +""" +A condition to be used against `Procedure` object types. All fields are tested +for equality and combined with a logical ‘and.’ +""" +input ProcedureCondition { + """ + Checks for equality with the object’s `argdefaults` field. + """ + argdefaults: [String] + + """ + Checks for equality with the object’s `argnames` field. + """ + argnames: [String] + + """ + Checks for equality with the object’s `argtypes` field. + """ + argtypes: [String] + + """ + Checks for equality with the object’s `createdAt` field. + """ + createdAt: Datetime + + """ + Checks for equality with the object’s `databaseId` field. + """ + databaseId: UUID + + """ + Checks for equality with the object’s `definition` field. + """ + definition: String + + """ + Checks for equality with the object’s `id` field. + """ + id: UUID + + """ + Checks for equality with the object’s `langName` field. + """ + langName: String + + """ + Checks for equality with the object’s `name` field. + """ + name: String + + """ + Checks for equality with the object’s `updatedAt` field. + """ + updatedAt: Datetime +} + +""" +A filter to be used against `Procedure` object types. All fields are combined with a logical ‘and.’ +""" +input ProcedureFilter { + """ + Checks for all expressions in this list. + """ + and: [ProcedureFilter!] + + """ + Filter by the object’s `argdefaults` field. + """ + argdefaults: StringListFilter + + """ + Filter by the object’s `argnames` field. + """ + argnames: StringListFilter + + """ + Filter by the object’s `argtypes` field. + """ + argtypes: StringListFilter + + """ + Filter by the object’s `createdAt` field. + """ + createdAt: DatetimeFilter + + """ + Filter by the object’s `databaseId` field. + """ + databaseId: UUIDFilter + + """ + Filter by the object’s `definition` field. + """ + definition: StringFilter + + """ + Filter by the object’s `id` field. + """ + id: UUIDFilter + + """ + Filter by the object’s `langName` field. + """ + langName: StringFilter + + """ + Filter by the object’s `name` field. + """ + name: StringFilter + + """ + Negates the expression. + """ + not: ProcedureFilter + + """ + Checks for any expressions in this list. + """ + or: [ProcedureFilter!] + + """ + Filter by the object’s `updatedAt` field. + """ + updatedAt: DatetimeFilter +} + +""" +An input for mutations affecting `Procedure` +""" +input ProcedureInput { + argdefaults: [String] + argnames: [String] + argtypes: [String] + createdAt: Datetime + databaseId: UUID + definition: String + id: UUID + langName: String + name: String! + updatedAt: Datetime +} + +""" +Represents an update to a `Procedure`. Fields that are set will be updated. +""" +input ProcedurePatch { + argdefaults: [String] + argnames: [String] + argtypes: [String] + createdAt: Datetime + databaseId: UUID + definition: String + id: UUID + langName: String + name: String + updatedAt: Datetime +} + +""" +A connection to a list of `Procedure` values. +""" +type ProceduresConnection { + """ + A list of edges which contains the `Procedure` and cursor to aid in pagination. + """ + edges: [ProceduresEdge!]! + + """ + A list of `Procedure` objects. + """ + nodes: [Procedure!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `Procedure` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `Procedure` edge in the connection. +""" +type ProceduresEdge { + """ + A cursor for use in pagination. + """ + cursor: Cursor + + """ + The `Procedure` at the end of the edge. + """ + node: Procedure! +} + +""" +Methods to use when ordering `Procedure`. +""" +enum ProceduresOrderBy { + ARGDEFAULTS_ASC + ARGDEFAULTS_DESC + ARGNAMES_ASC + ARGNAMES_DESC + ARGTYPES_ASC + ARGTYPES_DESC + CREATED_AT_ASC + CREATED_AT_DESC + DATABASE_ID_ASC + DATABASE_ID_DESC + DEFINITION_ASC + DEFINITION_DESC + ID_ASC + ID_DESC + LANG_NAME_ASC + LANG_NAME_DESC + NAME_ASC + NAME_DESC + NATURAL + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC + UPDATED_AT_ASC + UPDATED_AT_DESC +} + +""" +The root query type which gives access points into the data universe. +""" +type Query { + _meta: Metaschema + address(id: UUID!): Address + + """ + Reads and enables pagination through a set of `Address`. + """ + addresses( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: AddressCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: AddressFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `Address`. + """ + orderBy: [AddressesOrderBy!] = [PRIMARY_KEY_ASC] + ): AddressesConnection + api(id: UUID!): Api + apiByDatabaseIdAndName(databaseId: UUID!, name: String!): Api + apiExtension(id: UUID!): ApiExtension + apiExtensionBySchemaNameAndApiId( + apiId: UUID! + schemaName: String! + ): ApiExtension + + """ + Reads and enables pagination through a set of `ApiExtension`. + """ + apiExtensions( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: ApiExtensionCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: ApiExtensionFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `ApiExtension`. + """ + orderBy: [ApiExtensionsOrderBy!] = [PRIMARY_KEY_ASC] + ): ApiExtensionsConnection + apiModule(id: UUID!): ApiModule + + """ + Reads and enables pagination through a set of `ApiModule`. + """ + apiModules( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: ApiModuleCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: ApiModuleFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `ApiModule`. + """ + orderBy: [ApiModulesOrderBy!] = [PRIMARY_KEY_ASC] + ): ApiModulesConnection + apiSchema(id: UUID!): ApiSchema + apiSchemaByApiIdAndSchemaId(apiId: UUID!, schemaId: UUID!): ApiSchema + + """ + Reads and enables pagination through a set of `ApiSchema`. + """ + apiSchemata( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: ApiSchemaCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: ApiSchemaFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `ApiSchema`. + """ + orderBy: [ApiSchemataOrderBy!] = [PRIMARY_KEY_ASC] + ): ApiSchemataConnection + + """ + Reads and enables pagination through a set of `Api`. + """ + apis( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: ApiCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: ApiFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `Api`. + """ + orderBy: [ApisOrderBy!] = [PRIMARY_KEY_ASC] + ): ApisConnection + app(id: UUID!): App + appAchievement(id: UUID!): AppAchievement + appAchievementByActorIdAndName(actorId: UUID!, name: String!): AppAchievement + + """ + Reads and enables pagination through a set of `AppAchievement`. + """ + appAchievements( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: AppAchievementCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: AppAchievementFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `AppAchievement`. + """ + orderBy: [AppAchievementsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppAchievementsConnection + appBySiteId(siteId: UUID!): App + appGrant(id: UUID!): AppGrant + + """ + Reads and enables pagination through a set of `AppGrant`. + """ + appGrants( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: AppGrantCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: AppGrantFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `AppGrant`. + """ + orderBy: [AppGrantsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppGrantsConnection + appLevel(id: UUID!): AppLevel + appLevelByName(name: String!): AppLevel + appLevelRequirement(id: UUID!): AppLevelRequirement + appLevelRequirementByNameAndLevel( + level: String! + name: String! + ): AppLevelRequirement + + """ + Reads and enables pagination through a set of `AppLevelRequirement`. + """ + appLevelRequirements( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: AppLevelRequirementCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: AppLevelRequirementFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `AppLevelRequirement`. + """ + orderBy: [AppLevelRequirementsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppLevelRequirementsConnection + + """ + Reads and enables pagination through a set of `AppLevel`. + """ + appLevels( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: AppLevelCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: AppLevelFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `AppLevel`. + """ + orderBy: [AppLevelsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppLevelsConnection + appLimit(id: UUID!): AppLimit + appLimitByNameAndActorId(actorId: UUID!, name: String!): AppLimit + appLimitDefault(id: UUID!): AppLimitDefault + appLimitDefaultByName(name: String!): AppLimitDefault + + """ + Reads and enables pagination through a set of `AppLimitDefault`. + """ + appLimitDefaults( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: AppLimitDefaultCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: AppLimitDefaultFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `AppLimitDefault`. + """ + orderBy: [AppLimitDefaultsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppLimitDefaultsConnection + + """ + Reads and enables pagination through a set of `AppLimit`. + """ + appLimits( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: AppLimitCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: AppLimitFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `AppLimit`. + """ + orderBy: [AppLimitsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppLimitsConnection + appMembership(id: UUID!): AppMembership + appMembershipByActorId(actorId: UUID!): AppMembership + appMembershipDefault(id: UUID!): AppMembershipDefault + + """ + Reads and enables pagination through a set of `AppMembershipDefault`. + """ + appMembershipDefaults( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: AppMembershipDefaultCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: AppMembershipDefaultFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `AppMembershipDefault`. + """ + orderBy: [AppMembershipDefaultsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppMembershipDefaultsConnection + + """ + Reads and enables pagination through a set of `AppMembership`. + """ + appMemberships( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: AppMembershipCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: AppMembershipFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `AppMembership`. + """ + orderBy: [AppMembershipsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppMembershipsConnection + appPermission(id: UUID!): AppPermission + appPermissionByBitnum(bitnum: Int!): AppPermission + appPermissionByName(name: String!): AppPermission + appPermissionDefault(id: UUID!): AppPermissionDefault + + """ + Reads and enables pagination through a set of `AppPermissionDefault`. + """ + appPermissionDefaults( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: AppPermissionDefaultCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: AppPermissionDefaultFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `AppPermissionDefault`. + """ + orderBy: [AppPermissionDefaultsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppPermissionDefaultsConnection + + """ + Reads and enables pagination through a set of `AppPermission`. + """ + appPermissions( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: AppPermissionCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: AppPermissionFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `AppPermission`. + """ + orderBy: [AppPermissionsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppPermissionsConnection + + """ + Reads and enables pagination through a set of `AppPermission`. + """ + appPermissionsGetByMask( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: AppPermissionFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + mask: BitString + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + ): AppPermissionsConnection + appPermissionsGetMask(ids: [UUID]): BitString + appPermissionsGetMaskByNames(names: [String]): BitString + appPermissionsGetPaddedMask(mask: BitString): BitString + appStep(id: UUID!): AppStep + + """ + Reads and enables pagination through a set of `AppStep`. + """ + appSteps( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: AppStepCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: AppStepFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `AppStep`. + """ + orderBy: [AppStepsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppStepsConnection + + """ + Reads and enables pagination through a set of `App`. + """ + apps( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: AppCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: AppFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `App`. + """ + orderBy: [AppsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppsConnection + authAccount(id: UUID!): AuthAccount + authAccountByServiceAndIdentifier( + identifier: String! + service: String! + ): AuthAccount + + """ + Reads and enables pagination through a set of `AuthAccount`. + """ + authAccounts( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: AuthAccountCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: AuthAccountFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `AuthAccount`. + """ + orderBy: [AuthAccountsOrderBy!] = [PRIMARY_KEY_ASC] + ): AuthAccountsConnection + checkConstraint(id: UUID!): CheckConstraint + checkConstraintByTableIdAndName( + name: String! + tableId: UUID! + ): CheckConstraint + + """ + Reads and enables pagination through a set of `CheckConstraint`. + """ + checkConstraints( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: CheckConstraintCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: CheckConstraintFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `CheckConstraint`. + """ + orderBy: [CheckConstraintsOrderBy!] = [PRIMARY_KEY_ASC] + ): CheckConstraintsConnection + claimedInvite(id: UUID!): ClaimedInvite + + """ + Reads and enables pagination through a set of `ClaimedInvite`. + """ + claimedInvites( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: ClaimedInviteCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: ClaimedInviteFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `ClaimedInvite`. + """ + orderBy: [ClaimedInvitesOrderBy!] = [PRIMARY_KEY_ASC] + ): ClaimedInvitesConnection + connectedAccount(id: UUID!): ConnectedAccount + connectedAccountByServiceAndIdentifier( + identifier: String! + service: String! + ): ConnectedAccount + + """ + Reads and enables pagination through a set of `ConnectedAccount`. + """ + connectedAccounts( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: ConnectedAccountCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: ConnectedAccountFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `ConnectedAccount`. + """ + orderBy: [ConnectedAccountsOrderBy!] = [PRIMARY_KEY_ASC] + ): ConnectedAccountsConnection + cryptoAddress(id: UUID!): CryptoAddress + cryptoAddressByAddress(address: String!): CryptoAddress + + """ + Reads and enables pagination through a set of `CryptoAddress`. + """ + cryptoAddresses( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: CryptoAddressCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: CryptoAddressFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `CryptoAddress`. + """ + orderBy: [CryptoAddressesOrderBy!] = [PRIMARY_KEY_ASC] + ): CryptoAddressesConnection + currentIpAddress: InternetAddress + currentUserAgent: String + database(id: UUID!): Database + databaseByPrivateSchemaName(privateSchemaName: String!): Database + databaseBySchemaName(schemaName: String!): Database + databaseExtension(name: String!): DatabaseExtension + databaseExtensionByDatabaseIdAndName( + databaseId: UUID! + name: String! + ): DatabaseExtension + + """ + Reads and enables pagination through a set of `DatabaseExtension`. + """ + databaseExtensions( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: DatabaseExtensionCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: DatabaseExtensionFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `DatabaseExtension`. + """ + orderBy: [DatabaseExtensionsOrderBy!] = [PRIMARY_KEY_ASC] + ): DatabaseExtensionsConnection + databaseProvision(id: UUID!): DatabaseProvision + + """ + Reads and enables pagination through a set of `DatabaseProvision`. + """ + databaseProvisions( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: DatabaseProvisionCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: DatabaseProvisionFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `DatabaseProvision`. + """ + orderBy: [DatabaseProvisionsOrderBy!] = [PRIMARY_KEY_ASC] + ): DatabaseProvisionsConnection + + """ + Reads and enables pagination through a set of `Database`. + """ + databases( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: DatabaseCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: DatabaseFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `Database`. + """ + orderBy: [DatabasesOrderBy!] = [PRIMARY_KEY_ASC] + ): DatabasesConnection + domain(id: UUID!): Domain + domainBySubdomainAndDomain(domain: String!, subdomain: String!): Domain + + """ + Reads and enables pagination through a set of `Domain`. + """ + domains( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: DomainCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: DomainFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `Domain`. + """ + orderBy: [DomainsOrderBy!] = [PRIMARY_KEY_ASC] + ): DomainsConnection + email(id: UUID!): Email + emailByEmail(email: String!): Email + + """ + Reads and enables pagination through a set of `Email`. + """ + emails( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: EmailCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: EmailFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `Email`. + """ + orderBy: [EmailsOrderBy!] = [PRIMARY_KEY_ASC] + ): EmailsConnection + extension(name: String!): Extension + + """ + Reads and enables pagination through a set of `Extension`. + """ + extensions( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: ExtensionCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: ExtensionFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `Extension`. + """ + orderBy: [ExtensionsOrderBy!] = [PRIMARY_KEY_ASC] + ): ExtensionsConnection + field(id: UUID!): Field + fieldByTableIdAndName(name: String!, tableId: UUID!): Field + + """ + Reads and enables pagination through a set of `Field`. + """ + fields( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: FieldCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: FieldFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `Field`. + """ + orderBy: [FieldsOrderBy!] = [PRIMARY_KEY_ASC] + ): FieldsConnection + foreignKeyConstraint(id: UUID!): ForeignKeyConstraint + foreignKeyConstraintByTableIdAndName( + name: String! + tableId: UUID! + ): ForeignKeyConstraint + + """ + Reads and enables pagination through a set of `ForeignKeyConstraint`. + """ + foreignKeyConstraints( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: ForeignKeyConstraintCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: ForeignKeyConstraintFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `ForeignKeyConstraint`. + """ + orderBy: [ForeignKeyConstraintsOrderBy!] = [PRIMARY_KEY_ASC] + ): ForeignKeyConstraintsConnection + fullTextSearch(id: UUID!): FullTextSearch + + """ + Reads and enables pagination through a set of `FullTextSearch`. + """ + fullTextSearches( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: FullTextSearchCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: FullTextSearchFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `FullTextSearch`. + """ + orderBy: [FullTextSearchesOrderBy!] = [PRIMARY_KEY_ASC] + ): FullTextSearchesConnection + getCurrentUser: User + getCurrentUserId: UUID + grant(id: UUID!): Grant + + """ + Reads and enables pagination through a set of `Grant`. + """ + grants( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: GrantCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: GrantFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `Grant`. + """ + orderBy: [GrantsOrderBy!] = [PRIMARY_KEY_ASC] + ): GrantsConnection + index(id: UUID!): Index + indexByDatabaseIdAndName(databaseId: UUID!, name: String!): Index + + """ + Reads and enables pagination through a set of `Index`. + """ + indices( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: IndexCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: IndexFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `Index`. + """ + orderBy: [IndicesOrderBy!] = [PRIMARY_KEY_ASC] + ): IndicesConnection + invite(id: UUID!): Invite + inviteByEmailAndSenderId(email: String!, senderId: UUID!): Invite + inviteByInviteToken(inviteToken: String!): Invite + + """ + Reads and enables pagination through a set of `Invite`. + """ + invites( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: InviteCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: InviteFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `Invite`. + """ + orderBy: [InvitesOrderBy!] = [PRIMARY_KEY_ASC] + ): InvitesConnection + limitFunction(id: UUID!): LimitFunction + limitFunctionByDatabaseIdAndName( + databaseId: UUID! + name: String! + ): LimitFunction + + """ + Reads and enables pagination through a set of `LimitFunction`. + """ + limitFunctions( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: LimitFunctionCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: LimitFunctionFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `LimitFunction`. + """ + orderBy: [LimitFunctionsOrderBy!] = [PRIMARY_KEY_ASC] + ): LimitFunctionsConnection + member(id: UUID!): Member + memberByActorIdAndEntityId(actorId: UUID!, entityId: UUID!): Member + memberClaimedInvite(id: UUID!): MemberClaimedInvite + + """ + Reads and enables pagination through a set of `MemberClaimedInvite`. + """ + memberClaimedInvites( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MemberClaimedInviteCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MemberClaimedInviteFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `MemberClaimedInvite`. + """ + orderBy: [MemberClaimedInvitesOrderBy!] = [PRIMARY_KEY_ASC] + ): MemberClaimedInvitesConnection + memberInvite(id: UUID!): MemberInvite + memberInviteByEmailAndSenderIdAndEntityId( + email: String! + entityId: UUID! + senderId: UUID! + ): MemberInvite + memberInviteByInviteToken(inviteToken: String!): MemberInvite + + """ + Reads and enables pagination through a set of `MemberInvite`. + """ + memberInvites( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MemberInviteCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MemberInviteFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `MemberInvite`. + """ + orderBy: [MemberInvitesOrderBy!] = [PRIMARY_KEY_ASC] + ): MemberInvitesConnection + + """ + Reads and enables pagination through a set of `Member`. + """ + members( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MemberCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MemberFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `Member`. + """ + orderBy: [MembersOrderBy!] = [PRIMARY_KEY_ASC] + ): MembersConnection + membership(id: UUID!): Membership + membershipByActorIdAndEntityId(actorId: UUID!, entityId: UUID!): Membership + membershipDefault(id: UUID!): MembershipDefault + membershipDefaultByEntityId(entityId: UUID!): MembershipDefault + + """ + Reads and enables pagination through a set of `MembershipDefault`. + """ + membershipDefaults( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MembershipDefaultCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MembershipDefaultFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `MembershipDefault`. + """ + orderBy: [MembershipDefaultsOrderBy!] = [PRIMARY_KEY_ASC] + ): MembershipDefaultsConnection + membershipLimit(id: UUID!): MembershipLimit + membershipLimitByNameAndActorIdAndEntityId( + actorId: UUID! + entityId: UUID! + name: String! + ): MembershipLimit + membershipLimitDefault(id: UUID!): MembershipLimitDefault + membershipLimitDefaultByName(name: String!): MembershipLimitDefault + + """ + Reads and enables pagination through a set of `MembershipLimitDefault`. + """ + membershipLimitDefaults( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MembershipLimitDefaultCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MembershipLimitDefaultFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `MembershipLimitDefault`. + """ + orderBy: [MembershipLimitDefaultsOrderBy!] = [PRIMARY_KEY_ASC] + ): MembershipLimitDefaultsConnection + + """ + Reads and enables pagination through a set of `MembershipLimit`. + """ + membershipLimits( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MembershipLimitCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MembershipLimitFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `MembershipLimit`. + """ + orderBy: [MembershipLimitsOrderBy!] = [PRIMARY_KEY_ASC] + ): MembershipLimitsConnection + membershipPermission(id: UUID!): MembershipPermission + membershipPermissionByBitnum(bitnum: Int!): MembershipPermission + membershipPermissionByName(name: String!): MembershipPermission + membershipPermissionDefault(id: UUID!): MembershipPermissionDefault + + """ + Reads and enables pagination through a set of `MembershipPermissionDefault`. + """ + membershipPermissionDefaults( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MembershipPermissionDefaultCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MembershipPermissionDefaultFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `MembershipPermissionDefault`. + """ + orderBy: [MembershipPermissionDefaultsOrderBy!] = [PRIMARY_KEY_ASC] + ): MembershipPermissionDefaultsConnection + + """ + Reads and enables pagination through a set of `MembershipPermission`. + """ + membershipPermissions( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MembershipPermissionCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MembershipPermissionFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `MembershipPermission`. + """ + orderBy: [MembershipPermissionsOrderBy!] = [PRIMARY_KEY_ASC] + ): MembershipPermissionsConnection + + """ + Reads and enables pagination through a set of `MembershipPermission`. + """ + membershipPermissionsGetByMask( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MembershipPermissionFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + mask: BitString + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + ): MembershipPermissionsConnection + membershipPermissionsGetMask(ids: [UUID]): BitString + membershipPermissionsGetMaskByNames(names: [String]): BitString + membershipPermissionsGetPaddedMask(mask: BitString): BitString + membershipType(id: Int!): MembershipType + membershipTypeByName(name: String!): MembershipType + + """ + Reads and enables pagination through a set of `MembershipType`. + """ + membershipTypes( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MembershipTypeCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MembershipTypeFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `MembershipType`. + """ + orderBy: [MembershipTypesOrderBy!] = [PRIMARY_KEY_ASC] + ): MembershipTypesConnection + + """ + Reads and enables pagination through a set of `Membership`. + """ + memberships( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MembershipCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MembershipFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `Membership`. + """ + orderBy: [MembershipsOrderBy!] = [PRIMARY_KEY_ASC] + ): MembershipsConnection + organizationSetting(id: UUID!): OrganizationSetting + + """ + Reads and enables pagination through a set of `OrganizationSetting`. + """ + organizationSettings( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: OrganizationSettingCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: OrganizationSettingFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `OrganizationSetting`. + """ + orderBy: [OrganizationSettingsOrderBy!] = [PRIMARY_KEY_ASC] + ): OrganizationSettingsConnection + phoneNumber(id: UUID!): PhoneNumber + phoneNumberByNumber(number: String!): PhoneNumber + + """ + Reads and enables pagination through a set of `PhoneNumber`. + """ + phoneNumbers( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: PhoneNumberCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: PhoneNumberFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `PhoneNumber`. + """ + orderBy: [PhoneNumbersOrderBy!] = [PRIMARY_KEY_ASC] + ): PhoneNumbersConnection + + """ + Reads and enables pagination through a set of `Policy`. + """ + policies( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: PolicyCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: PolicyFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `Policy`. + """ + orderBy: [PoliciesOrderBy!] = [PRIMARY_KEY_ASC] + ): PoliciesConnection + policy(id: UUID!): Policy + policyByTableIdAndName(name: String!, tableId: UUID!): Policy + primaryKeyConstraint(id: UUID!): PrimaryKeyConstraint + primaryKeyConstraintByTableIdAndName( + name: String! + tableId: UUID! + ): PrimaryKeyConstraint + + """ + Reads and enables pagination through a set of `PrimaryKeyConstraint`. + """ + primaryKeyConstraints( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: PrimaryKeyConstraintCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: PrimaryKeyConstraintFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `PrimaryKeyConstraint`. + """ + orderBy: [PrimaryKeyConstraintsOrderBy!] = [PRIMARY_KEY_ASC] + ): PrimaryKeyConstraintsConnection + procedure(id: UUID!): Procedure + procedureByDatabaseIdAndName(databaseId: UUID!, name: String!): Procedure + + """ + Reads and enables pagination through a set of `Procedure`. + """ + procedures( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: ProcedureCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: ProcedureFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `Procedure`. + """ + orderBy: [ProceduresOrderBy!] = [PRIMARY_KEY_ASC] + ): ProceduresConnection + + """ + Exposes the root query type nested one level down. This is helpful for Relay 1 + which can only query top level fields if they are in a particular form. + """ + query: Query! + rlsFunction(id: UUID!): RlsFunction + rlsFunctionByDatabaseIdAndName(databaseId: UUID!, name: String!): RlsFunction + + """ + Reads and enables pagination through a set of `RlsFunction`. + """ + rlsFunctions( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: RlsFunctionCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: RlsFunctionFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `RlsFunction`. + """ + orderBy: [RlsFunctionsOrderBy!] = [PRIMARY_KEY_ASC] + ): RlsFunctionsConnection + roleType(id: Int!): RoleType + roleTypeByName(name: String!): RoleType + + """ + Reads and enables pagination through a set of `RoleType`. + """ + roleTypes( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: RoleTypeCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: RoleTypeFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `RoleType`. + """ + orderBy: [RoleTypesOrderBy!] = [PRIMARY_KEY_ASC] + ): RoleTypesConnection + schema(id: UUID!): Schema + schemaByDatabaseIdAndName(databaseId: UUID!, name: String!): Schema + schemaBySchemaName(schemaName: String!): Schema + schemaGrant(id: UUID!): SchemaGrant + + """ + Reads and enables pagination through a set of `SchemaGrant`. + """ + schemaGrants( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: SchemaGrantCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: SchemaGrantFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `SchemaGrant`. + """ + orderBy: [SchemaGrantsOrderBy!] = [PRIMARY_KEY_ASC] + ): SchemaGrantsConnection + + """ + Reads and enables pagination through a set of `Schema`. + """ + schemata( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: SchemaCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: SchemaFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `Schema`. + """ + orderBy: [SchemataOrderBy!] = [PRIMARY_KEY_ASC] + ): SchemataConnection + site(id: UUID!): Site + + """ + Reads and enables pagination through a set of `SiteMetadatum`. + """ + siteMetadata( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: SiteMetadatumCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: SiteMetadatumFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `SiteMetadatum`. + """ + orderBy: [SiteMetadataOrderBy!] = [PRIMARY_KEY_ASC] + ): SiteMetadataConnection + siteMetadatum(id: UUID!): SiteMetadatum + siteModule(id: UUID!): SiteModule + + """ + Reads and enables pagination through a set of `SiteModule`. + """ + siteModules( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: SiteModuleCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: SiteModuleFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `SiteModule`. + """ + orderBy: [SiteModulesOrderBy!] = [PRIMARY_KEY_ASC] + ): SiteModulesConnection + siteTheme(id: UUID!): SiteTheme + + """ + Reads and enables pagination through a set of `SiteTheme`. + """ + siteThemes( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: SiteThemeCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: SiteThemeFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `SiteTheme`. + """ + orderBy: [SiteThemesOrderBy!] = [PRIMARY_KEY_ASC] + ): SiteThemesConnection + + """ + Reads and enables pagination through a set of `Site`. + """ + sites( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: SiteCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: SiteFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `Site`. + """ + orderBy: [SitesOrderBy!] = [PRIMARY_KEY_ASC] + ): SitesConnection + stepsAchieved(vlevel: String, vroleId: UUID): Boolean + + """ + Reads and enables pagination through a set of `AppLevelRequirement`. + """ + stepsRequired( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: AppLevelRequirementFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + vlevel: String + vroleId: UUID + ): AppLevelRequirementsConnection + table(id: UUID!): Table + tableByDatabaseIdAndName(databaseId: UUID!, name: String!): Table + tableGrant(id: UUID!): TableGrant + + """ + Reads and enables pagination through a set of `TableGrant`. + """ + tableGrants( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: TableGrantCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: TableGrantFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `TableGrant`. + """ + orderBy: [TableGrantsOrderBy!] = [PRIMARY_KEY_ASC] + ): TableGrantsConnection + + """ + Reads and enables pagination through a set of `Table`. + """ + tables( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: TableCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: TableFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `Table`. + """ + orderBy: [TablesOrderBy!] = [PRIMARY_KEY_ASC] + ): TablesConnection + trigger(id: UUID!): Trigger + triggerByTableIdAndName(name: String!, tableId: UUID!): Trigger + triggerFunction(id: UUID!): TriggerFunction + triggerFunctionByDatabaseIdAndName( + databaseId: UUID! + name: String! + ): TriggerFunction + + """ + Reads and enables pagination through a set of `TriggerFunction`. + """ + triggerFunctions( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: TriggerFunctionCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: TriggerFunctionFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `TriggerFunction`. + """ + orderBy: [TriggerFunctionsOrderBy!] = [PRIMARY_KEY_ASC] + ): TriggerFunctionsConnection + + """ + Reads and enables pagination through a set of `Trigger`. + """ + triggers( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: TriggerCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: TriggerFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `Trigger`. + """ + orderBy: [TriggersOrderBy!] = [PRIMARY_KEY_ASC] + ): TriggersConnection + uniqueConstraint(id: UUID!): UniqueConstraint + uniqueConstraintByTableIdAndName( + name: String! + tableId: UUID! + ): UniqueConstraint + + """ + Reads and enables pagination through a set of `UniqueConstraint`. + """ + uniqueConstraints( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: UniqueConstraintCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: UniqueConstraintFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `UniqueConstraint`. + """ + orderBy: [UniqueConstraintsOrderBy!] = [PRIMARY_KEY_ASC] + ): UniqueConstraintsConnection + user(id: UUID!): User + userByUsername(username: String!): User + userConnection(id: UUID!): UserConnection + + """ + Reads and enables pagination through a set of `UserConnection`. + """ + userConnections( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: UserConnectionCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: UserConnectionFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `UserConnection`. + """ + orderBy: [UserConnectionsOrderBy!] = [PRIMARY_KEY_ASC] + ): UserConnectionsConnection + userContact(id: UUID!): UserContact + + """ + Reads and enables pagination through a set of `UserContact`. + """ + userContacts( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: UserContactCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: UserContactFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `UserContact`. + """ + orderBy: [UserContactsOrderBy!] = [PRIMARY_KEY_ASC] + ): UserContactsConnection + userProfile(id: UUID!): UserProfile + userProfileByUserId(userId: UUID!): UserProfile + + """ + Reads and enables pagination through a set of `UserProfile`. + """ + userProfiles( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: UserProfileCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: UserProfileFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `UserProfile`. + """ + orderBy: [UserProfilesOrderBy!] = [PRIMARY_KEY_ASC] + ): UserProfilesConnection + userSetting(id: UUID!): UserSetting + userSettingByUserId(userId: UUID!): UserSetting + + """ + Reads and enables pagination through a set of `UserSetting`. + """ + userSettings( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: UserSettingCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: UserSettingFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `UserSetting`. + """ + orderBy: [UserSettingsOrderBy!] = [PRIMARY_KEY_ASC] + ): UserSettingsConnection + + """ + Reads and enables pagination through a set of `User`. + """ + users( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: UserCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: UserFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `User`. + """ + orderBy: [UsersOrderBy!] = [PRIMARY_KEY_ASC] + ): UsersConnection +} + +""" +All input for the `register` mutation. +""" +input RegisterInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + email: String + password: String + rememberMe: Boolean +} + +""" +The output of our `register` mutation. +""" +type RegisterPayload { + apiToken: ApiToken + + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the `resetPassword` mutation. +""" +input ResetPasswordInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + newPassword: String + resetToken: String + roleId: UUID +} + +""" +The output of our `resetPassword` mutation. +""" +type ResetPasswordPayload { + boolean: Boolean + + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +type RlsFunction { + createdAt: Datetime + data: JSON + + """ + Reads a single `Database` that is related to this `RlsFunction`. + """ + database: Database + databaseId: UUID! + description: String + id: UUID! + inline: Boolean + label: String + name: String + security: Int + + """ + Reads a single `Table` that is related to this `RlsFunction`. + """ + table: Table + tableId: UUID! + updatedAt: Datetime +} + +""" +A condition to be used against `RlsFunction` object types. All fields are tested +for equality and combined with a logical ‘and.’ +""" +input RlsFunctionCondition { + """ + Checks for equality with the object’s `createdAt` field. + """ + createdAt: Datetime + + """ + Checks for equality with the object’s `data` field. + """ + data: JSON + + """ + Checks for equality with the object’s `databaseId` field. + """ + databaseId: UUID + + """ + Checks for equality with the object’s `description` field. + """ + description: String + + """ + Checks for equality with the object’s `id` field. + """ + id: UUID + + """ + Checks for equality with the object’s `inline` field. + """ + inline: Boolean + + """ + Checks for equality with the object’s `label` field. + """ + label: String + + """ + Checks for equality with the object’s `name` field. + """ + name: String + + """ + Checks for equality with the object’s `security` field. + """ + security: Int + + """ + Checks for equality with the object’s `tableId` field. + """ + tableId: UUID + + """ + Checks for equality with the object’s `updatedAt` field. + """ + updatedAt: Datetime +} + +""" +A filter to be used against `RlsFunction` object types. All fields are combined with a logical ‘and.’ +""" +input RlsFunctionFilter { + """ + Checks for all expressions in this list. + """ + and: [RlsFunctionFilter!] + + """ + Filter by the object’s `createdAt` field. + """ + createdAt: DatetimeFilter + + """ + Filter by the object’s `data` field. + """ + data: JSONFilter + + """ + Filter by the object’s `databaseId` field. + """ + databaseId: UUIDFilter + + """ + Filter by the object’s `description` field. + """ + description: StringFilter + + """ + Filter by the object’s `id` field. + """ + id: UUIDFilter + + """ + Filter by the object’s `inline` field. + """ + inline: BooleanFilter + + """ + Filter by the object’s `label` field. + """ + label: StringFilter + + """ + Filter by the object’s `name` field. + """ + name: StringFilter + + """ + Negates the expression. + """ + not: RlsFunctionFilter + + """ + Checks for any expressions in this list. + """ + or: [RlsFunctionFilter!] + + """ + Filter by the object’s `security` field. + """ + security: IntFilter + + """ + Filter by the object’s `tableId` field. + """ + tableId: UUIDFilter + + """ + Filter by the object’s `updatedAt` field. + """ + updatedAt: DatetimeFilter +} + +""" +An input for mutations affecting `RlsFunction` +""" +input RlsFunctionInput { + createdAt: Datetime + data: JSON + databaseId: UUID + description: String + id: UUID + inline: Boolean + label: String + name: String + security: Int + tableId: UUID! + updatedAt: Datetime +} + +""" +Represents an update to a `RlsFunction`. Fields that are set will be updated. +""" +input RlsFunctionPatch { + createdAt: Datetime + data: JSON + databaseId: UUID + description: String + id: UUID + inline: Boolean + label: String + name: String + security: Int + tableId: UUID + updatedAt: Datetime +} + +""" +A connection to a list of `RlsFunction` values. +""" +type RlsFunctionsConnection { + """ + A list of edges which contains the `RlsFunction` and cursor to aid in pagination. + """ + edges: [RlsFunctionsEdge!]! + + """ + A list of `RlsFunction` objects. + """ + nodes: [RlsFunction!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `RlsFunction` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `RlsFunction` edge in the connection. +""" +type RlsFunctionsEdge { + """ + A cursor for use in pagination. + """ + cursor: Cursor + + """ + The `RlsFunction` at the end of the edge. + """ + node: RlsFunction! +} + +""" +Methods to use when ordering `RlsFunction`. +""" +enum RlsFunctionsOrderBy { + CREATED_AT_ASC + CREATED_AT_DESC + DATABASE_ID_ASC + DATABASE_ID_DESC + DATA_ASC + DATA_DESC + DESCRIPTION_ASC + DESCRIPTION_DESC + ID_ASC + ID_DESC + INLINE_ASC + INLINE_DESC + LABEL_ASC + LABEL_DESC + NAME_ASC + NAME_DESC + NATURAL + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC + SECURITY_ASC + SECURITY_DESC + TABLE_ID_ASC + TABLE_ID_DESC + UPDATED_AT_ASC + UPDATED_AT_DESC +} + +type RoleType { + id: Int! + name: String! + + """ + Reads and enables pagination through a set of `User`. + """ + usersByType( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: UserCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: UserFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `User`. + """ + orderBy: [UsersOrderBy!] = [PRIMARY_KEY_ASC] + ): UsersConnection! +} + +""" +A condition to be used against `RoleType` object types. All fields are tested +for equality and combined with a logical ‘and.’ +""" +input RoleTypeCondition { + """ + Checks for equality with the object’s `id` field. + """ + id: Int + + """ + Checks for equality with the object’s `name` field. + """ + name: String +} + +""" +A filter to be used against `RoleType` object types. All fields are combined with a logical ‘and.’ +""" +input RoleTypeFilter { + """ + Checks for all expressions in this list. + """ + and: [RoleTypeFilter!] + + """ + Filter by the object’s `id` field. + """ + id: IntFilter + + """ + Filter by the object’s `name` field. + """ + name: StringFilter + + """ + Negates the expression. + """ + not: RoleTypeFilter + + """ + Checks for any expressions in this list. + """ + or: [RoleTypeFilter!] +} + +""" +An input for mutations affecting `RoleType` +""" +input RoleTypeInput { + id: Int! + name: String! +} + +""" +Represents an update to a `RoleType`. Fields that are set will be updated. +""" +input RoleTypePatch { + id: Int + name: String +} + +""" +A connection to a list of `RoleType` values. +""" +type RoleTypesConnection { + """ + A list of edges which contains the `RoleType` and cursor to aid in pagination. + """ + edges: [RoleTypesEdge!]! + + """ + A list of `RoleType` objects. + """ + nodes: [RoleType!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `RoleType` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `RoleType` edge in the connection. +""" +type RoleTypesEdge { + """ + A cursor for use in pagination. + """ + cursor: Cursor + + """ + The `RoleType` at the end of the edge. + """ + node: RoleType! +} + +""" +Methods to use when ordering `RoleType`. +""" +enum RoleTypesOrderBy { + ID_ASC + ID_DESC + NAME_ASC + NAME_DESC + NATURAL + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC +} + +type Schema { + """ + Reads and enables pagination through a set of `ApiSchema`. + """ + apiSchemata( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: ApiSchemaCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: ApiSchemaFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `ApiSchema`. + """ + orderBy: [ApiSchemataOrderBy!] = [PRIMARY_KEY_ASC] + ): ApiSchemataConnection! + + """ + Reads and enables pagination through a set of `Api`. + """ + apisByApiSchemaSchemaIdAndApiId( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: ApiCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: ApiFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `Api`. + """ + orderBy: [ApisOrderBy!] = [PRIMARY_KEY_ASC] + ): SchemaApisByApiSchemataSchemaIdAndApiIdManyToManyConnection! + createdAt: Datetime + + """ + Reads a single `Database` that is related to this `Schema`. + """ + database: Database + databaseId: UUID! + description: String + id: UUID! + label: String + name: String! + + """ + Reads and enables pagination through a set of `SchemaGrant`. + """ + schemaGrants( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: SchemaGrantCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: SchemaGrantFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `SchemaGrant`. + """ + orderBy: [SchemaGrantsOrderBy!] = [PRIMARY_KEY_ASC] + ): SchemaGrantsConnection! + schemaName: String! + + """ + Reads and enables pagination through a set of `Table`. + """ + tables( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: TableCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: TableFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `Table`. + """ + orderBy: [TablesOrderBy!] = [PRIMARY_KEY_ASC] + ): TablesConnection! + updatedAt: Datetime +} + +""" +A connection to a list of `Api` values, with data from `ApiSchema`. +""" +type SchemaApisByApiSchemataSchemaIdAndApiIdManyToManyConnection { + """ + A list of edges which contains the `Api`, info from the `ApiSchema`, and the cursor to aid in pagination. + """ + edges: [SchemaApisByApiSchemataSchemaIdAndApiIdManyToManyEdge!]! + + """ + A list of `Api` objects. + """ + nodes: [Api!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `Api` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `Api` edge in the connection, with data from `ApiSchema`. +""" +type SchemaApisByApiSchemataSchemaIdAndApiIdManyToManyEdge { + """ + A cursor for use in pagination. + """ + cursor: Cursor + databaseId: UUID! + id: UUID! + + """ + The `Api` at the end of the edge. + """ + node: Api! +} + +""" +A condition to be used against `Schema` object types. All fields are tested for equality and combined with a logical ‘and.’ +""" +input SchemaCondition { + """ + Checks for equality with the object’s `createdAt` field. + """ + createdAt: Datetime + + """ + Checks for equality with the object’s `databaseId` field. + """ + databaseId: UUID + + """ + Checks for equality with the object’s `description` field. + """ + description: String + + """ + Checks for equality with the object’s `id` field. + """ + id: UUID + + """ + Checks for equality with the object’s `label` field. + """ + label: String + + """ + Checks for equality with the object’s `name` field. + """ + name: String + + """ + Checks for equality with the object’s `schemaName` field. + """ + schemaName: String + + """ + Checks for equality with the object’s `updatedAt` field. + """ + updatedAt: Datetime +} + +""" +A filter to be used against `Schema` object types. All fields are combined with a logical ‘and.’ +""" +input SchemaFilter { + """ + Checks for all expressions in this list. + """ + and: [SchemaFilter!] + + """ + Filter by the object’s `createdAt` field. + """ + createdAt: DatetimeFilter + + """ + Filter by the object’s `databaseId` field. + """ + databaseId: UUIDFilter + + """ + Filter by the object’s `description` field. + """ + description: StringFilter + + """ + Filter by the object’s `id` field. + """ + id: UUIDFilter + + """ + Filter by the object’s `label` field. + """ + label: StringFilter + + """ + Filter by the object’s `name` field. + """ + name: StringFilter + + """ + Negates the expression. + """ + not: SchemaFilter + + """ + Checks for any expressions in this list. + """ + or: [SchemaFilter!] + + """ + Filter by the object’s `schemaName` field. + """ + schemaName: StringFilter + + """ + Filter by the object’s `updatedAt` field. + """ + updatedAt: DatetimeFilter +} + +type SchemaGrant { + createdAt: Datetime + + """ + Reads a single `Database` that is related to this `SchemaGrant`. + """ + database: Database + databaseId: UUID! + granteeName: String! + id: UUID! + + """ + Reads a single `Schema` that is related to this `SchemaGrant`. + """ + schema: Schema + schemaId: UUID! + updatedAt: Datetime +} + +""" +A condition to be used against `SchemaGrant` object types. All fields are tested +for equality and combined with a logical ‘and.’ +""" +input SchemaGrantCondition { + """ + Checks for equality with the object’s `createdAt` field. + """ + createdAt: Datetime + + """ + Checks for equality with the object’s `databaseId` field. + """ + databaseId: UUID + + """ + Checks for equality with the object’s `granteeName` field. + """ + granteeName: String + + """ + Checks for equality with the object’s `id` field. + """ + id: UUID + + """ + Checks for equality with the object’s `schemaId` field. + """ + schemaId: UUID + + """ + Checks for equality with the object’s `updatedAt` field. + """ + updatedAt: Datetime +} + +""" +A filter to be used against `SchemaGrant` object types. All fields are combined with a logical ‘and.’ +""" +input SchemaGrantFilter { + """ + Checks for all expressions in this list. + """ + and: [SchemaGrantFilter!] + + """ + Filter by the object’s `createdAt` field. + """ + createdAt: DatetimeFilter + + """ + Filter by the object’s `databaseId` field. + """ + databaseId: UUIDFilter + + """ + Filter by the object’s `granteeName` field. + """ + granteeName: StringFilter + + """ + Filter by the object’s `id` field. + """ + id: UUIDFilter + + """ + Negates the expression. + """ + not: SchemaGrantFilter + + """ + Checks for any expressions in this list. + """ + or: [SchemaGrantFilter!] + + """ + Filter by the object’s `schemaId` field. + """ + schemaId: UUIDFilter + + """ + Filter by the object’s `updatedAt` field. + """ + updatedAt: DatetimeFilter +} + +""" +An input for mutations affecting `SchemaGrant` +""" +input SchemaGrantInput { + createdAt: Datetime + databaseId: UUID + granteeName: String! + id: UUID + schemaId: UUID! + updatedAt: Datetime +} + +""" +Represents an update to a `SchemaGrant`. Fields that are set will be updated. +""" +input SchemaGrantPatch { + createdAt: Datetime + databaseId: UUID + granteeName: String + id: UUID + schemaId: UUID + updatedAt: Datetime +} + +""" +A connection to a list of `SchemaGrant` values. +""" +type SchemaGrantsConnection { + """ + A list of edges which contains the `SchemaGrant` and cursor to aid in pagination. + """ + edges: [SchemaGrantsEdge!]! + + """ + A list of `SchemaGrant` objects. + """ + nodes: [SchemaGrant!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `SchemaGrant` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `SchemaGrant` edge in the connection. +""" +type SchemaGrantsEdge { + """ + A cursor for use in pagination. + """ + cursor: Cursor + + """ + The `SchemaGrant` at the end of the edge. + """ + node: SchemaGrant! +} + +""" +Methods to use when ordering `SchemaGrant`. +""" +enum SchemaGrantsOrderBy { + CREATED_AT_ASC + CREATED_AT_DESC + DATABASE_ID_ASC + DATABASE_ID_DESC + GRANTEE_NAME_ASC + GRANTEE_NAME_DESC + ID_ASC + ID_DESC + NATURAL + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC + SCHEMA_ID_ASC + SCHEMA_ID_DESC + UPDATED_AT_ASC + UPDATED_AT_DESC +} + +""" +An input for mutations affecting `Schema` +""" +input SchemaInput { + createdAt: Datetime + databaseId: UUID! + description: String + id: UUID + label: String + name: String! + schemaName: String! + updatedAt: Datetime +} + +""" +Represents an update to a `Schema`. Fields that are set will be updated. +""" +input SchemaPatch { + createdAt: Datetime + databaseId: UUID + description: String + id: UUID + label: String + name: String + schemaName: String + updatedAt: Datetime +} + +""" +A connection to a list of `Schema` values. +""" +type SchemataConnection { + """ + A list of edges which contains the `Schema` and cursor to aid in pagination. + """ + edges: [SchemataEdge!]! + + """ + A list of `Schema` objects. + """ + nodes: [Schema!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `Schema` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `Schema` edge in the connection. +""" +type SchemataEdge { + """ + A cursor for use in pagination. + """ + cursor: Cursor + + """ + The `Schema` at the end of the edge. + """ + node: Schema! +} + +""" +Methods to use when ordering `Schema`. +""" +enum SchemataOrderBy { + CREATED_AT_ASC + CREATED_AT_DESC + DATABASE_ID_ASC + DATABASE_ID_DESC + DESCRIPTION_ASC + DESCRIPTION_DESC + ID_ASC + ID_DESC + LABEL_ASC + LABEL_DESC + NAME_ASC + NAME_DESC + NATURAL + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC + SCHEMA_NAME_ASC + SCHEMA_NAME_DESC + UPDATED_AT_ASC + UPDATED_AT_DESC +} + +""" +All input for the `sendAccountDeletionEmail` mutation. +""" +input SendAccountDeletionEmailInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String +} + +""" +The output of our `sendAccountDeletionEmail` mutation. +""" +type SendAccountDeletionEmailPayload { + boolean: Boolean + + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the `sendVerificationEmail` mutation. +""" +input SendVerificationEmailInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + email: String +} + +""" +The output of our `sendVerificationEmail` mutation. +""" +type SendVerificationEmailPayload { + boolean: Boolean + + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the `setFieldOrder` mutation. +""" +input SetFieldOrderInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + fieldIds: [UUID] +} + +""" +The output of our `setFieldOrder` mutation. +""" +type SetFieldOrderPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the `setPassword` mutation. +""" +input SetPasswordInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + currentPassword: String + newPassword: String +} + +""" +The output of our `setPassword` mutation. +""" +type SetPasswordPayload { + boolean: Boolean + + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +type Site { + """ + Reads a single `App` that is related to this `Site`. + """ + app: App + appleTouchIcon: JSON + + """ + Reads a single `Database` that is related to this `Site`. + """ + database: Database + databaseId: UUID! + dbname: String! + description: String + + """ + Reads and enables pagination through a set of `Domain`. + """ + domains( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: DomainCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: DomainFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `Domain`. + """ + orderBy: [DomainsOrderBy!] = [PRIMARY_KEY_ASC] + ): DomainsConnection! + favicon: String + id: UUID! + logo: JSON + ogImage: JSON + + """ + Reads and enables pagination through a set of `SiteMetadatum`. + """ + siteMetadata( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: SiteMetadatumCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: SiteMetadatumFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `SiteMetadatum`. + """ + orderBy: [SiteMetadataOrderBy!] = [PRIMARY_KEY_ASC] + ): SiteMetadataConnection! + + """ + Reads and enables pagination through a set of `SiteModule`. + """ + siteModules( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: SiteModuleCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: SiteModuleFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `SiteModule`. + """ + orderBy: [SiteModulesOrderBy!] = [PRIMARY_KEY_ASC] + ): SiteModulesConnection! + + """ + Reads and enables pagination through a set of `SiteTheme`. + """ + siteThemes( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: SiteThemeCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: SiteThemeFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `SiteTheme`. + """ + orderBy: [SiteThemesOrderBy!] = [PRIMARY_KEY_ASC] + ): SiteThemesConnection! + title: String +} + +""" +A condition to be used against `Site` object types. All fields are tested for equality and combined with a logical ‘and.’ +""" +input SiteCondition { + """ + Checks for equality with the object’s `appleTouchIcon` field. + """ + appleTouchIcon: JSON + + """ + Checks for equality with the object’s `databaseId` field. + """ + databaseId: UUID + + """ + Checks for equality with the object’s `dbname` field. + """ + dbname: String + + """ + Checks for equality with the object’s `description` field. + """ + description: String + + """ + Checks for equality with the object’s `favicon` field. + """ + favicon: String + + """ + Checks for equality with the object’s `id` field. + """ + id: UUID + + """ + Checks for equality with the object’s `logo` field. + """ + logo: JSON + + """ + Checks for equality with the object’s `ogImage` field. + """ + ogImage: JSON + + """ + Checks for equality with the object’s `title` field. + """ + title: String +} + +""" +A filter to be used against `Site` object types. All fields are combined with a logical ‘and.’ +""" +input SiteFilter { + """ + Checks for all expressions in this list. + """ + and: [SiteFilter!] + + """ + Filter by the object’s `appleTouchIcon` field. + """ + appleTouchIcon: JSONFilter + + """ + Filter by the object’s `databaseId` field. + """ + databaseId: UUIDFilter + + """ + Filter by the object’s `dbname` field. + """ + dbname: StringFilter + + """ + Filter by the object’s `description` field. + """ + description: StringFilter + + """ + Filter by the object’s `favicon` field. + """ + favicon: StringFilter + + """ + Filter by the object’s `id` field. + """ + id: UUIDFilter + + """ + Filter by the object’s `logo` field. + """ + logo: JSONFilter + + """ + Negates the expression. + """ + not: SiteFilter + + """ + Filter by the object’s `ogImage` field. + """ + ogImage: JSONFilter + + """ + Checks for any expressions in this list. + """ + or: [SiteFilter!] + + """ + Filter by the object’s `title` field. + """ + title: StringFilter +} + +""" +An input for mutations affecting `Site` +""" +input SiteInput { + appleTouchIcon: JSON + appleTouchIconUpload: Upload + databaseId: UUID! + dbname: String + description: String + favicon: String + faviconUpload: Upload + id: UUID + logo: JSON + logoUpload: Upload + ogImage: JSON + ogImageUpload: Upload + title: String +} + +""" +A connection to a list of `SiteMetadatum` values. +""" +type SiteMetadataConnection { + """ + A list of edges which contains the `SiteMetadatum` and cursor to aid in pagination. + """ + edges: [SiteMetadataEdge!]! + + """ + A list of `SiteMetadatum` objects. + """ + nodes: [SiteMetadatum!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `SiteMetadatum` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `SiteMetadatum` edge in the connection. +""" +type SiteMetadataEdge { + """ + A cursor for use in pagination. + """ + cursor: Cursor + + """ + The `SiteMetadatum` at the end of the edge. + """ + node: SiteMetadatum! +} + +""" +Methods to use when ordering `SiteMetadatum`. +""" +enum SiteMetadataOrderBy { + DATABASE_ID_ASC + DATABASE_ID_DESC + DESCRIPTION_ASC + DESCRIPTION_DESC + ID_ASC + ID_DESC + NATURAL + OG_IMAGE_ASC + OG_IMAGE_DESC + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC + SITE_ID_ASC + SITE_ID_DESC + TITLE_ASC + TITLE_DESC +} + +type SiteMetadatum { + """ + Reads a single `Database` that is related to this `SiteMetadatum`. + """ + database: Database + databaseId: UUID! + description: String + id: UUID! + ogImage: JSON + + """ + Reads a single `Site` that is related to this `SiteMetadatum`. + """ + site: Site + siteId: UUID! + title: String +} + +""" +A condition to be used against `SiteMetadatum` object types. All fields are +tested for equality and combined with a logical ‘and.’ +""" +input SiteMetadatumCondition { + """ + Checks for equality with the object’s `databaseId` field. + """ + databaseId: UUID + + """ + Checks for equality with the object’s `description` field. + """ + description: String + + """ + Checks for equality with the object’s `id` field. + """ + id: UUID + + """ + Checks for equality with the object’s `ogImage` field. + """ + ogImage: JSON + + """ + Checks for equality with the object’s `siteId` field. + """ + siteId: UUID + + """ + Checks for equality with the object’s `title` field. + """ + title: String +} + +""" +A filter to be used against `SiteMetadatum` object types. All fields are combined with a logical ‘and.’ +""" +input SiteMetadatumFilter { + """ + Checks for all expressions in this list. + """ + and: [SiteMetadatumFilter!] + + """ + Filter by the object’s `databaseId` field. + """ + databaseId: UUIDFilter + + """ + Filter by the object’s `description` field. + """ + description: StringFilter + + """ + Filter by the object’s `id` field. + """ + id: UUIDFilter + + """ + Negates the expression. + """ + not: SiteMetadatumFilter + + """ + Filter by the object’s `ogImage` field. + """ + ogImage: JSONFilter + + """ + Checks for any expressions in this list. + """ + or: [SiteMetadatumFilter!] + + """ + Filter by the object’s `siteId` field. + """ + siteId: UUIDFilter + + """ + Filter by the object’s `title` field. + """ + title: StringFilter +} + +""" +An input for mutations affecting `SiteMetadatum` +""" +input SiteMetadatumInput { + databaseId: UUID! + description: String + id: UUID + ogImage: JSON + ogImageUpload: Upload + siteId: UUID! + title: String +} + +""" +Represents an update to a `SiteMetadatum`. Fields that are set will be updated. +""" +input SiteMetadatumPatch { + databaseId: UUID + description: String + id: UUID + ogImage: JSON + ogImageUpload: Upload + siteId: UUID + title: String +} + +type SiteModule { + data: JSON! + + """ + Reads a single `Database` that is related to this `SiteModule`. + """ + database: Database + databaseId: UUID! + id: UUID! + name: String! + + """ + Reads a single `Site` that is related to this `SiteModule`. + """ + site: Site + siteId: UUID! +} + +""" +A condition to be used against `SiteModule` object types. All fields are tested +for equality and combined with a logical ‘and.’ +""" +input SiteModuleCondition { + """ + Checks for equality with the object’s `data` field. + """ + data: JSON + + """ + Checks for equality with the object’s `databaseId` field. + """ + databaseId: UUID + + """ + Checks for equality with the object’s `id` field. + """ + id: UUID + + """ + Checks for equality with the object’s `name` field. + """ + name: String + + """ + Checks for equality with the object’s `siteId` field. + """ + siteId: UUID +} + +""" +A filter to be used against `SiteModule` object types. All fields are combined with a logical ‘and.’ +""" +input SiteModuleFilter { + """ + Checks for all expressions in this list. + """ + and: [SiteModuleFilter!] + + """ + Filter by the object’s `databaseId` field. + """ + databaseId: UUIDFilter + + """ + Filter by the object’s `id` field. + """ + id: UUIDFilter + + """ + Filter by the object’s `name` field. + """ + name: StringFilter + + """ + Negates the expression. + """ + not: SiteModuleFilter + + """ + Checks for any expressions in this list. + """ + or: [SiteModuleFilter!] + + """ + Filter by the object’s `siteId` field. + """ + siteId: UUIDFilter +} + +""" +An input for mutations affecting `SiteModule` +""" +input SiteModuleInput { + data: JSON! + databaseId: UUID! + id: UUID + name: String! + siteId: UUID! +} + +""" +Represents an update to a `SiteModule`. Fields that are set will be updated. +""" +input SiteModulePatch { + data: JSON + databaseId: UUID + id: UUID + name: String + siteId: UUID +} + +""" +A connection to a list of `SiteModule` values. +""" +type SiteModulesConnection { + """ + A list of edges which contains the `SiteModule` and cursor to aid in pagination. + """ + edges: [SiteModulesEdge!]! + + """ + A list of `SiteModule` objects. + """ + nodes: [SiteModule!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `SiteModule` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `SiteModule` edge in the connection. +""" +type SiteModulesEdge { + """ + A cursor for use in pagination. + """ + cursor: Cursor + + """ + The `SiteModule` at the end of the edge. + """ + node: SiteModule! +} + +""" +Methods to use when ordering `SiteModule`. +""" +enum SiteModulesOrderBy { + DATABASE_ID_ASC + DATABASE_ID_DESC + DATA_ASC + DATA_DESC + ID_ASC + ID_DESC + NAME_ASC + NAME_DESC + NATURAL + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC + SITE_ID_ASC + SITE_ID_DESC +} + +""" +Represents an update to a `Site`. Fields that are set will be updated. +""" +input SitePatch { + appleTouchIcon: JSON + appleTouchIconUpload: Upload + databaseId: UUID + dbname: String + description: String + favicon: String + faviconUpload: Upload + id: UUID + logo: JSON + logoUpload: Upload + ogImage: JSON + ogImageUpload: Upload + title: String +} + +type SiteTheme { + """ + Reads a single `Database` that is related to this `SiteTheme`. + """ + database: Database + databaseId: UUID! + id: UUID! + + """ + Reads a single `Site` that is related to this `SiteTheme`. + """ + site: Site + siteId: UUID! + theme: JSON! +} + +""" +A condition to be used against `SiteTheme` object types. All fields are tested +for equality and combined with a logical ‘and.’ +""" +input SiteThemeCondition { + """ + Checks for equality with the object’s `databaseId` field. + """ + databaseId: UUID + + """ + Checks for equality with the object’s `id` field. + """ + id: UUID + + """ + Checks for equality with the object’s `siteId` field. + """ + siteId: UUID + + """ + Checks for equality with the object’s `theme` field. + """ + theme: JSON +} + +""" +A filter to be used against `SiteTheme` object types. All fields are combined with a logical ‘and.’ +""" +input SiteThemeFilter { + """ + Checks for all expressions in this list. + """ + and: [SiteThemeFilter!] + + """ + Filter by the object’s `databaseId` field. + """ + databaseId: UUIDFilter + + """ + Filter by the object’s `id` field. + """ + id: UUIDFilter + + """ + Negates the expression. + """ + not: SiteThemeFilter + + """ + Checks for any expressions in this list. + """ + or: [SiteThemeFilter!] + + """ + Filter by the object’s `siteId` field. + """ + siteId: UUIDFilter + + """ + Filter by the object’s `theme` field. + """ + theme: JSONFilter +} + +""" +An input for mutations affecting `SiteTheme` +""" +input SiteThemeInput { + databaseId: UUID! + id: UUID + siteId: UUID! + theme: JSON! +} + +""" +Represents an update to a `SiteTheme`. Fields that are set will be updated. +""" +input SiteThemePatch { + databaseId: UUID + id: UUID + siteId: UUID + theme: JSON +} + +""" +A connection to a list of `SiteTheme` values. +""" +type SiteThemesConnection { + """ + A list of edges which contains the `SiteTheme` and cursor to aid in pagination. + """ + edges: [SiteThemesEdge!]! + + """ + A list of `SiteTheme` objects. + """ + nodes: [SiteTheme!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `SiteTheme` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `SiteTheme` edge in the connection. +""" +type SiteThemesEdge { + """ + A cursor for use in pagination. + """ + cursor: Cursor + + """ + The `SiteTheme` at the end of the edge. + """ + node: SiteTheme! +} + +""" +Methods to use when ordering `SiteTheme`. +""" +enum SiteThemesOrderBy { + DATABASE_ID_ASC + DATABASE_ID_DESC + ID_ASC + ID_DESC + NATURAL + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC + SITE_ID_ASC + SITE_ID_DESC + THEME_ASC + THEME_DESC +} + +""" +A connection to a list of `Site` values. +""" +type SitesConnection { + """ + A list of edges which contains the `Site` and cursor to aid in pagination. + """ + edges: [SitesEdge!]! + + """ + A list of `Site` objects. + """ + nodes: [Site!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `Site` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `Site` edge in the connection. +""" +type SitesEdge { + """ + A cursor for use in pagination. + """ + cursor: Cursor + + """ + The `Site` at the end of the edge. + """ + node: Site! +} + +""" +Methods to use when ordering `Site`. +""" +enum SitesOrderBy { + APPLE_TOUCH_ICON_ASC + APPLE_TOUCH_ICON_DESC + DATABASE_ID_ASC + DATABASE_ID_DESC + DBNAME_ASC + DBNAME_DESC + DESCRIPTION_ASC + DESCRIPTION_DESC + FAVICON_ASC + FAVICON_DESC + ID_ASC + ID_DESC + LOGO_ASC + LOGO_DESC + NATURAL + OG_IMAGE_ASC + OG_IMAGE_DESC + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC + TITLE_ASC + TITLE_DESC +} + +""" +A filter to be used against String fields. All fields are combined with a logical ‘and.’ +""" +input StringFilter { + """ + Not equal to the specified value, treating null like an ordinary value. + """ + distinctFrom: String + + """ + Not equal to the specified value, treating null like an ordinary value (case-insensitive). + """ + distinctFromInsensitive: String + + """ + Ends with the specified string (case-sensitive). + """ + endsWith: String + + """ + Ends with the specified string (case-insensitive). + """ + endsWithInsensitive: String + + """ + Equal to the specified value. + """ + equalTo: String + + """ + Equal to the specified value (case-insensitive). + """ + equalToInsensitive: String + + """ + Greater than the specified value. + """ + greaterThan: String + + """ + Greater than the specified value (case-insensitive). + """ + greaterThanInsensitive: String + + """ + Greater than or equal to the specified value. + """ + greaterThanOrEqualTo: String + + """ + Greater than or equal to the specified value (case-insensitive). + """ + greaterThanOrEqualToInsensitive: String + + """ + Included in the specified list. + """ + in: [String!] + + """ + Included in the specified list (case-insensitive). + """ + inInsensitive: [String!] + + """ + Contains the specified string (case-sensitive). + """ + includes: String + + """ + Contains the specified string (case-insensitive). + """ + includesInsensitive: String + + """ + Is null (if `true` is specified) or is not null (if `false` is specified). + """ + isNull: Boolean + + """ + Less than the specified value. + """ + lessThan: String + + """ + Less than the specified value (case-insensitive). + """ + lessThanInsensitive: String + + """ + Less than or equal to the specified value. + """ + lessThanOrEqualTo: String + + """ + Less than or equal to the specified value (case-insensitive). + """ + lessThanOrEqualToInsensitive: String + + """ + Matches the specified pattern (case-sensitive). An underscore (_) matches any single character; a percent sign (%) matches any sequence of zero or more characters. + """ + like: String + + """ + Matches the specified pattern (case-insensitive). An underscore (_) matches any single character; a percent sign (%) matches any sequence of zero or more characters. + """ + likeInsensitive: String + + """ + Equal to the specified value, treating null like an ordinary value. + """ + notDistinctFrom: String + + """ + Equal to the specified value, treating null like an ordinary value (case-insensitive). + """ + notDistinctFromInsensitive: String + + """ + Does not end with the specified string (case-sensitive). + """ + notEndsWith: String + + """ + Does not end with the specified string (case-insensitive). + """ + notEndsWithInsensitive: String + + """ + Not equal to the specified value. + """ + notEqualTo: String + + """ + Not equal to the specified value (case-insensitive). + """ + notEqualToInsensitive: String + + """ + Not included in the specified list. + """ + notIn: [String!] + + """ + Not included in the specified list (case-insensitive). + """ + notInInsensitive: [String!] + + """ + Does not contain the specified string (case-sensitive). + """ + notIncludes: String + + """ + Does not contain the specified string (case-insensitive). + """ + notIncludesInsensitive: String + + """ + Does not match the specified pattern (case-sensitive). An underscore (_) matches any single character; a percent sign (%) matches any sequence of zero or more characters. + """ + notLike: String + + """ + Does not match the specified pattern (case-insensitive). An underscore (_) matches any single character; a percent sign (%) matches any sequence of zero or more characters. + """ + notLikeInsensitive: String + + """ + Does not start with the specified string (case-sensitive). + """ + notStartsWith: String + + """ + Does not start with the specified string (case-insensitive). + """ + notStartsWithInsensitive: String + + """ + Starts with the specified string (case-sensitive). + """ + startsWith: String + + """ + Starts with the specified string (case-insensitive). + """ + startsWithInsensitive: String +} + +""" +A filter to be used against String List fields. All fields are combined with a logical ‘and.’ +""" +input StringListFilter { + """ + Any array item is equal to the specified value. + """ + anyEqualTo: String + + """ + Any array item is greater than the specified value. + """ + anyGreaterThan: String + + """ + Any array item is greater than or equal to the specified value. + """ + anyGreaterThanOrEqualTo: String + + """ + Any array item is less than the specified value. + """ + anyLessThan: String + + """ + Any array item is less than or equal to the specified value. + """ + anyLessThanOrEqualTo: String + + """ + Any array item is not equal to the specified value. + """ + anyNotEqualTo: String + + """ + Contained by the specified list of values. + """ + containedBy: [String] + + """ + Contains the specified list of values. + """ + contains: [String] + + """ + Not equal to the specified value, treating null like an ordinary value. + """ + distinctFrom: [String] + + """ + Equal to the specified value. + """ + equalTo: [String] + + """ + Greater than the specified value. + """ + greaterThan: [String] + + """ + Greater than or equal to the specified value. + """ + greaterThanOrEqualTo: [String] + + """ + Is null (if `true` is specified) or is not null (if `false` is specified). + """ + isNull: Boolean + + """ + Less than the specified value. + """ + lessThan: [String] + + """ + Less than or equal to the specified value. + """ + lessThanOrEqualTo: [String] + + """ + Equal to the specified value, treating null like an ordinary value. + """ + notDistinctFrom: [String] + + """ + Not equal to the specified value. + """ + notEqualTo: [String] + + """ + Overlaps the specified list of values. + """ + overlaps: [String] +} + +""" +All input for the `submitInviteCode` mutation. +""" +input SubmitInviteCodeInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + token: String +} + +""" +The output of our `submitInviteCode` mutation. +""" +type SubmitInviteCodePayload { + boolean: Boolean + + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the `submitMemberInviteCode` mutation. +""" +input SubmitMemberInviteCodeInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + token: String +} + +""" +The output of our `submitMemberInviteCode` mutation. +""" +type SubmitMemberInviteCodePayload { + boolean: Boolean + + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +type Table { + category: TableCategory! + + """ + Reads and enables pagination through a set of `CheckConstraint`. + """ + checkConstraints( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: CheckConstraintCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: CheckConstraintFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `CheckConstraint`. + """ + orderBy: [CheckConstraintsOrderBy!] = [PRIMARY_KEY_ASC] + ): CheckConstraintsConnection! + createdAt: Datetime + + """ + Reads a single `Database` that is related to this `Table`. + """ + database: Database + databaseId: UUID! + description: String + + """ + Reads and enables pagination through a set of `Field`. + """ + fields( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: FieldCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: FieldFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `Field`. + """ + orderBy: [FieldsOrderBy!] = [PRIMARY_KEY_ASC] + ): FieldsConnection! + + """ + Reads and enables pagination through a set of `ForeignKeyConstraint`. + """ + foreignKeyConstraints( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: ForeignKeyConstraintCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: ForeignKeyConstraintFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `ForeignKeyConstraint`. + """ + orderBy: [ForeignKeyConstraintsOrderBy!] = [PRIMARY_KEY_ASC] + ): ForeignKeyConstraintsConnection! + + """ + Reads and enables pagination through a set of `ForeignKeyConstraint`. + """ + foreignKeyConstraintsByRefTableId( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: ForeignKeyConstraintCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: ForeignKeyConstraintFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `ForeignKeyConstraint`. + """ + orderBy: [ForeignKeyConstraintsOrderBy!] = [PRIMARY_KEY_ASC] + ): ForeignKeyConstraintsConnection! + + """ + Reads and enables pagination through a set of `FullTextSearch`. + """ + fullTextSearches( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: FullTextSearchCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: FullTextSearchFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `FullTextSearch`. + """ + orderBy: [FullTextSearchesOrderBy!] = [PRIMARY_KEY_ASC] + ): FullTextSearchesConnection! + id: UUID! + + """ + Reads and enables pagination through a set of `Index`. + """ + indices( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: IndexCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: IndexFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `Index`. + """ + orderBy: [IndicesOrderBy!] = [PRIMARY_KEY_ASC] + ): IndicesConnection! + + """ + Reads a single `Table` that is related to this `Table`. + """ + inherits: Table + inheritsId: UUID + label: String + + """ + Reads and enables pagination through a set of `LimitFunction`. + """ + limitFunctions( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: LimitFunctionCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: LimitFunctionFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `LimitFunction`. + """ + orderBy: [LimitFunctionsOrderBy!] = [PRIMARY_KEY_ASC] + ): LimitFunctionsConnection! + module: String + name: String! + peoplestamps: Boolean! + pluralName: String + + """ + Reads and enables pagination through a set of `Policy`. + """ + policies( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: PolicyCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: PolicyFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `Policy`. + """ + orderBy: [PoliciesOrderBy!] = [PRIMARY_KEY_ASC] + ): PoliciesConnection! + + """ + Reads and enables pagination through a set of `PrimaryKeyConstraint`. + """ + primaryKeyConstraints( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: PrimaryKeyConstraintCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: PrimaryKeyConstraintFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `PrimaryKeyConstraint`. + """ + orderBy: [PrimaryKeyConstraintsOrderBy!] = [PRIMARY_KEY_ASC] + ): PrimaryKeyConstraintsConnection! + + """ + Reads and enables pagination through a set of `RlsFunction`. + """ + rlsFunctions( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: RlsFunctionCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: RlsFunctionFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `RlsFunction`. + """ + orderBy: [RlsFunctionsOrderBy!] = [PRIMARY_KEY_ASC] + ): RlsFunctionsConnection! + + """ + Reads a single `Schema` that is related to this `Table`. + """ + schema: Schema + schemaId: UUID! + scope: Int + singularName: String + smartTags: JSON + + """ + Reads and enables pagination through a set of `TableGrant`. + """ + tableGrants( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: TableGrantCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: TableGrantFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `TableGrant`. + """ + orderBy: [TableGrantsOrderBy!] = [PRIMARY_KEY_ASC] + ): TableGrantsConnection! + + """ + Reads and enables pagination through a set of `Table`. + """ + tablesByInheritsId( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: TableCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: TableFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `Table`. + """ + orderBy: [TablesOrderBy!] = [PRIMARY_KEY_ASC] + ): TablesConnection! + tags: [String]! + timestamps: Boolean! + + """ + Reads and enables pagination through a set of `Trigger`. + """ + triggers( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: TriggerCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: TriggerFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `Trigger`. + """ + orderBy: [TriggersOrderBy!] = [PRIMARY_KEY_ASC] + ): TriggersConnection! + + """ + Reads and enables pagination through a set of `UniqueConstraint`. + """ + uniqueConstraints( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: UniqueConstraintCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: UniqueConstraintFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `UniqueConstraint`. + """ + orderBy: [UniqueConstraintsOrderBy!] = [PRIMARY_KEY_ASC] + ): UniqueConstraintsConnection! + updatedAt: Datetime + useRls: Boolean! +} + +enum TableCategory { + APP + CORE + MODULE +} + +""" +A filter to be used against TableCategory fields. All fields are combined with a logical ‘and.’ +""" +input TableCategoryFilter { + """ + Not equal to the specified value, treating null like an ordinary value. + """ + distinctFrom: TableCategory + + """ + Equal to the specified value. + """ + equalTo: TableCategory + + """ + Greater than the specified value. + """ + greaterThan: TableCategory + + """ + Greater than or equal to the specified value. + """ + greaterThanOrEqualTo: TableCategory + + """ + Included in the specified list. + """ + in: [TableCategory!] + + """ + Is null (if `true` is specified) or is not null (if `false` is specified). + """ + isNull: Boolean + + """ + Less than the specified value. + """ + lessThan: TableCategory + + """ + Less than or equal to the specified value. + """ + lessThanOrEqualTo: TableCategory + + """ + Equal to the specified value, treating null like an ordinary value. + """ + notDistinctFrom: TableCategory + + """ + Not equal to the specified value. + """ + notEqualTo: TableCategory + + """ + Not included in the specified list. + """ + notIn: [TableCategory!] +} + +""" +A condition to be used against `Table` object types. All fields are tested for equality and combined with a logical ‘and.’ +""" +input TableCondition { + """ + Checks for equality with the object’s `category` field. + """ + category: TableCategory + + """ + Checks for equality with the object’s `createdAt` field. + """ + createdAt: Datetime + + """ + Checks for equality with the object’s `databaseId` field. + """ + databaseId: UUID + + """ + Checks for equality with the object’s `description` field. + """ + description: String + + """ + Checks for equality with the object’s `id` field. + """ + id: UUID + + """ + Checks for equality with the object’s `inheritsId` field. + """ + inheritsId: UUID + + """ + Checks for equality with the object’s `label` field. + """ + label: String + + """ + Checks for equality with the object’s `module` field. + """ + module: String + + """ + Checks for equality with the object’s `name` field. + """ + name: String + + """ + Checks for equality with the object’s `peoplestamps` field. + """ + peoplestamps: Boolean + + """ + Checks for equality with the object’s `pluralName` field. + """ + pluralName: String + + """ + Checks for equality with the object’s `schemaId` field. + """ + schemaId: UUID + + """ + Checks for equality with the object’s `scope` field. + """ + scope: Int + + """ + Checks for equality with the object’s `singularName` field. + """ + singularName: String + + """ + Checks for equality with the object’s `smartTags` field. + """ + smartTags: JSON + + """ + Checks for equality with the object’s `tags` field. + """ + tags: [String] + + """ + Checks for equality with the object’s `timestamps` field. + """ + timestamps: Boolean + + """ + Checks for equality with the object’s `updatedAt` field. + """ + updatedAt: Datetime + + """ + Checks for equality with the object’s `useRls` field. + """ + useRls: Boolean +} + +""" +A filter to be used against `Table` object types. All fields are combined with a logical ‘and.’ +""" +input TableFilter { + """ + Checks for all expressions in this list. + """ + and: [TableFilter!] + + """ + Filter by the object’s `category` field. + """ + category: TableCategoryFilter + + """ + Filter by the object’s `createdAt` field. + """ + createdAt: DatetimeFilter + + """ + Filter by the object’s `databaseId` field. + """ + databaseId: UUIDFilter + + """ + Filter by the object’s `description` field. + """ + description: StringFilter + + """ + Filter by the object’s `id` field. + """ + id: UUIDFilter + + """ + Filter by the object’s `inheritsId` field. + """ + inheritsId: UUIDFilter + + """ + Filter by the object’s `label` field. + """ + label: StringFilter + + """ + Filter by the object’s `module` field. + """ + module: StringFilter + + """ + Filter by the object’s `name` field. + """ + name: StringFilter + + """ + Negates the expression. + """ + not: TableFilter + + """ + Checks for any expressions in this list. + """ + or: [TableFilter!] + + """ + Filter by the object’s `peoplestamps` field. + """ + peoplestamps: BooleanFilter + + """ + Filter by the object’s `pluralName` field. + """ + pluralName: StringFilter + + """ + Filter by the object’s `schemaId` field. + """ + schemaId: UUIDFilter + + """ + Filter by the object’s `scope` field. + """ + scope: IntFilter + + """ + Filter by the object’s `singularName` field. + """ + singularName: StringFilter + + """ + Filter by the object’s `smartTags` field. + """ + smartTags: JSONFilter + + """ + Filter by the object’s `tags` field. + """ + tags: StringListFilter + + """ + Filter by the object’s `timestamps` field. + """ + timestamps: BooleanFilter + + """ + Filter by the object’s `updatedAt` field. + """ + updatedAt: DatetimeFilter + + """ + Filter by the object’s `useRls` field. + """ + useRls: BooleanFilter +} + +type TableGrant { + createdAt: Datetime + + """ + Reads a single `Database` that is related to this `TableGrant`. + """ + database: Database + databaseId: UUID! + fieldIds: [UUID] + id: UUID! + privilege: String! + roleName: String! + + """ + Reads a single `Table` that is related to this `TableGrant`. + """ + table: Table + tableId: UUID! + updatedAt: Datetime +} + +""" +A condition to be used against `TableGrant` object types. All fields are tested +for equality and combined with a logical ‘and.’ +""" +input TableGrantCondition { + """ + Checks for equality with the object’s `createdAt` field. + """ + createdAt: Datetime + + """ + Checks for equality with the object’s `databaseId` field. + """ + databaseId: UUID + + """ + Checks for equality with the object’s `fieldIds` field. + """ + fieldIds: [UUID] + + """ + Checks for equality with the object’s `id` field. + """ + id: UUID + + """ + Checks for equality with the object’s `privilege` field. + """ + privilege: String + + """ + Checks for equality with the object’s `roleName` field. + """ + roleName: String + + """ + Checks for equality with the object’s `tableId` field. + """ + tableId: UUID + + """ + Checks for equality with the object’s `updatedAt` field. + """ + updatedAt: Datetime +} + +""" +A filter to be used against `TableGrant` object types. All fields are combined with a logical ‘and.’ +""" +input TableGrantFilter { + """ + Checks for all expressions in this list. + """ + and: [TableGrantFilter!] + + """ + Filter by the object’s `createdAt` field. + """ + createdAt: DatetimeFilter + + """ + Filter by the object’s `databaseId` field. + """ + databaseId: UUIDFilter + + """ + Filter by the object’s `fieldIds` field. + """ + fieldIds: UUIDListFilter + + """ + Filter by the object’s `id` field. + """ + id: UUIDFilter + + """ + Negates the expression. + """ + not: TableGrantFilter + + """ + Checks for any expressions in this list. + """ + or: [TableGrantFilter!] + + """ + Filter by the object’s `privilege` field. + """ + privilege: StringFilter + + """ + Filter by the object’s `roleName` field. + """ + roleName: StringFilter + + """ + Filter by the object’s `tableId` field. + """ + tableId: UUIDFilter + + """ + Filter by the object’s `updatedAt` field. + """ + updatedAt: DatetimeFilter +} + +""" +An input for mutations affecting `TableGrant` +""" +input TableGrantInput { + createdAt: Datetime + databaseId: UUID + fieldIds: [UUID] + id: UUID + privilege: String! + roleName: String! + tableId: UUID! + updatedAt: Datetime +} + +""" +Represents an update to a `TableGrant`. Fields that are set will be updated. +""" +input TableGrantPatch { + createdAt: Datetime + databaseId: UUID + fieldIds: [UUID] + id: UUID + privilege: String + roleName: String + tableId: UUID + updatedAt: Datetime +} + +""" +A connection to a list of `TableGrant` values. +""" +type TableGrantsConnection { + """ + A list of edges which contains the `TableGrant` and cursor to aid in pagination. + """ + edges: [TableGrantsEdge!]! + + """ + A list of `TableGrant` objects. + """ + nodes: [TableGrant!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `TableGrant` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `TableGrant` edge in the connection. +""" +type TableGrantsEdge { + """ + A cursor for use in pagination. + """ + cursor: Cursor + + """ + The `TableGrant` at the end of the edge. + """ + node: TableGrant! +} + +""" +Methods to use when ordering `TableGrant`. +""" +enum TableGrantsOrderBy { + CREATED_AT_ASC + CREATED_AT_DESC + DATABASE_ID_ASC + DATABASE_ID_DESC + FIELD_IDS_ASC + FIELD_IDS_DESC + ID_ASC + ID_DESC + NATURAL + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC + PRIVILEGE_ASC + PRIVILEGE_DESC + ROLE_NAME_ASC + ROLE_NAME_DESC + TABLE_ID_ASC + TABLE_ID_DESC + UPDATED_AT_ASC + UPDATED_AT_DESC +} + +""" +An input for mutations affecting `Table` +""" +input TableInput { + category: TableCategory + createdAt: Datetime + databaseId: UUID + description: String + id: UUID + inheritsId: UUID + label: String + module: String + name: String! + peoplestamps: Boolean + pluralName: String + schemaId: UUID! + scope: Int + singularName: String + smartTags: JSON + tags: [String] + timestamps: Boolean + updatedAt: Datetime + useRls: Boolean +} + +""" +Represents an update to a `Table`. Fields that are set will be updated. +""" +input TablePatch { + category: TableCategory + createdAt: Datetime + databaseId: UUID + description: String + id: UUID + inheritsId: UUID + label: String + module: String + name: String + peoplestamps: Boolean + pluralName: String + schemaId: UUID + scope: Int + singularName: String + smartTags: JSON + tags: [String] + timestamps: Boolean + updatedAt: Datetime + useRls: Boolean +} + +""" +A connection to a list of `Table` values. +""" +type TablesConnection { + """ + A list of edges which contains the `Table` and cursor to aid in pagination. + """ + edges: [TablesEdge!]! + + """ + A list of `Table` objects. + """ + nodes: [Table!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `Table` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `Table` edge in the connection. +""" +type TablesEdge { + """ + A cursor for use in pagination. + """ + cursor: Cursor + + """ + The `Table` at the end of the edge. + """ + node: Table! +} + +""" +Methods to use when ordering `Table`. +""" +enum TablesOrderBy { + CATEGORY_ASC + CATEGORY_DESC + CREATED_AT_ASC + CREATED_AT_DESC + DATABASE_ID_ASC + DATABASE_ID_DESC + DESCRIPTION_ASC + DESCRIPTION_DESC + ID_ASC + ID_DESC + INHERITS_ID_ASC + INHERITS_ID_DESC + LABEL_ASC + LABEL_DESC + MODULE_ASC + MODULE_DESC + NAME_ASC + NAME_DESC + NATURAL + PEOPLESTAMPS_ASC + PEOPLESTAMPS_DESC + PLURAL_NAME_ASC + PLURAL_NAME_DESC + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC + SCHEMA_ID_ASC + SCHEMA_ID_DESC + SCOPE_ASC + SCOPE_DESC + SINGULAR_NAME_ASC + SINGULAR_NAME_DESC + SMART_TAGS_ASC + SMART_TAGS_DESC + TAGS_ASC + TAGS_DESC + TIMESTAMPS_ASC + TIMESTAMPS_DESC + UPDATED_AT_ASC + UPDATED_AT_DESC + USE_RLS_ASC + USE_RLS_DESC +} + +type Trigger { + createdAt: Datetime + + """ + Reads a single `Database` that is related to this `Trigger`. + """ + database: Database + databaseId: UUID! + event: String + functionName: String + id: UUID! + name: String! + + """ + Reads a single `Table` that is related to this `Trigger`. + """ + table: Table + tableId: UUID! + updatedAt: Datetime +} + +""" +A condition to be used against `Trigger` object types. All fields are tested for equality and combined with a logical ‘and.’ +""" +input TriggerCondition { + """ + Checks for equality with the object’s `createdAt` field. + """ + createdAt: Datetime + + """ + Checks for equality with the object’s `databaseId` field. + """ + databaseId: UUID + + """ + Checks for equality with the object’s `event` field. + """ + event: String + + """ + Checks for equality with the object’s `functionName` field. + """ + functionName: String + + """ + Checks for equality with the object’s `id` field. + """ + id: UUID + + """ + Checks for equality with the object’s `name` field. + """ + name: String + + """ + Checks for equality with the object’s `tableId` field. + """ + tableId: UUID + + """ + Checks for equality with the object’s `updatedAt` field. + """ + updatedAt: Datetime +} + +""" +A filter to be used against `Trigger` object types. All fields are combined with a logical ‘and.’ +""" +input TriggerFilter { + """ + Checks for all expressions in this list. + """ + and: [TriggerFilter!] + + """ + Filter by the object’s `createdAt` field. + """ + createdAt: DatetimeFilter + + """ + Filter by the object’s `databaseId` field. + """ + databaseId: UUIDFilter + + """ + Filter by the object’s `event` field. + """ + event: StringFilter + + """ + Filter by the object’s `functionName` field. + """ + functionName: StringFilter + + """ + Filter by the object’s `id` field. + """ + id: UUIDFilter + + """ + Filter by the object’s `name` field. + """ + name: StringFilter + + """ + Negates the expression. + """ + not: TriggerFilter + + """ + Checks for any expressions in this list. + """ + or: [TriggerFilter!] + + """ + Filter by the object’s `tableId` field. + """ + tableId: UUIDFilter + + """ + Filter by the object’s `updatedAt` field. + """ + updatedAt: DatetimeFilter +} + +type TriggerFunction { + code: String + createdAt: Datetime + + """ + Reads a single `Database` that is related to this `TriggerFunction`. + """ + database: Database + databaseId: UUID! + id: UUID! + name: String! + updatedAt: Datetime +} + +""" +A condition to be used against `TriggerFunction` object types. All fields are +tested for equality and combined with a logical ‘and.’ +""" +input TriggerFunctionCondition { + """ + Checks for equality with the object’s `code` field. + """ + code: String + + """ + Checks for equality with the object’s `createdAt` field. + """ + createdAt: Datetime + + """ + Checks for equality with the object’s `databaseId` field. + """ + databaseId: UUID + + """ + Checks for equality with the object’s `id` field. + """ + id: UUID + + """ + Checks for equality with the object’s `name` field. + """ + name: String + + """ + Checks for equality with the object’s `updatedAt` field. + """ + updatedAt: Datetime +} + +""" +A filter to be used against `TriggerFunction` object types. All fields are combined with a logical ‘and.’ +""" +input TriggerFunctionFilter { + """ + Checks for all expressions in this list. + """ + and: [TriggerFunctionFilter!] + + """ + Filter by the object’s `code` field. + """ + code: StringFilter + + """ + Filter by the object’s `createdAt` field. + """ + createdAt: DatetimeFilter + + """ + Filter by the object’s `databaseId` field. + """ + databaseId: UUIDFilter + + """ + Filter by the object’s `id` field. + """ + id: UUIDFilter + + """ + Filter by the object’s `name` field. + """ + name: StringFilter + + """ + Negates the expression. + """ + not: TriggerFunctionFilter + + """ + Checks for any expressions in this list. + """ + or: [TriggerFunctionFilter!] + + """ + Filter by the object’s `updatedAt` field. + """ + updatedAt: DatetimeFilter +} + +""" +An input for mutations affecting `TriggerFunction` +""" +input TriggerFunctionInput { + code: String + createdAt: Datetime + databaseId: UUID! + id: UUID + name: String! + updatedAt: Datetime +} + +""" +Represents an update to a `TriggerFunction`. Fields that are set will be updated. +""" +input TriggerFunctionPatch { + code: String + createdAt: Datetime + databaseId: UUID + id: UUID + name: String + updatedAt: Datetime +} + +""" +A connection to a list of `TriggerFunction` values. +""" +type TriggerFunctionsConnection { + """ + A list of edges which contains the `TriggerFunction` and cursor to aid in pagination. + """ + edges: [TriggerFunctionsEdge!]! + + """ + A list of `TriggerFunction` objects. + """ + nodes: [TriggerFunction!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `TriggerFunction` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `TriggerFunction` edge in the connection. +""" +type TriggerFunctionsEdge { + """ + A cursor for use in pagination. + """ + cursor: Cursor + + """ + The `TriggerFunction` at the end of the edge. + """ + node: TriggerFunction! +} + +""" +Methods to use when ordering `TriggerFunction`. +""" +enum TriggerFunctionsOrderBy { + CODE_ASC + CODE_DESC + CREATED_AT_ASC + CREATED_AT_DESC + DATABASE_ID_ASC + DATABASE_ID_DESC + ID_ASC + ID_DESC + NAME_ASC + NAME_DESC + NATURAL + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC + UPDATED_AT_ASC + UPDATED_AT_DESC +} + +""" +An input for mutations affecting `Trigger` +""" +input TriggerInput { + createdAt: Datetime + databaseId: UUID + event: String + functionName: String + id: UUID + name: String! + tableId: UUID! + updatedAt: Datetime +} + +""" +Represents an update to a `Trigger`. Fields that are set will be updated. +""" +input TriggerPatch { + createdAt: Datetime + databaseId: UUID + event: String + functionName: String + id: UUID + name: String + tableId: UUID + updatedAt: Datetime +} + +""" +A connection to a list of `Trigger` values. +""" +type TriggersConnection { + """ + A list of edges which contains the `Trigger` and cursor to aid in pagination. + """ + edges: [TriggersEdge!]! + + """ + A list of `Trigger` objects. + """ + nodes: [Trigger!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `Trigger` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `Trigger` edge in the connection. +""" +type TriggersEdge { + """ + A cursor for use in pagination. + """ + cursor: Cursor + + """ + The `Trigger` at the end of the edge. + """ + node: Trigger! +} + +""" +Methods to use when ordering `Trigger`. +""" +enum TriggersOrderBy { + CREATED_AT_ASC + CREATED_AT_DESC + DATABASE_ID_ASC + DATABASE_ID_DESC + EVENT_ASC + EVENT_DESC + FUNCTION_NAME_ASC + FUNCTION_NAME_DESC + ID_ASC + ID_DESC + NAME_ASC + NAME_DESC + NATURAL + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC + TABLE_ID_ASC + TABLE_ID_DESC + UPDATED_AT_ASC + UPDATED_AT_DESC +} + +""" +A universally unique identifier as defined by [RFC 4122](https://tools.ietf.org/html/rfc4122). +""" +scalar UUID + +""" +A filter to be used against UUID fields. All fields are combined with a logical ‘and.’ +""" +input UUIDFilter { + """ + Not equal to the specified value, treating null like an ordinary value. + """ + distinctFrom: UUID + + """ + Equal to the specified value. + """ + equalTo: UUID + + """ + Greater than the specified value. + """ + greaterThan: UUID + + """ + Greater than or equal to the specified value. + """ + greaterThanOrEqualTo: UUID + + """ + Included in the specified list. + """ + in: [UUID!] + + """ + Is null (if `true` is specified) or is not null (if `false` is specified). + """ + isNull: Boolean + + """ + Less than the specified value. + """ + lessThan: UUID + + """ + Less than or equal to the specified value. + """ + lessThanOrEqualTo: UUID + + """ + Equal to the specified value, treating null like an ordinary value. + """ + notDistinctFrom: UUID + + """ + Not equal to the specified value. + """ + notEqualTo: UUID + + """ + Not included in the specified list. + """ + notIn: [UUID!] +} + +""" +A filter to be used against UUID List fields. All fields are combined with a logical ‘and.’ +""" +input UUIDListFilter { + """ + Any array item is equal to the specified value. + """ + anyEqualTo: UUID + + """ + Any array item is greater than the specified value. + """ + anyGreaterThan: UUID + + """ + Any array item is greater than or equal to the specified value. + """ + anyGreaterThanOrEqualTo: UUID + + """ + Any array item is less than the specified value. + """ + anyLessThan: UUID + + """ + Any array item is less than or equal to the specified value. + """ + anyLessThanOrEqualTo: UUID + + """ + Any array item is not equal to the specified value. + """ + anyNotEqualTo: UUID + + """ + Contained by the specified list of values. + """ + containedBy: [UUID] + + """ + Contains the specified list of values. + """ + contains: [UUID] + + """ + Not equal to the specified value, treating null like an ordinary value. + """ + distinctFrom: [UUID] + + """ + Equal to the specified value. + """ + equalTo: [UUID] + + """ + Greater than the specified value. + """ + greaterThan: [UUID] + + """ + Greater than or equal to the specified value. + """ + greaterThanOrEqualTo: [UUID] + + """ + Is null (if `true` is specified) or is not null (if `false` is specified). + """ + isNull: Boolean + + """ + Less than the specified value. + """ + lessThan: [UUID] + + """ + Less than or equal to the specified value. + """ + lessThanOrEqualTo: [UUID] + + """ + Equal to the specified value, treating null like an ordinary value. + """ + notDistinctFrom: [UUID] + + """ + Not equal to the specified value. + """ + notEqualTo: [UUID] + + """ + Overlaps the specified list of values. + """ + overlaps: [UUID] +} + +type UniqueConstraint { + createdAt: Datetime + + """ + Reads a single `Database` that is related to this `UniqueConstraint`. + """ + database: Database + databaseId: UUID! + description: String + fieldIds: [UUID]! + id: UUID! + name: String + smartTags: JSON + + """ + Reads a single `Table` that is related to this `UniqueConstraint`. + """ + table: Table + tableId: UUID! + type: String + updatedAt: Datetime +} + +""" +A condition to be used against `UniqueConstraint` object types. All fields are +tested for equality and combined with a logical ‘and.’ +""" +input UniqueConstraintCondition { + """ + Checks for equality with the object’s `createdAt` field. + """ + createdAt: Datetime + + """ + Checks for equality with the object’s `databaseId` field. + """ + databaseId: UUID + + """ + Checks for equality with the object’s `description` field. + """ + description: String + + """ + Checks for equality with the object’s `fieldIds` field. + """ + fieldIds: [UUID] + + """ + Checks for equality with the object’s `id` field. + """ + id: UUID + + """ + Checks for equality with the object’s `name` field. + """ + name: String + + """ + Checks for equality with the object’s `smartTags` field. + """ + smartTags: JSON + + """ + Checks for equality with the object’s `tableId` field. + """ + tableId: UUID + + """ + Checks for equality with the object’s `type` field. + """ + type: String + + """ + Checks for equality with the object’s `updatedAt` field. + """ + updatedAt: Datetime +} + +""" +A filter to be used against `UniqueConstraint` object types. All fields are combined with a logical ‘and.’ +""" +input UniqueConstraintFilter { + """ + Checks for all expressions in this list. + """ + and: [UniqueConstraintFilter!] + + """ + Filter by the object’s `createdAt` field. + """ + createdAt: DatetimeFilter + + """ + Filter by the object’s `databaseId` field. + """ + databaseId: UUIDFilter + + """ + Filter by the object’s `description` field. + """ + description: StringFilter + + """ + Filter by the object’s `fieldIds` field. + """ + fieldIds: UUIDListFilter + + """ + Filter by the object’s `id` field. + """ + id: UUIDFilter + + """ + Filter by the object’s `name` field. + """ + name: StringFilter + + """ + Negates the expression. + """ + not: UniqueConstraintFilter + + """ + Checks for any expressions in this list. + """ + or: [UniqueConstraintFilter!] + + """ + Filter by the object’s `smartTags` field. + """ + smartTags: JSONFilter + + """ + Filter by the object’s `tableId` field. + """ + tableId: UUIDFilter + + """ + Filter by the object’s `type` field. + """ + type: StringFilter + + """ + Filter by the object’s `updatedAt` field. + """ + updatedAt: DatetimeFilter +} + +""" +An input for mutations affecting `UniqueConstraint` +""" +input UniqueConstraintInput { + createdAt: Datetime + databaseId: UUID + description: String + fieldIds: [UUID]! + id: UUID + name: String + smartTags: JSON + tableId: UUID! + type: String + updatedAt: Datetime +} + +""" +Represents an update to a `UniqueConstraint`. Fields that are set will be updated. +""" +input UniqueConstraintPatch { + createdAt: Datetime + databaseId: UUID + description: String + fieldIds: [UUID] + id: UUID + name: String + smartTags: JSON + tableId: UUID + type: String + updatedAt: Datetime +} + +""" +A connection to a list of `UniqueConstraint` values. +""" +type UniqueConstraintsConnection { + """ + A list of edges which contains the `UniqueConstraint` and cursor to aid in pagination. + """ + edges: [UniqueConstraintsEdge!]! + + """ + A list of `UniqueConstraint` objects. + """ + nodes: [UniqueConstraint!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `UniqueConstraint` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `UniqueConstraint` edge in the connection. +""" +type UniqueConstraintsEdge { + """ + A cursor for use in pagination. + """ + cursor: Cursor + + """ + The `UniqueConstraint` at the end of the edge. + """ + node: UniqueConstraint! +} + +""" +Methods to use when ordering `UniqueConstraint`. +""" +enum UniqueConstraintsOrderBy { + CREATED_AT_ASC + CREATED_AT_DESC + DATABASE_ID_ASC + DATABASE_ID_DESC + DESCRIPTION_ASC + DESCRIPTION_DESC + FIELD_IDS_ASC + FIELD_IDS_DESC + ID_ASC + ID_DESC + NAME_ASC + NAME_DESC + NATURAL + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC + SMART_TAGS_ASC + SMART_TAGS_DESC + TABLE_ID_ASC + TABLE_ID_DESC + TYPE_ASC + TYPE_DESC + UPDATED_AT_ASC + UPDATED_AT_DESC +} + +""" +All input for the `updateAddress` mutation. +""" +input UpdateAddressInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! + + """ + An object where the defined keys will be set on the `Address` being updated. + """ + patch: AddressPatch! +} + +""" +The output of our update `Address` mutation. +""" +type UpdateAddressPayload { + """ + The `Address` that was updated by this mutation. + """ + address: Address + + """ + An edge for our `Address`. May be used by Relay 1. + """ + addressEdge( + """ + The method to use when ordering `Address`. + """ + orderBy: [AddressesOrderBy!] = [PRIMARY_KEY_ASC] + ): AddressesEdge + + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `User` that is related to this `Address`. + """ + owner: User + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the `updateApiByDatabaseIdAndName` mutation. +""" +input UpdateApiByDatabaseIdAndNameInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + databaseId: UUID! + name: String! + + """ + An object where the defined keys will be set on the `Api` being updated. + """ + patch: ApiPatch! +} + +""" +All input for the `updateApiExtensionBySchemaNameAndApiId` mutation. +""" +input UpdateApiExtensionBySchemaNameAndApiIdInput { + apiId: UUID! + + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + An object where the defined keys will be set on the `ApiExtension` being updated. + """ + patch: ApiExtensionPatch! + schemaName: String! +} + +""" +All input for the `updateApiExtension` mutation. +""" +input UpdateApiExtensionInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! + + """ + An object where the defined keys will be set on the `ApiExtension` being updated. + """ + patch: ApiExtensionPatch! +} + +""" +The output of our update `ApiExtension` mutation. +""" +type UpdateApiExtensionPayload { + """ + Reads a single `Api` that is related to this `ApiExtension`. + """ + api: Api + + """ + The `ApiExtension` that was updated by this mutation. + """ + apiExtension: ApiExtension + + """ + An edge for our `ApiExtension`. May be used by Relay 1. + """ + apiExtensionEdge( + """ + The method to use when ordering `ApiExtension`. + """ + orderBy: [ApiExtensionsOrderBy!] = [PRIMARY_KEY_ASC] + ): ApiExtensionsEdge + + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `Database` that is related to this `ApiExtension`. + """ + database: Database + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the `updateApi` mutation. +""" +input UpdateApiInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! + + """ + An object where the defined keys will be set on the `Api` being updated. + """ + patch: ApiPatch! +} + +""" +All input for the `updateApiModule` mutation. +""" +input UpdateApiModuleInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! + + """ + An object where the defined keys will be set on the `ApiModule` being updated. + """ + patch: ApiModulePatch! +} + +""" +The output of our update `ApiModule` mutation. +""" +type UpdateApiModulePayload { + """ + Reads a single `Api` that is related to this `ApiModule`. + """ + api: Api + + """ + The `ApiModule` that was updated by this mutation. + """ + apiModule: ApiModule + + """ + An edge for our `ApiModule`. May be used by Relay 1. + """ + apiModuleEdge( + """ + The method to use when ordering `ApiModule`. + """ + orderBy: [ApiModulesOrderBy!] = [PRIMARY_KEY_ASC] + ): ApiModulesEdge + + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `Database` that is related to this `ApiModule`. + """ + database: Database + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +The output of our update `Api` mutation. +""" +type UpdateApiPayload { + """ + The `Api` that was updated by this mutation. + """ + api: Api + + """ + An edge for our `Api`. May be used by Relay 1. + """ + apiEdge( + """ + The method to use when ordering `Api`. + """ + orderBy: [ApisOrderBy!] = [PRIMARY_KEY_ASC] + ): ApisEdge + + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `Database` that is related to this `Api`. + """ + database: Database + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the `updateApiSchemaByApiIdAndSchemaId` mutation. +""" +input UpdateApiSchemaByApiIdAndSchemaIdInput { + apiId: UUID! + + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + An object where the defined keys will be set on the `ApiSchema` being updated. + """ + patch: ApiSchemaPatch! + schemaId: UUID! +} + +""" +All input for the `updateApiSchema` mutation. +""" +input UpdateApiSchemaInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! + + """ + An object where the defined keys will be set on the `ApiSchema` being updated. + """ + patch: ApiSchemaPatch! +} + +""" +The output of our update `ApiSchema` mutation. +""" +type UpdateApiSchemaPayload { + """ + Reads a single `Api` that is related to this `ApiSchema`. + """ + api: Api + + """ + The `ApiSchema` that was updated by this mutation. + """ + apiSchema: ApiSchema + + """ + An edge for our `ApiSchema`. May be used by Relay 1. + """ + apiSchemaEdge( + """ + The method to use when ordering `ApiSchema`. + """ + orderBy: [ApiSchemataOrderBy!] = [PRIMARY_KEY_ASC] + ): ApiSchemataEdge + + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `Database` that is related to this `ApiSchema`. + """ + database: Database + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + Reads a single `Schema` that is related to this `ApiSchema`. + """ + schema: Schema +} + +""" +All input for the `updateAppAchievementByActorIdAndName` mutation. +""" +input UpdateAppAchievementByActorIdAndNameInput { + actorId: UUID! + + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + name: String! + + """ + An object where the defined keys will be set on the `AppAchievement` being updated. + """ + patch: AppAchievementPatch! +} + +""" +All input for the `updateAppAchievement` mutation. +""" +input UpdateAppAchievementInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! + + """ + An object where the defined keys will be set on the `AppAchievement` being updated. + """ + patch: AppAchievementPatch! +} + +""" +The output of our update `AppAchievement` mutation. +""" +type UpdateAppAchievementPayload { + """ + Reads a single `User` that is related to this `AppAchievement`. + """ + actor: User + + """ + The `AppAchievement` that was updated by this mutation. + """ + appAchievement: AppAchievement + + """ + An edge for our `AppAchievement`. May be used by Relay 1. + """ + appAchievementEdge( + """ + The method to use when ordering `AppAchievement`. + """ + orderBy: [AppAchievementsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppAchievementsEdge + + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the `updateAppBySiteId` mutation. +""" +input UpdateAppBySiteIdInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + An object where the defined keys will be set on the `App` being updated. + """ + patch: AppPatch! + siteId: UUID! +} + +""" +All input for the `updateAppGrant` mutation. +""" +input UpdateAppGrantInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! + + """ + An object where the defined keys will be set on the `AppGrant` being updated. + """ + patch: AppGrantPatch! +} + +""" +The output of our update `AppGrant` mutation. +""" +type UpdateAppGrantPayload { + """ + The `AppGrant` that was updated by this mutation. + """ + appGrant: AppGrant + + """ + An edge for our `AppGrant`. May be used by Relay 1. + """ + appGrantEdge( + """ + The method to use when ordering `AppGrant`. + """ + orderBy: [AppGrantsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppGrantsEdge + + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `User` that is related to this `AppGrant`. + """ + grantor: User + + """ + Reads a single `AppMembership` that is related to this `AppGrant`. + """ + membership: AppMembership + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the `updateApp` mutation. +""" +input UpdateAppInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! + + """ + An object where the defined keys will be set on the `App` being updated. + """ + patch: AppPatch! +} + +""" +All input for the `updateAppLevelByName` mutation. +""" +input UpdateAppLevelByNameInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + name: String! + + """ + An object where the defined keys will be set on the `AppLevel` being updated. + """ + patch: AppLevelPatch! +} + +""" +All input for the `updateAppLevel` mutation. +""" +input UpdateAppLevelInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! + + """ + An object where the defined keys will be set on the `AppLevel` being updated. + """ + patch: AppLevelPatch! +} + +""" +The output of our update `AppLevel` mutation. +""" +type UpdateAppLevelPayload { + """ + The `AppLevel` that was updated by this mutation. + """ + appLevel: AppLevel + + """ + An edge for our `AppLevel`. May be used by Relay 1. + """ + appLevelEdge( + """ + The method to use when ordering `AppLevel`. + """ + orderBy: [AppLevelsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppLevelsEdge + + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `User` that is related to this `AppLevel`. + """ + owner: User + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the `updateAppLevelRequirementByNameAndLevel` mutation. +""" +input UpdateAppLevelRequirementByNameAndLevelInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + level: String! + name: String! + + """ + An object where the defined keys will be set on the `AppLevelRequirement` being updated. + """ + patch: AppLevelRequirementPatch! +} + +""" +All input for the `updateAppLevelRequirement` mutation. +""" +input UpdateAppLevelRequirementInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! + + """ + An object where the defined keys will be set on the `AppLevelRequirement` being updated. + """ + patch: AppLevelRequirementPatch! +} + +""" +The output of our update `AppLevelRequirement` mutation. +""" +type UpdateAppLevelRequirementPayload { + """ + The `AppLevelRequirement` that was updated by this mutation. + """ + appLevelRequirement: AppLevelRequirement + + """ + An edge for our `AppLevelRequirement`. May be used by Relay 1. + """ + appLevelRequirementEdge( + """ + The method to use when ordering `AppLevelRequirement`. + """ + orderBy: [AppLevelRequirementsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppLevelRequirementsEdge + + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the `updateAppLimitByNameAndActorId` mutation. +""" +input UpdateAppLimitByNameAndActorIdInput { + actorId: UUID! + + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + name: String! + + """ + An object where the defined keys will be set on the `AppLimit` being updated. + """ + patch: AppLimitPatch! +} + +""" +All input for the `updateAppLimitDefaultByName` mutation. +""" +input UpdateAppLimitDefaultByNameInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + name: String! + + """ + An object where the defined keys will be set on the `AppLimitDefault` being updated. + """ + patch: AppLimitDefaultPatch! +} + +""" +All input for the `updateAppLimitDefault` mutation. +""" +input UpdateAppLimitDefaultInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! + + """ + An object where the defined keys will be set on the `AppLimitDefault` being updated. + """ + patch: AppLimitDefaultPatch! +} + +""" +The output of our update `AppLimitDefault` mutation. +""" +type UpdateAppLimitDefaultPayload { + """ + The `AppLimitDefault` that was updated by this mutation. + """ + appLimitDefault: AppLimitDefault + + """ + An edge for our `AppLimitDefault`. May be used by Relay 1. + """ + appLimitDefaultEdge( + """ + The method to use when ordering `AppLimitDefault`. + """ + orderBy: [AppLimitDefaultsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppLimitDefaultsEdge + + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the `updateAppLimit` mutation. +""" +input UpdateAppLimitInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! + + """ + An object where the defined keys will be set on the `AppLimit` being updated. + """ + patch: AppLimitPatch! +} + +""" +The output of our update `AppLimit` mutation. +""" +type UpdateAppLimitPayload { + """ + Reads a single `User` that is related to this `AppLimit`. + """ + actor: User + + """ + The `AppLimit` that was updated by this mutation. + """ + appLimit: AppLimit + + """ + An edge for our `AppLimit`. May be used by Relay 1. + """ + appLimitEdge( + """ + The method to use when ordering `AppLimit`. + """ + orderBy: [AppLimitsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppLimitsEdge + + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the `updateAppMembershipByActorId` mutation. +""" +input UpdateAppMembershipByActorIdInput { + actorId: UUID! + + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + An object where the defined keys will be set on the `AppMembership` being updated. + """ + patch: AppMembershipPatch! +} + +""" +All input for the `updateAppMembershipDefault` mutation. +""" +input UpdateAppMembershipDefaultInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! + + """ + An object where the defined keys will be set on the `AppMembershipDefault` being updated. + """ + patch: AppMembershipDefaultPatch! +} + +""" +The output of our update `AppMembershipDefault` mutation. +""" +type UpdateAppMembershipDefaultPayload { + """ + The `AppMembershipDefault` that was updated by this mutation. + """ + appMembershipDefault: AppMembershipDefault + + """ + An edge for our `AppMembershipDefault`. May be used by Relay 1. + """ + appMembershipDefaultEdge( + """ + The method to use when ordering `AppMembershipDefault`. + """ + orderBy: [AppMembershipDefaultsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppMembershipDefaultsEdge + + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the `updateAppMembership` mutation. +""" +input UpdateAppMembershipInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! + + """ + An object where the defined keys will be set on the `AppMembership` being updated. + """ + patch: AppMembershipPatch! +} + +""" +The output of our update `AppMembership` mutation. +""" +type UpdateAppMembershipPayload { + """ + Reads a single `User` that is related to this `AppMembership`. + """ + actor: User + + """ + The `AppMembership` that was updated by this mutation. + """ + appMembership: AppMembership + + """ + An edge for our `AppMembership`. May be used by Relay 1. + """ + appMembershipEdge( + """ + The method to use when ordering `AppMembership`. + """ + orderBy: [AppMembershipsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppMembershipsEdge + + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +The output of our update `App` mutation. +""" +type UpdateAppPayload { + """ + The `App` that was updated by this mutation. + """ + app: App + + """ + An edge for our `App`. May be used by Relay 1. + """ + appEdge( + """ + The method to use when ordering `App`. + """ + orderBy: [AppsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppsEdge + + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `Database` that is related to this `App`. + """ + database: Database + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + Reads a single `Site` that is related to this `App`. + """ + site: Site +} + +""" +All input for the `updateAppPermissionByBitnum` mutation. +""" +input UpdateAppPermissionByBitnumInput { + bitnum: Int! + + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + An object where the defined keys will be set on the `AppPermission` being updated. + """ + patch: AppPermissionPatch! +} + +""" +All input for the `updateAppPermissionByName` mutation. +""" +input UpdateAppPermissionByNameInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + name: String! + + """ + An object where the defined keys will be set on the `AppPermission` being updated. + """ + patch: AppPermissionPatch! +} + +""" +All input for the `updateAppPermissionDefault` mutation. +""" +input UpdateAppPermissionDefaultInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! + + """ + An object where the defined keys will be set on the `AppPermissionDefault` being updated. + """ + patch: AppPermissionDefaultPatch! +} + +""" +The output of our update `AppPermissionDefault` mutation. +""" +type UpdateAppPermissionDefaultPayload { + """ + The `AppPermissionDefault` that was updated by this mutation. + """ + appPermissionDefault: AppPermissionDefault + + """ + An edge for our `AppPermissionDefault`. May be used by Relay 1. + """ + appPermissionDefaultEdge( + """ + The method to use when ordering `AppPermissionDefault`. + """ + orderBy: [AppPermissionDefaultsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppPermissionDefaultsEdge + + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the `updateAppPermission` mutation. +""" +input UpdateAppPermissionInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! + + """ + An object where the defined keys will be set on the `AppPermission` being updated. + """ + patch: AppPermissionPatch! +} + +""" +The output of our update `AppPermission` mutation. +""" +type UpdateAppPermissionPayload { + """ + The `AppPermission` that was updated by this mutation. + """ + appPermission: AppPermission + + """ + An edge for our `AppPermission`. May be used by Relay 1. + """ + appPermissionEdge( + """ + The method to use when ordering `AppPermission`. + """ + orderBy: [AppPermissionsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppPermissionsEdge + + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the `updateAppStep` mutation. +""" +input UpdateAppStepInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! + + """ + An object where the defined keys will be set on the `AppStep` being updated. + """ + patch: AppStepPatch! +} + +""" +The output of our update `AppStep` mutation. +""" +type UpdateAppStepPayload { + """ + Reads a single `User` that is related to this `AppStep`. + """ + actor: User + + """ + The `AppStep` that was updated by this mutation. + """ + appStep: AppStep + + """ + An edge for our `AppStep`. May be used by Relay 1. + """ + appStepEdge( + """ + The method to use when ordering `AppStep`. + """ + orderBy: [AppStepsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppStepsEdge + + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the `updateAuthAccountByServiceAndIdentifier` mutation. +""" +input UpdateAuthAccountByServiceAndIdentifierInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + A unique identifier for the user within the service + """ + identifier: String! + + """ + An object where the defined keys will be set on the `AuthAccount` being updated. + """ + patch: AuthAccountPatch! + + """ + The service used, e.g. `twitter` or `github`. + """ + service: String! +} + +""" +All input for the `updateAuthAccount` mutation. +""" +input UpdateAuthAccountInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! + + """ + An object where the defined keys will be set on the `AuthAccount` being updated. + """ + patch: AuthAccountPatch! +} + +""" +The output of our update `AuthAccount` mutation. +""" +type UpdateAuthAccountPayload { + """ + The `AuthAccount` that was updated by this mutation. + """ + authAccount: AuthAccount + + """ + An edge for our `AuthAccount`. May be used by Relay 1. + """ + authAccountEdge( + """ + The method to use when ordering `AuthAccount`. + """ + orderBy: [AuthAccountsOrderBy!] = [PRIMARY_KEY_ASC] + ): AuthAccountsEdge + + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `User` that is related to this `AuthAccount`. + """ + owner: User + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the `updateCheckConstraintByTableIdAndName` mutation. +""" +input UpdateCheckConstraintByTableIdAndNameInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + name: String! + + """ + An object where the defined keys will be set on the `CheckConstraint` being updated. + """ + patch: CheckConstraintPatch! + tableId: UUID! +} + +""" +All input for the `updateCheckConstraint` mutation. +""" +input UpdateCheckConstraintInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! + + """ + An object where the defined keys will be set on the `CheckConstraint` being updated. + """ + patch: CheckConstraintPatch! +} + +""" +The output of our update `CheckConstraint` mutation. +""" +type UpdateCheckConstraintPayload { + """ + The `CheckConstraint` that was updated by this mutation. + """ + checkConstraint: CheckConstraint + + """ + An edge for our `CheckConstraint`. May be used by Relay 1. + """ + checkConstraintEdge( + """ + The method to use when ordering `CheckConstraint`. + """ + orderBy: [CheckConstraintsOrderBy!] = [PRIMARY_KEY_ASC] + ): CheckConstraintsEdge + + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `Database` that is related to this `CheckConstraint`. + """ + database: Database + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + Reads a single `Table` that is related to this `CheckConstraint`. + """ + table: Table +} + +""" +All input for the `updateClaimedInvite` mutation. +""" +input UpdateClaimedInviteInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! + + """ + An object where the defined keys will be set on the `ClaimedInvite` being updated. + """ + patch: ClaimedInvitePatch! +} + +""" +The output of our update `ClaimedInvite` mutation. +""" +type UpdateClaimedInvitePayload { + """ + The `ClaimedInvite` that was updated by this mutation. + """ + claimedInvite: ClaimedInvite + + """ + An edge for our `ClaimedInvite`. May be used by Relay 1. + """ + claimedInviteEdge( + """ + The method to use when ordering `ClaimedInvite`. + """ + orderBy: [ClaimedInvitesOrderBy!] = [PRIMARY_KEY_ASC] + ): ClaimedInvitesEdge + + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + Reads a single `User` that is related to this `ClaimedInvite`. + """ + receiver: User + + """ + Reads a single `User` that is related to this `ClaimedInvite`. + """ + sender: User +} + +""" +All input for the `updateConnectedAccountByServiceAndIdentifier` mutation. +""" +input UpdateConnectedAccountByServiceAndIdentifierInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + A unique identifier for the user within the service + """ + identifier: String! + + """ + An object where the defined keys will be set on the `ConnectedAccount` being updated. + """ + patch: ConnectedAccountPatch! + + """ + The service used, e.g. `twitter` or `github`. + """ + service: String! +} + +""" +All input for the `updateConnectedAccount` mutation. +""" +input UpdateConnectedAccountInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! + + """ + An object where the defined keys will be set on the `ConnectedAccount` being updated. + """ + patch: ConnectedAccountPatch! +} + +""" +The output of our update `ConnectedAccount` mutation. +""" +type UpdateConnectedAccountPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + The `ConnectedAccount` that was updated by this mutation. + """ + connectedAccount: ConnectedAccount + + """ + An edge for our `ConnectedAccount`. May be used by Relay 1. + """ + connectedAccountEdge( + """ + The method to use when ordering `ConnectedAccount`. + """ + orderBy: [ConnectedAccountsOrderBy!] = [PRIMARY_KEY_ASC] + ): ConnectedAccountsEdge + + """ + Reads a single `User` that is related to this `ConnectedAccount`. + """ + owner: User + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the `updateCryptoAddressByAddress` mutation. +""" +input UpdateCryptoAddressByAddressInput { + address: String! + + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + An object where the defined keys will be set on the `CryptoAddress` being updated. + """ + patch: CryptoAddressPatch! +} + +""" +All input for the `updateCryptoAddress` mutation. +""" +input UpdateCryptoAddressInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! + + """ + An object where the defined keys will be set on the `CryptoAddress` being updated. + """ + patch: CryptoAddressPatch! +} + +""" +The output of our update `CryptoAddress` mutation. +""" +type UpdateCryptoAddressPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + The `CryptoAddress` that was updated by this mutation. + """ + cryptoAddress: CryptoAddress + + """ + An edge for our `CryptoAddress`. May be used by Relay 1. + """ + cryptoAddressEdge( + """ + The method to use when ordering `CryptoAddress`. + """ + orderBy: [CryptoAddressesOrderBy!] = [PRIMARY_KEY_ASC] + ): CryptoAddressesEdge + + """ + Reads a single `User` that is related to this `CryptoAddress`. + """ + owner: User + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the `updateDatabaseByPrivateSchemaName` mutation. +""" +input UpdateDatabaseByPrivateSchemaNameInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + An object where the defined keys will be set on the `Database` being updated. + """ + patch: DatabasePatch! + privateSchemaName: String! +} + +""" +All input for the `updateDatabaseBySchemaName` mutation. +""" +input UpdateDatabaseBySchemaNameInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + An object where the defined keys will be set on the `Database` being updated. + """ + patch: DatabasePatch! + schemaName: String! +} + +""" +All input for the `updateDatabaseExtensionByDatabaseIdAndName` mutation. +""" +input UpdateDatabaseExtensionByDatabaseIdAndNameInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + databaseId: UUID! + name: String! + + """ + An object where the defined keys will be set on the `DatabaseExtension` being updated. + """ + patch: DatabaseExtensionPatch! +} + +""" +All input for the `updateDatabaseExtension` mutation. +""" +input UpdateDatabaseExtensionInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + name: String! + + """ + An object where the defined keys will be set on the `DatabaseExtension` being updated. + """ + patch: DatabaseExtensionPatch! +} + +""" +The output of our update `DatabaseExtension` mutation. +""" +type UpdateDatabaseExtensionPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `Database` that is related to this `DatabaseExtension`. + """ + database: Database + + """ + The `DatabaseExtension` that was updated by this mutation. + """ + databaseExtension: DatabaseExtension + + """ + An edge for our `DatabaseExtension`. May be used by Relay 1. + """ + databaseExtensionEdge( + """ + The method to use when ordering `DatabaseExtension`. + """ + orderBy: [DatabaseExtensionsOrderBy!] = [PRIMARY_KEY_ASC] + ): DatabaseExtensionsEdge + + """ + Reads a single `Extension` that is related to this `DatabaseExtension`. + """ + extensionByName: Extension + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the `updateDatabase` mutation. +""" +input UpdateDatabaseInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! + + """ + An object where the defined keys will be set on the `Database` being updated. + """ + patch: DatabasePatch! +} + +""" +The output of our update `Database` mutation. +""" +type UpdateDatabasePayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + The `Database` that was updated by this mutation. + """ + database: Database + + """ + An edge for our `Database`. May be used by Relay 1. + """ + databaseEdge( + """ + The method to use when ordering `Database`. + """ + orderBy: [DatabasesOrderBy!] = [PRIMARY_KEY_ASC] + ): DatabasesEdge + + """ + Reads a single `User` that is related to this `Database`. + """ + owner: User + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the `updateDatabaseProvision` mutation. +""" +input UpdateDatabaseProvisionInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! + + """ + An object where the defined keys will be set on the `DatabaseProvision` being updated. + """ + patch: DatabaseProvisionPatch! +} + +""" +The output of our update `DatabaseProvision` mutation. +""" +type UpdateDatabaseProvisionPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `Database` that is related to this `DatabaseProvision`. + """ + database: Database + + """ + The `DatabaseProvision` that was updated by this mutation. + """ + databaseProvision: DatabaseProvision + + """ + An edge for our `DatabaseProvision`. May be used by Relay 1. + """ + databaseProvisionEdge( + """ + The method to use when ordering `DatabaseProvision`. + """ + orderBy: [DatabaseProvisionsOrderBy!] = [PRIMARY_KEY_ASC] + ): DatabaseProvisionsEdge + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the `updateDomainBySubdomainAndDomain` mutation. +""" +input UpdateDomainBySubdomainAndDomainInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + domain: String! + + """ + An object where the defined keys will be set on the `Domain` being updated. + """ + patch: DomainPatch! + subdomain: String! +} + +""" +All input for the `updateDomain` mutation. +""" +input UpdateDomainInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! + + """ + An object where the defined keys will be set on the `Domain` being updated. + """ + patch: DomainPatch! +} + +""" +The output of our update `Domain` mutation. +""" +type UpdateDomainPayload { + """ + Reads a single `Api` that is related to this `Domain`. + """ + api: Api + + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `Database` that is related to this `Domain`. + """ + database: Database + + """ + The `Domain` that was updated by this mutation. + """ + domain: Domain + + """ + An edge for our `Domain`. May be used by Relay 1. + """ + domainEdge( + """ + The method to use when ordering `Domain`. + """ + orderBy: [DomainsOrderBy!] = [PRIMARY_KEY_ASC] + ): DomainsEdge + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + Reads a single `Site` that is related to this `Domain`. + """ + site: Site +} + +""" +All input for the `updateEmailByEmail` mutation. +""" +input UpdateEmailByEmailInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + email: String! + + """ + An object where the defined keys will be set on the `Email` being updated. + """ + patch: EmailPatch! +} + +""" +All input for the `updateEmail` mutation. +""" +input UpdateEmailInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! + + """ + An object where the defined keys will be set on the `Email` being updated. + """ + patch: EmailPatch! +} + +""" +The output of our update `Email` mutation. +""" +type UpdateEmailPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + The `Email` that was updated by this mutation. + """ + email: Email + + """ + An edge for our `Email`. May be used by Relay 1. + """ + emailEdge( + """ + The method to use when ordering `Email`. + """ + orderBy: [EmailsOrderBy!] = [PRIMARY_KEY_ASC] + ): EmailsEdge + + """ + Reads a single `User` that is related to this `Email`. + """ + owner: User + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the `updateExtension` mutation. +""" +input UpdateExtensionInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + name: String! + + """ + An object where the defined keys will be set on the `Extension` being updated. + """ + patch: ExtensionPatch! +} + +""" +The output of our update `Extension` mutation. +""" +type UpdateExtensionPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + The `Extension` that was updated by this mutation. + """ + extension: Extension + + """ + An edge for our `Extension`. May be used by Relay 1. + """ + extensionEdge( + """ + The method to use when ordering `Extension`. + """ + orderBy: [ExtensionsOrderBy!] = [PRIMARY_KEY_ASC] + ): ExtensionsEdge + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the `updateFieldByTableIdAndName` mutation. +""" +input UpdateFieldByTableIdAndNameInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + name: String! + + """ + An object where the defined keys will be set on the `Field` being updated. + """ + patch: FieldPatch! + tableId: UUID! +} + +""" +All input for the `updateField` mutation. +""" +input UpdateFieldInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! + + """ + An object where the defined keys will be set on the `Field` being updated. + """ + patch: FieldPatch! +} + +""" +The output of our update `Field` mutation. +""" +type UpdateFieldPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `Database` that is related to this `Field`. + """ + database: Database + + """ + The `Field` that was updated by this mutation. + """ + field: Field + + """ + An edge for our `Field`. May be used by Relay 1. + """ + fieldEdge( + """ + The method to use when ordering `Field`. + """ + orderBy: [FieldsOrderBy!] = [PRIMARY_KEY_ASC] + ): FieldsEdge + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + Reads a single `Table` that is related to this `Field`. + """ + table: Table +} + +""" +All input for the `updateForeignKeyConstraintByTableIdAndName` mutation. +""" +input UpdateForeignKeyConstraintByTableIdAndNameInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + name: String! + + """ + An object where the defined keys will be set on the `ForeignKeyConstraint` being updated. + """ + patch: ForeignKeyConstraintPatch! + tableId: UUID! +} + +""" +All input for the `updateForeignKeyConstraint` mutation. +""" +input UpdateForeignKeyConstraintInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! + + """ + An object where the defined keys will be set on the `ForeignKeyConstraint` being updated. + """ + patch: ForeignKeyConstraintPatch! +} + +""" +The output of our update `ForeignKeyConstraint` mutation. +""" +type UpdateForeignKeyConstraintPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `Database` that is related to this `ForeignKeyConstraint`. + """ + database: Database + + """ + The `ForeignKeyConstraint` that was updated by this mutation. + """ + foreignKeyConstraint: ForeignKeyConstraint + + """ + An edge for our `ForeignKeyConstraint`. May be used by Relay 1. + """ + foreignKeyConstraintEdge( + """ + The method to use when ordering `ForeignKeyConstraint`. + """ + orderBy: [ForeignKeyConstraintsOrderBy!] = [PRIMARY_KEY_ASC] + ): ForeignKeyConstraintsEdge + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + Reads a single `Table` that is related to this `ForeignKeyConstraint`. + """ + refTable: Table + + """ + Reads a single `Table` that is related to this `ForeignKeyConstraint`. + """ + table: Table +} + +""" +All input for the `updateFullTextSearch` mutation. +""" +input UpdateFullTextSearchInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! + + """ + An object where the defined keys will be set on the `FullTextSearch` being updated. + """ + patch: FullTextSearchPatch! +} + +""" +The output of our update `FullTextSearch` mutation. +""" +type UpdateFullTextSearchPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `Database` that is related to this `FullTextSearch`. + """ + database: Database + + """ + The `FullTextSearch` that was updated by this mutation. + """ + fullTextSearch: FullTextSearch + + """ + An edge for our `FullTextSearch`. May be used by Relay 1. + """ + fullTextSearchEdge( + """ + The method to use when ordering `FullTextSearch`. + """ + orderBy: [FullTextSearchesOrderBy!] = [PRIMARY_KEY_ASC] + ): FullTextSearchesEdge + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + Reads a single `Table` that is related to this `FullTextSearch`. + """ + table: Table +} + +""" +All input for the `updateGrant` mutation. +""" +input UpdateGrantInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! + + """ + An object where the defined keys will be set on the `Grant` being updated. + """ + patch: GrantPatch! +} + +""" +The output of our update `Grant` mutation. +""" +type UpdateGrantPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `User` that is related to this `Grant`. + """ + entity: User + + """ + The `Grant` that was updated by this mutation. + """ + grant: Grant + + """ + An edge for our `Grant`. May be used by Relay 1. + """ + grantEdge( + """ + The method to use when ordering `Grant`. + """ + orderBy: [GrantsOrderBy!] = [PRIMARY_KEY_ASC] + ): GrantsEdge + + """ + Reads a single `User` that is related to this `Grant`. + """ + grantor: User + + """ + Reads a single `Membership` that is related to this `Grant`. + """ + membership: Membership + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the `updateIndexByDatabaseIdAndName` mutation. +""" +input UpdateIndexByDatabaseIdAndNameInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + databaseId: UUID! + name: String! + + """ + An object where the defined keys will be set on the `Index` being updated. + """ + patch: IndexPatch! +} + +""" +All input for the `updateIndex` mutation. +""" +input UpdateIndexInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! + + """ + An object where the defined keys will be set on the `Index` being updated. + """ + patch: IndexPatch! +} + +""" +The output of our update `Index` mutation. +""" +type UpdateIndexPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `Database` that is related to this `Index`. + """ + database: Database + + """ + The `Index` that was updated by this mutation. + """ + index: Index + + """ + An edge for our `Index`. May be used by Relay 1. + """ + indexEdge( + """ + The method to use when ordering `Index`. + """ + orderBy: [IndicesOrderBy!] = [PRIMARY_KEY_ASC] + ): IndicesEdge + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + Reads a single `Table` that is related to this `Index`. + """ + table: Table +} + +""" +All input for the `updateInviteByEmailAndSenderId` mutation. +""" +input UpdateInviteByEmailAndSenderIdInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + email: String! + + """ + An object where the defined keys will be set on the `Invite` being updated. + """ + patch: InvitePatch! + senderId: UUID! +} + +""" +All input for the `updateInviteByInviteToken` mutation. +""" +input UpdateInviteByInviteTokenInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + inviteToken: String! + + """ + An object where the defined keys will be set on the `Invite` being updated. + """ + patch: InvitePatch! +} + +""" +All input for the `updateInvite` mutation. +""" +input UpdateInviteInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! + + """ + An object where the defined keys will be set on the `Invite` being updated. + """ + patch: InvitePatch! +} + +""" +The output of our update `Invite` mutation. +""" +type UpdateInvitePayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + The `Invite` that was updated by this mutation. + """ + invite: Invite + + """ + An edge for our `Invite`. May be used by Relay 1. + """ + inviteEdge( + """ + The method to use when ordering `Invite`. + """ + orderBy: [InvitesOrderBy!] = [PRIMARY_KEY_ASC] + ): InvitesEdge + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + Reads a single `User` that is related to this `Invite`. + """ + sender: User +} + +""" +All input for the `updateLimitFunctionByDatabaseIdAndName` mutation. +""" +input UpdateLimitFunctionByDatabaseIdAndNameInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + databaseId: UUID! + name: String! + + """ + An object where the defined keys will be set on the `LimitFunction` being updated. + """ + patch: LimitFunctionPatch! +} + +""" +All input for the `updateLimitFunction` mutation. +""" +input UpdateLimitFunctionInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! + + """ + An object where the defined keys will be set on the `LimitFunction` being updated. + """ + patch: LimitFunctionPatch! +} + +""" +The output of our update `LimitFunction` mutation. +""" +type UpdateLimitFunctionPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `Database` that is related to this `LimitFunction`. + """ + database: Database + + """ + The `LimitFunction` that was updated by this mutation. + """ + limitFunction: LimitFunction + + """ + An edge for our `LimitFunction`. May be used by Relay 1. + """ + limitFunctionEdge( + """ + The method to use when ordering `LimitFunction`. + """ + orderBy: [LimitFunctionsOrderBy!] = [PRIMARY_KEY_ASC] + ): LimitFunctionsEdge + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + Reads a single `Table` that is related to this `LimitFunction`. + """ + table: Table +} + +""" +All input for the `updateMemberByActorIdAndEntityId` mutation. +""" +input UpdateMemberByActorIdAndEntityIdInput { + actorId: UUID! + + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + entityId: UUID! + + """ + An object where the defined keys will be set on the `Member` being updated. + """ + patch: MemberPatch! +} + +""" +All input for the `updateMemberClaimedInvite` mutation. +""" +input UpdateMemberClaimedInviteInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! + + """ + An object where the defined keys will be set on the `MemberClaimedInvite` being updated. + """ + patch: MemberClaimedInvitePatch! +} + +""" +The output of our update `MemberClaimedInvite` mutation. +""" +type UpdateMemberClaimedInvitePayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `User` that is related to this `MemberClaimedInvite`. + """ + entity: User + + """ + The `MemberClaimedInvite` that was updated by this mutation. + """ + memberClaimedInvite: MemberClaimedInvite + + """ + An edge for our `MemberClaimedInvite`. May be used by Relay 1. + """ + memberClaimedInviteEdge( + """ + The method to use when ordering `MemberClaimedInvite`. + """ + orderBy: [MemberClaimedInvitesOrderBy!] = [PRIMARY_KEY_ASC] + ): MemberClaimedInvitesEdge + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + Reads a single `User` that is related to this `MemberClaimedInvite`. + """ + receiver: User + + """ + Reads a single `User` that is related to this `MemberClaimedInvite`. + """ + sender: User +} + +""" +All input for the `updateMember` mutation. +""" +input UpdateMemberInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! + + """ + An object where the defined keys will be set on the `Member` being updated. + """ + patch: MemberPatch! +} + +""" +All input for the `updateMemberInviteByEmailAndSenderIdAndEntityId` mutation. +""" +input UpdateMemberInviteByEmailAndSenderIdAndEntityIdInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + email: String! + entityId: UUID! + + """ + An object where the defined keys will be set on the `MemberInvite` being updated. + """ + patch: MemberInvitePatch! + senderId: UUID! +} + +""" +All input for the `updateMemberInviteByInviteToken` mutation. +""" +input UpdateMemberInviteByInviteTokenInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + inviteToken: String! + + """ + An object where the defined keys will be set on the `MemberInvite` being updated. + """ + patch: MemberInvitePatch! +} + +""" +All input for the `updateMemberInvite` mutation. +""" +input UpdateMemberInviteInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! + + """ + An object where the defined keys will be set on the `MemberInvite` being updated. + """ + patch: MemberInvitePatch! +} + +""" +The output of our update `MemberInvite` mutation. +""" +type UpdateMemberInvitePayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `User` that is related to this `MemberInvite`. + """ + entity: User + + """ + The `MemberInvite` that was updated by this mutation. + """ + memberInvite: MemberInvite + + """ + An edge for our `MemberInvite`. May be used by Relay 1. + """ + memberInviteEdge( + """ + The method to use when ordering `MemberInvite`. + """ + orderBy: [MemberInvitesOrderBy!] = [PRIMARY_KEY_ASC] + ): MemberInvitesEdge + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + Reads a single `User` that is related to this `MemberInvite`. + """ + sender: User +} + +""" +The output of our update `Member` mutation. +""" +type UpdateMemberPayload { + """ + Reads a single `User` that is related to this `Member`. + """ + actor: User + + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `User` that is related to this `Member`. + """ + entity: User + + """ + The `Member` that was updated by this mutation. + """ + member: Member + + """ + An edge for our `Member`. May be used by Relay 1. + """ + memberEdge( + """ + The method to use when ordering `Member`. + """ + orderBy: [MembersOrderBy!] = [PRIMARY_KEY_ASC] + ): MembersEdge + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the `updateMembershipByActorIdAndEntityId` mutation. +""" +input UpdateMembershipByActorIdAndEntityIdInput { + actorId: UUID! + + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + entityId: UUID! + + """ + An object where the defined keys will be set on the `Membership` being updated. + """ + patch: MembershipPatch! +} + +""" +All input for the `updateMembershipDefaultByEntityId` mutation. +""" +input UpdateMembershipDefaultByEntityIdInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + entityId: UUID! + + """ + An object where the defined keys will be set on the `MembershipDefault` being updated. + """ + patch: MembershipDefaultPatch! +} + +""" +All input for the `updateMembershipDefault` mutation. +""" +input UpdateMembershipDefaultInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! + + """ + An object where the defined keys will be set on the `MembershipDefault` being updated. + """ + patch: MembershipDefaultPatch! +} + +""" +The output of our update `MembershipDefault` mutation. +""" +type UpdateMembershipDefaultPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `User` that is related to this `MembershipDefault`. + """ + entity: User + + """ + The `MembershipDefault` that was updated by this mutation. + """ + membershipDefault: MembershipDefault + + """ + An edge for our `MembershipDefault`. May be used by Relay 1. + """ + membershipDefaultEdge( + """ + The method to use when ordering `MembershipDefault`. + """ + orderBy: [MembershipDefaultsOrderBy!] = [PRIMARY_KEY_ASC] + ): MembershipDefaultsEdge + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the `updateMembership` mutation. +""" +input UpdateMembershipInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! + + """ + An object where the defined keys will be set on the `Membership` being updated. + """ + patch: MembershipPatch! +} + +""" +All input for the `updateMembershipLimitByNameAndActorIdAndEntityId` mutation. +""" +input UpdateMembershipLimitByNameAndActorIdAndEntityIdInput { + actorId: UUID! + + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + entityId: UUID! + name: String! + + """ + An object where the defined keys will be set on the `MembershipLimit` being updated. + """ + patch: MembershipLimitPatch! +} + +""" +All input for the `updateMembershipLimitDefaultByName` mutation. +""" +input UpdateMembershipLimitDefaultByNameInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + name: String! + + """ + An object where the defined keys will be set on the `MembershipLimitDefault` being updated. + """ + patch: MembershipLimitDefaultPatch! +} + +""" +All input for the `updateMembershipLimitDefault` mutation. +""" +input UpdateMembershipLimitDefaultInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! + + """ + An object where the defined keys will be set on the `MembershipLimitDefault` being updated. + """ + patch: MembershipLimitDefaultPatch! +} + +""" +The output of our update `MembershipLimitDefault` mutation. +""" +type UpdateMembershipLimitDefaultPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + The `MembershipLimitDefault` that was updated by this mutation. + """ + membershipLimitDefault: MembershipLimitDefault + + """ + An edge for our `MembershipLimitDefault`. May be used by Relay 1. + """ + membershipLimitDefaultEdge( + """ + The method to use when ordering `MembershipLimitDefault`. + """ + orderBy: [MembershipLimitDefaultsOrderBy!] = [PRIMARY_KEY_ASC] + ): MembershipLimitDefaultsEdge + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the `updateMembershipLimit` mutation. +""" +input UpdateMembershipLimitInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! + + """ + An object where the defined keys will be set on the `MembershipLimit` being updated. + """ + patch: MembershipLimitPatch! +} + +""" +The output of our update `MembershipLimit` mutation. +""" +type UpdateMembershipLimitPayload { + """ + Reads a single `User` that is related to this `MembershipLimit`. + """ + actor: User + + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `User` that is related to this `MembershipLimit`. + """ + entity: User + + """ + The `MembershipLimit` that was updated by this mutation. + """ + membershipLimit: MembershipLimit + + """ + An edge for our `MembershipLimit`. May be used by Relay 1. + """ + membershipLimitEdge( + """ + The method to use when ordering `MembershipLimit`. + """ + orderBy: [MembershipLimitsOrderBy!] = [PRIMARY_KEY_ASC] + ): MembershipLimitsEdge + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +The output of our update `Membership` mutation. +""" +type UpdateMembershipPayload { + """ + Reads a single `User` that is related to this `Membership`. + """ + actor: User + + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `User` that is related to this `Membership`. + """ + entity: User + + """ + The `Membership` that was updated by this mutation. + """ + membership: Membership + + """ + An edge for our `Membership`. May be used by Relay 1. + """ + membershipEdge( + """ + The method to use when ordering `Membership`. + """ + orderBy: [MembershipsOrderBy!] = [PRIMARY_KEY_ASC] + ): MembershipsEdge + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the `updateMembershipPermissionByBitnum` mutation. +""" +input UpdateMembershipPermissionByBitnumInput { + bitnum: Int! + + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + An object where the defined keys will be set on the `MembershipPermission` being updated. + """ + patch: MembershipPermissionPatch! +} + +""" +All input for the `updateMembershipPermissionByName` mutation. +""" +input UpdateMembershipPermissionByNameInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + name: String! + + """ + An object where the defined keys will be set on the `MembershipPermission` being updated. + """ + patch: MembershipPermissionPatch! +} + +""" +All input for the `updateMembershipPermissionDefault` mutation. +""" +input UpdateMembershipPermissionDefaultInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! + + """ + An object where the defined keys will be set on the `MembershipPermissionDefault` being updated. + """ + patch: MembershipPermissionDefaultPatch! +} + +""" +The output of our update `MembershipPermissionDefault` mutation. +""" +type UpdateMembershipPermissionDefaultPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `User` that is related to this `MembershipPermissionDefault`. + """ + entity: User + + """ + The `MembershipPermissionDefault` that was updated by this mutation. + """ + membershipPermissionDefault: MembershipPermissionDefault + + """ + An edge for our `MembershipPermissionDefault`. May be used by Relay 1. + """ + membershipPermissionDefaultEdge( + """ + The method to use when ordering `MembershipPermissionDefault`. + """ + orderBy: [MembershipPermissionDefaultsOrderBy!] = [PRIMARY_KEY_ASC] + ): MembershipPermissionDefaultsEdge + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the `updateMembershipPermission` mutation. +""" +input UpdateMembershipPermissionInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! + + """ + An object where the defined keys will be set on the `MembershipPermission` being updated. + """ + patch: MembershipPermissionPatch! +} + +""" +The output of our update `MembershipPermission` mutation. +""" +type UpdateMembershipPermissionPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + The `MembershipPermission` that was updated by this mutation. + """ + membershipPermission: MembershipPermission + + """ + An edge for our `MembershipPermission`. May be used by Relay 1. + """ + membershipPermissionEdge( + """ + The method to use when ordering `MembershipPermission`. + """ + orderBy: [MembershipPermissionsOrderBy!] = [PRIMARY_KEY_ASC] + ): MembershipPermissionsEdge + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the `updateMembershipTypeByName` mutation. +""" +input UpdateMembershipTypeByNameInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + name: String! + + """ + An object where the defined keys will be set on the `MembershipType` being updated. + """ + patch: MembershipTypePatch! +} + +""" +All input for the `updateMembershipType` mutation. +""" +input UpdateMembershipTypeInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: Int! + + """ + An object where the defined keys will be set on the `MembershipType` being updated. + """ + patch: MembershipTypePatch! +} + +""" +The output of our update `MembershipType` mutation. +""" +type UpdateMembershipTypePayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + The `MembershipType` that was updated by this mutation. + """ + membershipType: MembershipType + + """ + An edge for our `MembershipType`. May be used by Relay 1. + """ + membershipTypeEdge( + """ + The method to use when ordering `MembershipType`. + """ + orderBy: [MembershipTypesOrderBy!] = [PRIMARY_KEY_ASC] + ): MembershipTypesEdge + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the `updateOrganizationSetting` mutation. +""" +input UpdateOrganizationSettingInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! + + """ + An object where the defined keys will be set on the `OrganizationSetting` being updated. + """ + patch: OrganizationSettingPatch! +} + +""" +The output of our update `OrganizationSetting` mutation. +""" +type UpdateOrganizationSettingPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `User` that is related to this `OrganizationSetting`. + """ + organization: User + + """ + The `OrganizationSetting` that was updated by this mutation. + """ + organizationSetting: OrganizationSetting + + """ + An edge for our `OrganizationSetting`. May be used by Relay 1. + """ + organizationSettingEdge( + """ + The method to use when ordering `OrganizationSetting`. + """ + orderBy: [OrganizationSettingsOrderBy!] = [PRIMARY_KEY_ASC] + ): OrganizationSettingsEdge + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the `updatePhoneNumberByNumber` mutation. +""" +input UpdatePhoneNumberByNumberInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + number: String! + + """ + An object where the defined keys will be set on the `PhoneNumber` being updated. + """ + patch: PhoneNumberPatch! +} + +""" +All input for the `updatePhoneNumber` mutation. +""" +input UpdatePhoneNumberInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! + + """ + An object where the defined keys will be set on the `PhoneNumber` being updated. + """ + patch: PhoneNumberPatch! +} + +""" +The output of our update `PhoneNumber` mutation. +""" +type UpdatePhoneNumberPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `User` that is related to this `PhoneNumber`. + """ + owner: User + + """ + The `PhoneNumber` that was updated by this mutation. + """ + phoneNumber: PhoneNumber + + """ + An edge for our `PhoneNumber`. May be used by Relay 1. + """ + phoneNumberEdge( + """ + The method to use when ordering `PhoneNumber`. + """ + orderBy: [PhoneNumbersOrderBy!] = [PRIMARY_KEY_ASC] + ): PhoneNumbersEdge + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the `updatePolicyByTableIdAndName` mutation. +""" +input UpdatePolicyByTableIdAndNameInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + name: String! + + """ + An object where the defined keys will be set on the `Policy` being updated. + """ + patch: PolicyPatch! + tableId: UUID! +} + +""" +All input for the `updatePolicy` mutation. +""" +input UpdatePolicyInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! + + """ + An object where the defined keys will be set on the `Policy` being updated. + """ + patch: PolicyPatch! +} + +""" +The output of our update `Policy` mutation. +""" +type UpdatePolicyPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `Database` that is related to this `Policy`. + """ + database: Database + + """ + The `Policy` that was updated by this mutation. + """ + policy: Policy + + """ + An edge for our `Policy`. May be used by Relay 1. + """ + policyEdge( + """ + The method to use when ordering `Policy`. + """ + orderBy: [PoliciesOrderBy!] = [PRIMARY_KEY_ASC] + ): PoliciesEdge + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + Reads a single `Table` that is related to this `Policy`. + """ + table: Table +} + +""" +All input for the `updatePrimaryKeyConstraintByTableIdAndName` mutation. +""" +input UpdatePrimaryKeyConstraintByTableIdAndNameInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + name: String! + + """ + An object where the defined keys will be set on the `PrimaryKeyConstraint` being updated. + """ + patch: PrimaryKeyConstraintPatch! + tableId: UUID! +} + +""" +All input for the `updatePrimaryKeyConstraint` mutation. +""" +input UpdatePrimaryKeyConstraintInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! + + """ + An object where the defined keys will be set on the `PrimaryKeyConstraint` being updated. + """ + patch: PrimaryKeyConstraintPatch! +} + +""" +The output of our update `PrimaryKeyConstraint` mutation. +""" +type UpdatePrimaryKeyConstraintPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `Database` that is related to this `PrimaryKeyConstraint`. + """ + database: Database + + """ + The `PrimaryKeyConstraint` that was updated by this mutation. + """ + primaryKeyConstraint: PrimaryKeyConstraint + + """ + An edge for our `PrimaryKeyConstraint`. May be used by Relay 1. + """ + primaryKeyConstraintEdge( + """ + The method to use when ordering `PrimaryKeyConstraint`. + """ + orderBy: [PrimaryKeyConstraintsOrderBy!] = [PRIMARY_KEY_ASC] + ): PrimaryKeyConstraintsEdge + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + Reads a single `Table` that is related to this `PrimaryKeyConstraint`. + """ + table: Table +} + +""" +All input for the `updateProcedureByDatabaseIdAndName` mutation. +""" +input UpdateProcedureByDatabaseIdAndNameInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + databaseId: UUID! + name: String! + + """ + An object where the defined keys will be set on the `Procedure` being updated. + """ + patch: ProcedurePatch! +} + +""" +All input for the `updateProcedure` mutation. +""" +input UpdateProcedureInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! + + """ + An object where the defined keys will be set on the `Procedure` being updated. + """ + patch: ProcedurePatch! +} + +""" +The output of our update `Procedure` mutation. +""" +type UpdateProcedurePayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `Database` that is related to this `Procedure`. + """ + database: Database + + """ + The `Procedure` that was updated by this mutation. + """ + procedure: Procedure + + """ + An edge for our `Procedure`. May be used by Relay 1. + """ + procedureEdge( + """ + The method to use when ordering `Procedure`. + """ + orderBy: [ProceduresOrderBy!] = [PRIMARY_KEY_ASC] + ): ProceduresEdge + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} + +""" +All input for the `updateRlsFunctionByDatabaseIdAndName` mutation. +""" +input UpdateRlsFunctionByDatabaseIdAndNameInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + databaseId: UUID! + name: String! + + """ + An object where the defined keys will be set on the `RlsFunction` being updated. + """ + patch: RlsFunctionPatch! +} + +""" +All input for the `updateRlsFunction` mutation. +""" +input UpdateRlsFunctionInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! + + """ + An object where the defined keys will be set on the `RlsFunction` being updated. + """ + patch: RlsFunctionPatch! +} + +""" +The output of our update `RlsFunction` mutation. +""" +type UpdateRlsFunctionPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `Database` that is related to this `RlsFunction`. + """ + database: Database + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + The `RlsFunction` that was updated by this mutation. + """ + rlsFunction: RlsFunction + + """ + An edge for our `RlsFunction`. May be used by Relay 1. + """ + rlsFunctionEdge( + """ + The method to use when ordering `RlsFunction`. + """ + orderBy: [RlsFunctionsOrderBy!] = [PRIMARY_KEY_ASC] + ): RlsFunctionsEdge + + """ + Reads a single `Table` that is related to this `RlsFunction`. + """ + table: Table +} + +""" +All input for the `updateRoleTypeByName` mutation. +""" +input UpdateRoleTypeByNameInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + name: String! + + """ + An object where the defined keys will be set on the `RoleType` being updated. + """ + patch: RoleTypePatch! +} + +""" +All input for the `updateRoleType` mutation. +""" +input UpdateRoleTypeInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: Int! + + """ + An object where the defined keys will be set on the `RoleType` being updated. + """ + patch: RoleTypePatch! +} + +""" +The output of our update `RoleType` mutation. +""" +type UpdateRoleTypePayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + The `RoleType` that was updated by this mutation. + """ + roleType: RoleType + + """ + An edge for our `RoleType`. May be used by Relay 1. + """ + roleTypeEdge( + """ + The method to use when ordering `RoleType`. + """ + orderBy: [RoleTypesOrderBy!] = [PRIMARY_KEY_ASC] + ): RoleTypesEdge +} + +""" +All input for the `updateSchemaByDatabaseIdAndName` mutation. +""" +input UpdateSchemaByDatabaseIdAndNameInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + databaseId: UUID! + name: String! + + """ + An object where the defined keys will be set on the `Schema` being updated. + """ + patch: SchemaPatch! +} + +""" +All input for the `updateSchemaBySchemaName` mutation. +""" +input UpdateSchemaBySchemaNameInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + An object where the defined keys will be set on the `Schema` being updated. + """ + patch: SchemaPatch! + schemaName: String! +} + +""" +All input for the `updateSchemaGrant` mutation. +""" +input UpdateSchemaGrantInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! + + """ + An object where the defined keys will be set on the `SchemaGrant` being updated. + """ + patch: SchemaGrantPatch! +} + +""" +The output of our update `SchemaGrant` mutation. +""" +type UpdateSchemaGrantPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `Database` that is related to this `SchemaGrant`. + """ + database: Database + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + Reads a single `Schema` that is related to this `SchemaGrant`. + """ + schema: Schema + + """ + The `SchemaGrant` that was updated by this mutation. + """ + schemaGrant: SchemaGrant + + """ + An edge for our `SchemaGrant`. May be used by Relay 1. + """ + schemaGrantEdge( + """ + The method to use when ordering `SchemaGrant`. + """ + orderBy: [SchemaGrantsOrderBy!] = [PRIMARY_KEY_ASC] + ): SchemaGrantsEdge +} + +""" +All input for the `updateSchema` mutation. +""" +input UpdateSchemaInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! + + """ + An object where the defined keys will be set on the `Schema` being updated. + """ + patch: SchemaPatch! +} + +""" +The output of our update `Schema` mutation. +""" +type UpdateSchemaPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `Database` that is related to this `Schema`. + """ + database: Database + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + The `Schema` that was updated by this mutation. + """ + schema: Schema + + """ + An edge for our `Schema`. May be used by Relay 1. + """ + schemaEdge( + """ + The method to use when ordering `Schema`. + """ + orderBy: [SchemataOrderBy!] = [PRIMARY_KEY_ASC] + ): SchemataEdge +} + +""" +All input for the `updateSite` mutation. +""" +input UpdateSiteInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! + + """ + An object where the defined keys will be set on the `Site` being updated. + """ + patch: SitePatch! +} + +""" +All input for the `updateSiteMetadatum` mutation. +""" +input UpdateSiteMetadatumInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! + + """ + An object where the defined keys will be set on the `SiteMetadatum` being updated. + """ + patch: SiteMetadatumPatch! +} + +""" +The output of our update `SiteMetadatum` mutation. +""" +type UpdateSiteMetadatumPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `Database` that is related to this `SiteMetadatum`. + """ + database: Database + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + Reads a single `Site` that is related to this `SiteMetadatum`. + """ + site: Site + + """ + The `SiteMetadatum` that was updated by this mutation. + """ + siteMetadatum: SiteMetadatum + + """ + An edge for our `SiteMetadatum`. May be used by Relay 1. + """ + siteMetadatumEdge( + """ + The method to use when ordering `SiteMetadatum`. + """ + orderBy: [SiteMetadataOrderBy!] = [PRIMARY_KEY_ASC] + ): SiteMetadataEdge +} + +""" +All input for the `updateSiteModule` mutation. +""" +input UpdateSiteModuleInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! + + """ + An object where the defined keys will be set on the `SiteModule` being updated. + """ + patch: SiteModulePatch! +} + +""" +The output of our update `SiteModule` mutation. +""" +type UpdateSiteModulePayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `Database` that is related to this `SiteModule`. + """ + database: Database + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + Reads a single `Site` that is related to this `SiteModule`. + """ + site: Site + + """ + The `SiteModule` that was updated by this mutation. + """ + siteModule: SiteModule + + """ + An edge for our `SiteModule`. May be used by Relay 1. + """ + siteModuleEdge( + """ + The method to use when ordering `SiteModule`. + """ + orderBy: [SiteModulesOrderBy!] = [PRIMARY_KEY_ASC] + ): SiteModulesEdge +} + +""" +The output of our update `Site` mutation. +""" +type UpdateSitePayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `Database` that is related to this `Site`. + """ + database: Database + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + The `Site` that was updated by this mutation. + """ + site: Site + + """ + An edge for our `Site`. May be used by Relay 1. + """ + siteEdge( + """ + The method to use when ordering `Site`. + """ + orderBy: [SitesOrderBy!] = [PRIMARY_KEY_ASC] + ): SitesEdge +} + +""" +All input for the `updateSiteTheme` mutation. +""" +input UpdateSiteThemeInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! + + """ + An object where the defined keys will be set on the `SiteTheme` being updated. + """ + patch: SiteThemePatch! +} + +""" +The output of our update `SiteTheme` mutation. +""" +type UpdateSiteThemePayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `Database` that is related to this `SiteTheme`. + """ + database: Database + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + Reads a single `Site` that is related to this `SiteTheme`. + """ + site: Site + + """ + The `SiteTheme` that was updated by this mutation. + """ + siteTheme: SiteTheme + + """ + An edge for our `SiteTheme`. May be used by Relay 1. + """ + siteThemeEdge( + """ + The method to use when ordering `SiteTheme`. + """ + orderBy: [SiteThemesOrderBy!] = [PRIMARY_KEY_ASC] + ): SiteThemesEdge +} + +""" +All input for the `updateTableByDatabaseIdAndName` mutation. +""" +input UpdateTableByDatabaseIdAndNameInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + databaseId: UUID! + name: String! + + """ + An object where the defined keys will be set on the `Table` being updated. + """ + patch: TablePatch! +} + +""" +All input for the `updateTableGrant` mutation. +""" +input UpdateTableGrantInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! + + """ + An object where the defined keys will be set on the `TableGrant` being updated. + """ + patch: TableGrantPatch! +} + +""" +The output of our update `TableGrant` mutation. +""" +type UpdateTableGrantPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `Database` that is related to this `TableGrant`. + """ + database: Database + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + Reads a single `Table` that is related to this `TableGrant`. + """ + table: Table + + """ + The `TableGrant` that was updated by this mutation. + """ + tableGrant: TableGrant + + """ + An edge for our `TableGrant`. May be used by Relay 1. + """ + tableGrantEdge( + """ + The method to use when ordering `TableGrant`. + """ + orderBy: [TableGrantsOrderBy!] = [PRIMARY_KEY_ASC] + ): TableGrantsEdge +} + +""" +All input for the `updateTable` mutation. +""" +input UpdateTableInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! + + """ + An object where the defined keys will be set on the `Table` being updated. + """ + patch: TablePatch! +} + +""" +The output of our update `Table` mutation. +""" +type UpdateTablePayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `Database` that is related to this `Table`. + """ + database: Database + + """ + Reads a single `Table` that is related to this `Table`. + """ + inherits: Table + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + Reads a single `Schema` that is related to this `Table`. + """ + schema: Schema + + """ + The `Table` that was updated by this mutation. + """ + table: Table + + """ + An edge for our `Table`. May be used by Relay 1. + """ + tableEdge( + """ + The method to use when ordering `Table`. + """ + orderBy: [TablesOrderBy!] = [PRIMARY_KEY_ASC] + ): TablesEdge +} + +""" +All input for the `updateTriggerByTableIdAndName` mutation. +""" +input UpdateTriggerByTableIdAndNameInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + name: String! + + """ + An object where the defined keys will be set on the `Trigger` being updated. + """ + patch: TriggerPatch! + tableId: UUID! +} + +""" +All input for the `updateTriggerFunctionByDatabaseIdAndName` mutation. +""" +input UpdateTriggerFunctionByDatabaseIdAndNameInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + databaseId: UUID! + name: String! + + """ + An object where the defined keys will be set on the `TriggerFunction` being updated. + """ + patch: TriggerFunctionPatch! +} + +""" +All input for the `updateTriggerFunction` mutation. +""" +input UpdateTriggerFunctionInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! + + """ + An object where the defined keys will be set on the `TriggerFunction` being updated. + """ + patch: TriggerFunctionPatch! +} + +""" +The output of our update `TriggerFunction` mutation. +""" +type UpdateTriggerFunctionPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `Database` that is related to this `TriggerFunction`. + """ + database: Database + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + The `TriggerFunction` that was updated by this mutation. + """ + triggerFunction: TriggerFunction + + """ + An edge for our `TriggerFunction`. May be used by Relay 1. + """ + triggerFunctionEdge( + """ + The method to use when ordering `TriggerFunction`. + """ + orderBy: [TriggerFunctionsOrderBy!] = [PRIMARY_KEY_ASC] + ): TriggerFunctionsEdge +} + +""" +All input for the `updateTrigger` mutation. +""" +input UpdateTriggerInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! + + """ + An object where the defined keys will be set on the `Trigger` being updated. + """ + patch: TriggerPatch! +} + +""" +The output of our update `Trigger` mutation. +""" +type UpdateTriggerPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `Database` that is related to this `Trigger`. + """ + database: Database + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + Reads a single `Table` that is related to this `Trigger`. + """ + table: Table + + """ + The `Trigger` that was updated by this mutation. + """ + trigger: Trigger + + """ + An edge for our `Trigger`. May be used by Relay 1. + """ + triggerEdge( + """ + The method to use when ordering `Trigger`. + """ + orderBy: [TriggersOrderBy!] = [PRIMARY_KEY_ASC] + ): TriggersEdge +} + +""" +All input for the `updateUniqueConstraintByTableIdAndName` mutation. +""" +input UpdateUniqueConstraintByTableIdAndNameInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + name: String! + + """ + An object where the defined keys will be set on the `UniqueConstraint` being updated. + """ + patch: UniqueConstraintPatch! + tableId: UUID! +} + +""" +All input for the `updateUniqueConstraint` mutation. +""" +input UpdateUniqueConstraintInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! + + """ + An object where the defined keys will be set on the `UniqueConstraint` being updated. + """ + patch: UniqueConstraintPatch! +} + +""" +The output of our update `UniqueConstraint` mutation. +""" +type UpdateUniqueConstraintPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Reads a single `Database` that is related to this `UniqueConstraint`. + """ + database: Database + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + Reads a single `Table` that is related to this `UniqueConstraint`. + """ + table: Table + + """ + The `UniqueConstraint` that was updated by this mutation. + """ + uniqueConstraint: UniqueConstraint + + """ + An edge for our `UniqueConstraint`. May be used by Relay 1. + """ + uniqueConstraintEdge( + """ + The method to use when ordering `UniqueConstraint`. + """ + orderBy: [UniqueConstraintsOrderBy!] = [PRIMARY_KEY_ASC] + ): UniqueConstraintsEdge +} + +""" +All input for the `updateUserByUsername` mutation. +""" +input UpdateUserByUsernameInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + An object where the defined keys will be set on the `User` being updated. + """ + patch: UserPatch! + username: String! +} + +""" +All input for the `updateUserConnection` mutation. +""" +input UpdateUserConnectionInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! + + """ + An object where the defined keys will be set on the `UserConnection` being updated. + """ + patch: UserConnectionPatch! +} + +""" +The output of our update `UserConnection` mutation. +""" +type UpdateUserConnectionPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + Reads a single `User` that is related to this `UserConnection`. + """ + requester: User + + """ + Reads a single `User` that is related to this `UserConnection`. + """ + responder: User + + """ + The `UserConnection` that was updated by this mutation. + """ + userConnection: UserConnection + + """ + An edge for our `UserConnection`. May be used by Relay 1. + """ + userConnectionEdge( + """ + The method to use when ordering `UserConnection`. + """ + orderBy: [UserConnectionsOrderBy!] = [PRIMARY_KEY_ASC] + ): UserConnectionsEdge +} + +""" +All input for the `updateUserContact` mutation. +""" +input UpdateUserContactInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! + + """ + An object where the defined keys will be set on the `UserContact` being updated. + """ + patch: UserContactPatch! +} + +""" +The output of our update `UserContact` mutation. +""" +type UpdateUserContactPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + Reads a single `User` that is related to this `UserContact`. + """ + user: User + + """ + The `UserContact` that was updated by this mutation. + """ + userContact: UserContact + + """ + An edge for our `UserContact`. May be used by Relay 1. + """ + userContactEdge( + """ + The method to use when ordering `UserContact`. + """ + orderBy: [UserContactsOrderBy!] = [PRIMARY_KEY_ASC] + ): UserContactsEdge +} + +""" +All input for the `updateUser` mutation. +""" +input UpdateUserInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! + + """ + An object where the defined keys will be set on the `User` being updated. + """ + patch: UserPatch! +} + +""" +The output of our update `User` mutation. +""" +type UpdateUserPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + Reads a single `RoleType` that is related to this `User`. + """ + roleTypeByType: RoleType + + """ + The `User` that was updated by this mutation. + """ + user: User + + """ + An edge for our `User`. May be used by Relay 1. + """ + userEdge( + """ + The method to use when ordering `User`. + """ + orderBy: [UsersOrderBy!] = [PRIMARY_KEY_ASC] + ): UsersEdge +} + +""" +All input for the `updateUserProfileByUserId` mutation. +""" +input UpdateUserProfileByUserIdInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + An object where the defined keys will be set on the `UserProfile` being updated. + """ + patch: UserProfilePatch! + userId: UUID! +} + +""" +All input for the `updateUserProfile` mutation. +""" +input UpdateUserProfileInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! + + """ + An object where the defined keys will be set on the `UserProfile` being updated. + """ + patch: UserProfilePatch! +} + +""" +The output of our update `UserProfile` mutation. +""" +type UpdateUserProfilePayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + Reads a single `User` that is related to this `UserProfile`. + """ + user: User + + """ + The `UserProfile` that was updated by this mutation. + """ + userProfile: UserProfile + + """ + An edge for our `UserProfile`. May be used by Relay 1. + """ + userProfileEdge( + """ + The method to use when ordering `UserProfile`. + """ + orderBy: [UserProfilesOrderBy!] = [PRIMARY_KEY_ASC] + ): UserProfilesEdge +} + +""" +All input for the `updateUserSettingByUserId` mutation. +""" +input UpdateUserSettingByUserIdInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + + """ + An object where the defined keys will be set on the `UserSetting` being updated. + """ + patch: UserSettingPatch! + userId: UUID! +} + +""" +All input for the `updateUserSetting` mutation. +""" +input UpdateUserSettingInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + id: UUID! + + """ + An object where the defined keys will be set on the `UserSetting` being updated. + """ + patch: UserSettingPatch! +} + +""" +The output of our update `UserSetting` mutation. +""" +type UpdateUserSettingPayload { + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query + + """ + Reads a single `User` that is related to this `UserSetting`. + """ + user: User + + """ + The `UserSetting` that was updated by this mutation. + """ + userSetting: UserSetting + + """ + An edge for our `UserSetting`. May be used by Relay 1. + """ + userSettingEdge( + """ + The method to use when ordering `UserSetting`. + """ + orderBy: [UserSettingsOrderBy!] = [PRIMARY_KEY_ASC] + ): UserSettingsEdge +} + +""" +The `Upload` scalar type represents a file upload. +""" +scalar Upload + +type User { + """ + Reads and enables pagination through a set of `Address`. + """ + addressesByOwnerId( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: AddressCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: AddressFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `Address`. + """ + orderBy: [AddressesOrderBy!] = [PRIMARY_KEY_ASC] + ): AddressesConnection! + + """ + Reads and enables pagination through a set of `AppAchievement`. + """ + appAchievementsByActorId( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: AppAchievementCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: AppAchievementFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `AppAchievement`. + """ + orderBy: [AppAchievementsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppAchievementsConnection! + + """ + Reads and enables pagination through a set of `AppGrant`. + """ + appGrantsByGrantorId( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: AppGrantCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: AppGrantFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `AppGrant`. + """ + orderBy: [AppGrantsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppGrantsConnection! + + """ + Reads and enables pagination through a set of `AppLevel`. + """ + appLevelsByOwnerId( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: AppLevelCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: AppLevelFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `AppLevel`. + """ + orderBy: [AppLevelsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppLevelsConnection! + + """ + Reads and enables pagination through a set of `AppLimit`. + """ + appLimitsByActorId( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: AppLimitCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: AppLimitFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `AppLimit`. + """ + orderBy: [AppLimitsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppLimitsConnection! + + """ + Reads a single `AppMembership` that is related to this `User`. + """ + appMembershipByActorId: AppMembership + + """ + Reads and enables pagination through a set of `AppMembership`. + """ + appMembershipsByAppGrantGrantorIdAndMembershipId( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: AppMembershipCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: AppMembershipFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `AppMembership`. + """ + orderBy: [AppMembershipsOrderBy!] = [PRIMARY_KEY_ASC] + ): UserAppMembershipsByAppGrantGrantorIdAndMembershipIdManyToManyConnection! + + """ + Reads and enables pagination through a set of `AppStep`. + """ + appStepsByActorId( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: AppStepCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: AppStepFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `AppStep`. + """ + orderBy: [AppStepsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppStepsConnection! + + """ + Reads and enables pagination through a set of `AuthAccount`. + """ + authAccountsByOwnerId( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: AuthAccountCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: AuthAccountFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `AuthAccount`. + """ + orderBy: [AuthAccountsOrderBy!] = [PRIMARY_KEY_ASC] + ): AuthAccountsConnection! + + """ + Reads and enables pagination through a set of `ClaimedInvite`. + """ + claimedInvitesByReceiverId( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: ClaimedInviteCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: ClaimedInviteFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `ClaimedInvite`. + """ + orderBy: [ClaimedInvitesOrderBy!] = [PRIMARY_KEY_ASC] + ): ClaimedInvitesConnection! + + """ + Reads and enables pagination through a set of `ClaimedInvite`. + """ + claimedInvitesBySenderId( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: ClaimedInviteCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: ClaimedInviteFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `ClaimedInvite`. + """ + orderBy: [ClaimedInvitesOrderBy!] = [PRIMARY_KEY_ASC] + ): ClaimedInvitesConnection! + + """ + Reads and enables pagination through a set of `ConnectedAccount`. + """ + connectedAccountsByOwnerId( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: ConnectedAccountCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: ConnectedAccountFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `ConnectedAccount`. + """ + orderBy: [ConnectedAccountsOrderBy!] = [PRIMARY_KEY_ASC] + ): ConnectedAccountsConnection! + + """ + Reads and enables pagination through a set of `CryptoAddress`. + """ + cryptoAddressesByOwnerId( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: CryptoAddressCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: CryptoAddressFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `CryptoAddress`. + """ + orderBy: [CryptoAddressesOrderBy!] = [PRIMARY_KEY_ASC] + ): CryptoAddressesConnection! + + """ + Reads and enables pagination through a set of `Database`. + """ + databasesByOwnerId( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: DatabaseCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: DatabaseFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `Database`. + """ + orderBy: [DatabasesOrderBy!] = [PRIMARY_KEY_ASC] + ): DatabasesConnection! + displayName: String + + """ + Reads and enables pagination through a set of `Email`. + """ + emailsByOwnerId( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: EmailCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: EmailFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `Email`. + """ + orderBy: [EmailsOrderBy!] = [PRIMARY_KEY_ASC] + ): EmailsConnection! + + """ + Reads and enables pagination through a set of `Grant`. + """ + grantsByEntityId( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: GrantCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: GrantFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `Grant`. + """ + orderBy: [GrantsOrderBy!] = [PRIMARY_KEY_ASC] + ): GrantsConnection! + + """ + Reads and enables pagination through a set of `Grant`. + """ + grantsByGrantorId( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: GrantCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: GrantFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `Grant`. + """ + orderBy: [GrantsOrderBy!] = [PRIMARY_KEY_ASC] + ): GrantsConnection! + id: UUID! + + """ + Reads and enables pagination through a set of `Invite`. + """ + invitesBySenderId( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: InviteCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: InviteFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `Invite`. + """ + orderBy: [InvitesOrderBy!] = [PRIMARY_KEY_ASC] + ): InvitesConnection! + + """ + Reads and enables pagination through a set of `MemberClaimedInvite`. + """ + memberClaimedInvitesByEntityId( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MemberClaimedInviteCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MemberClaimedInviteFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `MemberClaimedInvite`. + """ + orderBy: [MemberClaimedInvitesOrderBy!] = [PRIMARY_KEY_ASC] + ): MemberClaimedInvitesConnection! + + """ + Reads and enables pagination through a set of `MemberClaimedInvite`. + """ + memberClaimedInvitesByReceiverId( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MemberClaimedInviteCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MemberClaimedInviteFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `MemberClaimedInvite`. + """ + orderBy: [MemberClaimedInvitesOrderBy!] = [PRIMARY_KEY_ASC] + ): MemberClaimedInvitesConnection! + + """ + Reads and enables pagination through a set of `MemberClaimedInvite`. + """ + memberClaimedInvitesBySenderId( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MemberClaimedInviteCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MemberClaimedInviteFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `MemberClaimedInvite`. + """ + orderBy: [MemberClaimedInvitesOrderBy!] = [PRIMARY_KEY_ASC] + ): MemberClaimedInvitesConnection! + + """ + Reads and enables pagination through a set of `MemberInvite`. + """ + memberInvitesByEntityId( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MemberInviteCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MemberInviteFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `MemberInvite`. + """ + orderBy: [MemberInvitesOrderBy!] = [PRIMARY_KEY_ASC] + ): MemberInvitesConnection! + + """ + Reads and enables pagination through a set of `MemberInvite`. + """ + memberInvitesBySenderId( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MemberInviteCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MemberInviteFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `MemberInvite`. + """ + orderBy: [MemberInvitesOrderBy!] = [PRIMARY_KEY_ASC] + ): MemberInvitesConnection! + + """ + Reads and enables pagination through a set of `Member`. + """ + membersByActorId( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MemberCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MemberFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `Member`. + """ + orderBy: [MembersOrderBy!] = [PRIMARY_KEY_ASC] + ): MembersConnection! + + """ + Reads and enables pagination through a set of `Member`. + """ + membersByEntityId( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MemberCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MemberFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `Member`. + """ + orderBy: [MembersOrderBy!] = [PRIMARY_KEY_ASC] + ): MembersConnection! + + """ + Reads a single `MembershipDefault` that is related to this `User`. + """ + membershipDefaultByEntityId: MembershipDefault + + """ + Reads and enables pagination through a set of `MembershipLimit`. + """ + membershipLimitsByActorId( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MembershipLimitCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MembershipLimitFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `MembershipLimit`. + """ + orderBy: [MembershipLimitsOrderBy!] = [PRIMARY_KEY_ASC] + ): MembershipLimitsConnection! + + """ + Reads and enables pagination through a set of `MembershipLimit`. + """ + membershipLimitsByEntityId( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MembershipLimitCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MembershipLimitFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `MembershipLimit`. + """ + orderBy: [MembershipLimitsOrderBy!] = [PRIMARY_KEY_ASC] + ): MembershipLimitsConnection! + + """ + Reads and enables pagination through a set of `MembershipPermissionDefault`. + """ + membershipPermissionDefaultsByEntityId( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MembershipPermissionDefaultCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MembershipPermissionDefaultFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `MembershipPermissionDefault`. + """ + orderBy: [MembershipPermissionDefaultsOrderBy!] = [PRIMARY_KEY_ASC] + ): MembershipPermissionDefaultsConnection! + + """ + Reads and enables pagination through a set of `Membership`. + """ + membershipsByActorId( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MembershipCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MembershipFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `Membership`. + """ + orderBy: [MembershipsOrderBy!] = [PRIMARY_KEY_ASC] + ): MembershipsConnection! + + """ + Reads and enables pagination through a set of `Membership`. + """ + membershipsByEntityId( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MembershipCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MembershipFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `Membership`. + """ + orderBy: [MembershipsOrderBy!] = [PRIMARY_KEY_ASC] + ): MembershipsConnection! + + """ + Reads and enables pagination through a set of `Membership`. + """ + membershipsByGrantEntityIdAndMembershipId( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MembershipCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MembershipFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `Membership`. + """ + orderBy: [MembershipsOrderBy!] = [PRIMARY_KEY_ASC] + ): UserMembershipsByGrantEntityIdAndMembershipIdManyToManyConnection! + + """ + Reads and enables pagination through a set of `Membership`. + """ + membershipsByGrantGrantorIdAndMembershipId( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MembershipCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MembershipFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `Membership`. + """ + orderBy: [MembershipsOrderBy!] = [PRIMARY_KEY_ASC] + ): UserMembershipsByGrantGrantorIdAndMembershipIdManyToManyConnection! + + """ + Reads a single `OrganizationSetting` that is related to this `User`. + """ + organizationSettingByOrganizationId: OrganizationSetting + + """ + Reads and enables pagination through a set of `PhoneNumber`. + """ + phoneNumbersByOwnerId( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: PhoneNumberCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: PhoneNumberFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `PhoneNumber`. + """ + orderBy: [PhoneNumbersOrderBy!] = [PRIMARY_KEY_ASC] + ): PhoneNumbersConnection! + profilePicture: JSON + + """ + Reads a single `RoleType` that is related to this `User`. + """ + roleTypeByType: RoleType + searchTsv: FullText + + """ + Full-text search ranking when filtered by `searchTsv`. + """ + searchTsvRank: Float + type: Int! + + """ + Reads and enables pagination through a set of `UserConnection`. + """ + userConnectionsByRequesterId( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: UserConnectionCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: UserConnectionFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `UserConnection`. + """ + orderBy: [UserConnectionsOrderBy!] = [PRIMARY_KEY_ASC] + ): UserConnectionsConnection! + + """ + Reads and enables pagination through a set of `UserConnection`. + """ + userConnectionsByResponderId( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: UserConnectionCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: UserConnectionFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `UserConnection`. + """ + orderBy: [UserConnectionsOrderBy!] = [PRIMARY_KEY_ASC] + ): UserConnectionsConnection! + + """ + Reads and enables pagination through a set of `UserContact`. + """ + userContacts( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: UserContactCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: UserContactFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `UserContact`. + """ + orderBy: [UserContactsOrderBy!] = [PRIMARY_KEY_ASC] + ): UserContactsConnection! + + """ + Reads a single `UserProfile` that is related to this `User`. + """ + userProfile: UserProfile + + """ + Reads a single `UserSetting` that is related to this `User`. + """ + userSetting: UserSetting + username: String + + """ + Reads and enables pagination through a set of `User`. + """ + usersByClaimedInviteReceiverIdAndSenderId( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: UserCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: UserFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `User`. + """ + orderBy: [UsersOrderBy!] = [PRIMARY_KEY_ASC] + ): UserUsersByClaimedInviteReceiverIdAndSenderIdManyToManyConnection! + + """ + Reads and enables pagination through a set of `User`. + """ + usersByClaimedInviteSenderIdAndReceiverId( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: UserCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: UserFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `User`. + """ + orderBy: [UsersOrderBy!] = [PRIMARY_KEY_ASC] + ): UserUsersByClaimedInviteSenderIdAndReceiverIdManyToManyConnection! + + """ + Reads and enables pagination through a set of `User`. + """ + usersByGrantEntityIdAndGrantorId( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: UserCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: UserFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `User`. + """ + orderBy: [UsersOrderBy!] = [PRIMARY_KEY_ASC] + ): UserUsersByGrantEntityIdAndGrantorIdManyToManyConnection! + + """ + Reads and enables pagination through a set of `User`. + """ + usersByGrantGrantorIdAndEntityId( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: UserCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: UserFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `User`. + """ + orderBy: [UsersOrderBy!] = [PRIMARY_KEY_ASC] + ): UserUsersByGrantGrantorIdAndEntityIdManyToManyConnection! + + """ + Reads and enables pagination through a set of `User`. + """ + usersByMemberActorIdAndEntityId( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: UserCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: UserFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `User`. + """ + orderBy: [UsersOrderBy!] = [PRIMARY_KEY_ASC] + ): UserUsersByMemberActorIdAndEntityIdManyToManyConnection! + + """ + Reads and enables pagination through a set of `User`. + """ + usersByMemberClaimedInviteEntityIdAndReceiverId( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: UserCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: UserFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `User`. + """ + orderBy: [UsersOrderBy!] = [PRIMARY_KEY_ASC] + ): UserUsersByMemberClaimedInviteEntityIdAndReceiverIdManyToManyConnection! + + """ + Reads and enables pagination through a set of `User`. + """ + usersByMemberClaimedInviteEntityIdAndSenderId( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: UserCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: UserFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `User`. + """ + orderBy: [UsersOrderBy!] = [PRIMARY_KEY_ASC] + ): UserUsersByMemberClaimedInviteEntityIdAndSenderIdManyToManyConnection! + + """ + Reads and enables pagination through a set of `User`. + """ + usersByMemberClaimedInviteReceiverIdAndEntityId( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: UserCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: UserFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `User`. + """ + orderBy: [UsersOrderBy!] = [PRIMARY_KEY_ASC] + ): UserUsersByMemberClaimedInviteReceiverIdAndEntityIdManyToManyConnection! + + """ + Reads and enables pagination through a set of `User`. + """ + usersByMemberClaimedInviteReceiverIdAndSenderId( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: UserCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: UserFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `User`. + """ + orderBy: [UsersOrderBy!] = [PRIMARY_KEY_ASC] + ): UserUsersByMemberClaimedInviteReceiverIdAndSenderIdManyToManyConnection! + + """ + Reads and enables pagination through a set of `User`. + """ + usersByMemberClaimedInviteSenderIdAndEntityId( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: UserCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: UserFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `User`. + """ + orderBy: [UsersOrderBy!] = [PRIMARY_KEY_ASC] + ): UserUsersByMemberClaimedInviteSenderIdAndEntityIdManyToManyConnection! + + """ + Reads and enables pagination through a set of `User`. + """ + usersByMemberClaimedInviteSenderIdAndReceiverId( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: UserCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: UserFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `User`. + """ + orderBy: [UsersOrderBy!] = [PRIMARY_KEY_ASC] + ): UserUsersByMemberClaimedInviteSenderIdAndReceiverIdManyToManyConnection! + + """ + Reads and enables pagination through a set of `User`. + """ + usersByMemberEntityIdAndActorId( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: UserCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: UserFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `User`. + """ + orderBy: [UsersOrderBy!] = [PRIMARY_KEY_ASC] + ): UserUsersByMemberEntityIdAndActorIdManyToManyConnection! + + """ + Reads and enables pagination through a set of `User`. + """ + usersByMemberInviteEntityIdAndSenderId( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: UserCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: UserFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `User`. + """ + orderBy: [UsersOrderBy!] = [PRIMARY_KEY_ASC] + ): UserUsersByMemberInviteEntityIdAndSenderIdManyToManyConnection! + + """ + Reads and enables pagination through a set of `User`. + """ + usersByMemberInviteSenderIdAndEntityId( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: UserCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: UserFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `User`. + """ + orderBy: [UsersOrderBy!] = [PRIMARY_KEY_ASC] + ): UserUsersByMemberInviteSenderIdAndEntityIdManyToManyConnection! + + """ + Reads and enables pagination through a set of `User`. + """ + usersByMembershipActorIdAndEntityId( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: UserCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: UserFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `User`. + """ + orderBy: [UsersOrderBy!] = [PRIMARY_KEY_ASC] + ): UserUsersByMembershipActorIdAndEntityIdManyToManyConnection! + + """ + Reads and enables pagination through a set of `User`. + """ + usersByMembershipEntityIdAndActorId( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: UserCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: UserFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `User`. + """ + orderBy: [UsersOrderBy!] = [PRIMARY_KEY_ASC] + ): UserUsersByMembershipEntityIdAndActorIdManyToManyConnection! + + """ + Reads and enables pagination through a set of `User`. + """ + usersByMembershipLimitActorIdAndEntityId( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: UserCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: UserFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `User`. + """ + orderBy: [UsersOrderBy!] = [PRIMARY_KEY_ASC] + ): UserUsersByMembershipLimitActorIdAndEntityIdManyToManyConnection! + + """ + Reads and enables pagination through a set of `User`. + """ + usersByMembershipLimitEntityIdAndActorId( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: UserCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: UserFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `User`. + """ + orderBy: [UsersOrderBy!] = [PRIMARY_KEY_ASC] + ): UserUsersByMembershipLimitEntityIdAndActorIdManyToManyConnection! +} + +""" +A connection to a list of `AppMembership` values, with data from `AppGrant`. +""" +type UserAppMembershipsByAppGrantGrantorIdAndMembershipIdManyToManyConnection { + """ + A list of edges which contains the `AppMembership`, info from the `AppGrant`, and the cursor to aid in pagination. + """ + edges: [UserAppMembershipsByAppGrantGrantorIdAndMembershipIdManyToManyEdge!]! + + """ + A list of `AppMembership` objects. + """ + nodes: [AppMembership!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `AppMembership` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `AppMembership` edge in the connection, with data from `AppGrant`. +""" +type UserAppMembershipsByAppGrantGrantorIdAndMembershipIdManyToManyEdge { + """ + Reads and enables pagination through a set of `AppGrant`. + """ + appGrantsByMembershipId( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: AppGrantCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: AppGrantFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `AppGrant`. + """ + orderBy: [AppGrantsOrderBy!] = [PRIMARY_KEY_ASC] + ): AppGrantsConnection! + + """ + A cursor for use in pagination. + """ + cursor: Cursor + + """ + The `AppMembership` at the end of the edge. + """ + node: AppMembership! +} + +""" +A condition to be used against `User` object types. All fields are tested for equality and combined with a logical ‘and.’ +""" +input UserCondition { + """ + Checks for equality with the object’s `displayName` field. + """ + displayName: String + + """ + Checks for equality with the object’s `id` field. + """ + id: UUID + + """ + Checks for equality with the object’s `profilePicture` field. + """ + profilePicture: JSON + + """ + Checks for equality with the object’s `searchTsv` field. + """ + searchTsv: FullText + tsvSearchTsv: String + + """ + Checks for equality with the object’s `type` field. + """ + type: Int + + """ + Checks for equality with the object’s `username` field. + """ + username: String +} + +type UserConnection { + accepted: Boolean + createdAt: Datetime + createdBy: UUID + id: UUID! + + """ + Reads a single `User` that is related to this `UserConnection`. + """ + requester: User + requesterId: UUID! + + """ + Reads a single `User` that is related to this `UserConnection`. + """ + responder: User + responderId: UUID! + updatedAt: Datetime + updatedBy: UUID +} + +""" +A condition to be used against `UserConnection` object types. All fields are +tested for equality and combined with a logical ‘and.’ +""" +input UserConnectionCondition { + """ + Checks for equality with the object’s `accepted` field. + """ + accepted: Boolean + + """ + Checks for equality with the object’s `createdAt` field. + """ + createdAt: Datetime + + """ + Checks for equality with the object’s `createdBy` field. + """ + createdBy: UUID + + """ + Checks for equality with the object’s `id` field. + """ + id: UUID + + """ + Checks for equality with the object’s `requesterId` field. + """ + requesterId: UUID + + """ + Checks for equality with the object’s `responderId` field. + """ + responderId: UUID + + """ + Checks for equality with the object’s `updatedAt` field. + """ + updatedAt: Datetime + + """ + Checks for equality with the object’s `updatedBy` field. + """ + updatedBy: UUID +} + +""" +A filter to be used against `UserConnection` object types. All fields are combined with a logical ‘and.’ +""" +input UserConnectionFilter { + """ + Filter by the object’s `accepted` field. + """ + accepted: BooleanFilter + + """ + Checks for all expressions in this list. + """ + and: [UserConnectionFilter!] + + """ + Filter by the object’s `createdAt` field. + """ + createdAt: DatetimeFilter + + """ + Filter by the object’s `createdBy` field. + """ + createdBy: UUIDFilter + + """ + Filter by the object’s `id` field. + """ + id: UUIDFilter + + """ + Negates the expression. + """ + not: UserConnectionFilter + + """ + Checks for any expressions in this list. + """ + or: [UserConnectionFilter!] + + """ + Filter by the object’s `requesterId` field. + """ + requesterId: UUIDFilter + + """ + Filter by the object’s `responderId` field. + """ + responderId: UUIDFilter + + """ + Filter by the object’s `updatedAt` field. + """ + updatedAt: DatetimeFilter + + """ + Filter by the object’s `updatedBy` field. + """ + updatedBy: UUIDFilter +} + +""" +An input for mutations affecting `UserConnection` +""" +input UserConnectionInput { + accepted: Boolean + createdAt: Datetime + createdBy: UUID + id: UUID + requesterId: UUID! + responderId: UUID! + updatedAt: Datetime + updatedBy: UUID +} + +""" +Represents an update to a `UserConnection`. Fields that are set will be updated. +""" +input UserConnectionPatch { + accepted: Boolean + createdAt: Datetime + createdBy: UUID + id: UUID + requesterId: UUID + responderId: UUID + updatedAt: Datetime + updatedBy: UUID +} + +""" +A connection to a list of `UserConnection` values. +""" +type UserConnectionsConnection { + """ + A list of edges which contains the `UserConnection` and cursor to aid in pagination. + """ + edges: [UserConnectionsEdge!]! + + """ + A list of `UserConnection` objects. + """ + nodes: [UserConnection!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `UserConnection` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `UserConnection` edge in the connection. +""" +type UserConnectionsEdge { + """ + A cursor for use in pagination. + """ + cursor: Cursor + + """ + The `UserConnection` at the end of the edge. + """ + node: UserConnection! +} + +""" +Methods to use when ordering `UserConnection`. +""" +enum UserConnectionsOrderBy { + ACCEPTED_ASC + ACCEPTED_DESC + CREATED_AT_ASC + CREATED_AT_DESC + CREATED_BY_ASC + CREATED_BY_DESC + ID_ASC + ID_DESC + NATURAL + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC + REQUESTER_ID_ASC + REQUESTER_ID_DESC + RESPONDER_ID_ASC + RESPONDER_ID_DESC + UPDATED_AT_ASC + UPDATED_AT_DESC + UPDATED_BY_ASC + UPDATED_BY_DESC +} + +type UserContact { + createdAt: Datetime + createdBy: UUID + + """ + originating device type or id + """ + device: String + emails: [String] + + """ + full name of the person or business + """ + fullName: String + id: UUID! + updatedAt: Datetime + updatedBy: UUID + + """ + Reads a single `User` that is related to this `UserContact`. + """ + user: User + userId: UUID! + + """ + the VCF file for storing contact information for a person or business + """ + vcf: JSON +} + +""" +A condition to be used against `UserContact` object types. All fields are tested +for equality and combined with a logical ‘and.’ +""" +input UserContactCondition { + """ + Checks for equality with the object’s `createdAt` field. + """ + createdAt: Datetime + + """ + Checks for equality with the object’s `createdBy` field. + """ + createdBy: UUID + + """ + Checks for equality with the object’s `device` field. + """ + device: String + + """ + Checks for equality with the object’s `emails` field. + """ + emails: [String] + + """ + Checks for equality with the object’s `fullName` field. + """ + fullName: String + + """ + Checks for equality with the object’s `id` field. + """ + id: UUID + + """ + Checks for equality with the object’s `updatedAt` field. + """ + updatedAt: Datetime + + """ + Checks for equality with the object’s `updatedBy` field. + """ + updatedBy: UUID + + """ + Checks for equality with the object’s `userId` field. + """ + userId: UUID + + """ + Checks for equality with the object’s `vcf` field. + """ + vcf: JSON +} + +""" +A filter to be used against `UserContact` object types. All fields are combined with a logical ‘and.’ +""" +input UserContactFilter { + """ + Checks for all expressions in this list. + """ + and: [UserContactFilter!] + + """ + Filter by the object’s `createdAt` field. + """ + createdAt: DatetimeFilter + + """ + Filter by the object’s `createdBy` field. + """ + createdBy: UUIDFilter + + """ + Filter by the object’s `device` field. + """ + device: StringFilter + + """ + Filter by the object’s `emails` field. + """ + emails: StringListFilter + + """ + Filter by the object’s `fullName` field. + """ + fullName: StringFilter + + """ + Filter by the object’s `id` field. + """ + id: UUIDFilter + + """ + Negates the expression. + """ + not: UserContactFilter + + """ + Checks for any expressions in this list. + """ + or: [UserContactFilter!] + + """ + Filter by the object’s `updatedAt` field. + """ + updatedAt: DatetimeFilter + + """ + Filter by the object’s `updatedBy` field. + """ + updatedBy: UUIDFilter + + """ + Filter by the object’s `userId` field. + """ + userId: UUIDFilter + + """ + Filter by the object’s `vcf` field. + """ + vcf: JSONFilter +} + +""" +An input for mutations affecting `UserContact` +""" +input UserContactInput { + createdAt: Datetime + createdBy: UUID + + """ + originating device type or id + """ + device: String + emails: [String] + + """ + full name of the person or business + """ + fullName: String + id: UUID + updatedAt: Datetime + updatedBy: UUID + userId: UUID + + """ + the VCF file for storing contact information for a person or business + """ + vcf: JSON +} + +""" +Represents an update to a `UserContact`. Fields that are set will be updated. +""" +input UserContactPatch { + createdAt: Datetime + createdBy: UUID + + """ + originating device type or id + """ + device: String + emails: [String] + + """ + full name of the person or business + """ + fullName: String + id: UUID + updatedAt: Datetime + updatedBy: UUID + userId: UUID + + """ + the VCF file for storing contact information for a person or business + """ + vcf: JSON +} + +""" +A connection to a list of `UserContact` values. +""" +type UserContactsConnection { + """ + A list of edges which contains the `UserContact` and cursor to aid in pagination. + """ + edges: [UserContactsEdge!]! + + """ + A list of `UserContact` objects. + """ + nodes: [UserContact!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `UserContact` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `UserContact` edge in the connection. +""" +type UserContactsEdge { + """ + A cursor for use in pagination. + """ + cursor: Cursor + + """ + The `UserContact` at the end of the edge. + """ + node: UserContact! +} + +""" +Methods to use when ordering `UserContact`. +""" +enum UserContactsOrderBy { + CREATED_AT_ASC + CREATED_AT_DESC + CREATED_BY_ASC + CREATED_BY_DESC + DEVICE_ASC + DEVICE_DESC + EMAILS_ASC + EMAILS_DESC + FULL_NAME_ASC + FULL_NAME_DESC + ID_ASC + ID_DESC + NATURAL + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC + UPDATED_AT_ASC + UPDATED_AT_DESC + UPDATED_BY_ASC + UPDATED_BY_DESC + USER_ID_ASC + USER_ID_DESC + VCF_ASC + VCF_DESC +} + +""" +A filter to be used against `User` object types. All fields are combined with a logical ‘and.’ +""" +input UserFilter { + """ + Checks for all expressions in this list. + """ + and: [UserFilter!] + + """ + Filter by the object’s `displayName` field. + """ + displayName: StringFilter + + """ + Filter by the object’s `id` field. + """ + id: UUIDFilter + + """ + Negates the expression. + """ + not: UserFilter + + """ + Checks for any expressions in this list. + """ + or: [UserFilter!] + + """ + Filter by the object’s `profilePicture` field. + """ + profilePicture: JSONFilter + + """ + Filter by the object’s `searchTsv` field. + """ + searchTsv: FullTextFilter + + """ + Filter by the object’s `type` field. + """ + type: IntFilter + + """ + Filter by the object’s `username` field. + """ + username: StringFilter +} + +""" +An input for mutations affecting `User` +""" +input UserInput { + displayName: String + id: UUID + profilePicture: JSON + profilePictureUpload: Upload + searchTsv: FullText + type: Int + username: String +} + +""" +A connection to a list of `Membership` values, with data from `Grant`. +""" +type UserMembershipsByGrantEntityIdAndMembershipIdManyToManyConnection { + """ + A list of edges which contains the `Membership`, info from the `Grant`, and the cursor to aid in pagination. + """ + edges: [UserMembershipsByGrantEntityIdAndMembershipIdManyToManyEdge!]! + + """ + A list of `Membership` objects. + """ + nodes: [Membership!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `Membership` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `Membership` edge in the connection, with data from `Grant`. +""" +type UserMembershipsByGrantEntityIdAndMembershipIdManyToManyEdge { + """ + A cursor for use in pagination. + """ + cursor: Cursor + + """ + Reads and enables pagination through a set of `Grant`. + """ + grants( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: GrantCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: GrantFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `Grant`. + """ + orderBy: [GrantsOrderBy!] = [PRIMARY_KEY_ASC] + ): GrantsConnection! + + """ + The `Membership` at the end of the edge. + """ + node: Membership! +} + +""" +A connection to a list of `Membership` values, with data from `Grant`. +""" +type UserMembershipsByGrantGrantorIdAndMembershipIdManyToManyConnection { + """ + A list of edges which contains the `Membership`, info from the `Grant`, and the cursor to aid in pagination. + """ + edges: [UserMembershipsByGrantGrantorIdAndMembershipIdManyToManyEdge!]! + + """ + A list of `Membership` objects. + """ + nodes: [Membership!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `Membership` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `Membership` edge in the connection, with data from `Grant`. +""" +type UserMembershipsByGrantGrantorIdAndMembershipIdManyToManyEdge { + """ + A cursor for use in pagination. + """ + cursor: Cursor + + """ + Reads and enables pagination through a set of `Grant`. + """ + grants( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: GrantCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: GrantFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `Grant`. + """ + orderBy: [GrantsOrderBy!] = [PRIMARY_KEY_ASC] + ): GrantsConnection! + + """ + The `Membership` at the end of the edge. + """ + node: Membership! +} + +""" +Represents an update to a `User`. Fields that are set will be updated. +""" +input UserPatch { + displayName: String + id: UUID + profilePicture: JSON + profilePictureUpload: Upload + searchTsv: FullText + type: Int + username: String +} + +type UserProfile { + bio: String + createdAt: Datetime + createdBy: UUID + displayName: String + id: UUID! + profilePicture: JSON + updatedAt: Datetime + updatedBy: UUID + + """ + Reads a single `User` that is related to this `UserProfile`. + """ + user: User + userId: UUID! +} + +""" +A condition to be used against `UserProfile` object types. All fields are tested +for equality and combined with a logical ‘and.’ +""" +input UserProfileCondition { + """ + Checks for equality with the object’s `bio` field. + """ + bio: String + + """ + Checks for equality with the object’s `createdAt` field. + """ + createdAt: Datetime + + """ + Checks for equality with the object’s `createdBy` field. + """ + createdBy: UUID + + """ + Checks for equality with the object’s `displayName` field. + """ + displayName: String + + """ + Checks for equality with the object’s `id` field. + """ + id: UUID + + """ + Checks for equality with the object’s `profilePicture` field. + """ + profilePicture: JSON + + """ + Checks for equality with the object’s `updatedAt` field. + """ + updatedAt: Datetime + + """ + Checks for equality with the object’s `updatedBy` field. + """ + updatedBy: UUID + + """ + Checks for equality with the object’s `userId` field. + """ + userId: UUID +} + +""" +A filter to be used against `UserProfile` object types. All fields are combined with a logical ‘and.’ +""" +input UserProfileFilter { + """ + Checks for all expressions in this list. + """ + and: [UserProfileFilter!] + + """ + Filter by the object’s `bio` field. + """ + bio: StringFilter + + """ + Filter by the object’s `createdAt` field. + """ + createdAt: DatetimeFilter + + """ + Filter by the object’s `createdBy` field. + """ + createdBy: UUIDFilter + + """ + Filter by the object’s `displayName` field. + """ + displayName: StringFilter + + """ + Filter by the object’s `id` field. + """ + id: UUIDFilter + + """ + Negates the expression. + """ + not: UserProfileFilter + + """ + Checks for any expressions in this list. + """ + or: [UserProfileFilter!] + + """ + Filter by the object’s `profilePicture` field. + """ + profilePicture: JSONFilter + + """ + Filter by the object’s `updatedAt` field. + """ + updatedAt: DatetimeFilter + + """ + Filter by the object’s `updatedBy` field. + """ + updatedBy: UUIDFilter + + """ + Filter by the object’s `userId` field. + """ + userId: UUIDFilter +} + +""" +An input for mutations affecting `UserProfile` +""" +input UserProfileInput { + bio: String + createdAt: Datetime + createdBy: UUID + displayName: String + id: UUID + profilePicture: JSON + profilePictureUpload: Upload + updatedAt: Datetime + updatedBy: UUID + userId: UUID! +} + +""" +Represents an update to a `UserProfile`. Fields that are set will be updated. +""" +input UserProfilePatch { + bio: String + createdAt: Datetime + createdBy: UUID + displayName: String + id: UUID + profilePicture: JSON + profilePictureUpload: Upload + updatedAt: Datetime + updatedBy: UUID + userId: UUID +} + +""" +A connection to a list of `UserProfile` values. +""" +type UserProfilesConnection { + """ + A list of edges which contains the `UserProfile` and cursor to aid in pagination. + """ + edges: [UserProfilesEdge!]! + + """ + A list of `UserProfile` objects. + """ + nodes: [UserProfile!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `UserProfile` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `UserProfile` edge in the connection. +""" +type UserProfilesEdge { + """ + A cursor for use in pagination. + """ + cursor: Cursor + + """ + The `UserProfile` at the end of the edge. + """ + node: UserProfile! +} + +""" +Methods to use when ordering `UserProfile`. +""" +enum UserProfilesOrderBy { + BIO_ASC + BIO_DESC + CREATED_AT_ASC + CREATED_AT_DESC + CREATED_BY_ASC + CREATED_BY_DESC + DISPLAY_NAME_ASC + DISPLAY_NAME_DESC + ID_ASC + ID_DESC + NATURAL + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC + PROFILE_PICTURE_ASC + PROFILE_PICTURE_DESC + UPDATED_AT_ASC + UPDATED_AT_DESC + UPDATED_BY_ASC + UPDATED_BY_DESC + USER_ID_ASC + USER_ID_DESC +} + +type UserSetting { + createdAt: Datetime + createdBy: UUID + firstName: String + id: UUID! + lastName: String + updatedAt: Datetime + updatedBy: UUID + + """ + Reads a single `User` that is related to this `UserSetting`. + """ + user: User + userId: UUID! +} + +""" +A condition to be used against `UserSetting` object types. All fields are tested +for equality and combined with a logical ‘and.’ +""" +input UserSettingCondition { + """ + Checks for equality with the object’s `createdAt` field. + """ + createdAt: Datetime + + """ + Checks for equality with the object’s `createdBy` field. + """ + createdBy: UUID + + """ + Checks for equality with the object’s `firstName` field. + """ + firstName: String + + """ + Checks for equality with the object’s `id` field. + """ + id: UUID + + """ + Checks for equality with the object’s `lastName` field. + """ + lastName: String + + """ + Checks for equality with the object’s `updatedAt` field. + """ + updatedAt: Datetime + + """ + Checks for equality with the object’s `updatedBy` field. + """ + updatedBy: UUID + + """ + Checks for equality with the object’s `userId` field. + """ + userId: UUID +} + +""" +A filter to be used against `UserSetting` object types. All fields are combined with a logical ‘and.’ +""" +input UserSettingFilter { + """ + Checks for all expressions in this list. + """ + and: [UserSettingFilter!] + + """ + Filter by the object’s `createdAt` field. + """ + createdAt: DatetimeFilter + + """ + Filter by the object’s `createdBy` field. + """ + createdBy: UUIDFilter + + """ + Filter by the object’s `firstName` field. + """ + firstName: StringFilter + + """ + Filter by the object’s `id` field. + """ + id: UUIDFilter + + """ + Filter by the object’s `lastName` field. + """ + lastName: StringFilter + + """ + Negates the expression. + """ + not: UserSettingFilter + + """ + Checks for any expressions in this list. + """ + or: [UserSettingFilter!] + + """ + Filter by the object’s `updatedAt` field. + """ + updatedAt: DatetimeFilter + + """ + Filter by the object’s `updatedBy` field. + """ + updatedBy: UUIDFilter + + """ + Filter by the object’s `userId` field. + """ + userId: UUIDFilter +} + +""" +An input for mutations affecting `UserSetting` +""" +input UserSettingInput { + createdAt: Datetime + createdBy: UUID + firstName: String + id: UUID + lastName: String + updatedAt: Datetime + updatedBy: UUID + userId: UUID! +} + +""" +Represents an update to a `UserSetting`. Fields that are set will be updated. +""" +input UserSettingPatch { + createdAt: Datetime + createdBy: UUID + firstName: String + id: UUID + lastName: String + updatedAt: Datetime + updatedBy: UUID + userId: UUID +} + +""" +A connection to a list of `UserSetting` values. +""" +type UserSettingsConnection { + """ + A list of edges which contains the `UserSetting` and cursor to aid in pagination. + """ + edges: [UserSettingsEdge!]! + + """ + A list of `UserSetting` objects. + """ + nodes: [UserSetting!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `UserSetting` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `UserSetting` edge in the connection. +""" +type UserSettingsEdge { + """ + A cursor for use in pagination. + """ + cursor: Cursor + + """ + The `UserSetting` at the end of the edge. + """ + node: UserSetting! +} + +""" +Methods to use when ordering `UserSetting`. +""" +enum UserSettingsOrderBy { + CREATED_AT_ASC + CREATED_AT_DESC + CREATED_BY_ASC + CREATED_BY_DESC + FIRST_NAME_ASC + FIRST_NAME_DESC + ID_ASC + ID_DESC + LAST_NAME_ASC + LAST_NAME_DESC + NATURAL + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC + UPDATED_AT_ASC + UPDATED_AT_DESC + UPDATED_BY_ASC + UPDATED_BY_DESC + USER_ID_ASC + USER_ID_DESC +} + +""" +A connection to a list of `User` values, with data from `ClaimedInvite`. +""" +type UserUsersByClaimedInviteReceiverIdAndSenderIdManyToManyConnection { + """ + A list of edges which contains the `User`, info from the `ClaimedInvite`, and the cursor to aid in pagination. + """ + edges: [UserUsersByClaimedInviteReceiverIdAndSenderIdManyToManyEdge!]! + + """ + A list of `User` objects. + """ + nodes: [User!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `User` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `User` edge in the connection, with data from `ClaimedInvite`. +""" +type UserUsersByClaimedInviteReceiverIdAndSenderIdManyToManyEdge { + """ + Reads and enables pagination through a set of `ClaimedInvite`. + """ + claimedInvitesBySenderId( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: ClaimedInviteCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: ClaimedInviteFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `ClaimedInvite`. + """ + orderBy: [ClaimedInvitesOrderBy!] = [PRIMARY_KEY_ASC] + ): ClaimedInvitesConnection! + + """ + A cursor for use in pagination. + """ + cursor: Cursor + + """ + The `User` at the end of the edge. + """ + node: User! +} + +""" +A connection to a list of `User` values, with data from `ClaimedInvite`. +""" +type UserUsersByClaimedInviteSenderIdAndReceiverIdManyToManyConnection { + """ + A list of edges which contains the `User`, info from the `ClaimedInvite`, and the cursor to aid in pagination. + """ + edges: [UserUsersByClaimedInviteSenderIdAndReceiverIdManyToManyEdge!]! + + """ + A list of `User` objects. + """ + nodes: [User!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `User` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `User` edge in the connection, with data from `ClaimedInvite`. +""" +type UserUsersByClaimedInviteSenderIdAndReceiverIdManyToManyEdge { + """ + Reads and enables pagination through a set of `ClaimedInvite`. + """ + claimedInvitesByReceiverId( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: ClaimedInviteCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: ClaimedInviteFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `ClaimedInvite`. + """ + orderBy: [ClaimedInvitesOrderBy!] = [PRIMARY_KEY_ASC] + ): ClaimedInvitesConnection! + + """ + A cursor for use in pagination. + """ + cursor: Cursor + + """ + The `User` at the end of the edge. + """ + node: User! +} + +""" +A connection to a list of `User` values, with data from `Grant`. +""" +type UserUsersByGrantEntityIdAndGrantorIdManyToManyConnection { + """ + A list of edges which contains the `User`, info from the `Grant`, and the cursor to aid in pagination. + """ + edges: [UserUsersByGrantEntityIdAndGrantorIdManyToManyEdge!]! + + """ + A list of `User` objects. + """ + nodes: [User!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `User` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `User` edge in the connection, with data from `Grant`. +""" +type UserUsersByGrantEntityIdAndGrantorIdManyToManyEdge { + """ + A cursor for use in pagination. + """ + cursor: Cursor + + """ + Reads and enables pagination through a set of `Grant`. + """ + grantsByGrantorId( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: GrantCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: GrantFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `Grant`. + """ + orderBy: [GrantsOrderBy!] = [PRIMARY_KEY_ASC] + ): GrantsConnection! + + """ + The `User` at the end of the edge. + """ + node: User! +} + +""" +A connection to a list of `User` values, with data from `Grant`. +""" +type UserUsersByGrantGrantorIdAndEntityIdManyToManyConnection { + """ + A list of edges which contains the `User`, info from the `Grant`, and the cursor to aid in pagination. + """ + edges: [UserUsersByGrantGrantorIdAndEntityIdManyToManyEdge!]! + + """ + A list of `User` objects. + """ + nodes: [User!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `User` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `User` edge in the connection, with data from `Grant`. +""" +type UserUsersByGrantGrantorIdAndEntityIdManyToManyEdge { + """ + A cursor for use in pagination. + """ + cursor: Cursor + + """ + Reads and enables pagination through a set of `Grant`. + """ + grantsByEntityId( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: GrantCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: GrantFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `Grant`. + """ + orderBy: [GrantsOrderBy!] = [PRIMARY_KEY_ASC] + ): GrantsConnection! + + """ + The `User` at the end of the edge. + """ + node: User! +} + +""" +A connection to a list of `User` values, with data from `Member`. +""" +type UserUsersByMemberActorIdAndEntityIdManyToManyConnection { + """ + A list of edges which contains the `User`, info from the `Member`, and the cursor to aid in pagination. + """ + edges: [UserUsersByMemberActorIdAndEntityIdManyToManyEdge!]! + + """ + A list of `User` objects. + """ + nodes: [User!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `User` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `User` edge in the connection, with data from `Member`. +""" +type UserUsersByMemberActorIdAndEntityIdManyToManyEdge { + """ + A cursor for use in pagination. + """ + cursor: Cursor + id: UUID! + isAdmin: Boolean! + + """ + The `User` at the end of the edge. + """ + node: User! +} + +""" +A connection to a list of `User` values, with data from `MemberClaimedInvite`. +""" +type UserUsersByMemberClaimedInviteEntityIdAndReceiverIdManyToManyConnection { + """ + A list of edges which contains the `User`, info from the `MemberClaimedInvite`, and the cursor to aid in pagination. + """ + edges: [UserUsersByMemberClaimedInviteEntityIdAndReceiverIdManyToManyEdge!]! + + """ + A list of `User` objects. + """ + nodes: [User!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `User` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `User` edge in the connection, with data from `MemberClaimedInvite`. +""" +type UserUsersByMemberClaimedInviteEntityIdAndReceiverIdManyToManyEdge { + """ + A cursor for use in pagination. + """ + cursor: Cursor + + """ + Reads and enables pagination through a set of `MemberClaimedInvite`. + """ + memberClaimedInvitesByReceiverId( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MemberClaimedInviteCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MemberClaimedInviteFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `MemberClaimedInvite`. + """ + orderBy: [MemberClaimedInvitesOrderBy!] = [PRIMARY_KEY_ASC] + ): MemberClaimedInvitesConnection! + + """ + The `User` at the end of the edge. + """ + node: User! +} + +""" +A connection to a list of `User` values, with data from `MemberClaimedInvite`. +""" +type UserUsersByMemberClaimedInviteEntityIdAndSenderIdManyToManyConnection { + """ + A list of edges which contains the `User`, info from the `MemberClaimedInvite`, and the cursor to aid in pagination. + """ + edges: [UserUsersByMemberClaimedInviteEntityIdAndSenderIdManyToManyEdge!]! + + """ + A list of `User` objects. + """ + nodes: [User!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `User` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `User` edge in the connection, with data from `MemberClaimedInvite`. +""" +type UserUsersByMemberClaimedInviteEntityIdAndSenderIdManyToManyEdge { + """ + A cursor for use in pagination. + """ + cursor: Cursor + + """ + Reads and enables pagination through a set of `MemberClaimedInvite`. + """ + memberClaimedInvitesBySenderId( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MemberClaimedInviteCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MemberClaimedInviteFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `MemberClaimedInvite`. + """ + orderBy: [MemberClaimedInvitesOrderBy!] = [PRIMARY_KEY_ASC] + ): MemberClaimedInvitesConnection! + + """ + The `User` at the end of the edge. + """ + node: User! +} + +""" +A connection to a list of `User` values, with data from `MemberClaimedInvite`. +""" +type UserUsersByMemberClaimedInviteReceiverIdAndEntityIdManyToManyConnection { + """ + A list of edges which contains the `User`, info from the `MemberClaimedInvite`, and the cursor to aid in pagination. + """ + edges: [UserUsersByMemberClaimedInviteReceiverIdAndEntityIdManyToManyEdge!]! + + """ + A list of `User` objects. + """ + nodes: [User!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `User` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `User` edge in the connection, with data from `MemberClaimedInvite`. +""" +type UserUsersByMemberClaimedInviteReceiverIdAndEntityIdManyToManyEdge { + """ + A cursor for use in pagination. + """ + cursor: Cursor + + """ + Reads and enables pagination through a set of `MemberClaimedInvite`. + """ + memberClaimedInvitesByEntityId( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MemberClaimedInviteCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MemberClaimedInviteFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `MemberClaimedInvite`. + """ + orderBy: [MemberClaimedInvitesOrderBy!] = [PRIMARY_KEY_ASC] + ): MemberClaimedInvitesConnection! + + """ + The `User` at the end of the edge. + """ + node: User! +} + +""" +A connection to a list of `User` values, with data from `MemberClaimedInvite`. +""" +type UserUsersByMemberClaimedInviteReceiverIdAndSenderIdManyToManyConnection { + """ + A list of edges which contains the `User`, info from the `MemberClaimedInvite`, and the cursor to aid in pagination. + """ + edges: [UserUsersByMemberClaimedInviteReceiverIdAndSenderIdManyToManyEdge!]! + + """ + A list of `User` objects. + """ + nodes: [User!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `User` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `User` edge in the connection, with data from `MemberClaimedInvite`. +""" +type UserUsersByMemberClaimedInviteReceiverIdAndSenderIdManyToManyEdge { + """ + A cursor for use in pagination. + """ + cursor: Cursor + + """ + Reads and enables pagination through a set of `MemberClaimedInvite`. + """ + memberClaimedInvitesBySenderId( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MemberClaimedInviteCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MemberClaimedInviteFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `MemberClaimedInvite`. + """ + orderBy: [MemberClaimedInvitesOrderBy!] = [PRIMARY_KEY_ASC] + ): MemberClaimedInvitesConnection! + + """ + The `User` at the end of the edge. + """ + node: User! +} + +""" +A connection to a list of `User` values, with data from `MemberClaimedInvite`. +""" +type UserUsersByMemberClaimedInviteSenderIdAndEntityIdManyToManyConnection { + """ + A list of edges which contains the `User`, info from the `MemberClaimedInvite`, and the cursor to aid in pagination. + """ + edges: [UserUsersByMemberClaimedInviteSenderIdAndEntityIdManyToManyEdge!]! + + """ + A list of `User` objects. + """ + nodes: [User!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `User` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `User` edge in the connection, with data from `MemberClaimedInvite`. +""" +type UserUsersByMemberClaimedInviteSenderIdAndEntityIdManyToManyEdge { + """ + A cursor for use in pagination. + """ + cursor: Cursor + + """ + Reads and enables pagination through a set of `MemberClaimedInvite`. + """ + memberClaimedInvitesByEntityId( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MemberClaimedInviteCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MemberClaimedInviteFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `MemberClaimedInvite`. + """ + orderBy: [MemberClaimedInvitesOrderBy!] = [PRIMARY_KEY_ASC] + ): MemberClaimedInvitesConnection! + + """ + The `User` at the end of the edge. + """ + node: User! +} + +""" +A connection to a list of `User` values, with data from `MemberClaimedInvite`. +""" +type UserUsersByMemberClaimedInviteSenderIdAndReceiverIdManyToManyConnection { + """ + A list of edges which contains the `User`, info from the `MemberClaimedInvite`, and the cursor to aid in pagination. + """ + edges: [UserUsersByMemberClaimedInviteSenderIdAndReceiverIdManyToManyEdge!]! + + """ + A list of `User` objects. + """ + nodes: [User!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `User` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `User` edge in the connection, with data from `MemberClaimedInvite`. +""" +type UserUsersByMemberClaimedInviteSenderIdAndReceiverIdManyToManyEdge { + """ + A cursor for use in pagination. + """ + cursor: Cursor + + """ + Reads and enables pagination through a set of `MemberClaimedInvite`. + """ + memberClaimedInvitesByReceiverId( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MemberClaimedInviteCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MemberClaimedInviteFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `MemberClaimedInvite`. + """ + orderBy: [MemberClaimedInvitesOrderBy!] = [PRIMARY_KEY_ASC] + ): MemberClaimedInvitesConnection! + + """ + The `User` at the end of the edge. + """ + node: User! +} + +""" +A connection to a list of `User` values, with data from `Member`. +""" +type UserUsersByMemberEntityIdAndActorIdManyToManyConnection { + """ + A list of edges which contains the `User`, info from the `Member`, and the cursor to aid in pagination. + """ + edges: [UserUsersByMemberEntityIdAndActorIdManyToManyEdge!]! + + """ + A list of `User` objects. + """ + nodes: [User!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `User` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `User` edge in the connection, with data from `Member`. +""" +type UserUsersByMemberEntityIdAndActorIdManyToManyEdge { + """ + A cursor for use in pagination. + """ + cursor: Cursor + id: UUID! + isAdmin: Boolean! + + """ + The `User` at the end of the edge. + """ + node: User! +} + +""" +A connection to a list of `User` values, with data from `MemberInvite`. +""" +type UserUsersByMemberInviteEntityIdAndSenderIdManyToManyConnection { + """ + A list of edges which contains the `User`, info from the `MemberInvite`, and the cursor to aid in pagination. + """ + edges: [UserUsersByMemberInviteEntityIdAndSenderIdManyToManyEdge!]! + + """ + A list of `User` objects. + """ + nodes: [User!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `User` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `User` edge in the connection, with data from `MemberInvite`. +""" +type UserUsersByMemberInviteEntityIdAndSenderIdManyToManyEdge { + """ + A cursor for use in pagination. + """ + cursor: Cursor + + """ + Reads and enables pagination through a set of `MemberInvite`. + """ + memberInvitesBySenderId( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MemberInviteCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MemberInviteFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `MemberInvite`. + """ + orderBy: [MemberInvitesOrderBy!] = [PRIMARY_KEY_ASC] + ): MemberInvitesConnection! + + """ + The `User` at the end of the edge. + """ + node: User! +} + +""" +A connection to a list of `User` values, with data from `MemberInvite`. +""" +type UserUsersByMemberInviteSenderIdAndEntityIdManyToManyConnection { + """ + A list of edges which contains the `User`, info from the `MemberInvite`, and the cursor to aid in pagination. + """ + edges: [UserUsersByMemberInviteSenderIdAndEntityIdManyToManyEdge!]! + + """ + A list of `User` objects. + """ + nodes: [User!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `User` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `User` edge in the connection, with data from `MemberInvite`. +""" +type UserUsersByMemberInviteSenderIdAndEntityIdManyToManyEdge { + """ + A cursor for use in pagination. + """ + cursor: Cursor + + """ + Reads and enables pagination through a set of `MemberInvite`. + """ + memberInvitesByEntityId( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MemberInviteCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MemberInviteFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `MemberInvite`. + """ + orderBy: [MemberInvitesOrderBy!] = [PRIMARY_KEY_ASC] + ): MemberInvitesConnection! + + """ + The `User` at the end of the edge. + """ + node: User! +} + +""" +A connection to a list of `User` values, with data from `Membership`. +""" +type UserUsersByMembershipActorIdAndEntityIdManyToManyConnection { + """ + A list of edges which contains the `User`, info from the `Membership`, and the cursor to aid in pagination. + """ + edges: [UserUsersByMembershipActorIdAndEntityIdManyToManyEdge!]! + + """ + A list of `User` objects. + """ + nodes: [User!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `User` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `User` edge in the connection, with data from `Membership`. +""" +type UserUsersByMembershipActorIdAndEntityIdManyToManyEdge { + """ + A cursor for use in pagination. + """ + cursor: Cursor + granted: BitString! + id: UUID! + isAccepted: Boolean! + isActive: Boolean! + isAdmin: Boolean! + isApproved: Boolean! + isBanned: Boolean! + isDisabled: Boolean! + isOwner: Boolean! + + """ + The `User` at the end of the edge. + """ + node: User! + permissions: BitString! +} + +""" +A connection to a list of `User` values, with data from `Membership`. +""" +type UserUsersByMembershipEntityIdAndActorIdManyToManyConnection { + """ + A list of edges which contains the `User`, info from the `Membership`, and the cursor to aid in pagination. + """ + edges: [UserUsersByMembershipEntityIdAndActorIdManyToManyEdge!]! + + """ + A list of `User` objects. + """ + nodes: [User!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `User` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `User` edge in the connection, with data from `Membership`. +""" +type UserUsersByMembershipEntityIdAndActorIdManyToManyEdge { + """ + A cursor for use in pagination. + """ + cursor: Cursor + granted: BitString! + id: UUID! + isAccepted: Boolean! + isActive: Boolean! + isAdmin: Boolean! + isApproved: Boolean! + isBanned: Boolean! + isDisabled: Boolean! + isOwner: Boolean! + + """ + The `User` at the end of the edge. + """ + node: User! + permissions: BitString! +} + +""" +A connection to a list of `User` values, with data from `MembershipLimit`. +""" +type UserUsersByMembershipLimitActorIdAndEntityIdManyToManyConnection { + """ + A list of edges which contains the `User`, info from the `MembershipLimit`, and the cursor to aid in pagination. + """ + edges: [UserUsersByMembershipLimitActorIdAndEntityIdManyToManyEdge!]! + + """ + A list of `User` objects. + """ + nodes: [User!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `User` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `User` edge in the connection, with data from `MembershipLimit`. +""" +type UserUsersByMembershipLimitActorIdAndEntityIdManyToManyEdge { + """ + A cursor for use in pagination. + """ + cursor: Cursor + + """ + Reads and enables pagination through a set of `MembershipLimit`. + """ + membershipLimitsByEntityId( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MembershipLimitCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MembershipLimitFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `MembershipLimit`. + """ + orderBy: [MembershipLimitsOrderBy!] = [PRIMARY_KEY_ASC] + ): MembershipLimitsConnection! + + """ + The `User` at the end of the edge. + """ + node: User! +} + +""" +A connection to a list of `User` values, with data from `MembershipLimit`. +""" +type UserUsersByMembershipLimitEntityIdAndActorIdManyToManyConnection { + """ + A list of edges which contains the `User`, info from the `MembershipLimit`, and the cursor to aid in pagination. + """ + edges: [UserUsersByMembershipLimitEntityIdAndActorIdManyToManyEdge!]! + + """ + A list of `User` objects. + """ + nodes: [User!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `User` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `User` edge in the connection, with data from `MembershipLimit`. +""" +type UserUsersByMembershipLimitEntityIdAndActorIdManyToManyEdge { + """ + A cursor for use in pagination. + """ + cursor: Cursor + + """ + Reads and enables pagination through a set of `MembershipLimit`. + """ + membershipLimitsByActorId( + """ + Read all values in the set after (below) this cursor. + """ + after: Cursor + + """ + Read all values in the set before (above) this cursor. + """ + before: Cursor + + """ + A condition to be used in determining which values should be returned by the collection. + """ + condition: MembershipLimitCondition + + """ + A filter to be used in determining which values should be returned by the collection. + """ + filter: MembershipLimitFilter + + """ + Only read the first `n` values of the set. + """ + first: Int + + """ + Only read the last `n` values of the set. + """ + last: Int + + """ + Skip the first `n` values from our `after` cursor, an alternative to cursor + based pagination. May not be used with `last`. + """ + offset: Int + + """ + The method to use when ordering `MembershipLimit`. + """ + orderBy: [MembershipLimitsOrderBy!] = [PRIMARY_KEY_ASC] + ): MembershipLimitsConnection! + + """ + The `User` at the end of the edge. + """ + node: User! +} + +""" +A connection to a list of `User` values. +""" +type UsersConnection { + """ + A list of edges which contains the `User` and cursor to aid in pagination. + """ + edges: [UsersEdge!]! + + """ + A list of `User` objects. + """ + nodes: [User!]! + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! + + """ + The count of *all* `User` you could get from the connection. + """ + totalCount: Int! +} + +""" +A `User` edge in the connection. +""" +type UsersEdge { + """ + A cursor for use in pagination. + """ + cursor: Cursor + + """ + The `User` at the end of the edge. + """ + node: User! +} + +""" +Methods to use when ordering `User`. +""" +enum UsersOrderBy { + DISPLAY_NAME_ASC + DISPLAY_NAME_DESC + ID_ASC + ID_DESC + NATURAL + PRIMARY_KEY_ASC + PRIMARY_KEY_DESC + PROFILE_PICTURE_ASC + PROFILE_PICTURE_DESC + SEARCH_TSV_ASC + SEARCH_TSV_DESC + SEARCH_TSV_RANK_ASC + SEARCH_TSV_RANK_DESC + TYPE_ASC + TYPE_DESC + USERNAME_ASC + USERNAME_DESC +} + +""" +All input for the `verifyEmail` mutation. +""" +input VerifyEmailInput { + """ + An arbitrary string value with no semantic meaning. Will be included in the + payload verbatim. May be used to track mutations by the client. + """ + clientMutationId: String + emailId: UUID + token: String +} + +""" +The output of our `verifyEmail` mutation. +""" +type VerifyEmailPayload { + boolean: Boolean + + """ + The exact same `clientMutationId` that was provided in the mutation input, + unchanged and unused. May be used by a client to track mutations. + """ + clientMutationId: String + + """ + Our root query field type. Allows us to run any query from our mutation payload. + """ + query: Query +} diff --git a/graphql/codegen/package.json b/graphql/codegen/package.json index e1b0c45f3..97ba8af88 100644 --- a/graphql/codegen/package.json +++ b/graphql/codegen/package.json @@ -43,6 +43,8 @@ "test:watch": "jest --watch", "example:codegen:sdk": "node dist/cli/index.js generate --endpoint http://api.localhost:3000/graphql --output examples/output/generated-sdk", "example:codegen:orm": "node dist/cli/index.js generate-orm --endpoint http://api.localhost:3000/graphql --output examples/output/generated-orm", + "example:codegen:sdk:schema": "node dist/cli/index.js generate --schema examples/example.schema.graphql --output examples/output/generated-sdk-schema", + "example:codegen:orm:schema": "node dist/cli/index.js generate-orm --schema examples/example.schema.graphql --output examples/output/generated-orm-schema", "example:sdk": "tsx examples/react-query-sdk.ts", "example:orm": "tsx examples/orm-sdk.ts" }, diff --git a/graphql/codegen/src/__tests__/codegen/__snapshots__/input-types-generator.test.ts.snap b/graphql/codegen/src/__tests__/codegen/__snapshots__/input-types-generator.test.ts.snap index 5e72a33c6..4f4fac804 100644 --- a/graphql/codegen/src/__tests__/codegen/__snapshots__/input-types-generator.test.ts.snap +++ b/graphql/codegen/src/__tests__/codegen/__snapshots__/input-types-generator.test.ts.snap @@ -352,6 +352,37 @@ export interface CommentFilter { not?: CommentFilter; } +// ============================================================================ +// Table Condition Types +// ============================================================================ + +export interface UserCondition { + id?: string | null; + email?: string | null; + name?: string | null; + age?: number | null; + isActive?: boolean | null; + createdAt?: string | null; + metadata?: unknown | null; +} + +export interface PostCondition { + id?: string | null; + title?: string | null; + content?: string | null; + authorId?: string | null; + publishedAt?: string | null; + tags?: string | null; +} + +export interface CommentCondition { + id?: string | null; + body?: string | null; + postId?: string | null; + authorId?: string | null; + createdAt?: string | null; +} + // ============================================================================ // OrderBy Types // ============================================================================ @@ -716,6 +747,20 @@ export interface UserFilter { not?: UserFilter; } +// ============================================================================ +// Table Condition Types +// ============================================================================ + +export interface UserCondition { + id?: string | null; + email?: string | null; + name?: string | null; + age?: number | null; + isActive?: boolean | null; + createdAt?: string | null; + metadata?: unknown | null; +} + // ============================================================================ // OrderBy Types // ============================================================================ @@ -1020,6 +1065,20 @@ export interface UserFilter { not?: UserFilter; } +// ============================================================================ +// Table Condition Types +// ============================================================================ + +export interface UserCondition { + id?: string | null; + email?: string | null; + name?: string | null; + age?: number | null; + isActive?: boolean | null; + createdAt?: string | null; + metadata?: unknown | null; +} + // ============================================================================ // OrderBy Types // ============================================================================ @@ -1338,6 +1397,20 @@ export interface UserFilter { not?: UserFilter; } +// ============================================================================ +// Table Condition Types +// ============================================================================ + +export interface UserCondition { + id?: string | null; + email?: string | null; + name?: string | null; + age?: number | null; + isActive?: boolean | null; + createdAt?: string | null; + metadata?: unknown | null; +} + // ============================================================================ // OrderBy Types // ============================================================================ @@ -1704,6 +1777,27 @@ export interface ProfileFilter { not?: ProfileFilter; } +// ============================================================================ +// Table Condition Types +// ============================================================================ + +export interface UserCondition { + id?: string | null; + email?: string | null; + name?: string | null; + age?: number | null; + isActive?: boolean | null; + createdAt?: string | null; + metadata?: unknown | null; +} + +export interface ProfileCondition { + id?: string | null; + bio?: string | null; + userId?: string | null; + avatarUrl?: string | null; +} + // ============================================================================ // OrderBy Types // ============================================================================ @@ -2075,13 +2169,32 @@ export interface CategoryFilter { not?: CategoryFilter; } +// ============================================================================ +// Table Condition Types +// ============================================================================ + +export interface PostCondition { + id?: string | null; + title?: string | null; + content?: string | null; + authorId?: string | null; + publishedAt?: string | null; + tags?: string | null; +} + +export interface CategoryCondition { + id?: string | null; + name?: string | null; + slug?: string | null; +} + // ============================================================================ // OrderBy Types // ============================================================================ export type PostsOrderBy = 'PRIMARY_KEY_ASC' | 'PRIMARY_KEY_DESC' | 'NATURAL' | 'ID_ASC' | 'ID_DESC' | 'TITLE_ASC' | 'TITLE_DESC' | 'CONTENT_ASC' | 'CONTENT_DESC' | 'AUTHOR_ID_ASC' | 'AUTHOR_ID_DESC' | 'PUBLISHED_AT_ASC' | 'PUBLISHED_AT_DESC' | 'TAGS_ASC' | 'TAGS_DESC'; -export type CategorysOrderBy = 'PRIMARY_KEY_ASC' | 'PRIMARY_KEY_DESC' | 'NATURAL' | 'ID_ASC' | 'ID_DESC' | 'NAME_ASC' | 'NAME_DESC' | 'SLUG_ASC' | 'SLUG_DESC'; +export type CategoriesOrderBy = 'PRIMARY_KEY_ASC' | 'PRIMARY_KEY_DESC' | 'NATURAL' | 'ID_ASC' | 'ID_DESC' | 'NAME_ASC' | 'NAME_DESC' | 'SLUG_ASC' | 'SLUG_DESC'; // ============================================================================ // CRUD Input Types diff --git a/graphql/codegen/src/__tests__/introspect/infer-tables.test.ts b/graphql/codegen/src/__tests__/introspect/infer-tables.test.ts new file mode 100644 index 000000000..375098263 --- /dev/null +++ b/graphql/codegen/src/__tests__/introspect/infer-tables.test.ts @@ -0,0 +1,941 @@ +/** + * Tests for inferTablesFromIntrospection + * + * These tests verify that we can correctly infer CleanTable[] metadata + * from standard GraphQL introspection (without _meta query). + */ +import { inferTablesFromIntrospection } from '../../cli/introspect/infer-tables'; +import type { + IntrospectionQueryResponse, + IntrospectionType, + IntrospectionTypeRef, + IntrospectionField, + IntrospectionInputValue, + IntrospectionEnumValue, +} from '../../types/introspection'; + +// ============================================================================ +// Test Fixtures - Mock Introspection Data +// ============================================================================ + +/** + * Helper to create a basic type reference + */ +function makeTypeRef( + kind: 'SCALAR' | 'OBJECT' | 'INPUT_OBJECT' | 'ENUM' | 'LIST' | 'NON_NULL', + name: string | null, + ofType?: IntrospectionTypeRef | null +): IntrospectionTypeRef { + return { kind, name, ofType: ofType ?? null }; +} + +/** + * Helper to create a non-null wrapper + */ +function nonNull(inner: IntrospectionTypeRef): IntrospectionTypeRef { + return makeTypeRef('NON_NULL', null, inner); +} + +/** + * Helper to create a list wrapper + */ +function list(inner: IntrospectionTypeRef): IntrospectionTypeRef { + return makeTypeRef('LIST', null, inner); +} + +/** + * Helper to create a scalar type + */ +function scalar(name: string): IntrospectionTypeRef { + return makeTypeRef('SCALAR', name); +} + +/** + * Helper to create an object type + */ +function object(name: string): IntrospectionTypeRef { + return makeTypeRef('OBJECT', name); +} + +/** + * Helper to create an input object type + */ +function inputObject(name: string): IntrospectionTypeRef { + return makeTypeRef('INPUT_OBJECT', name); +} + +interface FieldDef { + name: string; + type: IntrospectionTypeRef; + args?: Array<{ name: string; type: IntrospectionTypeRef }>; +} + +interface InputFieldDef { + name: string; + type: IntrospectionTypeRef; +} + +interface TypeDef { + name: string; + kind: 'OBJECT' | 'INPUT_OBJECT' | 'SCALAR' | 'ENUM'; + fields?: FieldDef[]; + inputFields?: InputFieldDef[]; + enumValues?: string[]; +} + +/** + * Create a minimal introspection response with the given types + */ +function createIntrospection( + types: TypeDef[], + queryFields: FieldDef[] = [], + mutationFields: FieldDef[] = [] +): IntrospectionQueryResponse { + const makeField = (f: FieldDef): IntrospectionField => ({ + name: f.name, + type: f.type, + args: (f.args ?? []).map( + (a): IntrospectionInputValue => ({ + name: a.name, + type: a.type, + description: null, + defaultValue: null, + }) + ), + deprecationReason: null, + description: null, + isDeprecated: false, + }); + + const makeInputField = (f: InputFieldDef): IntrospectionInputValue => ({ + name: f.name, + type: f.type, + description: null, + defaultValue: null, + }); + + // Add Query and Mutation types + const allTypes: IntrospectionType[] = [ + { + name: 'Query', + kind: 'OBJECT', + fields: queryFields.map(makeField), + inputFields: null, + enumValues: null, + interfaces: [], + possibleTypes: null, + description: null, + }, + ...(mutationFields.length > 0 + ? [ + { + name: 'Mutation', + kind: 'OBJECT' as const, + fields: mutationFields.map(makeField), + inputFields: null, + enumValues: null, + interfaces: [], + possibleTypes: null, + description: null, + }, + ] + : []), + ...types.map( + (t): IntrospectionType => ({ + name: t.name, + kind: t.kind, + fields: t.kind === 'OBJECT' ? (t.fields ?? []).map(makeField) : null, + inputFields: + t.kind === 'INPUT_OBJECT' + ? (t.inputFields ?? []).map(makeInputField) + : null, + enumValues: + t.kind === 'ENUM' + ? (t.enumValues ?? []).map( + (v): IntrospectionEnumValue => ({ + name: v, + deprecationReason: null, + description: null, + isDeprecated: false, + }) + ) + : null, + interfaces: [], + possibleTypes: null, + description: null, + }) + ), + ]; + + return { + __schema: { + queryType: { name: 'Query' }, + mutationType: mutationFields.length > 0 ? { name: 'Mutation' } : null, + subscriptionType: null, + types: allTypes, + directives: [], + }, + }; +} + +// ============================================================================ +// Tests - Entity Detection +// ============================================================================ + +describe('Entity Detection', () => { + it('detects entities from Connection types', () => { + const introspection = createIntrospection( + [ + // User entity type + { + name: 'User', + kind: 'OBJECT', + fields: [ + { name: 'id', type: nonNull(scalar('UUID')) }, + { name: 'email', type: scalar('String') }, + ], + }, + // UsersConnection type (indicates User is an entity) + { + name: 'UsersConnection', + kind: 'OBJECT', + fields: [ + { name: 'nodes', type: list(object('User')) }, + { name: 'pageInfo', type: nonNull(object('PageInfo')) }, + ], + }, + // PageInfo (builtin, should be ignored) + { name: 'PageInfo', kind: 'OBJECT', fields: [] }, + ], + [ + // Query for users + { name: 'users', type: object('UsersConnection') }, + ] + ); + + const tables = inferTablesFromIntrospection(introspection); + + expect(tables).toHaveLength(1); + expect(tables[0].name).toBe('User'); + }); + + it('detects multiple entities', () => { + const introspection = createIntrospection( + [ + { + name: 'User', + kind: 'OBJECT', + fields: [{ name: 'id', type: nonNull(scalar('UUID')) }], + }, + { name: 'UsersConnection', kind: 'OBJECT', fields: [] }, + { + name: 'Post', + kind: 'OBJECT', + fields: [{ name: 'id', type: nonNull(scalar('UUID')) }], + }, + { name: 'PostsConnection', kind: 'OBJECT', fields: [] }, + { + name: 'Comment', + kind: 'OBJECT', + fields: [{ name: 'id', type: nonNull(scalar('UUID')) }], + }, + { name: 'CommentsConnection', kind: 'OBJECT', fields: [] }, + ], + [ + { name: 'users', type: object('UsersConnection') }, + { name: 'posts', type: object('PostsConnection') }, + { name: 'comments', type: object('CommentsConnection') }, + ] + ); + + const tables = inferTablesFromIntrospection(introspection); + const names = tables.map((t) => t.name).sort(); + + expect(names).toEqual(['Comment', 'Post', 'User']); + }); + + it('ignores types without Connection', () => { + const introspection = createIntrospection( + [ + // Has Connection + { + name: 'User', + kind: 'OBJECT', + fields: [{ name: 'id', type: nonNull(scalar('UUID')) }], + }, + { name: 'UsersConnection', kind: 'OBJECT', fields: [] }, + // Does not have Connection (should be ignored) + { + name: 'AuditLog', + kind: 'OBJECT', + fields: [{ name: 'id', type: nonNull(scalar('UUID')) }], + }, + ], + [{ name: 'users', type: object('UsersConnection') }] + ); + + const tables = inferTablesFromIntrospection(introspection); + + expect(tables).toHaveLength(1); + expect(tables[0].name).toBe('User'); + }); +}); + +// ============================================================================ +// Tests - Field Extraction +// ============================================================================ + +describe('Field Extraction', () => { + it('extracts scalar fields', () => { + const introspection = createIntrospection( + [ + { + name: 'User', + kind: 'OBJECT', + fields: [ + { name: 'id', type: nonNull(scalar('UUID')) }, + { name: 'email', type: scalar('String') }, + { name: 'age', type: scalar('Int') }, + { name: 'isActive', type: scalar('Boolean') }, + { name: 'metadata', type: scalar('JSON') }, + ], + }, + { name: 'UsersConnection', kind: 'OBJECT', fields: [] }, + ], + [{ name: 'users', type: object('UsersConnection') }] + ); + + const tables = inferTablesFromIntrospection(introspection); + const fields = tables[0].fields; + + expect(fields).toHaveLength(5); + expect(fields.map((f) => f.name)).toEqual([ + 'id', + 'email', + 'age', + 'isActive', + 'metadata', + ]); + expect(fields.find((f) => f.name === 'id')?.type.gqlType).toBe('UUID'); + expect(fields.find((f) => f.name === 'email')?.type.gqlType).toBe('String'); + }); + + it('extracts array fields', () => { + const introspection = createIntrospection( + [ + { + name: 'Post', + kind: 'OBJECT', + fields: [ + { name: 'id', type: nonNull(scalar('UUID')) }, + { name: 'tags', type: list(scalar('String')) }, + ], + }, + { name: 'PostsConnection', kind: 'OBJECT', fields: [] }, + ], + [{ name: 'posts', type: object('PostsConnection') }] + ); + + const tables = inferTablesFromIntrospection(introspection); + const tagsField = tables[0].fields.find((f) => f.name === 'tags'); + + expect(tagsField).toBeDefined(); + expect(tagsField?.type.isArray).toBe(true); + expect(tagsField?.type.gqlType).toBe('String'); + }); + + it('excludes relation fields', () => { + const introspection = createIntrospection( + [ + { + name: 'Post', + kind: 'OBJECT', + fields: [ + { name: 'id', type: nonNull(scalar('UUID')) }, + { name: 'title', type: scalar('String') }, + { name: 'author', type: object('User') }, // belongsTo relation + { name: 'comments', type: object('CommentsConnection') }, // hasMany relation + ], + }, + { name: 'PostsConnection', kind: 'OBJECT', fields: [] }, + { + name: 'User', + kind: 'OBJECT', + fields: [{ name: 'id', type: nonNull(scalar('UUID')) }], + }, + { name: 'UsersConnection', kind: 'OBJECT', fields: [] }, + { + name: 'Comment', + kind: 'OBJECT', + fields: [{ name: 'id', type: nonNull(scalar('UUID')) }], + }, + { name: 'CommentsConnection', kind: 'OBJECT', fields: [] }, + ], + [ + { name: 'posts', type: object('PostsConnection') }, + { name: 'users', type: object('UsersConnection') }, + { name: 'comments', type: object('CommentsConnection') }, + ] + ); + + const tables = inferTablesFromIntrospection(introspection); + const postTable = tables.find((t) => t.name === 'Post'); + const fieldNames = postTable?.fields.map((f) => f.name); + + expect(fieldNames).toContain('id'); + expect(fieldNames).toContain('title'); + expect(fieldNames).not.toContain('author'); // Excluded: belongsTo + expect(fieldNames).not.toContain('comments'); // Excluded: hasMany + }); +}); + +// ============================================================================ +// Tests - Relation Inference +// ============================================================================ + +describe('Relation Inference', () => { + it('infers belongsTo relations', () => { + const introspection = createIntrospection( + [ + { + name: 'Post', + kind: 'OBJECT', + fields: [ + { name: 'id', type: nonNull(scalar('UUID')) }, + { name: 'author', type: object('User') }, + ], + }, + { name: 'PostsConnection', kind: 'OBJECT', fields: [] }, + { + name: 'User', + kind: 'OBJECT', + fields: [{ name: 'id', type: nonNull(scalar('UUID')) }], + }, + { name: 'UsersConnection', kind: 'OBJECT', fields: [] }, + ], + [ + { name: 'posts', type: object('PostsConnection') }, + { name: 'users', type: object('UsersConnection') }, + ] + ); + + const tables = inferTablesFromIntrospection(introspection); + const postTable = tables.find((t) => t.name === 'Post'); + + expect(postTable?.relations.belongsTo).toHaveLength(1); + expect(postTable?.relations.belongsTo[0].fieldName).toBe('author'); + expect(postTable?.relations.belongsTo[0].referencesTable).toBe('User'); + }); + + it('infers hasMany relations', () => { + const introspection = createIntrospection( + [ + { + name: 'User', + kind: 'OBJECT', + fields: [ + { name: 'id', type: nonNull(scalar('UUID')) }, + { name: 'posts', type: object('PostsConnection') }, + ], + }, + { name: 'UsersConnection', kind: 'OBJECT', fields: [] }, + { + name: 'Post', + kind: 'OBJECT', + fields: [{ name: 'id', type: nonNull(scalar('UUID')) }], + }, + { name: 'PostsConnection', kind: 'OBJECT', fields: [] }, + ], + [ + { name: 'users', type: object('UsersConnection') }, + { name: 'posts', type: object('PostsConnection') }, + ] + ); + + const tables = inferTablesFromIntrospection(introspection); + const userTable = tables.find((t) => t.name === 'User'); + + expect(userTable?.relations.hasMany).toHaveLength(1); + expect(userTable?.relations.hasMany[0].fieldName).toBe('posts'); + expect(userTable?.relations.hasMany[0].referencedByTable).toBe('Post'); + }); + + it('infers manyToMany relations from naming pattern', () => { + const introspection = createIntrospection( + [ + { + name: 'Category', + kind: 'OBJECT', + fields: [ + { name: 'id', type: nonNull(scalar('UUID')) }, + // ManyToMany pattern: {entities}By{JunctionTable}{Keys} + { + name: 'productsByProductCategoryProductIdAndCategoryId', + type: object('ProductsConnection'), + }, + ], + }, + { name: 'CategoriesConnection', kind: 'OBJECT', fields: [] }, + { + name: 'Product', + kind: 'OBJECT', + fields: [{ name: 'id', type: nonNull(scalar('UUID')) }], + }, + { name: 'ProductsConnection', kind: 'OBJECT', fields: [] }, + ], + [ + { name: 'categories', type: object('CategoriesConnection') }, + { name: 'products', type: object('ProductsConnection') }, + ] + ); + + const tables = inferTablesFromIntrospection(introspection); + const categoryTable = tables.find((t) => t.name === 'Category'); + + expect(categoryTable?.relations.manyToMany).toHaveLength(1); + expect(categoryTable?.relations.manyToMany[0].rightTable).toBe('Product'); + expect(categoryTable?.relations.manyToMany[0].junctionTable).toBe( + 'ProductCategory' + ); + }); +}); + +// ============================================================================ +// Tests - Operation Matching +// ============================================================================ + +describe('Query Operation Matching', () => { + it('matches list query by Connection return type', () => { + const introspection = createIntrospection( + [ + { + name: 'User', + kind: 'OBJECT', + fields: [{ name: 'id', type: nonNull(scalar('UUID')) }], + }, + { name: 'UsersConnection', kind: 'OBJECT', fields: [] }, + ], + [{ name: 'allUsers', type: object('UsersConnection') }] + ); + + const tables = inferTablesFromIntrospection(introspection); + + expect(tables[0].query?.all).toBe('allUsers'); + }); + + it('matches single query by return type and id arg', () => { + const introspection = createIntrospection( + [ + { + name: 'User', + kind: 'OBJECT', + fields: [{ name: 'id', type: nonNull(scalar('UUID')) }], + }, + { name: 'UsersConnection', kind: 'OBJECT', fields: [] }, + ], + [ + { name: 'users', type: object('UsersConnection') }, + { + name: 'user', + type: object('User'), + args: [{ name: 'id', type: nonNull(scalar('UUID')) }], + }, + ] + ); + + const tables = inferTablesFromIntrospection(introspection); + + expect(tables[0].query?.one).toBe('user'); + }); + + it('handles missing query operations gracefully', () => { + const introspection = createIntrospection( + [ + { + name: 'User', + kind: 'OBJECT', + fields: [{ name: 'id', type: nonNull(scalar('UUID')) }], + }, + { name: 'UsersConnection', kind: 'OBJECT', fields: [] }, + ], + [ + { name: 'users', type: object('UsersConnection') }, + // No single user query + ] + ); + + const tables = inferTablesFromIntrospection(introspection); + + expect(tables[0].query?.all).toBe('users'); + // Should fallback to default naming + expect(tables[0].query?.one).toBe('user'); + }); +}); + +describe('Mutation Operation Matching', () => { + it('matches create mutation', () => { + const introspection = createIntrospection( + [ + { + name: 'User', + kind: 'OBJECT', + fields: [{ name: 'id', type: nonNull(scalar('UUID')) }], + }, + { name: 'UsersConnection', kind: 'OBJECT', fields: [] }, + { name: 'CreateUserPayload', kind: 'OBJECT', fields: [] }, + ], + [{ name: 'users', type: object('UsersConnection') }], + [ + { + name: 'createUser', + type: object('CreateUserPayload'), + args: [ + { name: 'input', type: nonNull(inputObject('CreateUserInput')) }, + ], + }, + ] + ); + + const tables = inferTablesFromIntrospection(introspection); + + expect(tables[0].query?.create).toBe('createUser'); + }); + + it('matches update and delete mutations', () => { + const introspection = createIntrospection( + [ + { + name: 'User', + kind: 'OBJECT', + fields: [{ name: 'id', type: nonNull(scalar('UUID')) }], + }, + { name: 'UsersConnection', kind: 'OBJECT', fields: [] }, + { name: 'UpdateUserPayload', kind: 'OBJECT', fields: [] }, + { name: 'DeleteUserPayload', kind: 'OBJECT', fields: [] }, + ], + [{ name: 'users', type: object('UsersConnection') }], + [ + { + name: 'updateUser', + type: object('UpdateUserPayload'), + args: [ + { name: 'input', type: nonNull(inputObject('UpdateUserInput')) }, + ], + }, + { + name: 'deleteUser', + type: object('DeleteUserPayload'), + args: [ + { name: 'input', type: nonNull(inputObject('DeleteUserInput')) }, + ], + }, + ] + ); + + const tables = inferTablesFromIntrospection(introspection); + + expect(tables[0].query?.update).toBe('updateUser'); + expect(tables[0].query?.delete).toBe('deleteUser'); + }); + + it('prefers non-ById mutations over ById variants', () => { + const introspection = createIntrospection( + [ + { + name: 'User', + kind: 'OBJECT', + fields: [{ name: 'id', type: nonNull(scalar('UUID')) }], + }, + { name: 'UsersConnection', kind: 'OBJECT', fields: [] }, + { name: 'UpdateUserPayload', kind: 'OBJECT', fields: [] }, + ], + [{ name: 'users', type: object('UsersConnection') }], + [ + { name: 'updateUserById', type: object('UpdateUserPayload') }, + { name: 'updateUser', type: object('UpdateUserPayload') }, + ] + ); + + const tables = inferTablesFromIntrospection(introspection); + + expect(tables[0].query?.update).toBe('updateUser'); + }); +}); + +// ============================================================================ +// Tests - Constraint Inference +// ============================================================================ + +describe('Constraint Inference', () => { + it('infers primary key from entity id field', () => { + const introspection = createIntrospection( + [ + { + name: 'User', + kind: 'OBJECT', + fields: [{ name: 'id', type: nonNull(scalar('UUID')) }], + }, + { name: 'UsersConnection', kind: 'OBJECT', fields: [] }, + ], + [{ name: 'users', type: object('UsersConnection') }] + ); + + const tables = inferTablesFromIntrospection(introspection); + + expect(tables[0].constraints?.primaryKey).toHaveLength(1); + expect(tables[0].constraints?.primaryKey[0].fields[0].name).toBe('id'); + }); + + it('infers primary key from Update/Delete input type', () => { + const introspection = createIntrospection( + [ + { + name: 'User', + kind: 'OBJECT', + fields: [{ name: 'userId', type: nonNull(scalar('UUID')) }], + }, + { name: 'UsersConnection', kind: 'OBJECT', fields: [] }, + { + name: 'UpdateUserInput', + kind: 'INPUT_OBJECT', + inputFields: [{ name: 'id', type: nonNull(scalar('UUID')) }], + }, + ], + [{ name: 'users', type: object('UsersConnection') }], + [{ name: 'updateUser', type: object('UpdateUserPayload') }] + ); + + const tables = inferTablesFromIntrospection(introspection); + + expect(tables[0].constraints?.primaryKey).toHaveLength(1); + expect(tables[0].constraints?.primaryKey[0].fields[0].name).toBe('id'); + }); +}); + +// ============================================================================ +// Tests - Inflection Building +// ============================================================================ + +describe('Inflection Building', () => { + it('builds correct inflection names', () => { + const introspection = createIntrospection( + [ + { + name: 'User', + kind: 'OBJECT', + fields: [{ name: 'id', type: nonNull(scalar('UUID')) }], + }, + { name: 'UsersConnection', kind: 'OBJECT', fields: [] }, + { name: 'UserFilter', kind: 'INPUT_OBJECT', inputFields: [] }, + { name: 'UserPatch', kind: 'INPUT_OBJECT', inputFields: [] }, + { name: 'UpdateUserPayload', kind: 'OBJECT', fields: [] }, + ], + [{ name: 'users', type: object('UsersConnection') }] + ); + + const tables = inferTablesFromIntrospection(introspection); + const inflection = tables[0].inflection; + + expect(inflection?.connection).toBe('UsersConnection'); + expect(inflection?.filterType).toBe('UserFilter'); + expect(inflection?.patchType).toBe('UserPatch'); + expect(inflection?.updatePayloadType).toBe('UpdateUserPayload'); + expect(inflection?.tableType).toBe('User'); + expect(inflection?.allRows).toBe('users'); + }); + + it('handles missing optional types', () => { + const introspection = createIntrospection( + [ + { + name: 'User', + kind: 'OBJECT', + fields: [{ name: 'id', type: nonNull(scalar('UUID')) }], + }, + { name: 'UsersConnection', kind: 'OBJECT', fields: [] }, + // No UserFilter, UserPatch, or UpdateUserPayload + ], + [{ name: 'users', type: object('UsersConnection') }] + ); + + const tables = inferTablesFromIntrospection(introspection); + const inflection = tables[0].inflection; + + expect(inflection?.filterType).toBeNull(); + expect(inflection?.patchType).toBeNull(); + expect(inflection?.updatePayloadType).toBeNull(); + }); +}); + +// ============================================================================ +// Tests - Edge Cases +// ============================================================================ + +describe('Edge Cases', () => { + it('handles schema with no entities', () => { + const introspection = createIntrospection( + [ + // Only built-in types, no entities + { name: 'PageInfo', kind: 'OBJECT', fields: [] }, + ], + [] + ); + + const tables = inferTablesFromIntrospection(introspection); + + expect(tables).toHaveLength(0); + }); + + it('handles entity with no operations (should be excluded)', () => { + const introspection = createIntrospection( + [ + // Entity type exists but no queries/mutations + { + name: 'Orphan', + kind: 'OBJECT', + fields: [{ name: 'id', type: nonNull(scalar('UUID')) }], + }, + { name: 'OrphansConnection', kind: 'OBJECT', fields: [] }, + ], + [] // No query fields + ); + + const tables = inferTablesFromIntrospection(introspection); + + // Orphan should be excluded since it has no operations + expect(tables).toHaveLength(0); + }); + + it('handles circular relations', () => { + const introspection = createIntrospection( + [ + { + name: 'User', + kind: 'OBJECT', + fields: [ + { name: 'id', type: nonNull(scalar('UUID')) }, + { name: 'posts', type: object('PostsConnection') }, + ], + }, + { name: 'UsersConnection', kind: 'OBJECT', fields: [] }, + { + name: 'Post', + kind: 'OBJECT', + fields: [ + { name: 'id', type: nonNull(scalar('UUID')) }, + { name: 'author', type: object('User') }, + ], + }, + { name: 'PostsConnection', kind: 'OBJECT', fields: [] }, + ], + [ + { name: 'users', type: object('UsersConnection') }, + { name: 'posts', type: object('PostsConnection') }, + ] + ); + + // Should not cause infinite loops + const tables = inferTablesFromIntrospection(introspection); + + expect(tables).toHaveLength(2); + + const userTable = tables.find((t) => t.name === 'User'); + const postTable = tables.find((t) => t.name === 'Post'); + + expect(userTable?.relations.hasMany).toHaveLength(1); + expect(postTable?.relations.belongsTo).toHaveLength(1); + }); + + it('handles irregular pluralization', () => { + const introspection = createIntrospection( + [ + { + name: 'Person', + kind: 'OBJECT', + fields: [{ name: 'id', type: nonNull(scalar('UUID')) }], + }, + { name: 'PeopleConnection', kind: 'OBJECT', fields: [] }, + ], + [{ name: 'people', type: object('PeopleConnection') }] + ); + + const tables = inferTablesFromIntrospection(introspection); + + expect(tables).toHaveLength(1); + expect(tables[0].name).toBe('Person'); + expect(tables[0].query?.all).toBe('people'); + }); + + it('generates correct OrderBy type for Address (not Addresss)', () => { + const introspection = createIntrospection( + [ + { + name: 'Address', + kind: 'OBJECT', + fields: [ + { name: 'id', type: nonNull(scalar('UUID')) }, + { name: 'street', type: scalar('String') }, + { name: 'city', type: scalar('String') }, + ], + }, + { name: 'AddressesConnection', kind: 'OBJECT', fields: [] }, + { + name: 'AddressesOrderBy', + kind: 'ENUM', + enumValues: ['ID_ASC', 'ID_DESC'], + }, + ], + [{ name: 'addresses', type: object('AddressesConnection') }] + ); + + const tables = inferTablesFromIntrospection(introspection); + + expect(tables).toHaveLength(1); + expect(tables[0].name).toBe('Address'); + // Should be "AddressesOrderBy" (correct), NOT "AddresssOrderBy" (wrong - triple 's') + expect(tables[0].inflection?.orderByType).toBe('AddressesOrderBy'); + expect(tables[0].inflection?.connection).toBe('AddressesConnection'); + }); + + it('generates correct OrderBy type for Category (not Categorys)', () => { + const introspection = createIntrospection( + [ + { + name: 'Category', + kind: 'OBJECT', + fields: [{ name: 'id', type: nonNull(scalar('UUID')) }], + }, + { name: 'CategoriesConnection', kind: 'OBJECT', fields: [] }, + { name: 'CategoriesOrderBy', kind: 'ENUM', enumValues: ['ID_ASC'] }, + ], + [{ name: 'categories', type: object('CategoriesConnection') }] + ); + + const tables = inferTablesFromIntrospection(introspection); + + expect(tables).toHaveLength(1); + expect(tables[0].inflection?.orderByType).toBe('CategoriesOrderBy'); + }); + + it('detects actual OrderBy type from schema even with custom naming', () => { + const introspection = createIntrospection( + [ + { + name: 'Status', + kind: 'OBJECT', + fields: [{ name: 'id', type: nonNull(scalar('UUID')) }], + }, + { name: 'StatusesConnection', kind: 'OBJECT', fields: [] }, + // Schema has the actual OrderBy enum + { name: 'StatusesOrderBy', kind: 'ENUM', enumValues: ['ID_ASC'] }, + ], + [{ name: 'statuses', type: object('StatusesConnection') }] + ); + + const tables = inferTablesFromIntrospection(introspection); + + expect(tables).toHaveLength(1); + // Should detect the actual type from schema + expect(tables[0].inflection?.orderByType).toBe('StatusesOrderBy'); + }); +}); diff --git a/graphql/codegen/src/cli/codegen/barrel.ts b/graphql/codegen/src/cli/codegen/barrel.ts index ccb9e0924..bc85b4625 100644 --- a/graphql/codegen/src/cli/codegen/barrel.ts +++ b/graphql/codegen/src/cli/codegen/barrel.ts @@ -68,16 +68,35 @@ export function generateMutationsBarrel(tables: CleanTable[]): string { * @param tables - The tables to include in the SDK * @param hasSchemaTypes - Whether schema-types.ts was generated */ +export interface MainBarrelOptions { + hasSchemaTypes?: boolean; + hasMutations?: boolean; +} + export function generateMainBarrel( tables: CleanTable[], - hasSchemaTypes: boolean = false + options: MainBarrelOptions | boolean = {} ): string { + // Support legacy signature where second arg was just hasSchemaTypes boolean + const opts: MainBarrelOptions = + typeof options === 'boolean' + ? { hasSchemaTypes: options, hasMutations: true } + : options; + + const { hasSchemaTypes = false, hasMutations = true } = opts; const tableNames = tables.map((t) => t.name).join(', '); const schemaTypesExport = hasSchemaTypes ? ` // Schema types (input, payload, enum types) export * from './schema-types'; +` + : ''; + + const mutationsExport = hasMutations + ? ` +// Mutation hooks +export * from './mutations'; ` : ''; @@ -119,10 +138,7 @@ export * from './types'; ${schemaTypesExport} // Query hooks export * from './queries'; - -// Mutation hooks -export * from './mutations'; -`; +${mutationsExport}`; } // ============================================================================ diff --git a/graphql/codegen/src/cli/codegen/index.ts b/graphql/codegen/src/cli/codegen/index.ts index 204509373..4d4b65629 100644 --- a/graphql/codegen/src/cli/codegen/index.ts +++ b/graphql/codegen/src/cli/codegen/index.ts @@ -23,7 +23,11 @@ * useRegisterMutation.ts * ... */ -import type { CleanTable, CleanOperation, TypeRegistry } from '../../types/schema'; +import type { + CleanTable, + CleanOperation, + TypeRegistry, +} from '../../types/schema'; import type { ResolvedConfig } from '../../types/config'; import { generateClientFile } from './client'; @@ -137,7 +141,9 @@ export function generate(options: GenerateOptions): GenerateResult { // 3. Generate types.ts (can now import enums from schema-types) files.push({ path: 'types.ts', - content: generateTypesFile(tables, { enumsFromSchemaTypes: generatedEnumNames }), + content: generateTypesFile(tables, { + enumsFromSchemaTypes: generatedEnumNames, + }), }); // 4. Generate table-based query hooks (queries/*.ts) @@ -150,7 +156,11 @@ export function generate(options: GenerateOptions): GenerateResult { } // 5. Generate custom query hooks if available - let customQueryHooks: Array<{ fileName: string; content: string; operationName: string }> = []; + let customQueryHooks: Array<{ + fileName: string; + content: string; + operationName: string; + }> = []; if (customOperations && customOperations.queries.length > 0) { customQueryHooks = generateAllCustomQueryHooks({ operations: customOperations.queries, @@ -172,9 +182,13 @@ export function generate(options: GenerateOptions): GenerateResult { // 5. Generate queries/index.ts barrel (includes both table and custom queries) files.push({ path: 'queries/index.ts', - content: customQueryHooks.length > 0 - ? generateCustomQueriesBarrel(tables, customQueryHooks.map((h) => h.operationName)) - : generateQueriesBarrel(tables), + content: + customQueryHooks.length > 0 + ? generateCustomQueriesBarrel( + tables, + customQueryHooks.map((h) => h.operationName) + ) + : generateQueriesBarrel(tables), }); // 6. Generate table-based mutation hooks (mutations/*.ts) @@ -190,7 +204,11 @@ export function generate(options: GenerateOptions): GenerateResult { } // 7. Generate custom mutation hooks if available - let customMutationHooks: Array<{ fileName: string; content: string; operationName: string }> = []; + let customMutationHooks: Array<{ + fileName: string; + content: string; + operationName: string; + }> = []; if (customOperations && customOperations.mutations.length > 0) { customMutationHooks = generateAllCustomMutationHooks({ operations: customOperations.mutations, @@ -209,18 +227,27 @@ export function generate(options: GenerateOptions): GenerateResult { } } - // 8. Generate mutations/index.ts barrel (includes both table and custom mutations) - files.push({ - path: 'mutations/index.ts', - content: customMutationHooks.length > 0 - ? generateCustomMutationsBarrel(tables, customMutationHooks.map((h) => h.operationName)) - : generateMutationsBarrel(tables), - }); + // 8. Generate mutations/index.ts barrel (only if React Query is enabled) + // When reactQuery is disabled, no mutation hooks are generated, so skip the barrel + const hasMutations = + mutationHooks.length > 0 || customMutationHooks.length > 0; + if (hasMutations) { + files.push({ + path: 'mutations/index.ts', + content: + customMutationHooks.length > 0 + ? generateCustomMutationsBarrel( + tables, + customMutationHooks.map((h) => h.operationName) + ) + : generateMutationsBarrel(tables), + }); + } // 9. Generate main index.ts barrel (with schema-types if present) files.push({ path: 'index.ts', - content: generateMainBarrel(tables, hasSchemaTypes), + content: generateMainBarrel(tables, { hasSchemaTypes, hasMutations }), }); return { @@ -242,15 +269,25 @@ export function generate(options: GenerateOptions): GenerateResult { export { generateClientFile } from './client'; export { generateTypesFile } from './types'; -export { generateAllQueryHooks, generateListQueryHook, generateSingleQueryHook } from './queries'; +export { + generateAllQueryHooks, + generateListQueryHook, + generateSingleQueryHook, +} from './queries'; export { generateAllMutationHooks, generateCreateMutationHook, generateUpdateMutationHook, generateDeleteMutationHook, } from './mutations'; -export { generateAllCustomQueryHooks, generateCustomQueryHook } from './custom-queries'; -export { generateAllCustomMutationHooks, generateCustomMutationHook } from './custom-mutations'; +export { + generateAllCustomQueryHooks, + generateCustomQueryHook, +} from './custom-queries'; +export { + generateAllCustomMutationHooks, + generateCustomMutationHook, +} from './custom-mutations'; export { generateQueriesBarrel, generateMutationsBarrel, diff --git a/graphql/codegen/src/cli/codegen/orm/client-generator.ts b/graphql/codegen/src/cli/codegen/orm/client-generator.ts index 564290df7..7c078e2d1 100644 --- a/graphql/codegen/src/cli/codegen/orm/client-generator.ts +++ b/graphql/codegen/src/cli/codegen/orm/client-generator.ts @@ -314,7 +314,8 @@ export function buildFindManyDocument( before?: string; offset?: number; }, - filterTypeName: string + filterTypeName: string, + orderByTypeName: string ): { document: string; variables: Record } { const selections = select ? buildSelections(select) : 'id'; @@ -328,7 +329,7 @@ export function buildFindManyDocument( variables.where = args.where; } if (args.orderBy?.length) { - varDefs.push(\`$orderBy: [\${operationName}sOrderBy!]\`); + varDefs.push(\`$orderBy: [\${orderByTypeName}!]\`); queryArgs.push('orderBy: $orderBy'); variables.orderBy = args.orderBy; } @@ -639,15 +640,21 @@ export function generateCreateClientFile( // Re-export types and classes sourceFile.addStatements('\n// Re-export types and classes'); - sourceFile.addStatements("export type { OrmClientConfig, QueryResult, GraphQLError } from './client';"); + sourceFile.addStatements( + "export type { OrmClientConfig, QueryResult, GraphQLError } from './client';" + ); sourceFile.addStatements("export { GraphQLRequestError } from './client';"); sourceFile.addStatements("export { QueryBuilder } from './query-builder';"); sourceFile.addStatements("export * from './select-types';"); // Generate createClient function - sourceFile.addStatements('\n// ============================================================================'); + sourceFile.addStatements( + '\n// ============================================================================' + ); sourceFile.addStatements('// Client Factory'); - sourceFile.addStatements('// ============================================================================\n'); + sourceFile.addStatements( + '// ============================================================================\n' + ); // Build the return object const modelEntries = tables.map((table) => { diff --git a/graphql/codegen/src/cli/codegen/orm/custom-ops-generator.ts b/graphql/codegen/src/cli/codegen/orm/custom-ops-generator.ts index 23804712a..de96429e9 100644 --- a/graphql/codegen/src/cli/codegen/orm/custom-ops-generator.ts +++ b/graphql/codegen/src/cli/codegen/orm/custom-ops-generator.ts @@ -24,7 +24,11 @@ import { createImport, } from '../ts-ast'; import { ucFirst } from '../utils'; -import { typeRefToTsType, isTypeRequired, getTypeBaseName } from '../type-resolver'; +import { + typeRefToTsType, + isTypeRequired, + getTypeBaseName, +} from '../type-resolver'; import { SCALAR_NAMES } from '../scalars'; export interface GeneratedCustomOpsFile { @@ -34,6 +38,7 @@ export interface GeneratedCustomOpsFile { /** * Collect all input type names used by operations + * Includes Input, Filter, OrderBy, and Condition types */ function collectInputTypeNamesFromOps(operations: CleanOperation[]): string[] { const inputTypes = new Set(); @@ -41,7 +46,13 @@ function collectInputTypeNamesFromOps(operations: CleanOperation[]): string[] { for (const op of operations) { for (const arg of op.args) { const baseName = getTypeBaseName(arg.type); - if (baseName && (baseName.endsWith('Input') || baseName.endsWith('Filter'))) { + if ( + baseName && + (baseName.endsWith('Input') || + baseName.endsWith('Filter') || + baseName.endsWith('OrderBy') || + baseName.endsWith('Condition')) + ) { inputTypes.add(baseName); } } @@ -51,22 +62,30 @@ function collectInputTypeNamesFromOps(operations: CleanOperation[]): string[] { } // Types that don't need Select types -const NON_SELECT_TYPES = new Set([...SCALAR_NAMES, 'Query', 'Mutation']); +const NON_SELECT_TYPES = new Set([ + ...SCALAR_NAMES, + 'Query', + 'Mutation', +]); /** * Collect all payload/return type names from operations (for Select types) * Filters out scalar types */ -function collectPayloadTypeNamesFromOps(operations: CleanOperation[]): string[] { +function collectPayloadTypeNamesFromOps( + operations: CleanOperation[] +): string[] { const payloadTypes = new Set(); for (const op of operations) { const baseName = getTypeBaseName(op.returnType); - if (baseName && - !baseName.endsWith('Connection') && - baseName !== 'Query' && - baseName !== 'Mutation' && - !NON_SELECT_TYPES.has(baseName)) { + if ( + baseName && + !baseName.endsWith('Connection') && + baseName !== 'Query' && + baseName !== 'Mutation' && + !NON_SELECT_TYPES.has(baseName) + ) { payloadTypes.add(baseName); } } @@ -80,11 +99,13 @@ function collectPayloadTypeNamesFromOps(operations: CleanOperation[]): string[] */ function getSelectTypeName(returnType: CleanArgument['type']): string | null { const baseName = getTypeBaseName(returnType); - if (baseName && - !NON_SELECT_TYPES.has(baseName) && - baseName !== 'Query' && - baseName !== 'Mutation' && - !baseName.endsWith('Connection')) { + if ( + baseName && + !NON_SELECT_TYPES.has(baseName) && + baseName !== 'Query' && + baseName !== 'Mutation' && + !baseName.endsWith('Connection') + ) { return `${baseName}Select`; } return null; @@ -102,12 +123,14 @@ export function generateCustomQueryOpsFile( // Collect all input type names and payload type names const inputTypeNames = collectInputTypeNamesFromOps(operations); const payloadTypeNames = collectPayloadTypeNamesFromOps(operations); - + // Generate Select type names for payloads const selectTypeNames = payloadTypeNames.map((p) => `${p}Select`); - + // Combine all type imports - const allTypeImports = [...new Set([...inputTypeNames, ...payloadTypeNames, ...selectTypeNames])]; + const allTypeImports = [ + ...new Set([...inputTypeNames, ...payloadTypeNames, ...selectTypeNames]), + ]; // Add file header sourceFile.insertText( @@ -142,9 +165,13 @@ export function generateCustomQueryOpsFile( } // Generate variable definitions type for each operation - sourceFile.addStatements('\n// ============================================================================'); + sourceFile.addStatements( + '\n// ============================================================================' + ); sourceFile.addStatements('// Variable Types'); - sourceFile.addStatements('// ============================================================================\n'); + sourceFile.addStatements( + '// ============================================================================\n' + ); for (const op of operations) { if (op.args.length > 0) { @@ -153,14 +180,20 @@ export function generateCustomQueryOpsFile( const optional = !isTypeRequired(arg.type); return `${arg.name}${optional ? '?' : ''}: ${typeRefToTsType(arg.type)};`; }); - sourceFile.addStatements(`export interface ${varTypeName} {\n ${props.join('\n ')}\n}\n`); + sourceFile.addStatements( + `export interface ${varTypeName} {\n ${props.join('\n ')}\n}\n` + ); } } // Generate factory function - sourceFile.addStatements('\n// ============================================================================'); + sourceFile.addStatements( + '\n// ============================================================================' + ); sourceFile.addStatements('// Query Operations Factory'); - sourceFile.addStatements('// ============================================================================\n'); + sourceFile.addStatements( + '// ============================================================================\n' + ); // Build the operations object const operationMethods = operations.map((op) => { @@ -171,16 +204,17 @@ export function generateCustomQueryOpsFile( type: formatGraphQLType(arg.type), })); const varDefsJson = JSON.stringify(varDefs); - + // Get Select type for return type const selectTypeName = getSelectTypeName(op.returnType); const payloadTypeName = getTypeBaseName(op.returnType); - + // Use typed select if available, otherwise fall back to Record const selectType = selectTypeName ?? 'Record'; - const returnTypePart = selectTypeName && payloadTypeName - ? `{ ${op.name}: InferSelectResult<${payloadTypeName}, S> }` - : 'unknown'; + const returnTypePart = + selectTypeName && payloadTypeName + ? `{ ${op.name}: InferSelectResult<${payloadTypeName}, S> }` + : 'unknown'; if (hasArgs) { if (selectTypeName) { @@ -253,12 +287,14 @@ export function generateCustomMutationOpsFile( // Collect all input type names and payload type names const inputTypeNames = collectInputTypeNamesFromOps(operations); const payloadTypeNames = collectPayloadTypeNamesFromOps(operations); - + // Generate Select type names for payloads const selectTypeNames = payloadTypeNames.map((p) => `${p}Select`); - + // Combine all type imports - const allTypeImports = [...new Set([...inputTypeNames, ...payloadTypeNames, ...selectTypeNames])]; + const allTypeImports = [ + ...new Set([...inputTypeNames, ...payloadTypeNames, ...selectTypeNames]), + ]; // Add file header sourceFile.insertText( @@ -293,9 +329,13 @@ export function generateCustomMutationOpsFile( } // Generate variable definitions type for each operation - sourceFile.addStatements('\n// ============================================================================'); + sourceFile.addStatements( + '\n// ============================================================================' + ); sourceFile.addStatements('// Variable Types'); - sourceFile.addStatements('// ============================================================================\n'); + sourceFile.addStatements( + '// ============================================================================\n' + ); for (const op of operations) { if (op.args.length > 0) { @@ -304,14 +344,20 @@ export function generateCustomMutationOpsFile( const optional = !isTypeRequired(arg.type); return `${arg.name}${optional ? '?' : ''}: ${typeRefToTsType(arg.type)};`; }); - sourceFile.addStatements(`export interface ${varTypeName} {\n ${props.join('\n ')}\n}\n`); + sourceFile.addStatements( + `export interface ${varTypeName} {\n ${props.join('\n ')}\n}\n` + ); } } // Generate factory function - sourceFile.addStatements('\n// ============================================================================'); + sourceFile.addStatements( + '\n// ============================================================================' + ); sourceFile.addStatements('// Mutation Operations Factory'); - sourceFile.addStatements('// ============================================================================\n'); + sourceFile.addStatements( + '// ============================================================================\n' + ); // Build the operations object const operationMethods = operations.map((op) => { @@ -322,16 +368,17 @@ export function generateCustomMutationOpsFile( type: formatGraphQLType(arg.type), })); const varDefsJson = JSON.stringify(varDefs); - + // Get Select type for return type const selectTypeName = getSelectTypeName(op.returnType); const payloadTypeName = getTypeBaseName(op.returnType); - + // Use typed select if available, otherwise fall back to Record const selectType = selectTypeName ?? 'Record'; - const returnTypePart = selectTypeName && payloadTypeName - ? `{ ${op.name}: InferSelectResult<${payloadTypeName}, S> }` - : 'unknown'; + const returnTypePart = + selectTypeName && payloadTypeName + ? `{ ${op.name}: InferSelectResult<${payloadTypeName}, S> }` + : 'unknown'; if (hasArgs) { if (selectTypeName) { diff --git a/graphql/codegen/src/cli/codegen/orm/input-types-generator.ts b/graphql/codegen/src/cli/codegen/orm/input-types-generator.ts index 05e1e8343..16779c2c0 100644 --- a/graphql/codegen/src/cli/codegen/orm/input-types-generator.ts +++ b/graphql/codegen/src/cli/codegen/orm/input-types-generator.ts @@ -11,7 +11,11 @@ * Uses ts-morph for robust AST-based code generation. */ import type { SourceFile } from 'ts-morph'; -import type { TypeRegistry, CleanArgument, CleanTable } from '../../../types/schema'; +import type { + TypeRegistry, + CleanArgument, + CleanTable, +} from '../../../types/schema'; import { createProject, createSourceFile, @@ -25,9 +29,11 @@ import { import { getTableNames, getFilterTypeName, + getConditionTypeName, getOrderByTypeName, isRelationField, } from '../utils'; +import { pluralize } from '../../introspect/pluralize'; import { getTypeBaseName } from '../type-resolver'; import { scalarToTsType, scalarToFilterType } from '../scalars'; @@ -41,7 +47,12 @@ export interface GeneratedInputTypesFile { // ============================================================================ /** Fields excluded from Create/Update inputs (auto-generated or system fields) */ -const EXCLUDED_MUTATION_FIELDS = ['id', 'createdAt', 'updatedAt', 'nodeId'] as const; +const EXCLUDED_MUTATION_FIELDS = [ + 'id', + 'createdAt', + 'updatedAt', + 'nodeId', +] as const; // ============================================================================ // Type Conversion Utilities @@ -99,7 +110,15 @@ function isRequired(typeRef: CleanArgument['type']): boolean { // ============================================================================ /** Filter operator sets for different scalar types */ -type FilterOperators = 'equality' | 'distinct' | 'inArray' | 'comparison' | 'string' | 'json' | 'inet' | 'fulltext'; +type FilterOperators = + | 'equality' + | 'distinct' + | 'inArray' + | 'comparison' + | 'string' + | 'json' + | 'inet' + | 'fulltext'; interface ScalarFilterConfig { name: string; @@ -109,25 +128,67 @@ interface ScalarFilterConfig { /** Configuration for all scalar filter types - matches PostGraphile's generated filters */ const SCALAR_FILTER_CONFIGS: ScalarFilterConfig[] = [ - { name: 'StringFilter', tsType: 'string', operators: ['equality', 'distinct', 'inArray', 'comparison', 'string'] }, - { name: 'IntFilter', tsType: 'number', operators: ['equality', 'distinct', 'inArray', 'comparison'] }, - { name: 'FloatFilter', tsType: 'number', operators: ['equality', 'distinct', 'inArray', 'comparison'] }, + { + name: 'StringFilter', + tsType: 'string', + operators: ['equality', 'distinct', 'inArray', 'comparison', 'string'], + }, + { + name: 'IntFilter', + tsType: 'number', + operators: ['equality', 'distinct', 'inArray', 'comparison'], + }, + { + name: 'FloatFilter', + tsType: 'number', + operators: ['equality', 'distinct', 'inArray', 'comparison'], + }, { name: 'BooleanFilter', tsType: 'boolean', operators: ['equality'] }, - { name: 'UUIDFilter', tsType: 'string', operators: ['equality', 'distinct', 'inArray'] }, - { name: 'DatetimeFilter', tsType: 'string', operators: ['equality', 'distinct', 'inArray', 'comparison'] }, - { name: 'DateFilter', tsType: 'string', operators: ['equality', 'distinct', 'inArray', 'comparison'] }, - { name: 'JSONFilter', tsType: 'Record', operators: ['equality', 'distinct', 'json'] }, - { name: 'BigIntFilter', tsType: 'string', operators: ['equality', 'distinct', 'inArray', 'comparison'] }, - { name: 'BigFloatFilter', tsType: 'string', operators: ['equality', 'distinct', 'inArray', 'comparison'] }, + { + name: 'UUIDFilter', + tsType: 'string', + operators: ['equality', 'distinct', 'inArray'], + }, + { + name: 'DatetimeFilter', + tsType: 'string', + operators: ['equality', 'distinct', 'inArray', 'comparison'], + }, + { + name: 'DateFilter', + tsType: 'string', + operators: ['equality', 'distinct', 'inArray', 'comparison'], + }, + { + name: 'JSONFilter', + tsType: 'Record', + operators: ['equality', 'distinct', 'json'], + }, + { + name: 'BigIntFilter', + tsType: 'string', + operators: ['equality', 'distinct', 'inArray', 'comparison'], + }, + { + name: 'BigFloatFilter', + tsType: 'string', + operators: ['equality', 'distinct', 'inArray', 'comparison'], + }, { name: 'BitStringFilter', tsType: 'string', operators: ['equality'] }, - { name: 'InternetAddressFilter', tsType: 'string', operators: ['equality', 'distinct', 'inArray', 'comparison', 'inet'] }, + { + name: 'InternetAddressFilter', + tsType: 'string', + operators: ['equality', 'distinct', 'inArray', 'comparison', 'inet'], + }, { name: 'FullTextFilter', tsType: 'string', operators: ['fulltext'] }, ]; /** * Build filter properties based on operator sets */ -function buildScalarFilterProperties(config: ScalarFilterConfig): InterfaceProperty[] { +function buildScalarFilterProperties( + config: ScalarFilterConfig +): InterfaceProperty[] { const { tsType, operators } = config; const props: InterfaceProperty[] = []; @@ -136,7 +197,7 @@ function buildScalarFilterProperties(config: ScalarFilterConfig): InterfacePrope props.push( { name: 'isNull', type: 'boolean', optional: true }, { name: 'equalTo', type: tsType, optional: true }, - { name: 'notEqualTo', type: tsType, optional: true }, + { name: 'notEqualTo', type: tsType, optional: true } ); } @@ -144,7 +205,7 @@ function buildScalarFilterProperties(config: ScalarFilterConfig): InterfacePrope if (operators.includes('distinct')) { props.push( { name: 'distinctFrom', type: tsType, optional: true }, - { name: 'notDistinctFrom', type: tsType, optional: true }, + { name: 'notDistinctFrom', type: tsType, optional: true } ); } @@ -152,7 +213,7 @@ function buildScalarFilterProperties(config: ScalarFilterConfig): InterfacePrope if (operators.includes('inArray')) { props.push( { name: 'in', type: `${tsType}[]`, optional: true }, - { name: 'notIn', type: `${tsType}[]`, optional: true }, + { name: 'notIn', type: `${tsType}[]`, optional: true } ); } @@ -162,7 +223,7 @@ function buildScalarFilterProperties(config: ScalarFilterConfig): InterfacePrope { name: 'lessThan', type: tsType, optional: true }, { name: 'lessThanOrEqualTo', type: tsType, optional: true }, { name: 'greaterThan', type: tsType, optional: true }, - { name: 'greaterThanOrEqualTo', type: tsType, optional: true }, + { name: 'greaterThanOrEqualTo', type: tsType, optional: true } ); } @@ -184,7 +245,7 @@ function buildScalarFilterProperties(config: ScalarFilterConfig): InterfacePrope { name: 'like', type: 'string', optional: true }, { name: 'notLike', type: 'string', optional: true }, { name: 'likeInsensitive', type: 'string', optional: true }, - { name: 'notLikeInsensitive', type: 'string', optional: true }, + { name: 'notLikeInsensitive', type: 'string', optional: true } ); } @@ -195,7 +256,7 @@ function buildScalarFilterProperties(config: ScalarFilterConfig): InterfacePrope { name: 'containedBy', type: 'Record', optional: true }, { name: 'containsKey', type: 'string', optional: true }, { name: 'containsAllKeys', type: 'string[]', optional: true }, - { name: 'containsAnyKeys', type: 'string[]', optional: true }, + { name: 'containsAnyKeys', type: 'string[]', optional: true } ); } @@ -206,7 +267,7 @@ function buildScalarFilterProperties(config: ScalarFilterConfig): InterfacePrope { name: 'containsOrEqualTo', type: 'string', optional: true }, { name: 'containedBy', type: 'string', optional: true }, { name: 'containedByOrEqualTo', type: 'string', optional: true }, - { name: 'containsOrContainedBy', type: 'string', optional: true }, + { name: 'containsOrContainedBy', type: 'string', optional: true } ); } @@ -238,7 +299,10 @@ function addScalarFilterTypes(sourceFile: SourceFile): void { /** * Check if a type is likely an enum (not a scalar and not ending with Input/Filter/etc) */ -function isLikelyEnumType(typeName: string, typeRegistry: TypeRegistry): boolean { +function isLikelyEnumType( + typeName: string, + typeRegistry: TypeRegistry +): boolean { const typeInfo = typeRegistry.get(typeName); return typeInfo?.kind === 'ENUM'; } @@ -254,7 +318,8 @@ function collectEnumTypesFromTables( for (const table of tables) { for (const field of table.fields) { - const fieldType = typeof field.type === 'string' ? field.type : field.type.gqlType; + const fieldType = + typeof field.type === 'string' ? field.type : field.type.gqlType; // Check if this type is an enum in the registry if (isLikelyEnumType(fieldType, typeRegistry)) { enumTypes.add(fieldType); @@ -299,7 +364,8 @@ function buildEntityProperties(table: CleanTable): InterfaceProperty[] { for (const field of table.fields) { if (isRelationField(field.name, table)) continue; - const fieldType = typeof field.type === 'string' ? field.type : field.type.gqlType; + const fieldType = + typeof field.type === 'string' ? field.type : field.type.gqlType; const tsType = scalarToInputTs(fieldType); const isNullable = field.name !== 'id' && field.name !== 'nodeId'; @@ -318,7 +384,9 @@ function buildEntityProperties(table: CleanTable): InterfaceProperty[] { */ function addEntityType(sourceFile: SourceFile, table: CleanTable): void { const { typeName } = getTableNames(table); - sourceFile.addInterface(createInterface(typeName, buildEntityProperties(table))); + sourceFile.addInterface( + createInterface(typeName, buildEntityProperties(table)) + ); } /** @@ -341,18 +409,22 @@ function addEntityTypes(sourceFile: SourceFile, tables: CleanTable[]): void { function addRelationHelperTypes(sourceFile: SourceFile): void { addSectionComment(sourceFile, 'Relation Helper Types'); - sourceFile.addInterface(createInterface('ConnectionResult', [ - { name: 'nodes', type: 'T[]', optional: false }, - { name: 'totalCount', type: 'number', optional: false }, - { name: 'pageInfo', type: 'PageInfo', optional: false }, - ])); - - sourceFile.addInterface(createInterface('PageInfo', [ - { name: 'hasNextPage', type: 'boolean', optional: false }, - { name: 'hasPreviousPage', type: 'boolean', optional: false }, - { name: 'startCursor', type: 'string | null', optional: true }, - { name: 'endCursor', type: 'string | null', optional: true }, - ])); + sourceFile.addInterface( + createInterface('ConnectionResult', [ + { name: 'nodes', type: 'T[]', optional: false }, + { name: 'totalCount', type: 'number', optional: false }, + { name: 'pageInfo', type: 'PageInfo', optional: false }, + ]) + ); + + sourceFile.addInterface( + createInterface('PageInfo', [ + { name: 'hasNextPage', type: 'boolean', optional: false }, + { name: 'hasPreviousPage', type: 'boolean', optional: false }, + { name: 'startCursor', type: 'string | null', optional: true }, + { name: 'endCursor', type: 'string | null', optional: true }, + ]) + ); } // ============================================================================ @@ -372,7 +444,15 @@ function getRelatedOrderByName( tableByName: Map ): string { const relatedTable = tableByName.get(tableName); - return relatedTable ? getOrderByTypeName(relatedTable) : `${tableName}sOrderBy`; + if (relatedTable) { + return getOrderByTypeName(relatedTable); + } + // For ManyToMany connection types, don't pluralize - just append OrderBy + // These types already have a fixed suffix pattern like "UserUsersByFooManyToMany" + if (tableName.endsWith('ManyToMany')) { + return `${tableName}OrderBy`; + } + return `${pluralize(tableName)}OrderBy`; } function getRelatedFilterName( @@ -394,7 +474,10 @@ function buildEntityRelationProperties( for (const relation of table.relations.belongsTo) { if (!relation.fieldName) continue; - const relatedTypeName = getRelatedTypeName(relation.referencesTable, tableByName); + const relatedTypeName = getRelatedTypeName( + relation.referencesTable, + tableByName + ); properties.push({ name: relation.fieldName, type: `${relatedTypeName} | null`, @@ -404,7 +487,10 @@ function buildEntityRelationProperties( for (const relation of table.relations.hasOne) { if (!relation.fieldName) continue; - const relatedTypeName = getRelatedTypeName(relation.referencedByTable, tableByName); + const relatedTypeName = getRelatedTypeName( + relation.referencedByTable, + tableByName + ); properties.push({ name: relation.fieldName, type: `${relatedTypeName} | null`, @@ -414,7 +500,10 @@ function buildEntityRelationProperties( for (const relation of table.relations.hasMany) { if (!relation.fieldName) continue; - const relatedTypeName = getRelatedTypeName(relation.referencedByTable, tableByName); + const relatedTypeName = getRelatedTypeName( + relation.referencedByTable, + tableByName + ); properties.push({ name: relation.fieldName, type: `ConnectionResult<${relatedTypeName}>`, @@ -424,7 +513,10 @@ function buildEntityRelationProperties( for (const relation of table.relations.manyToMany) { if (!relation.fieldName) continue; - const relatedTypeName = getRelatedTypeName(relation.rightTable, tableByName); + const relatedTypeName = getRelatedTypeName( + relation.rightTable, + tableByName + ); properties.push({ name: relation.fieldName, type: `ConnectionResult<${relatedTypeName}>`, @@ -448,7 +540,10 @@ function addEntityRelationTypes( for (const table of tables) { const { typeName } = getTableNames(table); sourceFile.addInterface( - createInterface(`${typeName}Relations`, buildEntityRelationProperties(table, tableByName)) + createInterface( + `${typeName}Relations`, + buildEntityRelationProperties(table, tableByName) + ) ); } } @@ -456,13 +551,19 @@ function addEntityRelationTypes( /** * Add entity types with relations (intersection types) */ -function addEntityWithRelations(sourceFile: SourceFile, tables: CleanTable[]): void { +function addEntityWithRelations( + sourceFile: SourceFile, + tables: CleanTable[] +): void { addSectionComment(sourceFile, 'Entity Types With Relations'); for (const table of tables) { const { typeName } = getTableNames(table); sourceFile.addTypeAlias( - createTypeAlias(`${typeName}WithRelations`, `${typeName} & ${typeName}Relations`) + createTypeAlias( + `${typeName}WithRelations`, + `${typeName} & ${typeName}Relations` + ) ); } } @@ -490,17 +591,31 @@ function buildSelectTypeBody( // Add belongsTo relations for (const relation of table.relations.belongsTo) { if (relation.fieldName) { - const relatedTypeName = getRelatedTypeName(relation.referencesTable, tableByName); - lines.push(`${relation.fieldName}?: boolean | { select?: ${relatedTypeName}Select };`); + const relatedTypeName = getRelatedTypeName( + relation.referencesTable, + tableByName + ); + lines.push( + `${relation.fieldName}?: boolean | { select?: ${relatedTypeName}Select };` + ); } } // Add hasMany relations for (const relation of table.relations.hasMany) { if (relation.fieldName) { - const relatedTypeName = getRelatedTypeName(relation.referencedByTable, tableByName); - const filterName = getRelatedFilterName(relation.referencedByTable, tableByName); - const orderByName = getRelatedOrderByName(relation.referencedByTable, tableByName); + const relatedTypeName = getRelatedTypeName( + relation.referencedByTable, + tableByName + ); + const filterName = getRelatedFilterName( + relation.referencedByTable, + tableByName + ); + const orderByName = getRelatedOrderByName( + relation.referencedByTable, + tableByName + ); lines.push(`${relation.fieldName}?: boolean | {`); lines.push(` select?: ${relatedTypeName}Select;`); lines.push(` first?: number;`); @@ -513,9 +628,15 @@ function buildSelectTypeBody( // Add manyToMany relations for (const relation of table.relations.manyToMany) { if (relation.fieldName) { - const relatedTypeName = getRelatedTypeName(relation.rightTable, tableByName); + const relatedTypeName = getRelatedTypeName( + relation.rightTable, + tableByName + ); const filterName = getRelatedFilterName(relation.rightTable, tableByName); - const orderByName = getRelatedOrderByName(relation.rightTable, tableByName); + const orderByName = getRelatedOrderByName( + relation.rightTable, + tableByName + ); lines.push(`${relation.fieldName}?: boolean | {`); lines.push(` select?: ${relatedTypeName}Select;`); lines.push(` first?: number;`); @@ -528,8 +649,13 @@ function buildSelectTypeBody( // Add hasOne relations for (const relation of table.relations.hasOne) { if (relation.fieldName) { - const relatedTypeName = getRelatedTypeName(relation.referencedByTable, tableByName); - lines.push(`${relation.fieldName}?: boolean | { select?: ${relatedTypeName}Select };`); + const relatedTypeName = getRelatedTypeName( + relation.referencedByTable, + tableByName + ); + lines.push( + `${relation.fieldName}?: boolean | { select?: ${relatedTypeName}Select };` + ); } } @@ -550,7 +676,10 @@ function addEntitySelectTypes( for (const table of tables) { const { typeName } = getTableNames(table); sourceFile.addTypeAlias( - createTypeAlias(`${typeName}Select`, buildSelectTypeBody(table, tableByName)) + createTypeAlias( + `${typeName}Select`, + buildSelectTypeBody(table, tableByName) + ) ); } } @@ -574,7 +703,8 @@ function buildTableFilterProperties(table: CleanTable): InterfaceProperty[] { const properties: InterfaceProperty[] = []; for (const field of table.fields) { - const fieldType = typeof field.type === 'string' ? field.type : field.type.gqlType; + const fieldType = + typeof field.type === 'string' ? field.type : field.type.gqlType; if (isRelationField(field.name, table)) continue; const filterType = getFilterTypeForField(fieldType); @@ -592,12 +722,62 @@ function buildTableFilterProperties(table: CleanTable): InterfaceProperty[] { /** * Add table filter types */ -function addTableFilterTypes(sourceFile: SourceFile, tables: CleanTable[]): void { +function addTableFilterTypes( + sourceFile: SourceFile, + tables: CleanTable[] +): void { addSectionComment(sourceFile, 'Table Filter Types'); for (const table of tables) { const filterName = getFilterTypeName(table); - sourceFile.addInterface(createInterface(filterName, buildTableFilterProperties(table))); + sourceFile.addInterface( + createInterface(filterName, buildTableFilterProperties(table)) + ); + } +} + +// ============================================================================ +// Condition Types Generator (AST-based) +// ============================================================================ + +/** + * Build properties for a table condition interface + * Condition types are simpler than Filter types - they use direct value equality + */ +function buildTableConditionProperties(table: CleanTable): InterfaceProperty[] { + const properties: InterfaceProperty[] = []; + + for (const field of table.fields) { + const fieldType = + typeof field.type === 'string' ? field.type : field.type.gqlType; + if (isRelationField(field.name, table)) continue; + + // Condition types use the raw scalar type (nullable) + const tsType = scalarToTsType(fieldType, { unknownScalar: 'unknown' }); + properties.push({ + name: field.name, + type: `${tsType} | null`, + optional: true, + }); + } + + return properties; +} + +/** + * Add table condition types + */ +function addTableConditionTypes( + sourceFile: SourceFile, + tables: CleanTable[] +): void { + addSectionComment(sourceFile, 'Table Condition Types'); + + for (const table of tables) { + const conditionName = getConditionTypeName(table); + sourceFile.addInterface( + createInterface(conditionName, buildTableConditionProperties(table)) + ); } } @@ -631,7 +811,9 @@ function addOrderByTypes(sourceFile: SourceFile, tables: CleanTable[]): void { for (const table of tables) { // Use getOrderByTypeName which respects table.inflection.orderByType const enumName = getOrderByTypeName(table); - sourceFile.addTypeAlias(createTypeAlias(enumName, buildOrderByUnion(table))); + sourceFile.addTypeAlias( + createTypeAlias(enumName, buildOrderByUnion(table)) + ); } } @@ -642,14 +824,22 @@ function addOrderByTypes(sourceFile: SourceFile, tables: CleanTable[]): void { /** * Build the nested data object fields for Create input */ -function buildCreateDataFields(table: CleanTable): Array<{ name: string; type: string; optional: boolean }> { +function buildCreateDataFields( + table: CleanTable +): Array<{ name: string; type: string; optional: boolean }> { const fields: Array<{ name: string; type: string; optional: boolean }> = []; for (const field of table.fields) { - if (EXCLUDED_MUTATION_FIELDS.includes(field.name as typeof EXCLUDED_MUTATION_FIELDS[number])) continue; + if ( + EXCLUDED_MUTATION_FIELDS.includes( + field.name as (typeof EXCLUDED_MUTATION_FIELDS)[number] + ) + ) + continue; if (isRelationField(field.name, table)) continue; - const fieldType = typeof field.type === 'string' ? field.type : field.type.gqlType; + const fieldType = + typeof field.type === 'string' ? field.type : field.type.gqlType; const tsType = scalarToInputTs(fieldType); const isOptional = !field.name.endsWith('Id'); @@ -661,7 +851,7 @@ function buildCreateDataFields(table: CleanTable): Array<{ name: string; type: s /** * Generate Create input interface as formatted string. - * + * * ts-morph doesn't handle nested object types in interface properties well, * so we build this manually with pre-doubled indentation (4→2, 8→4) since * getMinimalFormattedOutput halves all indentation. @@ -669,21 +859,21 @@ function buildCreateDataFields(table: CleanTable): Array<{ name: string; type: s function buildCreateInputInterface(table: CleanTable): string { const { typeName, singularName } = getTableNames(table); const fields = buildCreateDataFields(table); - + const lines = [ `export interface Create${typeName}Input {`, ` clientMutationId?: string;`, ` ${singularName}: {`, ]; - + for (const field of fields) { const opt = field.optional ? '?' : ''; lines.push(` ${field.name}${opt}: ${field.type};`); } - + lines.push(' };'); lines.push('}'); - + return lines.join('\n'); } @@ -694,13 +884,23 @@ function buildPatchProperties(table: CleanTable): InterfaceProperty[] { const properties: InterfaceProperty[] = []; for (const field of table.fields) { - if (EXCLUDED_MUTATION_FIELDS.includes(field.name as typeof EXCLUDED_MUTATION_FIELDS[number])) continue; + if ( + EXCLUDED_MUTATION_FIELDS.includes( + field.name as (typeof EXCLUDED_MUTATION_FIELDS)[number] + ) + ) + continue; if (isRelationField(field.name, table)) continue; - const fieldType = typeof field.type === 'string' ? field.type : field.type.gqlType; + const fieldType = + typeof field.type === 'string' ? field.type : field.type.gqlType; const tsType = scalarToInputTs(fieldType); - properties.push({ name: field.name, type: `${tsType} | null`, optional: true }); + properties.push({ + name: field.name, + type: `${tsType} | null`, + optional: true, + }); } return properties; @@ -717,26 +917,35 @@ function addCrudInputTypes(sourceFile: SourceFile, table: CleanTable): void { sourceFile.addStatements(buildCreateInputInterface(table)); // Patch interface - sourceFile.addInterface(createInterface(patchName, buildPatchProperties(table))); + sourceFile.addInterface( + createInterface(patchName, buildPatchProperties(table)) + ); // Update input - sourceFile.addInterface(createInterface(`Update${typeName}Input`, [ - { name: 'clientMutationId', type: 'string', optional: true }, - { name: 'id', type: 'string', optional: false }, - { name: 'patch', type: patchName, optional: false }, - ])); + sourceFile.addInterface( + createInterface(`Update${typeName}Input`, [ + { name: 'clientMutationId', type: 'string', optional: true }, + { name: 'id', type: 'string', optional: false }, + { name: 'patch', type: patchName, optional: false }, + ]) + ); // Delete input - sourceFile.addInterface(createInterface(`Delete${typeName}Input`, [ - { name: 'clientMutationId', type: 'string', optional: true }, - { name: 'id', type: 'string', optional: false }, - ])); + sourceFile.addInterface( + createInterface(`Delete${typeName}Input`, [ + { name: 'clientMutationId', type: 'string', optional: true }, + { name: 'id', type: 'string', optional: false }, + ]) + ); } /** * Add all CRUD input types */ -function addAllCrudInputTypes(sourceFile: SourceFile, tables: CleanTable[]): void { +function addAllCrudInputTypes( + sourceFile: SourceFile, + tables: CleanTable[] +): void { addSectionComment(sourceFile, 'CRUD Input Types'); for (const table of tables) { @@ -828,7 +1037,9 @@ function addCustomInputTypes( const typeInfo = typeRegistry.get(typeName); if (!typeInfo) { sourceFile.addStatements(`// Type '${typeName}' not found in schema`); - sourceFile.addTypeAlias(createTypeAlias(typeName, 'Record')); + sourceFile.addTypeAlias( + createTypeAlias(typeName, 'Record') + ); continue; } @@ -842,7 +1053,11 @@ function addCustomInputTypes( // Follow nested Input types const baseType = getTypeBaseName(field.type); - if (baseType && baseType.endsWith('Input') && !generatedTypes.has(baseType)) { + if ( + baseType && + baseType.endsWith('Input') && + !generatedTypes.has(baseType) + ) { typesToGenerate.add(baseType); } } @@ -872,7 +1087,10 @@ export function collectPayloadTypeNames( for (const op of operations) { const baseName = getTypeBaseName(op.returnType); - if (baseName && (baseName.endsWith('Payload') || !baseName.endsWith('Connection'))) { + if ( + baseName && + (baseName.endsWith('Payload') || !baseName.endsWith('Connection')) + ) { payloadTypes.add(baseName); } } @@ -895,8 +1113,21 @@ function addPayloadTypes( const typesToGenerate = new Set(Array.from(usedPayloadTypes)); const skipTypes = new Set([ - 'String', 'Int', 'Float', 'Boolean', 'ID', 'UUID', 'Datetime', 'Date', - 'Time', 'JSON', 'BigInt', 'BigFloat', 'Cursor', 'Query', 'Mutation', + 'String', + 'Int', + 'Float', + 'Boolean', + 'ID', + 'UUID', + 'Datetime', + 'Date', + 'Time', + 'JSON', + 'BigInt', + 'BigFloat', + 'Cursor', + 'Query', + 'Mutation', ]); // Process all types - no artificial limit @@ -930,7 +1161,11 @@ function addPayloadTypes( }); // Follow nested OBJECT types - if (baseType && !generatedTypes.has(baseType) && !skipTypes.has(baseType)) { + if ( + baseType && + !generatedTypes.has(baseType) && + !skipTypes.has(baseType) + ) { const nestedType = typeRegistry.get(baseType); if (nestedType?.kind === 'OBJECT') { typesToGenerate.add(baseType); @@ -948,14 +1183,18 @@ function addPayloadTypes( const nestedType = baseType ? typeRegistry.get(baseType) : null; if (nestedType?.kind === 'OBJECT') { - selectLines.push(`${field.name}?: boolean | { select?: ${baseType}Select };`); + selectLines.push( + `${field.name}?: boolean | { select?: ${baseType}Select };` + ); } else { selectLines.push(`${field.name}?: boolean;`); } } selectLines.push('}'); - sourceFile.addTypeAlias(createTypeAlias(`${typeName}Select`, selectLines.join('\n'))); + sourceFile.addTypeAlias( + createTypeAlias(`${typeName}Select`, selectLines.join('\n')) + ); } } @@ -976,7 +1215,10 @@ export function generateInputTypesFile( const sourceFile = createSourceFile(project, 'input-types.ts'); // Add file header - sourceFile.insertText(0, createFileHeader('GraphQL types for ORM client') + '\n'); + sourceFile.insertText( + 0, + createFileHeader('GraphQL types for ORM client') + '\n' + ); // 1. Scalar filter types addScalarFilterTypes(sourceFile); @@ -1000,6 +1242,9 @@ export function generateInputTypesFile( // 4. Table filter types addTableFilterTypes(sourceFile, tables); + // 4b. Table condition types (simple equality filter) + addTableConditionTypes(sourceFile, tables); + // 5. OrderBy types addOrderByTypes(sourceFile, tables); @@ -1020,7 +1265,12 @@ export function generateInputTypesFile( alreadyGeneratedTypes.add(typeName); } } - addPayloadTypes(sourceFile, typeRegistry, usedPayloadTypes, alreadyGeneratedTypes); + addPayloadTypes( + sourceFile, + typeRegistry, + usedPayloadTypes, + alreadyGeneratedTypes + ); } return { diff --git a/graphql/codegen/src/cli/codegen/orm/model-generator.ts b/graphql/codegen/src/cli/codegen/orm/model-generator.ts index 72b13e4fd..b61f37d1e 100644 --- a/graphql/codegen/src/cli/codegen/orm/model-generator.ts +++ b/graphql/codegen/src/cli/codegen/orm/model-generator.ts @@ -23,7 +23,12 @@ import { createFileHeader, createImport, } from '../ts-ast'; -import { getTableNames, getOrderByTypeName, getFilterTypeName, lcFirst } from '../utils'; +import { + getTableNames, + getOrderByTypeName, + getFilterTypeName, + lcFirst, +} from '../utils'; export interface GeneratedModelFile { fileName: string; @@ -44,7 +49,8 @@ export function generateModelFile( const modelName = `${typeName}Model`; // Avoid "index.ts" which clashes with barrel file const baseFileName = lcFirst(typeName); - const fileName = baseFileName === 'index' ? `${baseFileName}Model.ts` : `${baseFileName}.ts`; + const fileName = + baseFileName === 'index' ? `${baseFileName}Model.ts` : `${baseFileName}.ts`; const entityLower = singularName; // Type names for this entity - use inflection from table metadata @@ -125,9 +131,13 @@ export function generateModelFile( ); // Add Model class - sourceFile.addStatements('\n// ============================================================================'); + sourceFile.addStatements( + '\n// ============================================================================' + ); sourceFile.addStatements('// Model Class'); - sourceFile.addStatements('// ============================================================================\n'); + sourceFile.addStatements( + '// ============================================================================\n' + ); // Generate the model class const classDeclaration = sourceFile.addClass({ @@ -171,7 +181,8 @@ export function generateModelFile( before: args?.before, offset: args?.offset, }, - '${whereTypeName}' + '${whereTypeName}', + '${orderByTypeName}' ); return new QueryBuilder({ client: this.client, diff --git a/graphql/codegen/src/cli/codegen/orm/query-builder.ts b/graphql/codegen/src/cli/codegen/orm/query-builder.ts index 6098d6251..0f7d1cc8a 100644 --- a/graphql/codegen/src/cli/codegen/orm/query-builder.ts +++ b/graphql/codegen/src/cli/codegen/orm/query-builder.ts @@ -250,7 +250,8 @@ export function buildFindManyDocument( before?: string; offset?: number; }, - filterTypeName: string + filterTypeName: string, + orderByTypeName: string ): { document: string; variables: Record } { const selections = select ? buildSelections(select) : 'id'; @@ -265,7 +266,7 @@ export function buildFindManyDocument( variables.where = args.where; } if (args.orderBy && args.orderBy.length > 0) { - varDefs.push(`$orderBy: [${operationName}OrderBy!]`); + varDefs.push(`$orderBy: [${orderByTypeName}!]`); queryArgs.push('orderBy: $orderBy'); variables.orderBy = args.orderBy; } diff --git a/graphql/codegen/src/cli/codegen/schema-types-generator.ts b/graphql/codegen/src/cli/codegen/schema-types-generator.ts index d1fff0763..38fddf63f 100644 --- a/graphql/codegen/src/cli/codegen/schema-types-generator.ts +++ b/graphql/codegen/src/cli/codegen/schema-types-generator.ts @@ -12,7 +12,11 @@ * Uses ts-morph for robust AST-based code generation. */ import type { SourceFile } from 'ts-morph'; -import type { TypeRegistry, CleanArgument, ResolvedType } from '../../types/schema'; +import type { + TypeRegistry, + CleanArgument, + ResolvedType, +} from '../../types/schema'; import { createProject, createSourceFile, @@ -24,7 +28,11 @@ import { type InterfaceProperty, } from './ts-ast'; import { getTypeBaseName } from './type-resolver'; -import { scalarToTsType, SCALAR_NAMES, BASE_FILTER_TYPE_NAMES } from './scalars'; +import { + scalarToTsType, + SCALAR_NAMES, + BASE_FILTER_TYPE_NAMES, +} from './scalars'; export interface GeneratedSchemaTypesFile { fileName: string; @@ -69,13 +77,13 @@ const SKIP_TYPES = new Set([ /** * Type name patterns to skip (regex patterns) * - * Note: We intentionally DO NOT skip Connection, Edge, Filter, or Patch types - * because they may be referenced by custom operations or payload types. - * Only skip Condition and OrderBy which are typically not needed. + * Note: We intentionally DO NOT skip Connection, Edge, Filter, Patch, Condition, + * or OrderBy types because they may be referenced by custom operations. + * Previously Condition and OrderBy were skipped but they ARE needed for + * custom queries like `schemata`, `apiSchemata`, etc. */ -const SKIP_TYPE_PATTERNS = [ - /Condition$/, // e.g., UserCondition (filter conditions are separate) - /OrderBy$/, // e.g., UsersOrderBy (ordering is handled separately) +const SKIP_TYPE_PATTERNS: RegExp[] = [ + // Currently no patterns are skipped - all types may be needed by custom operations ]; // ============================================================================ @@ -280,7 +288,8 @@ function addUnionTypes( for (const typeName of unionTypesToGenerate) { const typeInfo = typeRegistry.get(typeName); if (!typeInfo || typeInfo.kind !== 'UNION') continue; - if (!typeInfo.possibleTypes || typeInfo.possibleTypes.length === 0) continue; + if (!typeInfo.possibleTypes || typeInfo.possibleTypes.length === 0) + continue; // Generate union type as TypeScript union const unionMembers = typeInfo.possibleTypes.join(' | '); @@ -352,7 +361,10 @@ function addPayloadObjectTypes( const referencedTableTypes = new Set(); // Dynamically collect return types from Query and Mutation - const typesToGenerate = collectReturnTypesFromRootTypes(typeRegistry, tableTypeNames); + const typesToGenerate = collectReturnTypesFromRootTypes( + typeRegistry, + tableTypeNames + ); // Filter out already generated types for (const typeName of Array.from(typesToGenerate)) { @@ -460,7 +472,12 @@ export function generateSchemaTypesFile( generatedTypes = new Set([...generatedTypes, ...enumTypes]); // 2. Generate UNION types - const unionTypes = addUnionTypes(sourceFile, typeRegistry, tableTypeNames, generatedTypes); + const unionTypes = addUnionTypes( + sourceFile, + typeRegistry, + tableTypeNames, + generatedTypes + ); generatedTypes = new Set([...generatedTypes, ...unionTypes]); // 3. Generate INPUT_OBJECT types @@ -481,7 +498,9 @@ export function generateSchemaTypesFile( ); // 5. Add imports from types.ts (table entity types + base filter types) - const referencedTableTypes = Array.from(payloadResult.referencedTableTypes).sort(); + const referencedTableTypes = Array.from( + payloadResult.referencedTableTypes + ).sort(); // Always import base filter types since generated Filter interfaces reference them const baseFilterImports = Array.from(BASE_FILTER_TYPE_NAMES).sort(); const allTypesImports = [...referencedTableTypes, ...baseFilterImports]; diff --git a/graphql/codegen/src/cli/codegen/utils.ts b/graphql/codegen/src/cli/codegen/utils.ts index d932b5e11..a5d099cc0 100644 --- a/graphql/codegen/src/cli/codegen/utils.ts +++ b/graphql/codegen/src/cli/codegen/utils.ts @@ -1,8 +1,13 @@ /** * Codegen utilities - naming conventions, type mapping, and helpers */ -import type { CleanTable, CleanField, CleanFieldType } from '../../types/schema'; +import type { + CleanTable, + CleanField, + CleanFieldType, +} from '../../types/schema'; import { scalarToTsType, scalarToFilterType } from './scalars'; +import { pluralize } from '../introspect/pluralize'; // ============================================================================ // String manipulation @@ -62,7 +67,10 @@ export interface TableNames { export function getTableNames(table: CleanTable): TableNames { const typeName = table.name; const singularName = table.inflection?.tableFieldName || lcFirst(typeName); - const pluralName = table.query?.all || table.inflection?.allRows || singularName + 's'; + const pluralName = + table.query?.all || + table.inflection?.allRows || + lcFirst(pluralize(typeName)); const pluralTypeName = ucFirst(pluralName); return { @@ -164,14 +172,20 @@ export function getDeleteMutationFileName(table: CleanTable): string { * Uses inflection from _meta, falls back to convention */ export function getAllRowsQueryName(table: CleanTable): string { - return table.query?.all || table.inflection?.allRows || lcFirst(table.name) + 's'; + return ( + table.query?.all || + table.inflection?.allRows || + lcFirst(pluralize(table.name)) + ); } /** * Get the GraphQL query name for fetching single row */ export function getSingleRowQueryName(table: CleanTable): string { - return table.query?.one || table.inflection?.tableFieldName || lcFirst(table.name); + return ( + table.query?.one || table.inflection?.tableFieldName || lcFirst(table.name) + ); } /** @@ -209,10 +223,18 @@ export function getFilterTypeName(table: CleanTable): string { /** * Get PostGraphile OrderBy enum type name - * e.g., "CarsOrderBy" + * e.g., "CarsOrderBy", "AddressesOrderBy" */ export function getOrderByTypeName(table: CleanTable): string { - return table.inflection?.orderByType || `${table.name}sOrderBy`; + return table.inflection?.orderByType || `${pluralize(table.name)}OrderBy`; +} + +/** + * Get PostGraphile Condition type name (simple equality filter) + * e.g., "CarCondition", "AddressCondition" + */ +export function getConditionTypeName(table: CleanTable): string { + return table.inflection?.conditionType || `${table.name}Condition`; } /** @@ -280,7 +302,10 @@ export function fieldTypeToTs(fieldType: CleanFieldType): string { * @param gqlType - The GraphQL type string (e.g., "String", "UUID") * @param isArray - Whether this is an array type */ -export function getScalarFilterType(gqlType: string, isArray = false): string | null { +export function getScalarFilterType( + gqlType: string, + isArray = false +): string | null { const cleanType = gqlType.replace(/!/g, ''); return scalarToFilterType(cleanType, isArray); } @@ -329,13 +354,15 @@ export function getPrimaryKeyInfo(table: CleanTable): PrimaryKeyField[] { const pk = table.constraints?.primaryKey?.[0]; if (!pk || pk.fields.length === 0) { // Fallback: try to find 'id' field in table fields - const idField = table.fields.find(f => f.name.toLowerCase() === 'id'); + const idField = table.fields.find((f) => f.name.toLowerCase() === 'id'); if (idField) { - return [{ - name: idField.name, - gqlType: idField.type.gqlType, - tsType: fieldTypeToTs(idField.type), - }]; + return [ + { + name: idField.name, + gqlType: idField.type.gqlType, + tsType: fieldTypeToTs(idField.type), + }, + ]; } // Last resort: assume 'id' of type string (UUID) return [{ name: 'id', gqlType: 'UUID', tsType: 'string' }]; diff --git a/graphql/codegen/src/cli/commands/generate-orm.ts b/graphql/codegen/src/cli/commands/generate-orm.ts index 5baf4b6e6..07df2febc 100644 --- a/graphql/codegen/src/cli/commands/generate-orm.ts +++ b/graphql/codegen/src/cli/commands/generate-orm.ts @@ -1,26 +1,19 @@ /** - * Generate ORM command - generates Prisma-like ORM client + * Generate ORM command - generates Prisma-like ORM client from GraphQL schema * * This command: - * 1. Fetches _meta query for table-based CRUD operations - * 2. Fetches __schema introspection for custom operations + * 1. Fetches schema from endpoint or loads from file + * 2. Infers table metadata from introspection (replaces _meta) * 3. Generates a Prisma-like ORM client with fluent API */ import type { GraphQLSDKConfig, ResolvedConfig } from '../../types/config'; import { resolveConfig } from '../../types/config'; -import { fetchMeta, validateEndpoint } from '../introspect/fetch-meta'; -import { fetchSchema } from '../introspect/fetch-schema'; import { - transformMetaToCleanTables, - filterTables, -} from '../introspect/transform'; -import { - transformSchemaToOperations, - filterOperations, - getTableOperationNames, - getCustomOperations, -} from '../introspect/transform-schema'; + createSchemaSource, + validateSourceOptions, +} from '../introspect/source'; +import { runCodegenPipeline, validateTablesFound } from './shared'; import { findConfigFile, loadConfigFile } from './init'; import { writeGeneratedFiles } from './generate'; import { generateOrm } from '../codegen/orm'; @@ -30,6 +23,8 @@ export interface GenerateOrmOptions { config?: string; /** GraphQL endpoint URL (overrides config) */ endpoint?: string; + /** Path to GraphQL schema file (.graphql) */ + schema?: string; /** Output directory (overrides config) */ output?: string; /** Authorization header */ @@ -75,151 +70,84 @@ export async function generateOrmCommand( // Use ORM output directory if specified, otherwise default const outputDir = options.output || config.orm?.output || './generated/orm'; - log(` Endpoint: ${config.endpoint}`); + // Log source + if (config.schema) { + log(` Schema: ${config.schema}`); + } else { + log(` Endpoint: ${config.endpoint}`); + } log(` Output: ${outputDir}`); - // 2. Validate endpoint - const endpointValidation = validateEndpoint(config.endpoint); - if (!endpointValidation.valid) { + // 2. Create schema source + const sourceValidation = validateSourceOptions({ + endpoint: config.endpoint || undefined, + schema: config.schema || undefined, + }); + if (!sourceValidation.valid) { return { success: false, - message: `Invalid endpoint: ${endpointValidation.error}`, + message: sourceValidation.error!, }; } - // Build authorization header if provided - const authHeader = options.authorization || config.headers['Authorization']; - - // 3. Fetch _meta for table-based operations - log('Fetching schema metadata (_meta)...'); - - const metaResult = await fetchMeta({ - endpoint: config.endpoint, - authorization: authHeader, + const source = createSchemaSource({ + endpoint: config.endpoint || undefined, + schema: config.schema || undefined, + authorization: options.authorization || config.headers['Authorization'], headers: config.headers, - timeout: 30000, }); - if (!metaResult.success) { + // 3. Run the codegen pipeline + let pipelineResult; + try { + pipelineResult = await runCodegenPipeline({ + source, + config, + verbose: options.verbose, + skipCustomOperations: options.skipCustomOperations, + }); + } catch (err) { return { success: false, - message: `Failed to fetch _meta: ${metaResult.error}`, + message: `Failed to fetch schema: ${err instanceof Error ? err.message : 'Unknown error'}`, }; } - // 4. Transform to CleanTable[] - log('Transforming table schema...'); - let tables = transformMetaToCleanTables(metaResult.data!); - log(` Found ${tables.length} tables`); - - // 5. Filter tables - tables = filterTables(tables, config.tables.include, config.tables.exclude); - log(` After filtering: ${tables.length} tables`); + const { tables, customOperations, stats } = pipelineResult; - if (tables.length === 0) { + // 4. Validate tables found + const tablesValidation = validateTablesFound(tables); + if (!tablesValidation.valid) { return { success: false, - message: - 'No tables found after filtering. Check your include/exclude patterns.', + message: tablesValidation.error!, }; } - // Get table operation names for filtering custom operations - const tableOperationNames = getTableOperationNames(tables); - - // 6. Fetch __schema for custom operations (unless skipped) - let customQueries: string[] = []; - let customMutations: string[] = []; - let customOperationsData: - | { - queries: ReturnType; - mutations: ReturnType; - typeRegistry: ReturnType['typeRegistry']; - } - | undefined; - - if (!options.skipCustomOperations) { - log('Fetching schema introspection (__schema)...'); - - const schemaResult = await fetchSchema({ - endpoint: config.endpoint, - authorization: authHeader, - headers: config.headers, - timeout: 30000, - }); - - if (schemaResult.success && schemaResult.data) { - log('Transforming custom operations...'); - - // Transform to CleanOperation[] - const { queries: allQueries, mutations: allMutations, typeRegistry } = - transformSchemaToOperations(schemaResult.data); - - log( - ` Found ${allQueries.length} queries and ${allMutations.length} mutations total` - ); - - // Filter by config include/exclude - const filteredQueries = filterOperations( - allQueries, - config.queries.include, - config.queries.exclude - ); - const filteredMutations = filterOperations( - allMutations, - config.mutations.include, - config.mutations.exclude - ); - - log( - ` After config filtering: ${filteredQueries.length} queries, ${filteredMutations.length} mutations` - ); - - // Remove table operations (already handled by table generators) - const customQueriesOps = getCustomOperations( - filteredQueries, - tableOperationNames - ); - const customMutationsOps = getCustomOperations( - filteredMutations, - tableOperationNames - ); - - log( - ` Custom operations: ${customQueriesOps.length} queries, ${customMutationsOps.length} mutations` - ); - - customQueries = customQueriesOps.map((q) => q.name); - customMutations = customMutationsOps.map((m) => m.name); - - customOperationsData = { - queries: customQueriesOps, - mutations: customMutationsOps, - typeRegistry, - }; - } else { - log(` Warning: Could not fetch __schema: ${schemaResult.error}`); - log(' Continuing with table-only generation...'); - } - } - - // 7. Generate ORM code + // 5. Generate ORM code console.log('Generating code...'); - const { files: generatedFiles, stats } = generateOrm({ + const { files: generatedFiles, stats: genStats } = generateOrm({ tables, - customOperations: customOperationsData, + customOperations: { + queries: customOperations.queries, + mutations: customOperations.mutations, + typeRegistry: customOperations.typeRegistry, + }, config, }); - console.log(`Generated ${stats.totalFiles} files`); + console.log(`Generated ${genStats.totalFiles} files`); + + log(` ${genStats.tables} table models`); + log(` ${genStats.customQueries} custom query operations`); + log(` ${genStats.customMutations} custom mutation operations`); - log(` ${stats.tables} table models`); - log(` ${stats.customQueries} custom query operations`); - log(` ${stats.customMutations} custom mutation operations`); + const customQueries = customOperations.queries.map((q) => q.name); + const customMutations = customOperations.mutations.map((m) => m.name); if (options.dryRun) { return { success: true, - message: `Dry run complete. Would generate ${generatedFiles.length} files for ${tables.length} tables and ${customQueries.length + customMutations.length} custom operations.`, + message: `Dry run complete. Would generate ${generatedFiles.length} files for ${tables.length} tables and ${stats.customQueries + stats.customMutations} custom operations.`, tables: tables.map((t) => t.name), customQueries, customMutations, @@ -227,13 +155,13 @@ export async function generateOrmCommand( }; } - // 8. Write files + // 6. Write files log('Writing files...'); - const writeResult = await writeGeneratedFiles( - generatedFiles, - outputDir, - ['models', 'query', 'mutation'] - ); + const writeResult = await writeGeneratedFiles(generatedFiles, outputDir, [ + 'models', + 'query', + 'mutation', + ]); if (!writeResult.success) { return { @@ -283,7 +211,8 @@ async function loadConfig( // Override with CLI options const mergedConfig: GraphQLSDKConfig = { - endpoint: options.endpoint || baseConfig.endpoint || '', + endpoint: options.endpoint || baseConfig.endpoint, + schema: options.schema || baseConfig.schema, output: options.output || baseConfig.output, headers: baseConfig.headers, tables: baseConfig.tables, @@ -296,11 +225,12 @@ async function loadConfig( orm: baseConfig.orm, }; - if (!mergedConfig.endpoint) { + // Validate at least one source is provided + if (!mergedConfig.endpoint && !mergedConfig.schema) { return { success: false, error: - 'No endpoint specified. Use --endpoint or create a config file with "graphql-codegen init".', + 'No source specified. Use --endpoint or --schema, or create a config file with "graphql-codegen init".', }; } @@ -309,4 +239,3 @@ async function loadConfig( return { success: true, config }; } - diff --git a/graphql/codegen/src/cli/commands/generate.ts b/graphql/codegen/src/cli/commands/generate.ts index 3942d1640..83fdb05e9 100644 --- a/graphql/codegen/src/cli/commands/generate.ts +++ b/graphql/codegen/src/cli/commands/generate.ts @@ -1,11 +1,10 @@ /** - * Generate command - introspects endpoint and generates SDK + * Generate command - generates SDK from GraphQL schema * * This command: - * 1. Fetches _meta query for table-based CRUD operations - * 2. Fetches __schema introspection for ALL operations - * 3. Filters out table operations from custom operations to avoid duplicates - * 4. Generates hooks for both table CRUD and custom operations + * 1. Fetches schema from endpoint or loads from file + * 2. Infers table metadata from introspection (replaces _meta) + * 3. Generates hooks for both table CRUD and custom operations */ import * as fs from 'node:fs'; import * as path from 'node:path'; @@ -13,18 +12,11 @@ import * as prettier from 'prettier'; import type { GraphQLSDKConfig, ResolvedConfig } from '../../types/config'; import { resolveConfig } from '../../types/config'; -import { fetchMeta, validateEndpoint } from '../introspect/fetch-meta'; -import { fetchSchema } from '../introspect/fetch-schema'; import { - transformMetaToCleanTables, - filterTables, -} from '../introspect/transform'; -import { - transformSchemaToOperations, - filterOperations, - getTableOperationNames, - getCustomOperations, -} from '../introspect/transform-schema'; + createSchemaSource, + validateSourceOptions, +} from '../introspect/source'; +import { runCodegenPipeline, validateTablesFound } from './shared'; import { findConfigFile, loadConfigFile } from './init'; import { generate } from '../codegen'; @@ -33,6 +25,8 @@ export interface GenerateOptions { config?: string; /** GraphQL endpoint URL (overrides config) */ endpoint?: string; + /** Path to GraphQL schema file (.graphql) */ + schema?: string; /** Output directory (overrides config) */ output?: string; /** Authorization header */ @@ -74,142 +68,86 @@ export async function generateCommand( } const config = configResult.config!; - log(` Endpoint: ${config.endpoint}`); + + // Log source + if (config.schema) { + log(` Schema: ${config.schema}`); + } else { + log(` Endpoint: ${config.endpoint}`); + } log(` Output: ${config.output}`); - // 2. Validate endpoint - const endpointValidation = validateEndpoint(config.endpoint); - if (!endpointValidation.valid) { + // 2. Create schema source + const sourceValidation = validateSourceOptions({ + endpoint: config.endpoint || undefined, + schema: config.schema || undefined, + }); + if (!sourceValidation.valid) { return { success: false, - message: `Invalid endpoint: ${endpointValidation.error}`, + message: sourceValidation.error!, }; } - // Build authorization header if provided - const authHeader = options.authorization || config.headers['Authorization']; - - // 3. Fetch _meta for table-based operations - log('Fetching schema metadata (_meta)...'); - - const metaResult = await fetchMeta({ - endpoint: config.endpoint, - authorization: authHeader, + const source = createSchemaSource({ + endpoint: config.endpoint || undefined, + schema: config.schema || undefined, + authorization: options.authorization || config.headers['Authorization'], headers: config.headers, - timeout: 30000, }); - if (!metaResult.success) { + // 3. Run the codegen pipeline + let pipelineResult; + try { + pipelineResult = await runCodegenPipeline({ + source, + config, + verbose: options.verbose, + skipCustomOperations: options.skipCustomOperations, + }); + } catch (err) { return { success: false, - message: `Failed to fetch _meta: ${metaResult.error}`, + message: `Failed to fetch schema: ${err instanceof Error ? err.message : 'Unknown error'}`, }; } - // 4. Transform to CleanTable[] - log('Transforming table schema...'); - let tables = transformMetaToCleanTables(metaResult.data!); - log(` Found ${tables.length} tables`); + const { tables, customOperations, stats } = pipelineResult; - // 5. Filter tables - tables = filterTables( - tables, - config.tables.include, - config.tables.exclude - ); - log(` After filtering: ${tables.length} tables`); - - if (tables.length === 0) { + // 4. Validate tables found + const tablesValidation = validateTablesFound(tables); + if (!tablesValidation.valid) { return { success: false, - message: - 'No tables found after filtering. Check your include/exclude patterns.', + message: tablesValidation.error!, }; } - // Get table operation names for filtering custom operations - const tableOperationNames = getTableOperationNames(tables); - - // 6. Fetch __schema for custom operations (unless skipped) - let customQueries: string[] = []; - let customMutations: string[] = []; - let customOperationsData: { - queries: ReturnType; - mutations: ReturnType; - typeRegistry: ReturnType['typeRegistry']; - } | undefined; - - if (!options.skipCustomOperations) { - log('Fetching schema introspection (__schema)...'); - - const schemaResult = await fetchSchema({ - endpoint: config.endpoint, - authorization: authHeader, - headers: config.headers, - timeout: 30000, - }); - - if (schemaResult.success && schemaResult.data) { - log('Transforming custom operations...'); - - // Transform to CleanOperation[] - const { queries: allQueries, mutations: allMutations, typeRegistry } = - transformSchemaToOperations(schemaResult.data); - - log(` Found ${allQueries.length} queries and ${allMutations.length} mutations total`); - - // Filter by config include/exclude - const filteredQueries = filterOperations( - allQueries, - config.queries.include, - config.queries.exclude - ); - const filteredMutations = filterOperations( - allMutations, - config.mutations.include, - config.mutations.exclude - ); - - log(` After config filtering: ${filteredQueries.length} queries, ${filteredMutations.length} mutations`); - - // Remove table operations (already handled by table generators) - const customQueriesOps = getCustomOperations(filteredQueries, tableOperationNames); - const customMutationsOps = getCustomOperations(filteredMutations, tableOperationNames); - - log(` Custom operations: ${customQueriesOps.length} queries, ${customMutationsOps.length} mutations`); - - customQueries = customQueriesOps.map((q) => q.name); - customMutations = customMutationsOps.map((m) => m.name); - - customOperationsData = { - queries: customQueriesOps, - mutations: customMutationsOps, - typeRegistry, - }; - } else { - log(` Warning: Could not fetch __schema: ${schemaResult.error}`); - log(' Continuing with table-only generation...'); - } - } - - // 7. Generate code + // 5. Generate code console.log('Generating code...'); - const { files: generatedFiles, stats } = generate({ + const { files: generatedFiles, stats: genStats } = generate({ tables, - customOperations: customOperationsData, + customOperations: { + queries: customOperations.queries, + mutations: customOperations.mutations, + typeRegistry: customOperations.typeRegistry, + }, config, }); - console.log(`Generated ${stats.totalFiles} files`); + console.log(`Generated ${genStats.totalFiles} files`); + + log(` ${genStats.queryHooks} table query hooks`); + log(` ${genStats.mutationHooks} table mutation hooks`); + log(` ${genStats.customQueryHooks} custom query hooks`); + log(` ${genStats.customMutationHooks} custom mutation hooks`); - log(` ${stats.queryHooks} table query hooks`); - log(` ${stats.mutationHooks} table mutation hooks`); - log(` ${stats.customQueryHooks} custom query hooks`); - log(` ${stats.customMutationHooks} custom mutation hooks`); + const customQueries = customOperations.queries.map((q) => q.name); + const customMutations = customOperations.mutations.map((m) => m.name); if (options.dryRun) { return { success: true, - message: `Dry run complete. Would generate ${generatedFiles.length} files for ${tables.length} tables and ${customQueries.length + customMutations.length} custom operations.`, + message: `Dry run complete. Would generate ${generatedFiles.length} files for ${tables.length} tables and ${stats.customQueries + stats.customMutations} custom operations.`, tables: tables.map((t) => t.name), customQueries, customMutations, @@ -217,13 +155,12 @@ export async function generateCommand( }; } - // 8. Write files + // 6. Write files log('Writing files...'); - const writeResult = await writeGeneratedFiles( - generatedFiles, - config.output, - ['queries', 'mutations'] - ); + const writeResult = await writeGeneratedFiles(generatedFiles, config.output, [ + 'queries', + 'mutations', + ]); if (!writeResult.success) { return { @@ -271,7 +208,8 @@ async function loadConfig(options: GenerateOptions): Promise { // Override with CLI options const mergedConfig: GraphQLSDKConfig = { - endpoint: options.endpoint || baseConfig.endpoint || '', + endpoint: options.endpoint || baseConfig.endpoint, + schema: options.schema || baseConfig.schema, output: options.output || baseConfig.output, headers: baseConfig.headers, tables: baseConfig.tables, @@ -283,11 +221,12 @@ async function loadConfig(options: GenerateOptions): Promise { codegen: baseConfig.codegen, }; - if (!mergedConfig.endpoint) { + // Validate at least one source is provided + if (!mergedConfig.endpoint && !mergedConfig.schema) { return { success: false, error: - 'No endpoint specified. Use --endpoint or create a config file with "graphql-codegen init".', + 'No source specified. Use --endpoint or --schema, or create a config file with "graphql-codegen init".', }; } @@ -358,7 +297,9 @@ export async function writeGeneratedFiles( if (showProgress) { const progress = Math.round(((i + 1) / total) * 100); if (isTTY) { - process.stdout.write(`\rWriting files: ${i + 1}/${total} (${progress}%)`); + process.stdout.write( + `\rWriting files: ${i + 1}/${total} (${progress}%)` + ); } else if (i % 100 === 0 || i === total - 1) { // Non-TTY: periodic updates for CI/CD console.log(`Writing files: ${i + 1}/${total}`); diff --git a/graphql/codegen/src/cli/commands/shared.ts b/graphql/codegen/src/cli/commands/shared.ts new file mode 100644 index 000000000..e3acbcafa --- /dev/null +++ b/graphql/codegen/src/cli/commands/shared.ts @@ -0,0 +1,206 @@ +/** + * Shared Codegen Pipeline + * + * Consolidates the common logic between generate and generate-orm commands. + * Handles: + * - Schema fetching from source (endpoint or file) + * - Table inference from introspection + * - Operation transformation + * - Filtering + */ +import type { ResolvedConfig } from '../../types/config'; +import type { + CleanTable, + CleanOperation, + TypeRegistry, +} from '../../types/schema'; +import type { SchemaSource } from '../introspect/source'; +import { inferTablesFromIntrospection } from '../introspect/infer-tables'; +import { filterTables } from '../introspect/transform'; +import { + transformSchemaToOperations, + filterOperations, + getTableOperationNames, + getCustomOperations, +} from '../introspect/transform-schema'; + +// ============================================================================ +// Pipeline Types +// ============================================================================ + +export interface CodegenPipelineOptions { + /** + * Schema source (endpoint or file) + */ + source: SchemaSource; + + /** + * Resolved configuration + */ + config: ResolvedConfig; + + /** + * Enable verbose logging + */ + verbose?: boolean; + + /** + * Skip custom operations (only generate table CRUD) + */ + skipCustomOperations?: boolean; +} + +export interface CodegenPipelineResult { + /** + * Inferred table metadata + */ + tables: CleanTable[]; + + /** + * Custom operations (queries and mutations not covered by tables) + */ + customOperations: { + queries: CleanOperation[]; + mutations: CleanOperation[]; + typeRegistry: TypeRegistry; + }; + + /** + * Statistics about what was found + */ + stats: { + totalTables: number; + filteredTables: number; + totalQueries: number; + totalMutations: number; + customQueries: number; + customMutations: number; + }; +} + +// ============================================================================ +// Main Pipeline +// ============================================================================ + +/** + * Run the unified codegen pipeline + * + * This replaces the duplicated logic in generate.ts and generate-orm.ts: + * 1. Fetch introspection from source (endpoint or file) + * 2. Infer tables from introspection (replaces _meta query) + * 3. Transform to operations + * 4. Filter by config + * 5. Separate table operations from custom operations + */ +export async function runCodegenPipeline( + options: CodegenPipelineOptions +): Promise { + const { + source, + config, + verbose = false, + skipCustomOperations = false, + } = options; + const log = verbose ? console.log : () => {}; + + // 1. Fetch introspection from source + log(`Fetching schema from ${source.describe()}...`); + const { introspection } = await source.fetch(); + + // 2. Infer tables from introspection (replaces _meta) + log('Inferring table metadata from schema...'); + let tables = inferTablesFromIntrospection(introspection); + const totalTables = tables.length; + log(` Found ${totalTables} tables`); + + // 3. Filter tables by config + tables = filterTables(tables, config.tables.include, config.tables.exclude); + const filteredTables = tables.length; + log(` After filtering: ${filteredTables} tables`); + + // 4. Transform introspection to operations + log('Transforming operations...'); + const { + queries: allQueries, + mutations: allMutations, + typeRegistry, + } = transformSchemaToOperations(introspection); + + const totalQueries = allQueries.length; + const totalMutations = allMutations.length; + log(` Found ${totalQueries} queries and ${totalMutations} mutations total`); + + // 5. Get table operation names for filtering custom ops + const tableOperationNames = getTableOperationNames(tables); + + // 6. Filter and separate custom operations + let customQueries: CleanOperation[] = []; + let customMutations: CleanOperation[] = []; + + if (!skipCustomOperations) { + // Filter by config include/exclude + const filteredQueries = filterOperations( + allQueries, + config.queries.include, + config.queries.exclude + ); + const filteredMutations = filterOperations( + allMutations, + config.mutations.include, + config.mutations.exclude + ); + + log( + ` After config filtering: ${filteredQueries.length} queries, ${filteredMutations.length} mutations` + ); + + // Remove table operations (already handled by table generators) + customQueries = getCustomOperations(filteredQueries, tableOperationNames); + customMutations = getCustomOperations( + filteredMutations, + tableOperationNames + ); + + log( + ` Custom operations: ${customQueries.length} queries, ${customMutations.length} mutations` + ); + } + + return { + tables, + customOperations: { + queries: customQueries, + mutations: customMutations, + typeRegistry, + }, + stats: { + totalTables, + filteredTables, + totalQueries, + totalMutations, + customQueries: customQueries.length, + customMutations: customMutations.length, + }, + }; +} + +// ============================================================================ +// Validation Helpers +// ============================================================================ + +/** + * Validate that tables were found + */ +export function validateTablesFound(tables: CleanTable[]): { + valid: boolean; + error?: string; +} { + if (tables.length === 0) { + return { + valid: false, + error: + 'No tables found after filtering. Check your include/exclude patterns.', + }; + } + return { valid: true }; +} diff --git a/graphql/codegen/src/cli/index.ts b/graphql/codegen/src/cli/index.ts index 36ff443d8..b3add938c 100644 --- a/graphql/codegen/src/cli/index.ts +++ b/graphql/codegen/src/cli/index.ts @@ -8,7 +8,11 @@ import { initCommand, findConfigFile, loadConfigFile } from './commands/init'; import { generateCommand } from './commands/generate'; import { generateOrmCommand } from './commands/generate-orm'; import { startWatch } from './watch'; -import { resolveConfig, type GraphQLSDKConfig, type ResolvedConfig } from '../types/config'; +import { + resolveConfig, + type GraphQLSDKConfig, + type ResolvedConfig, +} from '../types/config'; const program = new Command(); @@ -34,7 +38,7 @@ async function loadWatchConfig(options: { if (configPath) { const loadResult = await loadConfigFile(configPath); if (!loadResult.success) { - console.error('✗', loadResult.error); + console.error('x', loadResult.error); return null; } baseConfig = loadResult.config; @@ -56,7 +60,9 @@ async function loadWatchConfig(options: { watch: { ...baseConfig.watch, // CLI options override config - ...(options.pollInterval !== undefined && { pollInterval: options.pollInterval }), + ...(options.pollInterval !== undefined && { + pollInterval: options.pollInterval, + }), ...(options.debounce !== undefined && { debounce: options.debounce }), ...(options.touch !== undefined && { touchFile: options.touch }), ...(options.clear !== undefined && { clearScreen: options.clear }), @@ -64,7 +70,9 @@ async function loadWatchConfig(options: { }; if (!mergedConfig.endpoint) { - console.error('✗ No endpoint specified. Use --endpoint or create a config file with "graphql-codegen init".'); + console.error( + 'x No endpoint specified. Use --endpoint or create a config file with "graphql-codegen init".' + ); return null; } @@ -73,7 +81,9 @@ async function loadWatchConfig(options: { program .name('graphql-codegen') - .description('CLI for generating GraphQL SDK from PostGraphile endpoints') + .description( + 'CLI for generating GraphQL SDK from PostGraphile endpoints or schema files' + ) .version('2.17.48'); // Init command @@ -83,7 +93,11 @@ program .option('-d, --directory ', 'Target directory for the config file', '.') .option('-f, --force', 'Force overwrite existing config', false) .option('-e, --endpoint ', 'GraphQL endpoint URL to pre-populate') - .option('-o, --output ', 'Output directory to pre-populate', './generated') + .option( + '-o, --output ', + 'Output directory to pre-populate', + './generated' + ) .action(async (options) => { const result = await initCommand({ directory: options.directory, @@ -93,9 +107,9 @@ program }); if (result.success) { - console.log('✓', result.message); + console.log('[ok]', result.message); } else { - console.error('✗', result.message); + console.error('x', result.message); process.exit(1); } }); @@ -103,26 +117,57 @@ program // Generate command program .command('generate') - .description('Generate SDK from GraphQL endpoint') + .description('Generate SDK from GraphQL endpoint or schema file') .option('-c, --config ', 'Path to config file') .option('-e, --endpoint ', 'GraphQL endpoint URL (overrides config)') + .option('-s, --schema ', 'Path to GraphQL schema file (.graphql)') .option('-o, --output ', 'Output directory (overrides config)') .option('-a, --authorization
', 'Authorization header value') .option('-v, --verbose', 'Verbose output', false) - .option('--dry-run', 'Dry run - show what would be generated without writing files', false) - .option('-w, --watch', 'Watch mode - poll endpoint for schema changes (in-memory)', false) - .option('--poll-interval ', 'Polling interval in milliseconds (default: 3000)', parseInt) - .option('--debounce ', 'Debounce delay before regenerating (default: 800)', parseInt) + .option( + '--dry-run', + 'Dry run - show what would be generated without writing files', + false + ) + .option( + '-w, --watch', + 'Watch mode - poll endpoint for schema changes (in-memory)', + false + ) + .option( + '--poll-interval ', + 'Polling interval in milliseconds (default: 3000)', + parseInt + ) + .option( + '--debounce ', + 'Debounce delay before regenerating (default: 800)', + parseInt + ) .option('--touch ', 'File to touch on schema change') .option('--no-clear', 'Do not clear terminal on regeneration') .action(async (options) => { - // Watch mode + // Validate source options + if (options.endpoint && options.schema) { + console.error( + 'x Cannot use both --endpoint and --schema. Choose one source.' + ); + process.exit(1); + } + + // Watch mode (only for endpoint) if (options.watch) { + if (options.schema) { + console.error( + 'x Watch mode is only supported with --endpoint, not --schema.' + ); + process.exit(1); + } const config = await loadWatchConfig(options); if (!config) { process.exit(1); } - + await startWatch({ config, generatorType: 'generate', @@ -137,6 +182,7 @@ program const result = await generateCommand({ config: options.config, endpoint: options.endpoint, + schema: options.schema, output: options.output, authorization: options.authorization, verbose: options.verbose, @@ -144,7 +190,7 @@ program }); if (result.success) { - console.log('✓', result.message); + console.log('[ok]', result.message); if (result.tables && result.tables.length > 0) { console.log('\nTables:'); result.tables.forEach((t) => console.log(` - ${t}`)); @@ -154,7 +200,7 @@ program result.filesWritten.forEach((f) => console.log(` - ${f}`)); } } else { - console.error('✗', result.message); + console.error('x', result.message); if (result.errors) { result.errors.forEach((e) => console.error(' -', e)); } @@ -165,27 +211,68 @@ program // Generate ORM command program .command('generate-orm') - .description('Generate Prisma-like ORM client from GraphQL endpoint') + .description( + 'Generate Prisma-like ORM client from GraphQL endpoint or schema file' + ) .option('-c, --config ', 'Path to config file') .option('-e, --endpoint ', 'GraphQL endpoint URL (overrides config)') - .option('-o, --output ', 'Output directory (overrides config)', './generated/orm') + .option('-s, --schema ', 'Path to GraphQL schema file (.graphql)') + .option( + '-o, --output ', + 'Output directory (overrides config)', + './generated/orm' + ) .option('-a, --authorization
', 'Authorization header value') .option('-v, --verbose', 'Verbose output', false) - .option('--dry-run', 'Dry run - show what would be generated without writing files', false) - .option('--skip-custom-operations', 'Skip custom operations (only generate table CRUD)', false) - .option('-w, --watch', 'Watch mode - poll endpoint for schema changes (in-memory)', false) - .option('--poll-interval ', 'Polling interval in milliseconds (default: 3000)', parseInt) - .option('--debounce ', 'Debounce delay before regenerating (default: 800)', parseInt) + .option( + '--dry-run', + 'Dry run - show what would be generated without writing files', + false + ) + .option( + '--skip-custom-operations', + 'Skip custom operations (only generate table CRUD)', + false + ) + .option( + '-w, --watch', + 'Watch mode - poll endpoint for schema changes (in-memory)', + false + ) + .option( + '--poll-interval ', + 'Polling interval in milliseconds (default: 3000)', + parseInt + ) + .option( + '--debounce ', + 'Debounce delay before regenerating (default: 800)', + parseInt + ) .option('--touch ', 'File to touch on schema change') .option('--no-clear', 'Do not clear terminal on regeneration') .action(async (options) => { - // Watch mode + // Validate source options + if (options.endpoint && options.schema) { + console.error( + 'x Cannot use both --endpoint and --schema. Choose one source.' + ); + process.exit(1); + } + + // Watch mode (only for endpoint) if (options.watch) { + if (options.schema) { + console.error( + 'x Watch mode is only supported with --endpoint, not --schema.' + ); + process.exit(1); + } const config = await loadWatchConfig(options); if (!config) { process.exit(1); } - + await startWatch({ config, generatorType: 'generate-orm', @@ -201,6 +288,7 @@ program const result = await generateOrmCommand({ config: options.config, endpoint: options.endpoint, + schema: options.schema, output: options.output, authorization: options.authorization, verbose: options.verbose, @@ -209,7 +297,7 @@ program }); if (result.success) { - console.log('✓', result.message); + console.log('[ok]', result.message); if (result.tables && result.tables.length > 0) { console.log('\nTables:'); result.tables.forEach((t) => console.log(` - ${t}`)); @@ -227,7 +315,7 @@ program result.filesWritten.forEach((f) => console.log(` - ${f}`)); } } else { - console.error('✗', result.message); + console.error('x', result.message); if (result.errors) { result.errors.forEach((e) => console.error(' -', e)); } @@ -235,53 +323,67 @@ program } }); -// Introspect command (for debugging) +// Introspect command (for debugging) - uses the new inference system program .command('introspect') - .description('Introspect a GraphQL endpoint and print table info') - .requiredOption('-e, --endpoint ', 'GraphQL endpoint URL') + .description( + 'Introspect a GraphQL endpoint or schema file and print table info' + ) + .option('-e, --endpoint ', 'GraphQL endpoint URL') + .option('-s, --schema ', 'Path to GraphQL schema file (.graphql)') .option('-a, --authorization
', 'Authorization header value') .option('--json', 'Output as JSON', false) .action(async (options) => { - const { fetchMeta, validateEndpoint } = await import('./introspect/fetch-meta'); - const { transformMetaToCleanTables, getTableNames } = await import('./introspect/transform'); - - // Validate endpoint - const validation = validateEndpoint(options.endpoint); - if (!validation.valid) { - console.error('✗ Invalid endpoint:', validation.error); + // Validate source options + if (!options.endpoint && !options.schema) { + console.error('x Either --endpoint or --schema must be provided.'); process.exit(1); } - - console.log('Fetching schema from', options.endpoint, '...'); - - const result = await fetchMeta({ - endpoint: options.endpoint, - authorization: options.authorization, - }); - - if (!result.success) { - console.error('✗ Failed to fetch schema:', result.error); + if (options.endpoint && options.schema) { + console.error( + 'x Cannot use both --endpoint and --schema. Choose one source.' + ); process.exit(1); } - const tables = transformMetaToCleanTables(result.data!); - const tableNames = getTableNames(tables); + const { createSchemaSource } = await import('./introspect/source'); + const { inferTablesFromIntrospection } = + await import('./introspect/infer-tables'); - if (options.json) { - console.log(JSON.stringify(tables, null, 2)); - } else { - console.log(`\n✓ Found ${tables.length} tables:\n`); - tableNames.forEach((name) => { - const table = tables.find((t) => t.name === name)!; - const fieldCount = table.fields.length; - const relationCount = - table.relations.belongsTo.length + - table.relations.hasOne.length + - table.relations.hasMany.length + - table.relations.manyToMany.length; - console.log(` ${name} (${fieldCount} fields, ${relationCount} relations)`); + try { + const source = createSchemaSource({ + endpoint: options.endpoint, + schema: options.schema, + authorization: options.authorization, }); + + console.log('Fetching schema from', source.describe(), '...'); + + const { introspection } = await source.fetch(); + const tables = inferTablesFromIntrospection(introspection); + + if (options.json) { + console.log(JSON.stringify(tables, null, 2)); + } else { + console.log(`\n[ok] Found ${tables.length} tables:\n`); + tables.forEach((table) => { + const fieldCount = table.fields.length; + const relationCount = + table.relations.belongsTo.length + + table.relations.hasOne.length + + table.relations.hasMany.length + + table.relations.manyToMany.length; + console.log( + ` ${table.name} (${fieldCount} fields, ${relationCount} relations)` + ); + }); + } + } catch (err) { + console.error( + 'x Failed to introspect schema:', + err instanceof Error ? err.message : err + ); + process.exit(1); } }); diff --git a/graphql/codegen/src/cli/introspect/fetch-meta.ts b/graphql/codegen/src/cli/introspect/fetch-meta.ts deleted file mode 100644 index 7e4f8894f..000000000 --- a/graphql/codegen/src/cli/introspect/fetch-meta.ts +++ /dev/null @@ -1,145 +0,0 @@ -/** - * Fetch _meta query from a PostGraphile endpoint - */ -import { META_QUERY, type MetaQueryResponse } from './meta-query'; - -export interface FetchMetaOptions { - /** GraphQL endpoint URL */ - endpoint: string; - /** Optional authorization header value (e.g., "Bearer token") */ - authorization?: string; - /** Optional additional headers */ - headers?: Record; - /** Request timeout in milliseconds (default: 30000) */ - timeout?: number; -} - -export interface FetchMetaResult { - success: boolean; - data?: MetaQueryResponse; - error?: string; - statusCode?: number; -} - -/** - * Fetch the _meta query from a PostGraphile endpoint - */ -export async function fetchMeta( - options: FetchMetaOptions -): Promise { - const { endpoint, authorization, headers = {}, timeout = 30000 } = options; - - // Build headers - const requestHeaders: Record = { - 'Content-Type': 'application/json', - Accept: 'application/json', - ...headers, - }; - - if (authorization) { - requestHeaders['Authorization'] = authorization; - } - - // Create abort controller for timeout - const controller = new AbortController(); - const timeoutId = setTimeout(() => controller.abort(), timeout); - - try { - const response = await fetch(endpoint, { - method: 'POST', - headers: requestHeaders, - body: JSON.stringify({ - query: META_QUERY, - variables: {}, - }), - signal: controller.signal, - }); - - clearTimeout(timeoutId); - - if (!response.ok) { - return { - success: false, - error: `HTTP ${response.status}: ${response.statusText}`, - statusCode: response.status, - }; - } - - const json = (await response.json()) as { - data?: MetaQueryResponse; - errors?: Array<{ message: string }>; - }; - - // Check for GraphQL errors - if (json.errors && json.errors.length > 0) { - const errorMessages = json.errors.map((e) => e.message).join('; '); - return { - success: false, - error: `GraphQL errors: ${errorMessages}`, - statusCode: response.status, - }; - } - - // Check if _meta is present - if (!json.data?._meta) { - return { - success: false, - error: - 'No _meta field in response. Make sure the endpoint has the PostGraphile meta plugin installed.', - statusCode: response.status, - }; - } - - return { - success: true, - data: json.data, - statusCode: response.status, - }; - } catch (err) { - clearTimeout(timeoutId); - - if (err instanceof Error) { - if (err.name === 'AbortError') { - return { - success: false, - error: `Request timeout after ${timeout}ms`, - }; - } - return { - success: false, - error: err.message, - }; - } - - return { - success: false, - error: 'Unknown error occurred', - }; - } -} - -/** - * Validate that an endpoint URL is valid - */ -export function validateEndpoint(endpoint: string): { - valid: boolean; - error?: string; -} { - try { - const url = new URL(endpoint); - - if (!['http:', 'https:'].includes(url.protocol)) { - return { - valid: false, - error: 'Endpoint must use http or https protocol', - }; - } - - return { valid: true }; - } catch { - return { - valid: false, - error: 'Invalid URL format', - }; - } -} diff --git a/graphql/codegen/src/cli/introspect/index.ts b/graphql/codegen/src/cli/introspect/index.ts index c5c24b1fc..5677b86d9 100644 --- a/graphql/codegen/src/cli/introspect/index.ts +++ b/graphql/codegen/src/cli/introspect/index.ts @@ -2,28 +2,30 @@ * Introspection module exports */ -export { META_QUERY } from './meta-query'; -export type { - MetaQueryResponse, - MetaTable, - MetaField, - MetaFieldType, - MetaConstraint, - MetaForeignKeyConstraint, - MetaTableQuery, - MetaTableInflection, - MetaBelongsToRelation, - MetaHasRelation, - MetaManyToManyRelation, - MetaTableRelations, -} from './meta-query'; +// Table inference from introspection +export { inferTablesFromIntrospection } from './infer-tables'; +export type { InferTablesOptions } from './infer-tables'; -export { fetchMeta, validateEndpoint } from './fetch-meta'; -export type { FetchMetaOptions, FetchMetaResult } from './fetch-meta'; +// Pluralization utilities +export { singularize, pluralize } from './pluralize'; +// Schema sources export { - transformMetaToCleanTables, - getTableNames, - findTable, - filterTables, -} from './transform'; + createSchemaSource, + validateSourceOptions, + EndpointSchemaSource, + FileSchemaSource, + SchemaSourceError, +} from './source'; +export type { + SchemaSource, + SchemaSourceResult, + CreateSchemaSourceOptions, +} from './source'; + +// Schema fetching (still used by watch mode) +export { fetchSchema } from './fetch-schema'; +export type { FetchSchemaOptions, FetchSchemaResult } from './fetch-schema'; + +// Transform utilities (only filterTables, getTableNames, findTable are still useful) +export { getTableNames, findTable, filterTables } from './transform'; diff --git a/graphql/codegen/src/cli/introspect/infer-tables.ts b/graphql/codegen/src/cli/introspect/infer-tables.ts new file mode 100644 index 000000000..0a4597b26 --- /dev/null +++ b/graphql/codegen/src/cli/introspect/infer-tables.ts @@ -0,0 +1,766 @@ +/** + * Infer PostGraphile table metadata from standard GraphQL introspection + * + * This module replaces the need for the _meta query by recognizing PostGraphile's + * naming conventions and type patterns from standard GraphQL introspection. + * + * Key patterns recognized: + * - Connection types: {PluralName}Connection → entity name + * - Filter types: {Name}Filter + * - Input types: Create{Name}Input, Update{Name}Input, Delete{Name}Input + * - Payload types: Create{Name}Payload, Update{Name}Payload, Delete{Name}Payload + * - Query operations: {pluralName} (list), {singularName} (single) + * - Mutation operations: create{Name}, update{Name}, delete{Name} + */ +import type { + IntrospectionQueryResponse, + IntrospectionType, + IntrospectionField, + IntrospectionTypeRef, +} from '../../types/introspection'; +import { unwrapType, getBaseTypeName, isList } from '../../types/introspection'; +import type { + CleanTable, + CleanField, + CleanFieldType, + CleanRelations, + CleanBelongsToRelation, + CleanHasManyRelation, + CleanManyToManyRelation, + TableInflection, + TableQueryNames, + TableConstraints, + ConstraintInfo, +} from '../../types/schema'; +import { singularize, pluralize, lcFirst, ucFirst } from './pluralize'; + +// ============================================================================ +// Pattern Matching Constants +// ============================================================================ + +/** + * PostGraphile naming patterns for type detection + */ +const PATTERNS = { + // Type suffixes + connection: /^(.+)Connection$/, + edge: /^(.+)Edge$/, + filter: /^(.+)Filter$/, + condition: /^(.+)Condition$/, + orderBy: /^(.+)OrderBy$/, + patch: /^(.+)Patch$/, + + // Input type patterns + createInput: /^Create(.+)Input$/, + updateInput: /^Update(.+)Input$/, + deleteInput: /^Delete(.+)Input$/, + + // Payload type patterns + createPayload: /^Create(.+)Payload$/, + updatePayload: /^Update(.+)Payload$/, + deletePayload: /^Delete(.+)Payload$/, + + // Mutation name patterns (camelCase) + createMutation: /^create([A-Z][a-zA-Z0-9]*)$/, + updateMutation: /^update([A-Z][a-zA-Z0-9]*)$/, + deleteMutation: /^delete([A-Z][a-zA-Z0-9]*)$/, +}; + +/** + * Built-in GraphQL types to ignore + */ +const BUILTIN_TYPES = new Set([ + 'Query', + 'Mutation', + 'Subscription', + 'String', + 'Int', + 'Float', + 'Boolean', + 'ID', + // PostGraphile built-in types + 'Node', + 'PageInfo', + 'Cursor', + 'UUID', + 'Datetime', + 'Date', + 'Time', + 'JSON', + 'BigInt', + 'BigFloat', +]); + +/** + * Types that start with __ are internal GraphQL types + */ +function isInternalType(name: string): boolean { + return name.startsWith('__'); +} + +// ============================================================================ +// Main Entry Point +// ============================================================================ + +export interface InferTablesOptions { + /** + * Custom pattern overrides (for non-standard PostGraphile configurations) + */ + patterns?: Partial; +} + +/** + * Infer CleanTable[] from GraphQL introspection by recognizing PostGraphile patterns + * + * @param introspection - Standard GraphQL introspection response + * @param options - Optional configuration + * @returns Array of CleanTable objects compatible with existing generators + */ +export function inferTablesFromIntrospection( + introspection: IntrospectionQueryResponse, + options: InferTablesOptions = {} +): CleanTable[] { + const { __schema: schema } = introspection; + const { types, queryType, mutationType } = schema; + + // Build lookup maps for efficient access + const typeMap = buildTypeMap(types); + const queryFields = getTypeFields(typeMap.get(queryType.name)); + const mutationFields = mutationType + ? getTypeFields(typeMap.get(mutationType.name)) + : []; + + // Step 1: Detect entity types by finding Connection types + const entityNames = detectEntityTypes(types); + + // Step 2: Build CleanTable for each entity + const tables: CleanTable[] = []; + + for (const entityName of entityNames) { + const entityType = typeMap.get(entityName); + if (!entityType) continue; + + // Infer all metadata for this entity + const { table, hasRealOperation } = buildCleanTable( + entityName, + entityType, + typeMap, + queryFields, + mutationFields + ); + + // Only include tables that have at least one real operation + if (hasRealOperation) { + tables.push(table); + } + } + + return tables; +} + +// ============================================================================ +// Entity Detection +// ============================================================================ + +/** + * Detect entity types by finding Connection types in the schema + * + * PostGraphile generates a {PluralName}Connection type for each table. + * From this, we can derive the entity type name. + */ +function detectEntityTypes(types: IntrospectionType[]): Set { + const entityNames = new Set(); + const typeNames = new Set(types.map((t) => t.name)); + + for (const type of types) { + // Skip internal types + if (isInternalType(type.name)) continue; + if (BUILTIN_TYPES.has(type.name)) continue; + + // Check for Connection pattern + const connectionMatch = type.name.match(PATTERNS.connection); + if (connectionMatch) { + const pluralName = connectionMatch[1]; // e.g., "Users" from "UsersConnection" + const singularName = singularize(pluralName); // e.g., "User" + + // Verify the entity type actually exists + if (typeNames.has(singularName)) { + entityNames.add(singularName); + } + } + } + + return entityNames; +} + +// ============================================================================ +// Table Building +// ============================================================================ + +interface BuildCleanTableResult { + table: CleanTable; + hasRealOperation: boolean; +} + +/** + * Build a complete CleanTable from an entity type + */ +function buildCleanTable( + entityName: string, + entityType: IntrospectionType, + typeMap: Map, + queryFields: IntrospectionField[], + mutationFields: IntrospectionField[] +): BuildCleanTableResult { + // Extract scalar fields from entity type + const fields = extractEntityFields(entityType, typeMap); + + // Infer relations from entity fields + const relations = inferRelations(entityType, typeMap); + + // Match query and mutation operations + const queryOps = matchQueryOperations(entityName, queryFields, typeMap); + const mutationOps = matchMutationOperations(entityName, mutationFields); + + // Check if we found at least one real operation (not a fallback) + const hasRealOperation = !!( + queryOps.all || + queryOps.one || + mutationOps.create || + mutationOps.update || + mutationOps.delete + ); + + // Infer primary key from mutation inputs + const constraints = inferConstraints(entityName, typeMap); + + // Build inflection map from discovered types + const inflection = buildInflection(entityName, typeMap); + + // Combine query operations with fallbacks for UI purposes + // (but hasRealOperation indicates if we should include this table) + const query: TableQueryNames = { + all: queryOps.all ?? lcFirst(pluralize(entityName)), + one: queryOps.one ?? lcFirst(entityName), + create: mutationOps.create ?? `create${entityName}`, + update: mutationOps.update, + delete: mutationOps.delete, + }; + + return { + table: { + name: entityName, + fields, + relations, + inflection, + query, + constraints, + }, + hasRealOperation, + }; +} + +// ============================================================================ +// Field Extraction +// ============================================================================ + +/** + * Extract scalar fields from an entity type + * Excludes relation fields (those returning other entity types or connections) + */ +function extractEntityFields( + entityType: IntrospectionType, + typeMap: Map +): CleanField[] { + const fields: CleanField[] = []; + + if (!entityType.fields) return fields; + + for (const field of entityType.fields) { + const baseTypeName = getBaseTypeName(field.type); + if (!baseTypeName) continue; + + // Skip relation fields (those returning other objects or connections) + const fieldType = typeMap.get(baseTypeName); + if (fieldType?.kind === 'OBJECT') { + // Check if it's a Connection type (hasMany) or entity type (belongsTo) + if ( + baseTypeName.endsWith('Connection') || + isEntityType(baseTypeName, typeMap) + ) { + continue; // Skip relation fields + } + } + + // Include scalar, enum, and other non-relation fields + fields.push({ + name: field.name, + type: convertToCleanFieldType(field.type), + }); + } + + return fields; +} + +/** + * Check if a type name is an entity type (has a corresponding Connection) + */ +function isEntityType( + typeName: string, + typeMap: Map +): boolean { + const connectionName = `${pluralize(typeName)}Connection`; + return typeMap.has(connectionName); +} + +/** + * Convert IntrospectionTypeRef to CleanFieldType + */ +function convertToCleanFieldType( + typeRef: IntrospectionTypeRef +): CleanFieldType { + const baseType = unwrapType(typeRef); + const isArray = isList(typeRef); + + return { + gqlType: baseType.name ?? 'Unknown', + isArray, + // PostgreSQL-specific fields are not available from introspection + // They were optional anyway and not used by generators + }; +} + +// ============================================================================ +// Relation Inference +// ============================================================================ + +/** + * Infer relations from entity type fields + */ +function inferRelations( + entityType: IntrospectionType, + typeMap: Map +): CleanRelations { + const belongsTo: CleanBelongsToRelation[] = []; + const hasMany: CleanHasManyRelation[] = []; + const manyToMany: CleanManyToManyRelation[] = []; + + if (!entityType.fields) { + return { belongsTo, hasOne: [], hasMany, manyToMany }; + } + + for (const field of entityType.fields) { + const baseTypeName = getBaseTypeName(field.type); + if (!baseTypeName) continue; + + // Check for Connection type → hasMany or manyToMany + if (baseTypeName.endsWith('Connection')) { + const relation = inferHasManyOrManyToMany(field, baseTypeName, typeMap); + if (relation.type === 'manyToMany') { + manyToMany.push(relation.relation as CleanManyToManyRelation); + } else { + hasMany.push(relation.relation as CleanHasManyRelation); + } + continue; + } + + // Check for entity type → belongsTo + if (isEntityType(baseTypeName, typeMap)) { + belongsTo.push({ + fieldName: field.name, + isUnique: false, // Can't determine from introspection alone + referencesTable: baseTypeName, + type: baseTypeName, + keys: [], // Would need FK info to populate + }); + } + } + + return { belongsTo, hasOne: [], hasMany, manyToMany }; +} + +/** + * Determine if a Connection field is hasMany or manyToMany + * + * ManyToMany pattern: field name contains "By" and "And" + * e.g., "productsByOrderItemOrderIdAndProductId" + */ +function inferHasManyOrManyToMany( + field: IntrospectionField, + connectionTypeName: string, + typeMap: Map +): + | { type: 'hasMany'; relation: CleanHasManyRelation } + | { type: 'manyToMany'; relation: CleanManyToManyRelation } { + // Extract the related entity name from Connection type + const match = connectionTypeName.match(PATTERNS.connection); + const relatedPluralName = match ? match[1] : connectionTypeName; + const relatedEntityName = singularize(relatedPluralName); + + // Check for manyToMany pattern in field name + const isManyToMany = field.name.includes('By') && field.name.includes('And'); + + if (isManyToMany) { + // For ManyToMany, extract the actual entity name from the field name prefix + // Field name pattern: {relatedEntities}By{JunctionTable}{Keys} + // e.g., "usersByMembershipActorIdAndEntityId" → "users" → "User" + // e.g., "productsByOrderItemOrderIdAndProductId" → "products" → "Product" + const prefixMatch = field.name.match(/^([a-z]+)By/i); + const actualEntityName = prefixMatch + ? singularize(ucFirst(prefixMatch[1])) + : relatedEntityName; + + // Try to extract junction table from field name + // Pattern: {relatedEntities}By{JunctionTable}{Keys} + // e.g., "productsByProductCategoryProductIdAndCategoryId" → "ProductCategory" + // The junction table name ends where the first field key begins (identified by capital letter after lowercase) + const junctionMatch = field.name.match( + /By([A-Z][a-z]+(?:[A-Z][a-z]+)*?)(?:[A-Z][a-z]+Id)/ + ); + const junctionTable = junctionMatch ? junctionMatch[1] : 'Unknown'; + + return { + type: 'manyToMany', + relation: { + fieldName: field.name, + rightTable: actualEntityName, + junctionTable, + type: connectionTypeName, + }, + }; + } + + return { + type: 'hasMany', + relation: { + fieldName: field.name, + isUnique: false, + referencedByTable: relatedEntityName, + type: connectionTypeName, + keys: [], + }, + }; +} + +// ============================================================================ +// Operation Matching +// ============================================================================ + +interface QueryOperations { + all: string | null; + one: string | null; +} + +/** + * Match query operations for an entity + * + * Looks for: + * - List query: returns {PluralName}Connection (e.g., users → UsersConnection) + * - Single query: returns {EntityName} with id/nodeId arg (e.g., user → User) + */ +function matchQueryOperations( + entityName: string, + queryFields: IntrospectionField[], + typeMap: Map +): QueryOperations { + const pluralName = pluralize(entityName); + const connectionTypeName = `${pluralName}Connection`; + + let all: string | null = null; + let one: string | null = null; + + for (const field of queryFields) { + const returnTypeName = getBaseTypeName(field.type); + if (!returnTypeName) continue; + + // Match list query by return type (Connection) + if (returnTypeName === connectionTypeName) { + // Prefer the simple plural name, but accept any that returns the connection + if (!all || field.name === lcFirst(pluralName)) { + all = field.name; + } + } + + // Match single query by return type (Entity) and having an id-like arg + if (returnTypeName === entityName) { + const hasIdArg = field.args.some( + (arg) => + arg.name === 'id' || + arg.name === 'nodeId' || + arg.name.toLowerCase().endsWith('id') + ); + + if (hasIdArg) { + // Prefer exact match (e.g., "user" for "User") + if (!one || field.name === lcFirst(entityName)) { + one = field.name; + } + } + } + } + + return { all, one }; +} + +interface MutationOperations { + create: string | null; + update: string | null; + delete: string | null; +} + +/** + * Match mutation operations for an entity + * + * Looks for mutations named: + * - create{EntityName} + * - update{EntityName} or update{EntityName}ById + * - delete{EntityName} or delete{EntityName}ById + */ +function matchMutationOperations( + entityName: string, + mutationFields: IntrospectionField[] +): MutationOperations { + let create: string | null = null; + let update: string | null = null; + let del: string | null = null; + + const expectedCreate = `create${entityName}`; + const expectedUpdate = `update${entityName}`; + const expectedDelete = `delete${entityName}`; + + for (const field of mutationFields) { + // Exact match for create + if (field.name === expectedCreate) { + create = field.name; + } + + // Match update (could be updateUser or updateUserById) + if ( + field.name === expectedUpdate || + field.name === `${expectedUpdate}ById` + ) { + // Prefer non-ById version + if (!update || field.name === expectedUpdate) { + update = field.name; + } + } + + // Match delete (could be deleteUser or deleteUserById) + if ( + field.name === expectedDelete || + field.name === `${expectedDelete}ById` + ) { + // Prefer non-ById version + if (!del || field.name === expectedDelete) { + del = field.name; + } + } + } + + return { create, update, delete: del }; +} + +// ============================================================================ +// Constraint Inference +// ============================================================================ + +/** + * Infer constraints from mutation input types + * + * Primary key can be inferred from Update/Delete mutation input types, + * which typically have an 'id' field or similar. + */ +function inferConstraints( + entityName: string, + typeMap: Map +): TableConstraints { + const primaryKey: ConstraintInfo[] = []; + + // Try to find Update or Delete input type to extract PK + const updateInputName = `Update${entityName}Input`; + const deleteInputName = `Delete${entityName}Input`; + + const updateInput = typeMap.get(updateInputName); + const deleteInput = typeMap.get(deleteInputName); + + // Check update input for id field + const inputToCheck = updateInput || deleteInput; + if (inputToCheck?.inputFields) { + const idField = inputToCheck.inputFields.find( + (f) => f.name === 'id' || f.name === 'nodeId' + ); + + if (idField) { + primaryKey.push({ + name: 'primary', + fields: [ + { + name: idField.name, + type: convertToCleanFieldType(idField.type), + }, + ], + }); + } + } + + // If no PK found from inputs, try to find 'id' field in entity type + if (primaryKey.length === 0) { + const entityType = typeMap.get(entityName); + if (entityType?.fields) { + const idField = entityType.fields.find( + (f) => f.name === 'id' || f.name === 'nodeId' + ); + + if (idField) { + primaryKey.push({ + name: 'primary', + fields: [ + { + name: idField.name, + type: convertToCleanFieldType(idField.type), + }, + ], + }); + } + } + } + + return { + primaryKey, + foreignKey: [], // Would need FK info to populate + unique: [], // Would need constraint info to populate + }; +} + +// ============================================================================ +// Inflection Building +// ============================================================================ + +/** + * Build inflection map from discovered types + */ +function buildInflection( + entityName: string, + typeMap: Map +): TableInflection { + const pluralName = pluralize(entityName); + const singularFieldName = lcFirst(entityName); + const pluralFieldName = lcFirst(pluralName); + + // Check which types actually exist in the schema + const hasFilter = typeMap.has(`${entityName}Filter`); + const hasPatch = typeMap.has(`${entityName}Patch`); + const hasUpdatePayload = typeMap.has(`Update${entityName}Payload`); + + // Detect the actual OrderBy type from schema + // PostGraphile typically generates {PluralName}OrderBy (e.g., AddressesOrderBy) + // but we check for the actual type in case of custom inflection + const expectedOrderByType = `${pluralName}OrderBy`; + const orderByType = + findOrderByType(entityName, pluralName, typeMap) || expectedOrderByType; + + return { + allRows: pluralFieldName, + allRowsSimple: pluralFieldName, + conditionType: `${entityName}Condition`, + connection: `${pluralName}Connection`, + createField: `create${entityName}`, + createInputType: `Create${entityName}Input`, + createPayloadType: `Create${entityName}Payload`, + deleteByPrimaryKey: `delete${entityName}`, + deletePayloadType: `Delete${entityName}Payload`, + edge: `${pluralName}Edge`, + edgeField: lcFirst(pluralName), + enumType: `${entityName}Enum`, + filterType: hasFilter ? `${entityName}Filter` : null, + inputType: `${entityName}Input`, + orderByType, + patchField: singularFieldName, + patchType: hasPatch ? `${entityName}Patch` : null, + tableFieldName: singularFieldName, + tableType: entityName, + typeName: entityName, + updateByPrimaryKey: `update${entityName}`, + updatePayloadType: hasUpdatePayload ? `Update${entityName}Payload` : null, + }; +} + +/** + * Find the actual OrderBy enum type for an entity from the schema + * + * PostGraphile generates OrderBy enums with various patterns: + * - {PluralName}OrderBy (e.g., AddressesOrderBy, UsersOrderBy) + * - Sometimes with custom inflection (e.g., SchemataOrderBy for Schema) + * + * We search for the actual type in the schema to handle all cases. + */ +function findOrderByType( + entityName: string, + pluralName: string, + typeMap: Map +): string | null { + // Try the standard pattern first: {PluralName}OrderBy + const standardName = `${pluralName}OrderBy`; + if (typeMap.has(standardName)) { + return standardName; + } + + // Build a list of candidate OrderBy names to check + // These are variations of the entity name with common plural suffixes + const candidates = [ + `${entityName}sOrderBy`, // Simple 's' plural: User -> UsersOrderBy + `${entityName}esOrderBy`, // 'es' plural: Address -> AddressesOrderBy + `${entityName}OrderBy`, // No change (already plural or singular OK) + ]; + + // Check each candidate + for (const candidate of candidates) { + if (typeMap.has(candidate) && typeMap.get(candidate)?.kind === 'ENUM') { + return candidate; + } + } + + // Fallback: search for an enum that EXACTLY matches the entity plural pattern + // We look for types that are the pluralized entity name + OrderBy + // This avoids matching SchemaGrantsOrderBy when looking for Schema's OrderBy + for (const [typeName, type] of typeMap) { + if (type.kind !== 'ENUM' || !typeName.endsWith('OrderBy')) continue; + + // Extract the base name (without OrderBy suffix) + const baseName = typeName.slice(0, -7); // Remove 'OrderBy' + + // Check if singularizing the base name gives us the entity name + // e.g., 'Schemata' -> 'Schema', 'Users' -> 'User', 'Addresses' -> 'Address' + if (singularize(baseName) === entityName) { + return typeName; + } + } + + return null; +} + +// ============================================================================ +// Utility Functions +// ============================================================================ + +/** + * Build a map of type name → IntrospectionType for efficient lookup + */ +function buildTypeMap( + types: IntrospectionType[] +): Map { + const map = new Map(); + for (const type of types) { + map.set(type.name, type); + } + return map; +} + +/** + * Get fields from a type, returning empty array if null + */ +function getTypeFields( + type: IntrospectionType | undefined +): IntrospectionField[] { + return type?.fields ?? []; +} diff --git a/graphql/codegen/src/cli/introspect/meta-query.ts b/graphql/codegen/src/cli/introspect/meta-query.ts deleted file mode 100644 index 24c44eea8..000000000 --- a/graphql/codegen/src/cli/introspect/meta-query.ts +++ /dev/null @@ -1,297 +0,0 @@ -/** - * The _meta GraphQL query for introspecting PostGraphile schema - * This query fetches all table metadata including fields, constraints, and relations - */ - -export const META_QUERY = ` -query Meta { - _meta { - tables { - name - query { - all - create - delete - one - update - } - fields { - name - type { - gqlType - isArray - modifier - pgAlias - pgType - subtype - typmod - } - } - inflection { - allRows - allRowsSimple - conditionType - connection - createField - createInputType - createPayloadType - deleteByPrimaryKey - deletePayloadType - edge - edgeField - enumType - filterType - inputType - orderByType - patchField - patchType - tableFieldName - tableType - typeName - updateByPrimaryKey - updatePayloadType - } - primaryKeyConstraints { - name - fields { - name - type { - gqlType - isArray - modifier - pgAlias - pgType - subtype - typmod - } - } - } - uniqueConstraints { - name - fields { - name - type { - gqlType - isArray - modifier - pgAlias - pgType - subtype - typmod - } - } - } - foreignKeyConstraints { - name - fields { - name - type { - gqlType - isArray - modifier - pgAlias - pgType - subtype - typmod - } - } - refFields { - name - type { - gqlType - isArray - modifier - pgAlias - pgType - subtype - typmod - } - } - refTable { - name - } - } - relations { - belongsTo { - fieldName - isUnique - keys { - name - type { - gqlType - isArray - modifier - pgAlias - pgType - subtype - typmod - } - } - references { - name - } - type - } - hasOne { - fieldName - isUnique - keys { - name - type { - gqlType - isArray - modifier - pgAlias - pgType - subtype - typmod - } - } - referencedBy { - name - } - type - } - hasMany { - fieldName - isUnique - keys { - name - type { - gqlType - isArray - modifier - pgAlias - pgType - subtype - typmod - } - } - referencedBy { - name - } - type - } - manyToMany { - fieldName - junctionTable { - name - } - rightTable { - name - } - type - } - } - } - } -} -`; - -/** - * Types for the _meta query response - */ -export interface MetaFieldType { - gqlType: string; - isArray: boolean; - modifier: string | number | null; - pgAlias: string | null; - pgType: string | null; - subtype: string | null; - typmod: number | null; -} - -export interface MetaField { - name: string; - type: MetaFieldType; -} - -export interface MetaConstraint { - name: string; - fields: MetaField[]; -} - -export interface MetaForeignKeyConstraint extends MetaConstraint { - refFields: MetaField[]; - refTable: { name: string }; -} - -export interface MetaTableQuery { - all: string; - create: string; - delete: string | null; - one: string; - update: string | null; -} - -export interface MetaTableInflection { - allRows: string; - allRowsSimple: string; - conditionType: string; - connection: string; - createField: string; - createInputType: string; - createPayloadType: string; - deleteByPrimaryKey: string | null; - deletePayloadType: string; - edge: string; - edgeField: string; - enumType: string; - filterType: string | null; - inputType: string; - orderByType: string; - patchField: string; - patchType: string | null; - tableFieldName: string; - tableType: string; - typeName: string; - updateByPrimaryKey: string | null; - updatePayloadType: string | null; -} - -export interface MetaBelongsToRelation { - fieldName: string | null; - isUnique: boolean; - keys: MetaField[]; - references: { name: string }; - type: string | null; -} - -export interface MetaHasRelation { - fieldName: string | null; - isUnique: boolean; - keys: MetaField[]; - referencedBy: { name: string }; - type: string | null; -} - -export interface MetaManyToManyRelation { - fieldName: string | null; - junctionTable: { name: string }; - rightTable: { name: string }; - type: string | null; -} - -export interface MetaTableRelations { - belongsTo: MetaBelongsToRelation[]; - hasOne: MetaHasRelation[]; - hasMany: MetaHasRelation[]; - manyToMany: MetaManyToManyRelation[]; -} - -export interface MetaTable { - name: string; - query: MetaTableQuery; - fields: MetaField[]; - inflection: MetaTableInflection; - primaryKeyConstraints: MetaConstraint[]; - uniqueConstraints: MetaConstraint[]; - foreignKeyConstraints: MetaForeignKeyConstraint[]; - relations: MetaTableRelations; -} - -export interface MetaQueryResponse { - _meta: { - tables: MetaTable[]; - }; -} diff --git a/graphql/codegen/src/cli/introspect/pluralize.ts b/graphql/codegen/src/cli/introspect/pluralize.ts new file mode 100644 index 000000000..b5b712b8f --- /dev/null +++ b/graphql/codegen/src/cli/introspect/pluralize.ts @@ -0,0 +1,95 @@ +/** + * Pluralization utilities for inferring entity names from PostGraphile patterns + * + * Uses the 'inflection' package which is already a dependency of this package. + */ +import * as inflection from 'inflection'; + +/** + * Latin plural suffixes that inflection handles differently than PostGraphile. + * + * The inflection library correctly singularizes Latin words (schemata → schematum), + * but PostGraphile uses English-style naming (schemata → schema). + * + * Format: [pluralSuffix, singularSuffix] + */ +const LATIN_SUFFIX_OVERRIDES: Array<[string, string]> = [ + // Common Latin plural endings + ['schemata', 'schema'], + ['criteria', 'criterion'], + ['phenomena', 'phenomenon'], + ['media', 'medium'], + ['memoranda', 'memorandum'], + ['strata', 'stratum'], + ['curricula', 'curriculum'], + ['data', 'datum'], +]; + +/** + * Convert a word to its singular form + * @example "Users" → "User", "People" → "Person", "Schemata" → "Schema", "ApiSchemata" → "ApiSchema" + */ +export function singularize(word: string): string { + // Check for Latin suffix overrides (handles compound words like "ApiSchemata") + const lowerWord = word.toLowerCase(); + + for (const [pluralSuffix, singularSuffix] of LATIN_SUFFIX_OVERRIDES) { + if (lowerWord.endsWith(pluralSuffix)) { + // Find where the suffix starts in the original word (preserving case) + const suffixStart = word.length - pluralSuffix.length; + const prefix = word.slice(0, suffixStart); + const originalSuffix = word.slice(suffixStart); + + // Preserve the casing of the first letter of the suffix + const isUpperSuffix = + originalSuffix[0] === originalSuffix[0].toUpperCase(); + const newSuffix = isUpperSuffix + ? singularSuffix.charAt(0).toUpperCase() + singularSuffix.slice(1) + : singularSuffix; + + return prefix + newSuffix; + } + } + + return inflection.singularize(word); +} + +/** + * Convert a word to its plural form + * @example "User" → "Users", "Person" → "People" + */ +export function pluralize(word: string): string { + return inflection.pluralize(word); +} + +/** + * Convert PascalCase to camelCase + * @example "UserProfile" → "userProfile" + */ +export function lcFirst(str: string): string { + return str.charAt(0).toLowerCase() + str.slice(1); +} + +/** + * Convert camelCase to PascalCase + * @example "userProfile" → "UserProfile" + */ +export function ucFirst(str: string): string { + return str.charAt(0).toUpperCase() + str.slice(1); +} + +/** + * Convert a plural PascalCase type name to singular camelCase field name + * @example "Users" → "user", "OrderItems" → "orderItem" + */ +export function toFieldName(pluralTypeName: string): string { + return lcFirst(singularize(pluralTypeName)); +} + +/** + * Convert a singular PascalCase type name to plural camelCase query name + * @example "User" → "users", "OrderItem" → "orderItems" + */ +export function toQueryName(singularTypeName: string): string { + return lcFirst(pluralize(singularTypeName)); +} diff --git a/graphql/codegen/src/cli/introspect/source/endpoint.ts b/graphql/codegen/src/cli/introspect/source/endpoint.ts new file mode 100644 index 000000000..a5c50ff84 --- /dev/null +++ b/graphql/codegen/src/cli/introspect/source/endpoint.ts @@ -0,0 +1,73 @@ +/** + * Endpoint Schema Source + * + * Fetches GraphQL schema via introspection from a live endpoint. + * Wraps the existing fetchSchema() function with the SchemaSource interface. + */ +import type { SchemaSource, SchemaSourceResult } from './types'; +import { SchemaSourceError } from './types'; +import { fetchSchema } from '../fetch-schema'; + +export interface EndpointSchemaSourceOptions { + /** + * GraphQL endpoint URL + */ + endpoint: string; + + /** + * Optional authorization header value (e.g., "Bearer token") + */ + authorization?: string; + + /** + * Optional additional headers + */ + headers?: Record; + + /** + * Request timeout in milliseconds (default: 30000) + */ + timeout?: number; +} + +/** + * Schema source that fetches from a live GraphQL endpoint + */ +export class EndpointSchemaSource implements SchemaSource { + private readonly options: EndpointSchemaSourceOptions; + + constructor(options: EndpointSchemaSourceOptions) { + this.options = options; + } + + async fetch(): Promise { + const result = await fetchSchema({ + endpoint: this.options.endpoint, + authorization: this.options.authorization, + headers: this.options.headers, + timeout: this.options.timeout, + }); + + if (!result.success) { + throw new SchemaSourceError( + result.error ?? 'Unknown error fetching schema', + this.describe() + ); + } + + if (!result.data) { + throw new SchemaSourceError( + 'No introspection data returned', + this.describe() + ); + } + + return { + introspection: result.data, + }; + } + + describe(): string { + return `endpoint: ${this.options.endpoint}`; + } +} diff --git a/graphql/codegen/src/cli/introspect/source/file.ts b/graphql/codegen/src/cli/introspect/source/file.ts new file mode 100644 index 000000000..6ab828aac --- /dev/null +++ b/graphql/codegen/src/cli/introspect/source/file.ts @@ -0,0 +1,101 @@ +/** + * File Schema Source + * + * Loads GraphQL schema from a local .graphql SDL file and converts it + * to introspection format using the graphql package. + */ +import * as fs from 'node:fs'; +import * as path from 'node:path'; +import { buildSchema, introspectionFromSchema } from 'graphql'; +import type { SchemaSource, SchemaSourceResult } from './types'; +import { SchemaSourceError } from './types'; +import type { IntrospectionQueryResponse } from '../../../types/introspection'; + +export interface FileSchemaSourceOptions { + /** + * Path to the GraphQL schema file (.graphql) + * Can be absolute or relative to current working directory + */ + schemaPath: string; +} + +/** + * Schema source that loads from a local GraphQL schema file + * + * Supports .graphql files containing SDL (Schema Definition Language). + * The SDL is parsed using graphql-js and converted to introspection format. + */ +export class FileSchemaSource implements SchemaSource { + private readonly options: FileSchemaSourceOptions; + + constructor(options: FileSchemaSourceOptions) { + this.options = options; + } + + async fetch(): Promise { + const absolutePath = path.isAbsolute(this.options.schemaPath) + ? this.options.schemaPath + : path.resolve(process.cwd(), this.options.schemaPath); + + // Check file exists + if (!fs.existsSync(absolutePath)) { + throw new SchemaSourceError( + `Schema file not found: ${absolutePath}`, + this.describe() + ); + } + + // Read file content + let sdl: string; + try { + sdl = await fs.promises.readFile(absolutePath, 'utf-8'); + } catch (err) { + throw new SchemaSourceError( + `Failed to read schema file: ${err instanceof Error ? err.message : 'Unknown error'}`, + this.describe(), + err instanceof Error ? err : undefined + ); + } + + // Validate non-empty + if (!sdl.trim()) { + throw new SchemaSourceError('Schema file is empty', this.describe()); + } + + // Parse SDL to GraphQL schema + let schema; + try { + schema = buildSchema(sdl); + } catch (err) { + throw new SchemaSourceError( + `Invalid GraphQL SDL: ${err instanceof Error ? err.message : 'Unknown error'}`, + this.describe(), + err instanceof Error ? err : undefined + ); + } + + // Convert to introspection format + let introspectionResult; + try { + introspectionResult = introspectionFromSchema(schema); + } catch (err) { + throw new SchemaSourceError( + `Failed to generate introspection: ${err instanceof Error ? err.message : 'Unknown error'}`, + this.describe(), + err instanceof Error ? err : undefined + ); + } + + // Convert graphql-js introspection result to our mutable type + // The graphql-js types are readonly, but our types are mutable + const introspection: IntrospectionQueryResponse = JSON.parse( + JSON.stringify(introspectionResult) + ) as IntrospectionQueryResponse; + + return { introspection }; + } + + describe(): string { + return `file: ${this.options.schemaPath}`; + } +} diff --git a/graphql/codegen/src/cli/introspect/source/index.ts b/graphql/codegen/src/cli/introspect/source/index.ts new file mode 100644 index 000000000..fee3433e3 --- /dev/null +++ b/graphql/codegen/src/cli/introspect/source/index.ts @@ -0,0 +1,96 @@ +/** + * Schema Source Module + * + * Provides a unified interface for loading GraphQL schemas from different sources: + * - Live GraphQL endpoints (via introspection) + * - Static .graphql schema files + */ +export * from './types'; +export * from './endpoint'; +export * from './file'; + +import type { SchemaSource } from './types'; +import { EndpointSchemaSource } from './endpoint'; +import { FileSchemaSource } from './file'; + +export interface CreateSchemaSourceOptions { + /** + * GraphQL endpoint URL (for live introspection) + */ + endpoint?: string; + + /** + * Path to GraphQL schema file (.graphql) + */ + schema?: string; + + /** + * Optional authorization header for endpoint requests + */ + authorization?: string; + + /** + * Optional additional headers for endpoint requests + */ + headers?: Record; + + /** + * Request timeout in milliseconds (for endpoint requests) + */ + timeout?: number; +} + +/** + * Create a schema source based on configuration + * + * @param options - Source configuration + * @returns Appropriate SchemaSource implementation + * @throws Error if neither endpoint nor schema is provided + */ +export function createSchemaSource( + options: CreateSchemaSourceOptions +): SchemaSource { + if (options.schema) { + return new FileSchemaSource({ + schemaPath: options.schema, + }); + } + + if (options.endpoint) { + return new EndpointSchemaSource({ + endpoint: options.endpoint, + authorization: options.authorization, + headers: options.headers, + timeout: options.timeout, + }); + } + + throw new Error( + 'Either endpoint or schema must be provided. ' + + 'Use --endpoint for live introspection or --schema for a local file.' + ); +} + +/** + * Validate that source options are valid (at least one source specified) + */ +export function validateSourceOptions(options: CreateSchemaSourceOptions): { + valid: boolean; + error?: string; +} { + if (!options.endpoint && !options.schema) { + return { + valid: false, + error: 'Either endpoint or schema must be provided', + }; + } + + if (options.endpoint && options.schema) { + return { + valid: false, + error: 'Cannot use both endpoint and schema. Choose one source.', + }; + } + + return { valid: true }; +} diff --git a/graphql/codegen/src/cli/introspect/source/types.ts b/graphql/codegen/src/cli/introspect/source/types.ts new file mode 100644 index 000000000..18f301cad --- /dev/null +++ b/graphql/codegen/src/cli/introspect/source/types.ts @@ -0,0 +1,62 @@ +/** + * Schema Source Types + * + * Defines the interface for schema sources, allowing the codegen pipeline + * to work with both live GraphQL endpoints and static schema files. + */ +import type { IntrospectionQueryResponse } from '../../../types/introspection'; + +/** + * Result from fetching a schema source + */ +export interface SchemaSourceResult { + /** + * The GraphQL introspection data + */ + introspection: IntrospectionQueryResponse; +} + +/** + * Abstract interface for schema sources + * + * Implementations: + * - EndpointSchemaSource: Fetches from a live GraphQL endpoint + * - FileSchemaSource: Loads from a local .graphql schema file + */ +export interface SchemaSource { + /** + * Fetch or load the GraphQL introspection data + * @throws SchemaSourceError if fetching fails + */ + fetch(): Promise; + + /** + * Human-readable description of the source (for logging) + * @example "endpoint: https://api.example.com/graphql" + * @example "file: ./schema.graphql" + */ + describe(): string; +} + +/** + * Error thrown when a schema source fails to fetch + */ +export class SchemaSourceError extends Error { + constructor( + message: string, + /** + * Description of the source that failed + */ + public readonly source: string, + /** + * Original error that caused the failure + */ + public readonly cause?: Error + ) { + super(`${message} (source: ${source})`); + this.name = 'SchemaSourceError'; + + // Maintain proper prototype chain + Object.setPrototypeOf(this, SchemaSourceError.prototype); + } +} diff --git a/graphql/codegen/src/cli/introspect/transform.ts b/graphql/codegen/src/cli/introspect/transform.ts index 026d372c8..41d8de0f1 100644 --- a/graphql/codegen/src/cli/introspect/transform.ts +++ b/graphql/codegen/src/cli/introspect/transform.ts @@ -1,226 +1,11 @@ /** - * Transform _meta query response to CleanTable[] format + * Table utility functions for CleanTable[] + * + * Note: The _meta transform functions have been removed. + * Tables are now inferred from standard GraphQL introspection + * using inferTablesFromIntrospection() in ./infer-tables.ts */ -import type { - CleanTable, - CleanField, - CleanFieldType, - CleanRelations, - CleanBelongsToRelation, - CleanHasOneRelation, - CleanHasManyRelation, - CleanManyToManyRelation, - TableInflection, - TableQueryNames, - TableConstraints, - ConstraintInfo, - ForeignKeyConstraint, -} from '../../types/schema'; - -import type { - MetaQueryResponse, - MetaTable, - MetaField, - MetaFieldType, - MetaConstraint, - MetaForeignKeyConstraint, - MetaBelongsToRelation, - MetaHasRelation, - MetaManyToManyRelation, -} from './meta-query'; - -/** - * Transform _meta response to CleanTable array - */ -export function transformMetaToCleanTables( - metaResponse: MetaQueryResponse -): CleanTable[] { - const { tables } = metaResponse._meta; - - return tables.map((table) => transformTable(table)); -} - -/** - * Transform a single MetaTable to CleanTable - */ -function transformTable(table: MetaTable): CleanTable { - return { - name: table.name, - fields: transformFields(table.fields), - relations: transformRelations(table.relations), - inflection: transformInflection(table.inflection), - query: transformQuery(table.query), - constraints: transformConstraints(table), - }; -} - -/** - * Transform MetaField[] to CleanField[] - */ -function transformFields(fields: MetaField[]): CleanField[] { - return fields.map((field) => ({ - name: field.name, - type: transformFieldType(field.type), - })); -} - -/** - * Transform MetaFieldType to CleanFieldType - */ -function transformFieldType(type: MetaFieldType): CleanFieldType { - return { - gqlType: type.gqlType, - isArray: type.isArray, - modifier: type.modifier, - pgAlias: type.pgAlias, - pgType: type.pgType, - subtype: type.subtype, - typmod: type.typmod, - }; -} - -/** - * Transform table relations - */ -function transformRelations(relations: MetaTable['relations']): CleanRelations { - return { - belongsTo: relations.belongsTo.map(transformBelongsTo), - hasOne: relations.hasOne.map(transformHasOne), - hasMany: relations.hasMany.map(transformHasMany), - manyToMany: relations.manyToMany.map(transformManyToMany), - }; -} - -/** - * Transform belongsTo relation - */ -function transformBelongsTo(rel: MetaBelongsToRelation): CleanBelongsToRelation { - return { - fieldName: rel.fieldName, - isUnique: rel.isUnique, - referencesTable: rel.references.name, - type: rel.type, - keys: transformFields(rel.keys), - }; -} - -/** - * Transform hasOne relation - */ -function transformHasOne(rel: MetaHasRelation): CleanHasOneRelation { - return { - fieldName: rel.fieldName, - isUnique: rel.isUnique, - referencedByTable: rel.referencedBy.name, - type: rel.type, - keys: transformFields(rel.keys), - }; -} - -/** - * Transform hasMany relation - */ -function transformHasMany(rel: MetaHasRelation): CleanHasManyRelation { - return { - fieldName: rel.fieldName, - isUnique: rel.isUnique, - referencedByTable: rel.referencedBy.name, - type: rel.type, - keys: transformFields(rel.keys), - }; -} - -/** - * Transform manyToMany relation - */ -function transformManyToMany(rel: MetaManyToManyRelation): CleanManyToManyRelation { - return { - fieldName: rel.fieldName, - rightTable: rel.rightTable.name, - junctionTable: rel.junctionTable.name, - type: rel.type, - }; -} - -/** - * Transform inflection data - */ -function transformInflection( - inflection: MetaTable['inflection'] -): TableInflection { - return { - allRows: inflection.allRows, - allRowsSimple: inflection.allRowsSimple, - conditionType: inflection.conditionType, - connection: inflection.connection, - createField: inflection.createField, - createInputType: inflection.createInputType, - createPayloadType: inflection.createPayloadType, - deleteByPrimaryKey: inflection.deleteByPrimaryKey, - deletePayloadType: inflection.deletePayloadType, - edge: inflection.edge, - edgeField: inflection.edgeField, - enumType: inflection.enumType, - filterType: inflection.filterType, - inputType: inflection.inputType, - orderByType: inflection.orderByType, - patchField: inflection.patchField, - patchType: inflection.patchType, - tableFieldName: inflection.tableFieldName, - tableType: inflection.tableType, - typeName: inflection.typeName, - updateByPrimaryKey: inflection.updateByPrimaryKey, - updatePayloadType: inflection.updatePayloadType, - }; -} - -/** - * Transform query names - */ -function transformQuery(query: MetaTable['query']): TableQueryNames { - return { - all: query.all, - one: query.one, - create: query.create, - update: query.update, - delete: query.delete, - }; -} - -/** - * Transform constraints - */ -function transformConstraints(table: MetaTable): TableConstraints { - return { - primaryKey: table.primaryKeyConstraints.map(transformConstraint), - foreignKey: table.foreignKeyConstraints.map(transformForeignKeyConstraint), - unique: table.uniqueConstraints.map(transformConstraint), - }; -} - -/** - * Transform a basic constraint - */ -function transformConstraint(constraint: MetaConstraint): ConstraintInfo { - return { - name: constraint.name, - fields: transformFields(constraint.fields), - }; -} - -/** - * Transform a foreign key constraint - */ -function transformForeignKeyConstraint( - constraint: MetaForeignKeyConstraint -): ForeignKeyConstraint { - return { - name: constraint.name, - fields: transformFields(constraint.fields), - refTable: constraint.refTable.name, - refFields: transformFields(constraint.refFields), - }; -} +import type { CleanTable } from '../../types/schema'; /** * Get table names from CleanTable array diff --git a/graphql/codegen/src/cli/watch/cache.ts b/graphql/codegen/src/cli/watch/cache.ts index a3f1eb278..f92764d02 100644 --- a/graphql/codegen/src/cli/watch/cache.ts +++ b/graphql/codegen/src/cli/watch/cache.ts @@ -1,19 +1,18 @@ /** * In-memory schema cache for watch mode - * + * * Only stores the hash in memory - no file I/O during normal operation. * Touch file feature is optional and only writes when explicitly configured. */ import * as fs from 'node:fs'; import * as path from 'node:path'; -import type { MetaQueryResponse } from '../introspect/meta-query'; import type { IntrospectionQueryResponse } from '../../types/introspection'; -import { hashObject, combineHashes } from './hash'; +import { hashObject } from './hash'; /** * Lightweight in-memory schema cache - * Only stores the combined hash string to detect changes + * Only stores the schema hash string to detect changes */ export class SchemaCache { /** Current schema hash (in-memory only) */ @@ -24,10 +23,9 @@ export class SchemaCache { * This is the hot path - must be efficient */ async hasChanged( - meta: MetaQueryResponse, schema: IntrospectionQueryResponse ): Promise<{ changed: boolean; newHash: string }> { - const newHash = await this.computeHash(meta, schema); + const newHash = await this.computeHash(schema); const changed = this.currentHash === null || this.currentHash !== newHash; return { changed, newHash }; } @@ -54,17 +52,12 @@ export class SchemaCache { } /** - * Compute hash from meta and schema responses + * Compute hash from schema response */ private async computeHash( - meta: MetaQueryResponse, schema: IntrospectionQueryResponse ): Promise { - // Hash each response separately then combine - // This is more efficient than stringifying both together - const metaHash = await hashObject(meta); - const schemaHash = await hashObject(schema); - return combineHashes(metaHash, schemaHash); + return hashObject(schema); } } @@ -78,7 +71,7 @@ export function touchFile(filePath: string): void { if (!fs.existsSync(dir)) { fs.mkdirSync(dir, { recursive: true }); } - + // Touch the file (create if doesn't exist, update mtime if it does) const time = new Date(); try { diff --git a/graphql/codegen/src/cli/watch/poller.ts b/graphql/codegen/src/cli/watch/poller.ts index bcc8d158c..c60583f85 100644 --- a/graphql/codegen/src/cli/watch/poller.ts +++ b/graphql/codegen/src/cli/watch/poller.ts @@ -1,23 +1,26 @@ /** * Schema polling logic with EventEmitter pattern - * + * * Uses in-memory hash comparison for efficiency. * No file I/O during normal polling - only touchFile is optional file write. */ import { EventEmitter } from 'node:events'; -import type { MetaQueryResponse } from '../introspect/meta-query'; import type { IntrospectionQueryResponse } from '../../types/introspection'; -import { fetchMeta } from '../introspect/fetch-meta'; import { fetchSchema } from '../introspect/fetch-schema'; import { SchemaCache, touchFile } from './cache'; -import type { PollResult, PollEvent, PollEventType, WatchOptions } from './types'; -import { hashObject, combineHashes } from './hash'; +import type { + PollResult, + PollEvent, + PollEventType, + WatchOptions, +} from './types'; +import { hashObject } from './hash'; /** * Schema poller that periodically introspects a GraphQL endpoint * and emits events when the schema changes. - * + * * Uses in-memory caching for hash comparison - no file I/O overhead. */ export class SchemaPoller extends EventEmitter { @@ -67,7 +70,11 @@ export class SchemaPoller extends EventEmitter { async poll(): Promise { // Prevent concurrent polls if (this.isPolling) { - return { success: false, changed: false, error: 'Poll already in progress' }; + return { + success: false, + changed: false, + error: 'Poll already in progress', + }; } this.isPolling = true; @@ -75,37 +82,28 @@ export class SchemaPoller extends EventEmitter { this.emit('poll-start', this.createEvent('poll-start')); try { - // Fetch both _meta and __schema - const [metaResult, schemaResult] = await Promise.all([ - fetchMeta({ - endpoint: this.options.endpoint, - authorization: this.options.authorization, - headers: this.options.headers, - timeout: 30000, - }), - fetchSchema({ - endpoint: this.options.endpoint, - authorization: this.options.authorization, - headers: this.options.headers, - timeout: 30000, - }), - ]); + // Fetch __schema via standard introspection + const schemaResult = await fetchSchema({ + endpoint: this.options.endpoint, + authorization: this.options.authorization, + headers: this.options.headers, + timeout: 30000, + }); const duration = Date.now() - startTime; // Check for errors - if (!metaResult.success) { - return this.handleError(`_meta fetch failed: ${metaResult.error}`, duration); - } if (!schemaResult.success) { - return this.handleError(`__schema fetch failed: ${schemaResult.error}`, duration); + return this.handleError( + `__schema fetch failed: ${schemaResult.error}`, + duration + ); } - const meta = metaResult.data!; const schema = schemaResult.data!; // Check if schema changed - const { changed, newHash } = await this.cache.hasChanged(meta, schema); + const { changed, newHash } = await this.cache.hasChanged(schema); // Reset error counter on success this.consecutiveErrors = 0; @@ -119,14 +117,19 @@ export class SchemaPoller extends EventEmitter { touchFile(this.options.touchFile); } - this.emit('schema-changed', this.createEvent('schema-changed', { hash: newHash, duration })); - return { success: true, changed: true, hash: newHash, meta, schema }; + this.emit( + 'schema-changed', + this.createEvent('schema-changed', { hash: newHash, duration }) + ); + return { success: true, changed: true, hash: newHash, schema }; } - this.emit('schema-unchanged', this.createEvent('schema-unchanged', { duration })); + this.emit( + 'schema-unchanged', + this.createEvent('schema-unchanged', { duration }) + ); this.emit('poll-success', this.createEvent('poll-success', { duration })); - return { success: true, changed: false, hash: newHash, meta, schema }; - + return { success: true, changed: false, hash: newHash, schema }; } catch (err) { const duration = Date.now() - startTime; const error = err instanceof Error ? err.message : 'Unknown error'; @@ -149,23 +152,15 @@ export class SchemaPoller extends EventEmitter { */ async seedCache(): Promise { try { - const [metaResult, schemaResult] = await Promise.all([ - fetchMeta({ - endpoint: this.options.endpoint, - authorization: this.options.authorization, - headers: this.options.headers, - timeout: 30000, - }), - fetchSchema({ - endpoint: this.options.endpoint, - authorization: this.options.authorization, - headers: this.options.headers, - timeout: 30000, - }), - ]); - - if (metaResult.success && schemaResult.success) { - const { newHash } = await this.cache.hasChanged(metaResult.data!, schemaResult.data!); + const schemaResult = await fetchSchema({ + endpoint: this.options.endpoint, + authorization: this.options.authorization, + headers: this.options.headers, + timeout: 30000, + }); + + if (schemaResult.success) { + const { newHash } = await this.cache.hasChanged(schemaResult.data!); this.cache.updateHash(newHash); } } catch { @@ -196,10 +191,16 @@ export class SchemaPoller extends EventEmitter { private handleError(error: string, duration: number): PollResult { this.consecutiveErrors++; - this.emit('poll-error', this.createEvent('poll-error', { error, duration })); + this.emit( + 'poll-error', + this.createEvent('poll-error', { error, duration }) + ); // Slow down polling after multiple consecutive errors - if (this.consecutiveErrors >= this.MAX_CONSECUTIVE_ERRORS && this.pollTimer) { + if ( + this.consecutiveErrors >= this.MAX_CONSECUTIVE_ERRORS && + this.pollTimer + ) { this.stop(); const newInterval = this.options.pollInterval * 2; this.pollTimer = setInterval(() => { @@ -210,7 +211,10 @@ export class SchemaPoller extends EventEmitter { return { success: false, changed: false, error }; } - private createEvent(type: PollEventType, extra?: Partial): PollEvent { + private createEvent( + type: PollEventType, + extra?: Partial + ): PollEvent { return { type, timestamp: Date.now(), @@ -223,10 +227,7 @@ export class SchemaPoller extends EventEmitter { * Utility to compute schema hash without full poll */ export async function computeSchemaHash( - meta: MetaQueryResponse, schema: IntrospectionQueryResponse ): Promise { - const metaHash = await hashObject(meta); - const schemaHash = await hashObject(schema); - return combineHashes(metaHash, schemaHash); + return hashObject(schema); } diff --git a/graphql/codegen/src/cli/watch/types.ts b/graphql/codegen/src/cli/watch/types.ts index 52fc5e634..ae5f595d7 100644 --- a/graphql/codegen/src/cli/watch/types.ts +++ b/graphql/codegen/src/cli/watch/types.ts @@ -2,7 +2,6 @@ * Watch mode types */ -import type { MetaQueryResponse } from '../introspect/meta-query'; import type { IntrospectionQueryResponse } from '../../types/introspection'; /** @@ -16,8 +15,6 @@ export interface PollResult { error?: string; /** The new hash if successful */ hash?: string; - /** Meta response if successful */ - meta?: MetaQueryResponse; /** Schema response if successful */ schema?: IntrospectionQueryResponse; } @@ -47,7 +44,7 @@ export interface WatchOptions { /** * Events emitted by the SchemaPoller */ -export type PollEventType = +export type PollEventType = | 'poll-start' | 'poll-success' | 'poll-error' diff --git a/graphql/codegen/src/types/config.ts b/graphql/codegen/src/types/config.ts index 5584559e6..ec7501fc4 100644 --- a/graphql/codegen/src/types/config.ts +++ b/graphql/codegen/src/types/config.ts @@ -7,9 +7,16 @@ */ export interface GraphQLSDKConfig { /** - * GraphQL endpoint URL (must expose _meta query) + * GraphQL endpoint URL for live introspection + * Either endpoint or schema must be provided */ - endpoint: string; + endpoint?: string; + + /** + * Path to GraphQL schema file (.graphql) for file-based generation + * Either endpoint or schema must be provided + */ + schema?: string; /** * Headers to include in introspection requests @@ -23,7 +30,7 @@ export interface GraphQLSDKConfig { output?: string; /** - * Table filtering options (for table-based CRUD operations from _meta) + * Table filtering options (for table-based CRUD operations) */ tables?: { /** Tables to include (glob patterns supported) */ @@ -129,7 +136,7 @@ export interface GraphQLSDKConfig { /** * Watch mode configuration options - * + * * Watch mode uses in-memory caching for efficiency - no file I/O during polling. */ export interface WatchConfig { @@ -173,8 +180,17 @@ export interface ResolvedWatchConfig { /** * Resolved configuration with defaults applied */ -export interface ResolvedConfig extends Required> { +export interface ResolvedConfig { + /** + * GraphQL endpoint URL (empty string if using schema file) + */ + endpoint: string; + /** + * Path to GraphQL schema file (null if using endpoint) + */ + schema: string | null; headers: Record; + output: string; tables: { include: string[]; exclude: string[]; @@ -187,6 +203,7 @@ export interface ResolvedConfig extends Required = { +export const DEFAULT_CONFIG: Omit = { headers: {}, output: './generated/graphql', tables: { @@ -277,7 +294,8 @@ export function defineConfig(config: GraphQLSDKConfig): GraphQLSDKConfig { */ export function resolveConfig(config: GraphQLSDKConfig): ResolvedConfig { return { - endpoint: config.endpoint, + endpoint: config.endpoint ?? '', + schema: config.schema ?? null, headers: config.headers ?? DEFAULT_CONFIG.headers, output: config.output ?? DEFAULT_CONFIG.output, tables: { @@ -296,29 +314,35 @@ export function resolveConfig(config: GraphQLSDKConfig): ResolvedConfig { hooks: { queries: config.hooks?.queries ?? DEFAULT_CONFIG.hooks.queries, mutations: config.hooks?.mutations ?? DEFAULT_CONFIG.hooks.mutations, - queryKeyPrefix: config.hooks?.queryKeyPrefix ?? DEFAULT_CONFIG.hooks.queryKeyPrefix, + queryKeyPrefix: + config.hooks?.queryKeyPrefix ?? DEFAULT_CONFIG.hooks.queryKeyPrefix, }, postgraphile: { schema: config.postgraphile?.schema ?? DEFAULT_CONFIG.postgraphile.schema, }, codegen: { - maxFieldDepth: config.codegen?.maxFieldDepth ?? DEFAULT_CONFIG.codegen.maxFieldDepth, - skipQueryField: config.codegen?.skipQueryField ?? DEFAULT_CONFIG.codegen.skipQueryField, + maxFieldDepth: + config.codegen?.maxFieldDepth ?? DEFAULT_CONFIG.codegen.maxFieldDepth, + skipQueryField: + config.codegen?.skipQueryField ?? DEFAULT_CONFIG.codegen.skipQueryField, }, orm: config.orm ? { output: config.orm.output ?? DEFAULT_ORM_CONFIG.output, - useSharedTypes: config.orm.useSharedTypes ?? DEFAULT_ORM_CONFIG.useSharedTypes, + useSharedTypes: + config.orm.useSharedTypes ?? DEFAULT_ORM_CONFIG.useSharedTypes, } : null, reactQuery: { enabled: config.reactQuery?.enabled ?? DEFAULT_CONFIG.reactQuery.enabled, }, watch: { - pollInterval: config.watch?.pollInterval ?? DEFAULT_WATCH_CONFIG.pollInterval, + pollInterval: + config.watch?.pollInterval ?? DEFAULT_WATCH_CONFIG.pollInterval, debounce: config.watch?.debounce ?? DEFAULT_WATCH_CONFIG.debounce, touchFile: config.watch?.touchFile ?? DEFAULT_WATCH_CONFIG.touchFile, - clearScreen: config.watch?.clearScreen ?? DEFAULT_WATCH_CONFIG.clearScreen, + clearScreen: + config.watch?.clearScreen ?? DEFAULT_WATCH_CONFIG.clearScreen, }, }; }