schema { query: RootQuery mutation: RootMutation } """ Assigns a root query or mutation to a category of the documentation. Has no effect on execution """ directive @doc( """ Name of the documentation category, e.g. Data, Admin, Import/Export, Notifications, Uploads, Activity feeds, WebSockets or Deprecated """ category: String! ) on FIELD_DEFINITION """ Access level of an uploaded file """ enum ACL { """ Only accessible through a signed URL, even when the file URL is known """ private """ Readable by anyone who knows the file URL """ public } """ Reference to an object by type and id, used by the deprecated activity feeds """ input ActiveRecordReference { """ ID of the referenced object """ id: ID """ IDs of the referenced objects """ ids: [ID] """ Type of the referenced object """ type: String! } """ Sort order for activities """ input ActivitiesSortInput { """ Sort by creation time """ created_at: StandardSort """ Sort by id """ id: StandardSort """ Sort by last update time """ updated_at: StandardSort } """ Activity published to activity feeds (legacy activity streams) """ type ActivityStreamsActivity { """ Unique identifier of the object """ id: ID! """ Activity data, including its uuid """ payload: ActivityStreamsPayload """ Unique identifier of the activity, shared by all feeds it was delivered to """ uuid: String! } """ Paginated list of activities from activity feeds. Deprecated """ type ActivityStreamsActivityCollection { """ Number of the page returned in results """ current_page: Int! """ True when there is at least one page after the current one """ has_next_page: Boolean! """ True when the current page is not the first one """ has_previous_page: Boolean! """ Maximum number of results returned on a single page """ per_page: Int! """ Results on the current page """ results: [ActivityStreamsActivity!] """ Total number of results matching the query, across all pages """ total_entries: Int! """ Total number of pages, given per_page """ total_pages: Int! } """ Paginated list of activities of a single activity feed. Deprecated """ type ActivityStreamsActivityStreamCollection { """ Number of the page returned in results """ current_page: Int! """ True when there is at least one page after the current one """ has_next_page: Boolean! """ True when the current page is not the first one """ has_previous_page: Boolean! """ Maximum number of results returned on a single page """ per_page: Int! """ Results on the current page """ results: [ActivityStreamsActivity!] """ Total number of results matching the query, across all pages """ total_entries: Int! """ Total number of pages, given per_page """ total_pages: Int! """ Number of unread activities in the feed """ unread_count: Int! } """ Activity feed type with the ids of its feeds (legacy activity streams) """ type ActivityStreamsFeed { """ Ids of the feeds of this type """ ids: [ID!] """ Feed type name """ name: String } """ Rule deciding which activities are delivered to which feeds (legacy activity streams) """ type ActivityStreamsHandler { """ Conditions an activity must match to be handled """ filter: ActivityStreamsPayload """ Unique identifier of the object """ id: ID! """ Name of the handler """ name: String """ Feeds a matching activity is delivered to """ targets: ActivityStreamsPayload } """ Paginated list of activity handlers. Deprecated """ type ActivityStreamsHandlerCollection { """ Number of the page returned in results """ current_page: Int! """ True when there is at least one page after the current one """ has_next_page: Boolean! """ True when the current page is not the first one """ has_previous_page: Boolean! """ Maximum number of results returned on a single page """ per_page: Int! """ Results on the current page """ results: [ActivityStreamsHandler!] """ Total number of results matching the query, across all pages """ total_entries: Int! """ Total number of pages, given per_page """ total_pages: Int! } """ Arbitrary JSON object describing an activity (legacy activity streams) """ scalar ActivityStreamsPayload """ Value of an address property of an imported object """ input AddressImport { """ Full address """ address: String """ Second address line """ address2: String """ Apartment number """ apartment: String """ City """ city: String """ Country name """ country: String """ Two-letter ISO country code, for example `US` """ iso_country_code: String """ Latitude """ lat: Float """ Longitude """ lng: Float """ Name of the address property """ name: String! """ Postal code """ postcode: String """ Service radius around the address """ service_radius: String """ State or region """ state: String """ Street name """ street: String """ Street number """ street_number: String """ Suburb """ suburb: String } """ Entry of the instance log, as streamed by pos-cli logs """ type AdminLogEntry { """ Timestamp of when the entry was logged """ created_at: JSONDate """ Structured data attached to the entry, for example the details of an error; null when there is none """ data: JSONPayload """ Identifier of the entry, increasing over time. Pass the id of the last entry seen as filter: { id: { range: { gt: <id> } } } to get only newer entries """ id: ID! """ Logged message """ message: String """ Type of the entry: the type given to the log tag, or the kind of error for entries logged by the platform (for example a Liquid error) """ type: String } """ Attributes shared by admin resources that are not deployed from files """ interface AdminNonDeployableSharedAttributesInterface { """ Timestamp of when the object was created, set automatically by the system """ created_at: JSONDate! """ Unique identifier of the object """ id: ID! """ Timestamp of when the object was last updated, set automatically by the system """ updated_at: JSONDate! } """ Schema that defines properties """ interface AdminPropertiesInterface { """ Deprecated, use properties instead """ fields: [Property!]! @deprecated(reason: "Use properties") """ Properties defined in the schema, sorted by name """ properties: [Property!]! } """ Attributes shared by resources that can be deployed from files with pos-cli (pages, partials, layouts, notifications, authorization policies, schemas, assets etc.) """ interface AdminSharedAttributesInterface { """ Timestamp of when the object was created, set automatically by the system """ created_at: JSONDate! """ Unique identifier of the object """ id: ID! """ When true, the resource is managed outside of files: pos-cli deploy and sync never overwrite or delete it """ manually_managed: Boolean """ Free-form data attached to the resource with the metadata key of its file (or the metadata argument of an admin mutation) """ metadata: HashObject """ Path of the file the resource comes from, relative to the app directory, for example views/pages/index.liquid or modules/my_module/public/views/partials/header.liquid. Identifies the resource in deploy, sync and admin mutations """ physical_file_path: String """ Timestamp of when the object was last updated, set automatically by the system """ updated_at: JSONDate! } """ A single aggregation computed over the documents matching the query """ input AggregationField { """ Sub-aggregations computed separately for every bucket of this aggregation. Only used together with field_name """ aggregations: [AggregationField] """ Legacy: not used """ customization_name: String """ Legacy: property of customizations attached to user profiles of profile_type to aggregate on, for the deprecated people query """ customization_property_name: String """ Field to aggregate on, e.g. `properties.color` or `created_at`. For a `properties.` field the exact (not analyzed) value is used """ field_name: String """ Key under which the result of this aggregation is returned """ name: String! """ Legacy: user profile property to aggregate on instead of field_name, for the deprecated people query """ profile_property_name: String """ Legacy: user profile type that profile_property_name and customization_property_name aggregations are restricted to; required with customization_property_name """ profile_type: String """ Maximum number of buckets returned by a terms aggregation """ size: Int = 200 """ Order of the buckets of a terms aggregation. When omitted, field_name aggregations are ordered by document count descending, and profile_property_name / customization_property_name aggregations by value ascending """ sort: AggregationSort """ Kind of aggregation computed for field_name. profile_property_name and customization_property_name aggregations are always terms aggregations """ type: AggregationTypeEnum = terms } """ Order of the buckets returned by a terms aggregation """ input AggregationSort { """ What to order the buckets by """ name: AggregationSortFieldEnum = _term """ Direction of the ordering """ order: AggregationSortOrderEnum = asc } """ What the buckets of a terms aggregation are ordered by """ enum AggregationSortFieldEnum { """ Order buckets by the number of documents they contain """ _count """ Order buckets by their value """ _term } """ Direction in which aggregation buckets are ordered """ enum AggregationSortOrderEnum { """ Ascending """ asc """ Descending """ desc } """ Kind of aggregation computed for a field """ enum AggregationTypeEnum { """ Returns the average value of the field among the matching documents """ avg """ Returns the maximum value of the field among the matching documents """ max """ Returns the minimum value of the field among the matching documents """ min """ Groups the matching documents into one bucket per unique value of the field and counts the documents in each bucket """ terms } """ Results of the aggregations requested by the aggregations argument """ type Aggregations { """ Currently identical to raw """ compact: JSONPayload """ Aggregation results as returned by the search index, keyed by the names given in the aggregations argument """ raw: JSONPayload } """ Value of any type: string, number, boolean, object or array. A string input is used as is; any other input is converted to its JSON text (e.g. 5 becomes "5", true becomes "true"). Output is returned unchanged """ scalar Any """ A file sent as a multipart/form-data part. Provide exactly one of url or content_base64. All files and values of one request share a 50MB limit. """ input ApiCallFormDataFileInput { """ Base64-encoded file content, for files generated in Liquid (e.g. with the base64_encode filter) """ content_base64: String """ Content-Type of the file. Defaults to application/octet-stream """ content_type: String """ The filename sent in the Content-Disposition header. Defaults to the last segment of url, or "file" """ filename: String """ URL the file is downloaded from before the request is sent (at most 10 per request), e.g. the url of an uploaded property """ url: String } """ One part of a multipart/form-data request body. Provide exactly one of value or file. """ input ApiCallFormDataPartInput { """ Content-Type of a value part (e.g. application/json), omitted when not provided. For a file use file.content_type """ content_type: String """ A file field """ file: ApiCallFormDataFileInput """ The form field name. Names may repeat (e.g. "files[]") """ name: String! """ A text field value, sent verbatim """ value: String } """ API call template (app/api_calls): an HTTP request to an external endpoint, sent with the api_call_send mutation """ type ApiCallNotification implements AdminSharedAttributesInterface { """ Liquid run after the response is received, with access to it as the response variable (response.code, response.body, response.headers) """ callback: String """ Liquid that evaluates to the request body, for example a JSON document """ content: String """ Timestamp of when the object was created, set automatically by the system """ created_at: JSONDate! """ Number of minutes to wait before sending the request. Ignored by api_call_send, which always sends the request immediately. Defaults to 0 """ delay_by: String """ Deprecated, legacy forms that send this API call """ form_configurations: [FormConfiguration!] @deprecated(reason: "use forms") """ Deprecated, legacy forms that send this API call """ forms: [Form!] """ Liquid that evaluates to a JSON object of request headers """ headers: String """ Unique identifier of the object """ id: ID! """ When true, the resource is managed outside of files: pos-cli deploy and sync never overwrite or delete it """ manually_managed: Boolean """ Free-form data attached to the resource with the metadata key of its file (or the metadata argument of an admin mutation) """ metadata: HashObject """ Name of the API call, used to send it with the api_call_send mutation """ name: String! """ Path of the file the resource comes from, relative to the app directory, for example views/pages/index.liquid or modules/my_module/public/views/partials/header.liquid. Identifies the resource in deploy, sync and admin mutations """ physical_file_path: String """ Liquid that evaluates to the HTTP method of the request: Get, Post, Put, Patch, Delete, Head, or to send files as multipart/form-data: Post_Multipart, Put_Multipart, Patch_Multipart """ request_type: String! """ Liquid that evaluates to the URL the request is sent to """ to: String! """ Liquid that evaluates to true (or t) when the request should be sent; any other result skips it. Defaults to true """ trigger_condition: String """ Timestamp of when the object was last updated, set automatically by the system """ updated_at: JSONDate! } """ Paginated list of API call notifications """ type ApiCallNotificationCollection { """ Number of the page returned in results """ current_page: Int! """ True when there is at least one page after the current one """ has_next_page: Boolean! """ True when the current page is not the first one """ has_previous_page: Boolean! """ Maximum number of results returned on a single page """ per_page: Int! """ Results on the current page """ results: [ApiCallNotification!] """ Total number of results matching the query, across all pages """ total_entries: Int! """ Total number of pages, given per_page """ total_pages: Int! } """ Attributes of an API call, the same ones that can be set in an api_calls/*.liquid file """ input ApiCallNotificationInputType { """ Liquid code run after the response is received; the response is available in the `response` variable """ callback: String """ Liquid code rendered into the request body, for example a JSON document """ content: String """ Number of minutes the request is delayed by. Ignored by api_call_send, which always sends the request immediately. Defaults to 0 """ delay_by: String = "0" """ Deprecated, ignored. Ids of legacy forms """ form_configuration_ids: [ID] """ Deprecated, use request_headers """ headers: HashObject """ When true, pos-cli deploy and sync never overwrite or delete it and pos-cli pull skips it. When omitted, defaults to the track_manually_managed setting of the instance (false unless enabled in app/config.yml) """ manually_managed: Boolean """ Arbitrary JSON data stored with the API call (the metadata section of the file) """ metadata: HashObject """ Deprecated, the name is derived from physical_file_path. Name used to send the API call with the api_call_send mutation """ name: String """ Path of the file the API call is stored as, used by pos-cli pull and deploy. Must be `api_calls/<name>.liquid` (or legacy `notifications/api_call_notifications/<name>.liquid`), optionally prefixed with `modules/<module_name>/public/` or `modules/<module_name>/private/`, for example `modules/my_module/public/api_calls/welcome.liquid` """ physical_file_path: String! """ Request headers as a JSON object, for example `{ "Content-Type": "application/json" }`; values may contain Liquid """ request_headers: HashObject """ Liquid code rendering to the HTTP method: Get, Post, Put, Patch, Delete, Head, or to send binary files as multipart form data: Post_Multipart, Put_Multipart, Patch_Multipart """ request_type: String! """ Liquid code rendering to the URL the request is sent to """ to: String! """ Liquid code; the API call is sent only when it renders to `true`. Defaults to `true` """ trigger_condition: String = "true" } """ Conditions for admin_api_call_notifications """ input ApiCallNotificationsFilterInput { """ Conditions on the callback Liquid run after the response is received """ callback: StringFilter """ Conditions on the request body template """ content: StringFilter """ Conditions on the creation time """ created_at: DateFilter """ Deprecated, use delay_by """ delay: StringFilter """ Conditions on the delay template """ delay_by: StringFilter """ Conditions on the request headers template """ headers: StringFilter """ Conditions on the id """ id: UniqIdFilter """ Conditions on the metadata defined in the file. All conditions are combined with AND """ metadata: [JsonbFilter!] """ Conditions on the name """ name: StringFilter """ Alternative condition sets: matches when at least one of them matches. Combined with AND with the other conditions """ or: [ApiCallNotificationsFilterInput!] """ Conditions on the source file path relative to the app directory, e.g. views/pages/index.liquid """ physical_file_path: StringFilter """ Conditions on the request URL template """ to: StringFilter """ Conditions on the trigger condition """ trigger_condition: StringFilter """ Conditions on the last update time """ updated_at: DateFilter } """ Sort order for admin_api_call_notifications """ input ApiCallNotificationsSortInput { """ Sort by creation time """ created_at: StandardSort """ Sort by id """ id: StandardSort """ Sort by metadata values, applied in the given order """ metadata: [JsonbSort!] """ Sort by name """ name: StandardSort """ Sort by the path of the source file """ physical_file_path: StandardSort """ Sort by last update time """ updated_at: StandardSort } """ Options controlling how the HTTP request of api_call_send is made """ input ApiCallSendOptions { """ If true, the request does not go out to the internet: it is sent directly to the platformOS stack this instance runs on, addressed by the host of the URL. Use it to call this or another instance on the same stack; a host that is not served by this stack returns 404. Internal requests are not added to the sent notifications log """ internal: Boolean """ If true, the server certificate of an HTTPS URL is not verified (e.g. for self-signed certificates). Defaults to false """ skip_ssl_verification: Boolean """ Read timeout of the HTTP request in seconds, from 1 to 180. When omitted, a default timeout applies; requests sent during a web request are capped at a shorter timeout than requests sent from a background job """ timeout: Int } """ Autogenerated return type of ApiCallSend. """ type ApiCallSendPayload { """ Always empty; errors are raised as GraphQL errors """ errors: [BaseError!]! @deprecated(reason: "Not needed") """ Response of the called server """ response: Response } """ HTTP request sent by api_call_send. The url, method and headers are rendered as Liquid with data; body and form_data are sent as given. """ input ApiCallSendRequestInput { """ Request body, delivered verbatim - it is not parsed as a Liquid template and may contain binary data (e.g. an encrypted Web Push payload built with the base64_decode filter). Cannot be combined with form_data """ body: String """ Sends a multipart/form-data body built from these parts, in the given order - use instead of body. Works with POST, PUT and PATCH; the Content-Type header (with its boundary) is set automatically. 1 to 100 parts """ form_data: [ApiCallFormDataPartInput!] """ Request headers as a hash of header name to value """ headers: HashObject """ HTTP method, e.g. GET, POST, PUT, PATCH or DELETE """ method: String! """ URL the request is sent to """ url: String! } """ Static file (image, stylesheet, script, font etc.) from app/assets or a module assets directory, served from the CDN """ type Asset implements AdminSharedAttributesInterface { """ MIME type of the file, for example image/png """ content_type: String """ Timestamp of when the object was created, set automatically by the system """ created_at: JSONDate! """ Timestamp of when the asset was soft deleted, for example because it was removed from the project and deployed; null for an existing asset """ deleted_at: JSONDate """ File size in bytes """ file_size: Int """ Unique identifier of the object """ id: ID! """ When true, the resource is managed outside of files: pos-cli deploy and sync never overwrite or delete it """ manually_managed: Boolean """ Free-form data attached to the resource with the metadata key of its file (or the metadata argument of an admin mutation) """ metadata: HashObject """ Path of the asset relative to the assets directory, for example images/logo.png; module assets are prefixed with modules/<module name>/, for example modules/my_module/app.css """ name: String! """ Path of the file the resource comes from, relative to the app directory, for example views/pages/index.liquid or modules/my_module/public/views/partials/header.liquid. Identifies the resource in deploy, sync and admin mutations """ physical_file_path: String """ Timestamp of when the object was last updated, set automatically by the system """ updated_at: JSONDate! """ Public CDN URL of the file, with a cache-busting updated parameter that changes when assets are deployed """ url: String! """ Deprecated, use deleted_at instead """ virtual_deleted_at: JSONDate @deprecated(reason: "Use deleted_at instead") } """ Paginated list of assets """ type AssetCollection { """ Number of the page returned in results """ current_page: Int! """ True when there is at least one page after the current one """ has_next_page: Boolean! """ True when the current page is not the first one """ has_previous_page: Boolean! """ Maximum number of results returned on a single page """ per_page: Int! """ Results on the current page """ results: [Asset!] """ Total number of results matching the query, across all pages """ total_entries: Int! """ Total number of pages, given per_page """ total_pages: Int! } """ An asset to register; the file itself is uploaded separately, for example to a URL from admin_assets_presign_urls """ input AssetInput { """ Cache-Control header served with the asset, for example `max-age=315576000, public`; stored in metadata """ cache_control: String """ Size of the file in bytes; when given, the content type is detected from physical_file_path """ file_size: Int """ When true, pos-cli deploy and sync never overwrite or delete it and pos-cli pull skips it. When omitted, defaults to the track_manually_managed setting of the instance (false unless enabled in app/config.yml) """ manually_managed: Boolean """ Arbitrary JSON data stored with the asset, at most 3000 bytes """ metadata: HashObject """ Name of the asset, its path relative to the assets directory, for example `images/logo.png`; used to build its URL. For a module asset the `modules/<module_name>/` prefix is added automatically. An existing asset with the same name is updated (and restored if deleted) """ name: String! """ Path of the asset, used by pos-cli pull and deploy: `assets/<name>`, optionally prefixed with `modules/<module_name>/public/` or `modules/<module_name>/private/`, for example `modules/my_module/public/assets/images/logo.png` """ physical_file_path: String! """ Explicit URL of the asset, stored as is (spaces are encoded). When omitted, the URL is built from the name and an explicit URL set earlier is kept """ url: String } """ An asset file to get an upload URL for """ input AssetPresignInput { """ Name of the asset, the path relative to the assets directory, for example `images/logo.png` """ path: String! } """ Attributes to change on every matched asset """ input AssetUpdateAllInput { """ When true, pos-cli deploy and sync never overwrite or delete it and pos-cli pull skips it """ manually_managed: Boolean } """ Attributes of an asset to change """ input AssetUpdateInput { """ Cache-Control header served with the asset, for example `max-age=315576000, public`; stored in metadata """ cache_control: String """ When true, pos-cli deploy and sync never overwrite or delete it and pos-cli pull skips it """ manually_managed: Boolean """ Arbitrary JSON data stored with the asset, at most 3000 bytes; replaces the existing metadata """ metadata: HashObject """ New path of the asset, for example `assets/images/new_logo.png`. When it differs from the current one, the asset name is derived from it and the file is moved to the new location in storage """ physical_file_path: String! } """ Autogenerated return type of AssetsCreateMutation. """ type AssetsCreateMutationPayload { """ The created or updated assets """ assets: [Asset!]! } """ Listing of all files kept in the storage of the instance, generated in the background by admin_assets_listing_create """ type AssetsListing { """ Timestamp of when the assets listing was scheduled """ created_at: JSONDate! """ Identifier of the assets listing """ id: ID """ URL of a CSV file listing the files that are not publicly readable, one row per file with its URL, content type, content disposition, metadata and cache control. Null until the listing is done """ private_assets_url: String """ URL of a CSV file listing the publicly readable files, in the same format as private_assets_url. Null until the listing is done """ public_assets_url: String """ Status of the listing: pending while it is generated, then done or failed """ status: String } """ Reference to a scheduled assets listing """ type AssetsListingIdentifier { """ Timestamp of when the assets listing was scheduled """ created_at: JSONDate! """ Identifier of the assets listing; pass it to the admin_assets_listing query to check its status and get the result """ id: ID! } """ Autogenerated return type of AssetsPresignUrlsMutation. """ type AssetsPresignUrlsMutationPayload { """ Upload URLs, in the order of paths """ urls: [PresignedUrl!]! } """ Sort order for admin_assets """ input AssetsSortInput { """ Sort by content type """ content_type: StandardSort """ Sort by creation time """ created_at: StandardSort """ Sort by file size """ file_size: StandardSort """ Sort by id """ id: StandardSort """ Sort by metadata values, applied in the given order """ metadata: [JsonbSort!] """ Sort by name """ name: StandardSort """ Sort by the path of the source file """ physical_file_path: StandardSort """ Sort by last update time """ updated_at: StandardSort """ Deprecated, sorts by soft deletion time """ virtual_deleted_at: StandardSort } """ Priority of a background job; higher priority jobs are picked up sooner but must finish within a shorter time """ enum AsyncCallbackPriority { """ Default priority; maximum run time 5 minutes """ default """ High priority, for short jobs that should run as soon as possible; maximum run time 1 minute """ high """ Low priority, for long running jobs; maximum run time 4 hours """ low } """ Legacy attachment value for a property of type file. Deprecated, use a property of type upload instead """ input AtachmentInputType { """ URL of a file uploaded directly to storage with a presigned URL from attachment_presign_url """ file: String """ Name of the file property """ name: String! """ URL of an external file, downloaded and stored as the attachment """ remote_file_url: String } """ Content-Disposition stored with a legacy attachment upload """ enum AttachmentContentDispositionEnum { """ Downloaded as a file """ download """ Displayed in the browser """ inline } """ Allowed file size range of a legacy attachment upload, in KiB """ input AttachmentContentLengthRange { """ Minimum file size in KiB """ gte: Int! """ Maximum file size in KiB """ lte: Int! } """ Legacy file property of a model schema. Deprecated, use property_upload_presigned_url instead """ input AttachmentModelPropertyInput { """ Name of the model schema the property belongs to """ model_schema_name: String! """ Name of the file property """ property_name: String! } """ Options of a legacy attachment presigned URL. Deprecated, use property_upload_presigned_url instead """ input AttachmentPresignUrlInput { """ Content-Disposition stored with the file. Defaults to inline """ content_disposition: AttachmentContentDispositionEnum = inline """ Allowed file size in KiB, e.g. { gte: 1, lte: 1024 } allows files from 1 KiB to 1 MiB """ content_length: AttachmentContentLengthRange """ Model schema file property the file is uploaded for; its acl option sets the file permissions. One of model_property or user_property is required """ model_property: AttachmentModelPropertyInput """ User schema file property the file is uploaded for; its acl option sets the file permissions. Used instead of model_property when both are given """ user_property: AttachmentUserPropertyInput } """ Presigned URL for a legacy attachment upload. Deprecated, use property_upload_presigned_url instead """ type AttachmentPresignedUploadUrl { """ URL the file is uploaded to directly with a multipart POST, including upload_url_payload """ upload_url: String! """ Form fields that must be sent along with the file to upload_url """ upload_url_payload: HashObject! } """ Legacy file property of the user schema. Deprecated, use property_upload_presigned_url instead """ input AttachmentUserPropertyInput { """ Name of the file property """ property_name: String! } """ Value of an attachment property of an imported object """ input AttachmentsImport { """ Path of a file already in the instance storage, used instead of url """ direct_path: String """ Ignored """ id: ID """ Name of the attachment property """ name: String! """ URL the file is downloaded from after the import """ url: String } """ Checks of credentials against the user. Every field returns true when the given credential is valid for this user """ type Authenticate { """ True when the given JWT was issued for the user, has not expired and has not been invalidated """ jwt( """ Algorithm the token was signed with """ algorithm: JwtAlgorithm = HS256 """ JWT to check """ token: String! ): Boolean! """ True when the given code is the current 6-digit time-based one-time password (TOTP) of the user """ otp_code( """ One-time password provided by the user """ code: String! """ Number of seconds a code may lag behind the server clock and still be accepted """ drift: Int ): Boolean! """ True when the given password matches the password of the user """ password( """ Plain text password to check """ password: String! ): Boolean! """ True when the given temporary token belongs to the user and has not expired """ temporary_token( """ Temporary token to check """ token: String! ): Boolean! } """ Link between a user and their account at an external identity provider (OAuth/SSO). Deprecated, use the pos-module-oauth modules instead """ type Authentication { """ Timestamp of when the object was created, set automatically by the system """ created_at: JSONDate """ Timestamp of when the object was soft deleted, populated by the delete action. It is also possible to set it manually via update. To undelete, change it back to an empty value; note that associated objects need to be undeleted manually as well. """ deleted_at: JSONDate """ Unique identifier of the object """ id: ID """ Identity provider of this authentication """ provider: AuthenticationProvider """ User information returned by the provider, as received """ raw_info: HashObject """ Access token issued by the provider """ token: String """ Time when the provider access token expires """ token_expires_at: JSONDate """ Identifier of the user at the provider """ uid: String """ Timestamp of when the object was last updated, set automatically by the system """ updated_at: JSONDate } """ External (OAuth) authentication of the user """ input AuthenticationInputType { """ Authentication provider """ provider: AuthenticationProvider! """ Raw user information returned by the provider """ raw_info: HashObject """ Access token issued by the provider """ token: String """ Time when the token expires """ token_expires_at: JSONDate """ ID of the user at the provider """ uid: String } """ Identity provider through which a user signed in with OAuth/SSO. Deprecated, use the pos-module-oauth modules instead """ enum AuthenticationProvider { """ Authentication through auth0 """ auth0 """ Authentication through facebook """ facebook """ Authentication through github """ github """ Authentication through google """ google """ Authentication through instagram """ instagram """ Authentication through linkedin """ linkedin """ Authentication through openid connect """ openid_connect """ Authentication through saml """ saml """ Authentication through twitter """ twitter } """ Conditions on the names of the authorization policies attached to a page. A page matches when at least one attached policy satisfies the condition """ input AuthorizationPoliciesFilter { """ Matches when the name differs from the given one """ not_value: String """ Matches when the name is none of the given values """ not_value_in: [String!] """ Matches when the name equals the given one """ value: String """ Matches when the name is one of the given values """ value_in: [String!] } """ Conditions for admin_authorization_policies """ input AuthorizationPoliciesFilterInput { """ Conditions on the Liquid content of the policy """ content: StringFilter """ Conditions on the creation time """ created_at: DateFilter """ Conditions on the flash alert shown when the policy fails """ flash_alert: StringFilter """ Conditions on the id """ id: UniqIdFilter """ Conditions on the metadata defined in the file. All conditions are combined with AND """ metadata: [JsonbFilter!] """ Conditions on the name """ name: StringFilter """ Alternative condition sets: matches when at least one of them matches. Combined with AND with the other conditions """ or: [AuthorizationPoliciesFilterInput!] """ Conditions on the source file path relative to the app directory, e.g. views/pages/index.liquid """ physical_file_path: StringFilter """ Conditions on the redirect target used when the policy fails """ redirect_to: StringFilter """ Conditions on the last update time """ updated_at: DateFilter } """ Sort order for admin_authorization_policies """ input AuthorizationPoliciesSortInput { """ Sort by creation time """ created_at: StandardSort """ Sort by id """ id: StandardSort """ Sort by metadata values, applied in the given order """ metadata: [JsonbSort!] """ Sort by name """ name: StandardSort """ Sort by the path of the source file """ physical_file_path: StandardSort """ Sort by last update time """ updated_at: StandardSort } """ Authorization policy (app/authorization_policies): a Liquid check that restricts access to the pages it is attached to. When several policies are attached, all must pass """ type AuthorizationPolicy implements AdminSharedAttributesInterface { """ Pages this policy is attached to """ authorization_policy_associations: [AuthorizationPolicyAssociation!] """ Liquid evaluated on every request to a protected page. Access is granted only when it renders true (surrounding whitespace and letter case are ignored); any other output, or an error, denies it """ content: String! """ Timestamp of when the object was created, set automatically by the system """ created_at: JSONDate! """ Liquid that evaluates to the message shown to the user when access is denied, available as context.flash.alert """ flash_alert: String """ HTTP status returned when access is denied and redirect_to is blank: 403 or 404. The page with slug 403 or 404 is rendered when it exists. When blank, 403 is returned """ http_status: Int """ Unique identifier of the object """ id: ID! """ When true, the resource is managed outside of files: pos-cli deploy and sync never overwrite or delete it """ manually_managed: Boolean """ Free-form data attached to the resource with the metadata key of its file (or the metadata argument of an admin mutation) """ metadata: HashObject """ Name of the policy, used to attach it to pages """ name: String! """ Path of the file the resource comes from, relative to the app directory, for example views/pages/index.liquid or modules/my_module/public/views/partials/header.liquid. Identifies the resource in deploy, sync and admin mutations """ physical_file_path: String """ Liquid that evaluates to the path or URL the user is redirected to when access is denied. When blank, the error page for http_status is rendered instead """ redirect_to: String """ Timestamp of when the object was last updated, set automatically by the system """ updated_at: JSONDate! } """ Link between an authorization policy and a page it protects """ type AuthorizationPolicyAssociation { """ Id of the protected page (or legacy form) """ authorizable_id: ID! """ Type of the protected resource: Page, or Form for a legacy form """ authorizable_type: String! """ Id of the authorization policy """ authorization_policy_id: ID! """ Timestamp of when the object was created, set automatically by the system """ created_at: JSONDate! """ Unique identifier of the object """ id: ID! """ Timestamp of when the object was last updated, set automatically by the system """ updated_at: JSONDate! } """ Paginated list of authorization policies """ type AuthorizationPolicyCollection { """ Number of the page returned in results """ current_page: Int! """ True when there is at least one page after the current one """ has_next_page: Boolean! """ True when the current page is not the first one """ has_previous_page: Boolean! """ Maximum number of results returned on a single page """ per_page: Int! """ Results on the current page """ results: [AuthorizationPolicy!] """ Total number of results matching the query, across all pages """ total_entries: Int! """ Total number of pages, given per_page """ total_pages: Int! } """ Attributes of an authorization policy, the same ones that can be set in an authorization_policies/*.liquid file """ input AuthorizationPolicyInputType { """ Liquid code evaluated on each request to a page using the policy; access is granted only when it renders to `true` (case and surrounding whitespace are ignored) """ content: String! """ Liquid code rendered into the flash alert message shown when access is denied """ flash_alert: String """ When true, pos-cli deploy and sync never overwrite or delete it and pos-cli pull skips it. When omitted, defaults to the track_manually_managed setting of the instance (false unless enabled in app/config.yml) """ manually_managed: Boolean """ Arbitrary JSON data stored with the policy (the metadata section of the file) """ metadata: HashObject """ Deprecated, the name is derived from physical_file_path. Name used to attach the policy to pages """ name: String """ Path of the file the policy is stored as, used by pos-cli pull and deploy. Must be `authorization_policies/<name>.liquid`, optionally prefixed with `modules/<module_name>/public/` or `modules/<module_name>/private/`, for example `authorization_policies/is_admin.liquid` """ physical_file_path: String """ Liquid code rendering to the URL the user is redirected to when access is denied. A `return_to` parameter with the requested path is appended unless disabled in the instance configuration. When not set, the request is answered with an error status instead (403 by default) """ redirect_to: String } """ Job of the instance waiting in the background queue (scheduled, waiting for a retry, dead) or currently running, for example one scheduled with the background tag """ type BackgroundJob { """ Variables passed to the background tag, available to the job code; empty object for other jobs """ arguments: JSONPayload """ Number of retries allowed for the job, as set with the max_attempts option of the background tag. 0 (the default) means a failed job is not retried """ attempts: Int """ Timestamp of when the job was scheduled """ created_at: JSONDate! """ Timestamp of when the job was declared dead after using up its retries; set only for dead jobs """ dead_at: JSONDate """ Deprecated, always null; use error_message instead """ error: String """ Name of the error type of the last failure """ error_class: String """ Error message of the last failure """ error_message: String """ Timestamp of when the job last failed; null if it has not failed """ failed_at: JSONDate """ Deprecated, always null """ form_configuration_name: String """ Deprecated, always null """ form_name: String """ Unique identifier of the job, as returned by the background tag """ id: ID! """ Deprecated, always null; use source_name instead """ label: String """ Liquid code to run, for a job scheduled with the block form of the background tag """ liquid_body: JSONPayload """ Deprecated, always null """ locked_at: JSONDate """ Path of the partial to run, for a job scheduled with the partial form of the background tag """ partial_name: String """ Queue the job is waiting in, which follows its priority: high, default or low """ queue: String! """ Deprecated, always null """ resource_id: ID """ Deprecated, always null """ resource_type: String """ Timestamp of when a failed job will be retried; set only for jobs waiting for a retry """ retry_at: JSONDate """ Timestamp of when the job is scheduled to run, or for a running job when it started """ run_at: JSONDate """ Label given to the job with the source_name option of the background tag """ source_name: String """ Deprecated, always null """ source_type: String """ Timestamp of when the job started running; set only for running jobs """ started_at: JSONDate """ Deprecated, always null """ updated_at: JSONDate } """ Paginated list of background jobs """ type BackgroundJobCollection { """ Number of the page returned in results """ current_page: Int! """ True when there is at least one page after the current one """ has_next_page: Boolean! """ True when the current page is not the first one """ has_previous_page: Boolean! """ Maximum number of results returned on a single page """ per_page: Int! """ Results on the current page """ results: [BackgroundJob!] """ Total number of results matching the query, across all pages """ total_entries: Int! """ Total number of pages, given per_page """ total_pages: Int! } """ Conditions for admin_background_jobs """ input BackgroundJobsFilterInput { """ Conditions on the creation time """ created_at: DateFilter """ Deprecated, ignored """ failed_at: DateFilter """ Deprecated, ignored """ form_configuration_name: StringFilter """ Conditions on the job id. With value, the job is looked up directly. Ranges match no job """ id: UniqIdFilter """ Deprecated, ignored """ label: StringFilter """ Deprecated, ignored """ locked_at: DateFilter """ Alternative condition sets: matches when at least one of them matches. Combined with AND with the other conditions """ or: [BackgroundJobsFilterInput!] """ Deprecated, ignored """ queue: StringFilter """ Deprecated, ignored """ resource_id: UniqIdFilter """ Deprecated, ignored """ resource_type: StringFilter """ Deprecated, ignored """ run_at: DateFilter """ Conditions on the source name given to the job when it was scheduled. Case sensitive unless case_sensitive is false """ source_name: StringFilter """ Deprecated, ignored """ source_type: StringFilter """ Conditions on the job timestamp: the run time for SCHEDULED, the next retry time for RETRY, the time the job died for DEAD and the start time for RUNNING """ timestamp: DateFilter """ Kind of jobs to return. Defaults to SCHEDULED """ type: BackgroundJobsTypeEnum """ Conditions on the last update time """ updated_at: DateFilter } """ Result of deleting background jobs """ type BackgroundJobsResult { """ Deleted background jobs """ results: [BackgroundJob!]! } """ Sort order for admin_background_jobs. Sorting is applied one field after another, so the last field given determines the order """ input BackgroundJobsSortInput { """ Deprecated, ignored """ attempts: StandardSort """ Sort by the name of the job type """ class_name: StandardSort """ Sort by creation time """ created_at: StandardSort """ Sort by the time the job was enqueued """ enqueued_at: StandardSort """ Deprecated, ignored """ failed_at: StandardSort """ Deprecated, ignored """ form_configuration_name: StandardSort """ Deprecated, ignored """ id: StandardSort """ Deprecated, ignored """ label: StandardSort """ Deprecated, ignored """ locked_at: StandardSort """ Sort by queue name """ queue: StandardSort """ Deprecated, ignored """ resource_id: StandardSort """ Deprecated, ignored """ resource_type: StandardSort """ Sort by the retry setting of the job """ retry: StandardSort """ Deprecated, ignored """ run_at: StandardSort """ Sort by source name """ source_name: StandardSort """ Deprecated, ignored """ source_type: StandardSort """ Deprecated, ignored """ updated_at: StandardSort } """ State of a background job """ enum BackgroundJobsTypeEnum { """ Jobs that failed `max_attempts` times and will not be retried any more """ DEAD """ Jobs that have failed and are scheduled for a retry """ RETRY """ Jobs being processed right now """ RUNNING """ Jobs waiting to run at a scheduled time in the future """ SCHEDULED } """ Error returned by a mutation """ type BaseError { """ Error message """ message: String! } """ Object with properties. Every property_* field returns null when the property has no value """ interface BasicPropertyInterface { """ Unique identifier of the object """ id: ID """ All properties of the object as an object keyed by property name """ properties( """ Properties to return, each converted to the given type (as by the matching property_* field; other types become strings); all properties as stored when omitted """ select: [PropertiesFieldInput!] ): HashObject """ Returns the value of the property with the given name as a string; ex: hair_color: property(name: "hair_color") """ property( """ Name of the property """ name: String! ): String """ Returns the value of the property with the given name as an array of strings; a single value is wrapped in an array and no value gives an empty array; ex: todo_list: property_array(name: "todo_list") """ property_array( """ Name of the property """ name: String! ): [String!] """ Returns the value of the property with the given name as a boolean. Accepts true/false values and the strings "t"/"T" and "f"/"F"; any other value returns an error; ex: enabled: property_boolean(name: "enabled") """ property_boolean( """ Name of the property """ name: String! ): Boolean """ Returns the value of the property with the given name as a float; returns an error when the value is not a number; ex: price: property_float(name: "price") """ property_float( """ Name of the property """ name: String! ): Float """ Returns the value of the property with the given name as an integer; returns an error when the value cannot be converted, e.g. "abc" or "1.5"; ex: age: property_int(name: "age") """ property_int( """ Name of the property """ name: String! ): Int """ Returns the value of the property with the given name as stored, without conversion """ property_json( """ Name of the property """ name: String! ): JSONPayload """ Returns the value of the property with the given name parsed from JSON text into an object; returns an error when the value is not valid JSON """ property_object( """ Name of the property """ name: String! ): HashObject } """ Conditions on a true/false field. All operators given in one filter must match (they are combined with AND) """ input BooleanFilter { """ true matches when the field has no value (null), false matches when it has a value """ is_null: Boolean """ Matches when the field is not equal to the given value. Records without a value (null) are not matched; use is_null for them """ not_value: Boolean """ Matches when the field is equal to the given value """ value: Boolean } """ Definition of a CMS item type. Deprecated, use admin_* queries instead """ type CMSItemDefinition { """ Names of the attributes items of this type have """ fields: [String]! """ CMS item type """ name: CMSItemType! """ Directory (base) and file extension (ext) of files of this type in the app """ path: JSONPayload! } """ Paginated list of CMS item definitions. Deprecated, use admin_* queries instead """ type CMSItemDefinitionCollection { """ Number of the page returned in results """ current_page: Int! """ True when there is at least one page after the current one """ has_next_page: Boolean! """ True when the current page is not the first one """ has_previous_page: Boolean! """ Maximum number of results returned on a single page """ per_page: Int! """ Results on the current page """ results: [CMSItemDefinition!] """ Total number of results matching the query, across all pages """ total_entries: Int! """ Total number of pages, given per_page """ total_pages: Int! } """ CMS item, such as a page or a partial. Deprecated, use admin_* queries instead """ type CMSItemPayload { """ Attributes of the item, as exported by pull """ data: JSONPayload """ Name of the item """ resource_name: String! """ CMS item type """ type: CMSItemType } """ Paginated list of CMS items. Deprecated, use admin_* queries instead """ type CMSItemPayloadCollection { """ Number of the page returned in results """ current_page: Int! """ True when there is at least one page after the current one """ has_next_page: Boolean! """ True when the current page is not the first one """ has_previous_page: Boolean! """ Maximum number of results returned on a single page """ per_page: Int! """ Results on the current page """ results: [CMSItemPayload!] """ Total number of results matching the query, across all pages """ total_entries: Int! """ Total number of pages, given per_page """ total_pages: Int! } """ Type of CMS item. Deprecated, use admin_* queries instead """ enum CMSItemType { """ CMS items of type ActivityStreamsGroupingHandler """ ActivityStreamsGroupingHandler """ CMS items of type ActivityStreamsHandler """ ActivityStreamsHandler """ CMS items of type ApiCallNotification """ ApiCallNotification """ CMS items of type Asset """ Asset """ CMS items of type AuthorizationPolicy """ AuthorizationPolicy """ CMS items of type CustomModelType """ CustomModelType """ CMS items of type EmailNotification """ EmailNotification """ CMS items of type FormConfiguration """ FormConfiguration """ CMS items of type GraphQuery """ GraphQuery """ CMS items of type InstanceConfig """ InstanceConfig """ CMS items of type InstanceProfileType """ InstanceProfileType """ CMS items of type LiquidView """ LiquidView """ CMS items of type Migration """ Migration """ CMS items of type Modules """ Modules """ CMS items of type Page """ Page """ CMS items of type SmsNotification """ SmsNotification """ CMS items of type TransactableType """ TransactableType """ CMS items of type Translation """ Translation """ CMS items of type UserType """ UserType } """ Phone verification details of a user. Deprecated, use records instead """ type Communication { """ Phone number """ phone_number: String! """ Whether the phone number has been verified """ verified: Boolean! } """ Allowed content type of the uploaded file """ input Content { """ The content type of the uploaded file must start with this value, e.g. `image/`. Enforced only together with include_content_type: true, since the upload form must then send its own Content-Type field; on its own it is accepted but not enforced """ starts_with: String """ The content type of the uploaded file must be exactly this value, e.g. `image/png` """ value: String } """ Allowed size range of the uploaded file, in KiB """ input ContentLength { """ Minimum file size in KiB. Defaults to 0 """ gte: Int = null """ Maximum file size in KiB """ lte: Int! } """ Allowed size range of an uploaded file, in KiB """ input ContentLengthRange { """ Minimum file size in KiB (inclusive) """ gte: Int! """ Maximum file size in KiB (inclusive) """ lte: Int! } """ CSS color as a string: hex ("#000000"), name ("red"), rgba ("rgba(0,0,0,0.5)") or hsla ("hsla(0, 0%, 0%, 0.5)"). The value is not validated """ scalar CssColor """ Address stored in an address property. Deprecated, store addresses in your own table instead """ type CustomAddrress { """ Full address as entered """ address: String """ Second address line """ address2: String """ Apartment or unit number """ apartment: String """ City """ city: String """ Country name """ country: String """ Unique identifier of the object """ id: Int! """ ISO 3166-1 alpha-2 country code """ iso_country_code: String """ Latitude """ lat: Float """ Longitude """ lng: Float """ Name of the address property """ name: String """ Geographic coordinates of the address """ point: GeoPointType """ Postal code """ postcode: String """ Service radius around the address """ service_radius: String """ State or region """ state: String """ Street name """ street: String """ Street number """ street_number: String """ Suburb or district """ suburb: String } """ File stored in a legacy attachment property. Deprecated, use property uploads """ type CustomAttachment { """ Timestamp of when the object was created, set automatically by the system """ created_at: JSONDate """ URL of the file """ file_url: String """ Unique identifier of the object """ id: ID! } """ Legacy custom attachment to create. Deprecated, use a property of type upload instead """ input CustomAttachmentInputType { """ Name of the file property, defined in the schema of the record, the attachment is stored in """ custom_attribute_name: String! """ URL of a file uploaded directly to storage with attachment_presign_url """ direct_url: String """ Generates the file from your own content, e.g. reports, PDF or CSV """ generate_file: ProcessStrategyInputType """ Id of the record the attachment belongs to """ owner_id: ID! """ Type of the record the attachment belongs to: Customization, UserProfile or User """ owner_type: String! """ Deprecated, ignored """ page_slug: String """ URL of a remote file, downloaded and stored as the attachment """ raw_remote_file_url: String """ Id of the user who uploads the attachment """ uploader_id: ID } """ Definition of a property. Deprecated, use admin_* queries instead """ type CustomAttributeDefinition { """ Type of the property, e.g. string, integer or array """ attribute_type: String """ Unique identifier of the object """ id: ID """ Name of the property """ name: String } """ A value for one property, identified by name. Provide name and exactly one of the value arguments (value, value_int, value_float, value_boolean, value_array, value_json) or atomic operations (array_append, array_remove, increment, decrement) """ input CustomAttributeInputType { """ Appends the value at the end of an array property, creating the array when the property is empty. Atomic: applied directly in the database before the rest of the update, so concurrent changes are not lost; it skips validations and callbacks. Only applied by update mutations """ array_append: String """ Removes every occurrence of the value from an array property. Atomic: applied directly in the database before the rest of the update, so concurrent changes are not lost; it skips validations and callbacks. Only applied by update mutations """ array_remove: String """ Subtracts the value from a numeric property, treating an empty property as 0. Atomic: applied directly in the database before the rest of the update, so concurrent changes are not lost; it skips validations and callbacks. Only applied by update mutations """ decrement: Float """ Adds the value to a numeric property, treating an empty property as 0. Atomic: applied directly in the database before the rest of the update, so concurrent changes are not lost; it skips validations and callbacks. Only applied by update mutations """ increment: Float """ Name of the property """ name: String! """ New value as a string; it is converted to the type of the property """ value: String """ New value of an array property """ value_array: [String] """ New value of a boolean property """ value_boolean: Boolean """ New value of a float property """ value_float: Float """ New value of an integer property """ value_int: Int """ New value of a JSON property, as any JSON value """ value_json: JSONPayload } """ Image stored in a legacy image property. Deprecated, use property uploads """ type CustomImage { """ Timestamp of when the object was created, set automatically by the system """ created_at: JSONDate! """ Timestamp of when the object was soft deleted, populated by the delete action. It is also possible to set it manually via update. To undelete, change it back to an empty value; note that associated objects need to be undeleted manually as well. """ deleted_at: JSONDate """ Deprecated, use url """ file_url: String @deprecated(reason: "use `url`") """ Unique identifier of the object """ id: ID! """ Name of the image property """ name: String """ ID of the image property """ property_id: ID """ Timestamp of when the object was last updated, set automatically by the system """ updated_at: JSONDate! """ ID of the user who uploaded the image """ uploader_id: ID """ URL of the image, or of one of its versions; ex: thumb: url(version: "thumb") """ url( """ Name of the image version; the original image when omitted """ version: String ): String } """ Paginated list of images uploaded to properties. Deprecated """ type CustomImageCollection { """ Number of the page returned in results """ current_page: Int! """ True when there is at least one page after the current one """ has_next_page: Boolean! """ True when the current page is not the first one """ has_previous_page: Boolean! """ Maximum number of results returned on a single page """ per_page: Int! """ Results on the current page """ results: [CustomImage!] """ Total number of results matching the query, across all pages """ total_entries: Int! """ Total number of pages, given per_page """ total_pages: Int! } """ Legacy custom image changes. Deprecated, use a property of type upload instead """ input CustomImageInputType { """ Name of the image property the image is stored in """ custom_attribute_name: String """ URL of an image uploaded directly to storage with image_presign_url """ direct_url: String """ Id of the record the image belongs to """ owner_id: ID """ Type of the record the image belongs to: Customization, User or UserProfile """ owner_type: String """ Deprecated, ignored """ page_slug: String """ Id of the user who uploads the image """ uploader_id: ID } """ Object a customization is attached to. Deprecated, use records instead """ union Customizable = Listing | Profile | User """ Legacy type of the record a model belongs to. Deprecated, use records instead """ enum CustomizableTypeEnum { """ Belongs to another model """ Customization """ Belongs to a transactable """ Transactable """ Belongs to a user """ User """ Belongs to a user profile """ UserProfile } """ Model (formerly customization). Deprecated, use Record instead """ type Customization implements LegacyCustomAttributeInterface & ListingsMetadata & PropertiesInterface & RelationOnDemandInterface & RemoteModelInterface { """ Returns the legacy address property with the given name. Deprecated, store addresses in your own table """ address( """ Name of the address property """ name: String! ): CustomAddrress @deprecated(reason: "use your own model for address if needed") """ Returns legacy address properties, optionally only those with the given name. Deprecated, store addresses in your own table """ addresses( """ Name of the address property; all when omitted """ name: String ): [CustomAddrress!] @deprecated(reason: "use your own model for address if needed") """ Returns the legacy attachment property with the given name. Deprecated, use property_upload """ attachment( """ Name of the attachment property """ name: String! ): PrivateFile @deprecated(reason: "use property upload") """ Returns legacy attachment properties, optionally only those with the given name. Deprecated, use property_upload """ attachments( """ Name of the attachment property; all when omitted """ name: String ): [PrivateFile!] @deprecated(reason: "use property upload") """ Timestamp of when the object was created, set automatically by the system """ created_at: JSONDate """ Returns the legacy address property with the given name. Deprecated, store addresses in your own table """ custom_address( """ Name of the property """ name: String! ): CustomAddrress @deprecated(reason: "Use address") """ Returns legacy address properties. Deprecated, store addresses in your own table """ custom_addresses( """ Name of the property; all when omitted """ name: String ): [CustomAddrress!] @deprecated(reason: "Use addresses") """ Returns the legacy attachment property with the given name. Deprecated, use property_upload """ custom_attachment( """ Name of the property """ name: String! ): PrivateFile @deprecated(reason: "Use attachment") """ Returns legacy attachment properties. Deprecated, use property_upload """ custom_attachments( """ Name of the property; all when omitted """ name: String ): [PrivateFile!] @deprecated(reason: "Use attachments") """ Returns the legacy image property with the given name. Deprecated, use property_upload """ custom_image( """ Name of the property """ name: String! ): Image @deprecated(reason: "Use image") """ Returns legacy image properties. Deprecated, use property_upload """ custom_images( """ Name of the property; all when omitted """ name: String ): [Image!] @deprecated(reason: "Use images") """ Object the customization is attached to """ customizable: Customizable """ Id of the object the customization is attached to """ customizable_id: ID """ Type of the object the customization is attached to: Customization, User, UserProfile or Transactable """ customizable_type: String """ Timestamp of when the object was soft deleted, populated by the delete action. It is also possible to set it manually via update. To undelete, change it back to an empty value; note that associated objects need to be undeleted manually as well. """ deleted_at: JSONDate """ Identifier of the object in an external system. Used mainly for import/export, when a third party service is the source of truth """ external_id: ID """ Human readable name of the model schema """ human_name: String """ Unique identifier of the object """ id: ID """ Returns the legacy image property with the given name. Deprecated, use property_upload """ image( """ Name of the image property """ name: String! ): Image @deprecated(reason: "use property upload") """ Returns legacy image properties, optionally only those with the given name. Deprecated, use property_upload """ images( """ Name of the image property; all when omitted """ name: String ): [Image!] @deprecated(reason: "use property upload") """ Returns the related model. Deprecated, use related_model """ model( """ Name of the property of the related object that must equal the value of join_on_property """ foreign_property: String = "id" """ Name of the property of this object whose value is matched against foreign_property """ join_on_property: String """ Name of the model schema (table) of the related models """ model_name: String ): ListingsCustomization @deprecated(reason: "use `related_model`") """ Returns related models. Deprecated, use related_models """ models( """ Name of the property of the related object that must equal the value of join_on_property """ foreign_property: String! """ Name of the property of this object whose value is matched against foreign_property """ join_on_property: String! """ Name of the model schema (table) of the related models """ model_name: [String] ): [ListingsCustomization!] @deprecated(reason: "use `related_models`") """ Name of the model schema """ name: String """ All properties of the object as an object keyed by property name """ properties( """ Properties to return, each converted to the given type (as by the matching property_* field; other types become strings); all properties as stored when omitted """ select: [PropertiesFieldInput!] ): HashObject """ Returns the value of the property with the given name as a string; ex: hair_color: property(name: "hair_color") """ property( """ Name of the property """ name: String! ): String """ Returns the value of the property with the given name as an array of strings; a single value is wrapped in an array and no value gives an empty array; ex: todo_list: property_array(name: "todo_list") """ property_array( """ Name of the property """ name: String! ): [String!] """ Returns the value of the property with the given name as a boolean. Accepts true/false values and the strings "t"/"T" and "f"/"F"; any other value returns an error; ex: enabled: property_boolean(name: "enabled") """ property_boolean( """ Name of the property """ name: String! ): Boolean """ Returns the value of the property with the given name as a float; returns an error when the value is not a number; ex: price: property_float(name: "price") """ property_float( """ Name of the property """ name: String! ): Float """ Returns the value of the property with the given name as an integer; returns an error when the value cannot be converted, e.g. "abc" or "1.5"; ex: age: property_int(name: "age") """ property_int( """ Name of the property """ name: String! ): Int """ Returns the value of the property with the given name as stored, without conversion """ property_json( """ Name of the property """ name: String! ): JSONPayload """ Returns the value of the property with the given name parsed from JSON text into an object; returns an error when the value is not valid JSON """ property_object( """ Name of the property """ name: String! ): HashObject """ Returns the file stored in the given upload property; ex: avatar: property_upload(name: "avatar") { url } """ property_upload( """ Number of seconds for which the returned URLs are valid. When given, signed URLs are returned; required to access files uploaded with acl private """ expires_in: Int """ Name of the upload property """ name: String! ): PropertyUpload """ Returns the model whose foreign_property equals the value of join_on_property of this object (belongs-to relation). Legacy relation, use related_record of Record instead """ related_model( """ Name of the property of the related object that must equal the value of join_on_property """ foreign_property: String = "id" """ Name of the property of this object whose value is matched against foreign_property """ join_on_property: String """ Name of the model schema (table) of the related models """ model_schema_name: String ): ListingsCustomization """ Returns models whose foreign_property equals the value of join_on_property of this object (has-many relation), at most 10000 at once. Legacy relation, use related_records of Record instead """ related_models( """ Name of the property of the related object that must equal the value of join_on_property """ foreign_property: String! """ Name of the property of this object whose value is matched against foreign_property """ join_on_property: String! """ Name of the model schema (table) of the related models """ model_schema_name: [String] ): [ListingsCustomization!] """ Returns the user whose foreign_property equals the value of join_on_property of this object; by default the user whose id is in user_id """ related_user( """ Name of the user attribute that must equal the value of join_on_property """ foreign_property: String = "id" """ Name of the property of this object holding the user id """ join_on_property: String = "user_id" ): User """ Returns an object loaded from the remote endpoint by the id stored in join_on_property. Deprecated, use remote_records """ remote_model( """ Remote endpoint returning the resources for the given ids as JSON """ endpoint: Endpoint! """ Name of the property of this object holding the id (or array of ids) to request """ join_on_property: String! ): Customization """ When sorting by distance, the distance to the reference point. Deprecated """ sort_score: [Int] @deprecated(reason: "not supported everywhere") """ Timestamp of when the object was last updated, set automatically by the system """ updated_at: JSONDate """ Returns the related user. Deprecated, use related_user """ user( """ Name of the user attribute that must equal the value of join_on_property """ foreign_property: String = "id" """ Name of the property of this object holding the user id """ join_on_property: String = "user_id" ): User @deprecated(reason: "use `related_users`") """ Id of the user who owns the customization """ user_id: ID } """ A record to import """ input CustomizationImport { """ Values of address properties """ addresses: [AddressImport!] """ Values of attachment properties """ attachments: [AttachmentsImport!] """ Creation time to set; only used for new records """ created_at: ISO8601DateTime """ Deprecated. Id of the object the record is attached to """ customizable_id: ID """ Deprecated. Type of the object the record is attached to """ customizable_type: CustomizableTypeEnum """ Id of the object in the source system, stored as external_id; generated when empty. With _id_remap, other imported objects refer to this object by it """ id: ID """ Values of image properties """ images: [ImagesImport!] """ Property values, for example `{ "color": "red" }`; every key must be a defined property. Merged into the properties of an existing object """ properties: HashObject """ Name of the table the record belongs to """ type_name: String! """ Last update time to set; only used for new records """ updated_at: ISO8601DateTime """ Id of the user owning the record; with _id_remap, the id the user was imported with """ user_id: ID } """ Legacy model (customization) attributes. Deprecated, use records instead """ input CustomizationInputType { """ Overrides the creation timestamp """ created_at: JSONDate """ Legacy attachment values for file properties """ custom_attachments: [AtachmentInputType] """ Legacy image values for image properties """ custom_images: [ImageInputType] """ Id of the model schema, an alternative to model_schema_name """ custom_model_type_id: ID """ Deprecated, use model_schema_name """ custom_model_type_name: String """ Id of the record the model belongs to """ customizable_id: ID """ Type of the record the model belongs to """ customizable_type: CustomizableTypeEnum """ Nested models. Deprecated, use models """ customizations: [CustomizationsInputType] """ Timestamp of when the object was soft deleted, populated by the delete action. It is also possible to set it manually via update. To undelete, change it back to an empty value; note that associated objects need to be undeleted manually as well. """ deleted_at: JSONDate """ Identifier of the object in an external system. Used mainly for import/export, when a third party service is the source of truth """ external_id: ID """ Unique identifier of the object """ id: ID """ Name of the model schema """ model_schema_name: String """ Nested models to create or update together with this one """ models: [CustomizationsInputType] """ Property values to set """ properties: [CustomAttributeInputType] """ Title. Deprecated, use properties """ title: String """ Id of the user who owns the model """ user_id: ID } """ Sort order for customizations. Deprecated, use the sort argument of records """ input CustomizationSortOrder { """ Name of the field to sort by """ field: String """ Sort direction: asc or desc """ order: String = "asc" """ Name of the property to sort by """ property: String } """ Legacy nested model. Deprecated, use records instead """ input CustomizationsInputType { """ Name of the nested model association """ name: String """ Attributes of the nested model """ values: CustomizationInputType } """ Sort order for nested customizations of deprecated search results. Deprecated, use the sort argument of records """ input CustomizationsSortOrder { """ Name of the field to sort by """ name: String """ Sort direction: asc or desc """ order: String = "asc" """ Name of the property to sort by """ property_name: String } """ Data export task. The export runs in a background job; query it by id until status is done, then download url """ type DataExport { """ Timestamp of when the object was created, set automatically by the system """ created_at: JSONDate! """ ID of the export task, which can be checked the same way pos-cli does. Once done, the task includes the url of the zip file """ id: ID """ State of the export: pending, done or failed """ status: String """ Timestamp of when the object was last updated, set automatically by the system """ updated_at: JSONDate! """ URL of the generated zip file with the exported CSV files; empty until status is done """ url: String } """ Paginated list of data exports """ type DataExportCollection { """ Number of the page returned in results """ current_page: Int! """ True when there is at least one page after the current one """ has_next_page: Boolean! """ True when the current page is not the first one """ has_previous_page: Boolean! """ Maximum number of results returned on a single page """ per_page: Int! """ Results on the current page """ results: [DataExport!] """ Total number of results matching the query, across all pages """ total_entries: Int! """ Total number of pages, given per_page """ total_pages: Int! } """ Selection of models to export. Deprecated, use DataExportRecordsInput """ input DataExportModelsInput { """ Conditions the exported models must match """ filter: ModelsFilterInput """ Maximum number of rows to export, at most 5,000,000; a larger value makes the export fail """ per_page: Int = 5000000 """ Sort order of the results. When several entries are given, they are applied in the given order """ sort: [ModelsSortInput!] } """ Selection of records to export """ input DataExportRecordsInput { """ Conditions the exported records must match """ filter: RecordsFilterInput """ Maximum number of rows to export, at most 5,000,000; a larger value makes the export fail """ per_page: Int = 5000000 """ Sort order of the results. When several entries are given, they are applied in the given order """ sort: [RecordsSortInput!] } """ Selection of users to export """ input DataExportUsersInput { """ Conditions the exported users must match """ filter: UsersFilterInput """ Maximum number of rows to export, at most 5,000,000; a larger value makes the export fail """ per_page: Int = 5000000 """ Sort order of the results. When several entries are given, they are applied in the given order """ sort: [UsersSortInput!] } """ Conditions for data exports """ input DataExportsFilterInput { """ Conditions on the creation time """ created_at: DateFilter """ Conditions on the id """ id: UniqIdFilter """ Conditions on the last update time """ updated_at: DateFilter } """ Sort order for data exports """ input DataExportsSortInput { """ Sort by creation time """ created_at: StandardSort """ Sort by id """ id: StandardSort """ Sort by last update time """ updated_at: StandardSort } """ Conditions on a date/time field. All operators given in one filter must match (they are combined with AND); operators with a null or empty value are ignored. Values are strings in any common date/time format, ISO 8601 recommended (e.g. "2024-05-01", "2024-05-01T13:30:00Z"); times without a UTC offset are read as UTC. gt, gte, lt and lte also accept a Unix timestamp in seconds (e.g. "1714570200"). When gt, gte, lt or lte is given a date without a time, it covers the whole day in UTC: gte "2024-05-01" includes all of 1 May, gt "2024-05-01" starts on 2 May """ input DateFilter { """ true matches when the field has a value, false matches when it is empty (null) """ exists: Boolean """ Matches when the field is later than the given time. A date without a time means after that day """ gt: String """ Matches when the field is later than or equal to the given time. A date without a time includes the whole day """ gte: String """ Matches when the field is earlier than the given time. A date without a time means before that day """ lt: String """ Matches when the field is earlier than or equal to the given time. A date without a time includes the whole day """ lte: String """ Matches when the field is not equal to the given point in time """ not_value: String """ Matches when the field equals none of the given points in time """ not_value_in: [String!] """ Matches when the field equals exactly the given point in time. A date without a time means midnight UTC; use gte and lte to match a whole day """ value: String """ Matches when the field equals exactly one of the given points in time """ value_in: [String!] } """ Date range condition used by deprecated queries. Deprecated, use DateFilter instead """ input DateRange { """ Matches dates after this date """ gt: String """ Matches dates on or after this date """ gte: String """ Matches dates before this date """ lt: String """ Matches dates on or before this date """ lte: String } """ Attributes of a user profile. Deprecated, use records instead of user profiles """ input DefaultProfileInputType { """ Legacy custom attachments. Deprecated, use upload properties """ custom_attachments: [AtachmentInputType] """ Legacy custom images. Deprecated, use upload properties """ custom_images: [ImageInputType] """ Timestamp of when the object was soft deleted, populated by the delete action. It is also possible to set it manually via update. To undelete, change it back to an empty value; note that associated objects need to be undeleted manually as well. """ deleted_at: JSONDate """ Values of the profile properties to set """ properties: [CustomAttributeInputType] } """ Unit of distance """ enum DistanceUnit { """ Centimeters """ cm """ Kilometers """ km """ Meters """ m """ Miles """ mi """ Nautical miles """ nmi """ Yards """ yd } """ Document stored in a search index """ type Document implements BasicPropertyInterface { """ Unique identifier of the object """ id: ID """ All properties of the object as an object keyed by property name """ properties( """ Properties to return, each converted to the given type (as by the matching property_* field; other types become strings); all properties as stored when omitted """ select: [PropertiesFieldInput!] ): HashObject """ Returns the value of the property with the given name as a string; ex: hair_color: property(name: "hair_color") """ property( """ Name of the property """ name: String! ): String """ Returns the value of the property with the given name as an array of strings; a single value is wrapped in an array and no value gives an empty array; ex: todo_list: property_array(name: "todo_list") """ property_array( """ Name of the property """ name: String! ): [String!] """ Returns the value of the property with the given name as a boolean. Accepts true/false values and the strings "t"/"T" and "f"/"F"; any other value returns an error; ex: enabled: property_boolean(name: "enabled") """ property_boolean( """ Name of the property """ name: String! ): Boolean """ Returns the value of the property with the given name as a float; returns an error when the value is not a number; ex: price: property_float(name: "price") """ property_float( """ Name of the property """ name: String! ): Float """ Returns the value of the property with the given name as an integer; returns an error when the value cannot be converted, e.g. "abc" or "1.5"; ex: age: property_int(name: "age") """ property_int( """ Name of the property """ name: String! ): Int """ Returns the value of the property with the given name as stored, without conversion """ property_json( """ Name of the property """ name: String! ): JSONPayload """ Returns the value of the property with the given name parsed from JSON text into an object; returns an error when the value is not valid JSON """ property_object( """ Name of the property """ name: String! ): HashObject } """ Email template (app/emails): an email sent with the email_send mutation. Every field except name and delay_by is Liquid, evaluated when the email is sent """ type EmailNotification implements AdminSharedAttributesInterface { """ Liquid that evaluates to a JSON object of attachments, mapping each file name to its URL, for example { "file_name.jpg": { "url": "https://example.com/file.jpg" } } """ attachments: String """ Liquid that evaluates to a comma separated list of blind carbon copy recipients, for example "john@example.com, jane@example.com" """ bcc: String """ Liquid that evaluates to a comma separated list of carbon copy recipients, for example "john@example.com, jane@example.com" """ cc: String """ Liquid that evaluates to the HTML body of the email. The data argument of email_send is available in the data variable """ content: String """ Timestamp of when the object was created, set automatically by the system """ created_at: JSONDate! """ Number of minutes email_send waits before sending the email, given as a plain number, for example 60. Defaults to 0 """ delay_by: String """ Deprecated, legacy forms that send this email """ form_configurations: [FormConfiguration!] @deprecated(reason: "use forms") """ Deprecated, legacy forms that send this email """ forms: [Form!] """ Liquid that evaluates to the sender address, for example notifications@mydomain.com """ from: String """ Unique identifier of the object """ id: ID! """ Name of the layout the email content is rendered in, without the layouts/ prefix """ layout: String """ Deprecated, use layout instead """ layout_path: String @deprecated(reason: "use layout") """ When true, the resource is managed outside of files: pos-cli deploy and sync never overwrite or delete it """ manually_managed: Boolean """ Free-form data attached to the resource with the metadata key of its file (or the metadata argument of an admin mutation) """ metadata: HashObject """ Name of the email, used to send it with the email_send mutation """ name: String! """ Path of the file the resource comes from, relative to the app directory, for example views/pages/index.liquid or modules/my_module/public/views/partials/header.liquid. Identifies the resource in deploy, sync and admin mutations """ physical_file_path: String """ Liquid that evaluates to the address replies should go to, for example support@mydomain.com """ reply_to: String """ Liquid that evaluates to the subject of the email """ subject: String """ Liquid that evaluates to a comma separated list of recipients, for example "john@example.com, jane@example.com" """ to: String """ Liquid that evaluates to true (or t) when the email should be sent; any other result skips it. Defaults to true """ trigger_condition: String """ Timestamp of when the object was last updated, set automatically by the system """ updated_at: JSONDate! } """ Paginated list of email notifications """ type EmailNotificationCollection { """ Number of the page returned in results """ current_page: Int! """ True when there is at least one page after the current one """ has_next_page: Boolean! """ True when the current page is not the first one """ has_previous_page: Boolean! """ Maximum number of results returned on a single page """ per_page: Int! """ Results on the current page """ results: [EmailNotification!] """ Total number of results matching the query, across all pages """ total_entries: Int! """ Total number of pages, given per_page """ total_pages: Int! } """ Attributes of an email notification, the same ones that can be set in an emails/*.liquid file """ input EmailNotificationInputType { """ Liquid code rendering to a JSON object of attachments keyed by file name, for example `{ "file_name.jpg": { "url": "https://example.com/file.jpg" } }` """ attachments: String """ Liquid code rendering to a comma-separated list of blind carbon copy recipients """ bcc: String """ Liquid code rendering to a comma-separated list of carbon copy recipients """ cc: String """ Liquid code rendered into the HTML body of the email. The data argument of email_send is available in the `data` variable. Required """ content: String """ Number of minutes email_send waits before sending the email, given as a plain number, for example `60`. Defaults to 0, sent right away """ delay_by: String = "0" """ Deprecated, ids of legacy forms that send the email; replaces the current list """ form_configuration_ids: [ID] """ Liquid code rendering to the sender address, for example `notifications@example.com`. Required """ from: String """ Name of the layout the rendered content is injected into, for example `mailer`; must be an existing layout """ layout: String """ Deprecated, use layout """ layout_path: String """ When true, pos-cli deploy and sync never overwrite or delete it and pos-cli pull skips it. When omitted, defaults to the track_manually_managed setting of the instance (false unless enabled in app/config.yml) """ manually_managed: Boolean """ Arbitrary JSON data stored with the email (the metadata section of the file) """ metadata: HashObject """ Deprecated, the name is derived from physical_file_path. Name used to send the email with the email_send mutation """ name: String """ Path of the file the email is stored as, used by pos-cli pull and deploy. Must be `emails/<name>.liquid` (or legacy `notifications/email_notifications/<name>.liquid`), optionally prefixed with `modules/<module_name>/public/` or `modules/<module_name>/private/`, for example `emails/welcome.liquid` """ physical_file_path: String! """ Liquid code rendering to the address replies should go to, for example `support@example.com` """ reply_to: String """ Liquid code rendered into the subject line """ subject: String! """ Liquid code rendering to a comma-separated list of recipients, for example `john@example.com, jane@example.com` """ to: String """ Liquid code; the email is sent only when it renders to `true`. Defaults to `true` """ trigger_condition: String = "true" } """ Conditions for admin_email_notifications """ input EmailNotificationsFilterInput { """ Conditions on the attachments template. Currently not applied """ attachments: StringFilter """ Conditions on the bcc template """ bcc: StringFilter """ Conditions on the cc template """ cc: StringFilter """ Conditions on the email body template """ content: StringFilter """ Conditions on the creation time """ created_at: DateFilter """ Deprecated, use delay_by """ delay: StringFilter """ Conditions on the delay template """ delay_by: StringFilter """ Conditions on the id """ id: UniqIdFilter """ Conditions on the layout name """ layout: StringFilter """ Deprecated, use layout """ layout_path: StringFilter """ Conditions on the metadata defined in the file. All conditions are combined with AND """ metadata: [JsonbFilter!] """ Conditions on the name """ name: StringFilter """ Alternative condition sets: matches when at least one of them matches. Combined with AND with the other conditions """ or: [EmailNotificationsFilterInput!] """ Conditions on the source file path relative to the app directory, e.g. views/pages/index.liquid """ physical_file_path: StringFilter """ Conditions on the subject template """ subject: StringFilter """ Conditions on the recipient template """ to: StringFilter """ Conditions on the trigger condition """ trigger_condition: StringFilter """ Conditions on the last update time """ updated_at: DateFilter } """ Sort order for admin_email_notifications """ input EmailNotificationsSortInput { """ Sort by creation time """ created_at: StandardSort """ Sort by id """ id: StandardSort """ Sort by metadata values, applied in the given order """ metadata: [JsonbSort!] """ Sort by name """ name: StandardSort """ Sort by the path of the source file """ physical_file_path: StandardSort """ Sort by last update time """ updated_at: StandardSort } """ Vector representation of a piece of content, used for similarity (semantic) search """ type Embedding { """ Original text that was converted to the embedding """ content: String """ Timestamp of when the object was created, set automatically by the system """ created_at: JSONDate! """ Vector with 1536 dimensions, compatible with OpenAI embeddings """ embedding: [Float!]! """ Unique identifier of the object """ id: ID! """ Arbitrary data stored with the embedding, e.g. a reference to the source record; can be used for filtering """ metadata: HashObject """ Number of tokens of the content, as provided when the embedding was saved """ token_count: Int """ Timestamp of when the object was last updated, set automatically by the system """ updated_at: JSONDate! } """ Page of embeddings with pagination details """ type EmbeddingCollection { """ Number of the page returned in results """ current_page: Int! """ True when there is at least one page after the current one """ has_next_page: Boolean! """ True when the current page is not the first one """ has_previous_page: Boolean! """ Maximum number of results returned on a single page """ per_page: Int! """ Results on the current page """ results: [Embedding!] """ Total number of results matching the query, across all pages """ total_entries: Int! """ Total number of pages, given per_page """ total_pages: Int! } """ Attributes of a new embedding """ input EmbeddingCreateInputType { """ Original text the vector was computed from """ content: String """ Overrides the creation timestamp; defaults to now """ created_at: JSONDate """ Vector of exactly 1536 numbers, e.g. as returned by an OpenAI embeddings model """ embedding: [Float!]! """ Id to give the new embedding; generated when omitted """ id: ID """ Any additional data, e.g. a reference to the source document; can be filtered on in the embeddings query """ metadata: HashObject """ Number of tokens of the content """ token_count: Int """ Overrides the update timestamp; defaults to now """ updated_at: JSONDate } """ Embedding attributes to change; omitted attributes are left unchanged """ input EmbeddingUpdateInputType { """ Original text the vector was computed from """ content: String """ Overrides the creation timestamp """ created_at: JSONDate """ Vector of exactly 1536 numbers, e.g. as returned by an OpenAI embeddings model """ embedding: [Float!] """ New id for the embedding. Not needed to select it, use the id argument of the mutation """ id: ID """ Any additional data, e.g. a reference to the source document; replaces the whole existing metadata """ metadata: HashObject """ Number of tokens of the content """ token_count: Int """ Overrides the update timestamp; defaults to now """ updated_at: JSONDate } """ Conditions embeddings must match. All given conditions are combined with AND """ input EmbeddingsFilterInput { """ Condition on the creation time """ created_at: DateFilter """ Condition on the embedding id """ id: UniqIdFilter """ Conditions on metadata; every entry must match """ metadata: [JsonbFilter!] """ Condition on the last update time """ updated_at: DateFilter } """ Sort order for embeddings. Only sorting by embedding distance is currently applied """ input EmbeddingsSortInput { """ Sort by creation time. Currently not applied """ created_at: StandardSort """ Sort by distance between the stored embedding and a given vector, nearest first """ embedding: VectorDistanceSort """ Sort by id. Currently not applied """ id: StandardSort """ Sort by last update time. Currently not applied """ updated_at: StandardSort } """ Constant: a named secret value (e.g. an API key) stored encrypted and available in Liquid as context.constants """ type EncryptedConstant { """ Timestamp of when the object was created, set automatically by the system """ created_at: JSONDate! """ Timestamp of when the constant was removed """ deleted_at: JSONDate """ Name of the constant """ name: String! """ Timestamp of when the object was last updated, set automatically by the system """ updated_at: JSONDate! """ Decrypted value of a constant """ value: String! } """ Paginated list of constants """ type EncryptedConstantCollection { """ Number of the page returned in results """ current_page: Int! """ True when there is at least one page after the current one """ has_next_page: Boolean! """ True when the current page is not the first one """ has_previous_page: Boolean! """ Maximum number of results returned on a single page """ per_page: Int! """ Results on the current page """ results: [EncryptedConstant!] """ Total number of results matching the query, across all pages """ total_entries: Int! """ Total number of pages, given per_page """ total_pages: Int! } """ Conditions for the deprecated constant query """ input EncryptedConstantFilterInput { """ Conditions on the creation time """ created_at: DateFilter """ Conditions on the id """ id: UniqIdFilter """ Exact name of the constant """ name: String """ Conditions on the last update time """ updated_at: DateFilter } """ Conditions for constants """ input EncryptedConstantsFilterInput { """ Conditions on the creation time """ created_at: DateFilter """ Conditions on the id """ id: UniqIdFilter """ Conditions on the name """ name: StringFilter """ Conditions on the last update time """ updated_at: DateFilter } """ Sort order for constants """ input EncryptedConstantsSortInput { """ Sort by creation time """ created_at: StandardSort """ Sort by id """ id: StandardSort """ Sort by name """ name: StandardSort """ Sort by last update time """ updated_at: StandardSort } """ Remote HTTP endpoint that returns resources as JSON, called with a GET request. The remote_records and remote_users fields of an object send the ids to load in the `ids[]` query parameter and expect a JSON array of objects that each have an id. The root remote_records and remote_users queries send filter, sort, page and per_page as query parameters instead. A failed request or invalid JSON is logged and yields no results """ input Endpoint { """ Token sent in the AUTHENTICATION_TOKEN request header; no such header is sent when omitted """ token: String """ URL of the endpoint """ url: String! } """ Flash messages of the current request. Deprecated """ type FlashMessages { """ Alert (error) flash message """ alert: String """ Notice (success) flash message """ notice: String } """ Form (app/forms): defines which attributes of a resource can be submitted, how they are validated and what happens after a successful submission. Deprecated, use pages with GraphQL mutations instead """ type Form implements AdminSharedAttributesInterface { """ API calls sent after a successful submission """ api_call_notifications: [ApiCallNotification!] """ Same as callback_actions, but run in a background job after the request. Recommended for performance """ async_callback_actions: String """ Liquid that evaluates to the number of minutes to delay the async_callback_actions job, for example to run it 1 hour before an event (the time_diff filter helps to calculate it) """ async_callback_delay: String """ Number of retries of the async_callback_actions job when it fails. Usually there is no need to change it """ async_callback_max_attempts: Int """ Priority of the async_callback_actions background job """ async_callback_priority: AsyncCallbackPriority """ Authorization policies checked on submission; all must pass """ authorization_policies: [AuthorizationPolicy!] """ Liquid run right after the submission is saved, during the request. Prefer async_callback_actions """ callback_actions: String """ Deprecated, use fields instead """ configuration: HashObject @deprecated(reason: "use fields") """ Timestamp of when the object was created, set automatically by the system """ created_at: JSONDate! """ Liquid that evaluates to JSON merged into (and overwriting) the submitted data before validation, for example to store context.current_user.id without letting the user change it """ default_payload: String """ Emails sent after a successful submission """ email_notifications: [EmailNotification!] """ Whitelist of the attributes that can be submitted and saved, with their validations. Submitted values are available in callbacks and notifications through the form variable, for example fields: { properties: { my_var } } as form.properties.my_var """ fields: HashObject """ Liquid that evaluates to the message shown when the submission fails validation, available as context.flash.alert """ flash_alert: String """ Liquid that evaluates to the message shown after a successful submission, available as context.flash.notice """ flash_notice: String """ Unique identifier of the object """ id: ID! """ Liquid that renders the form HTML, with access to the form_builder variable and the form tag """ liquid_body: String """ When true, the resource is managed outside of files: pos-cli deploy and sync never overwrite or delete it """ manually_managed: Boolean """ Free-form data attached to the resource with the metadata key of its file (or the metadata argument of an admin mutation) """ metadata: HashObject """ Name of the form, used to render it and in the form_name argument of mutations """ name: String! """ Path of the file the resource comes from, relative to the app directory, for example views/pages/index.liquid or modules/my_module/public/views/partials/header.liquid. Identifies the resource in deploy, sync and admin mutations """ physical_file_path: String """ Liquid that evaluates to the path or URL the user is redirected to after a successful submission """ redirect_to: String """ Resource the form saves, for example User, Session or the name of a table """ resource: String! """ Who can submit the form: creator (the default; the user who created the record), self (for the User resource, the user themselves) or anyone. When set to anyone, protect the form with authorization_policies """ resource_owner: String! """ Liquid that evaluates to a JSON object of headers added to the response of a submission """ response_headers: String """ SMS notifications sent after a successful submission """ sms_notifications: [SmsNotification!] """ Spam protection strategy (recaptcha_v2, recaptcha_v3 or hcaptcha) as the key, with its settings as the value """ spam_protection: HashObject """ Timestamp of when the object was last updated, set automatically by the system """ updated_at: JSONDate! } """ Paginated list of forms. Deprecated """ type FormCollection { """ Number of the page returned in results """ current_page: Int! """ True when there is at least one page after the current one """ has_next_page: Boolean! """ True when the current page is not the first one """ has_previous_page: Boolean! """ Maximum number of results returned on a single page """ per_page: Int! """ Results on the current page """ results: [Form!] """ Total number of results matching the query, across all pages """ total_entries: Int! """ Total number of pages, given per_page """ total_pages: Int! } """ Form (app/forms). Deprecated, use Form instead """ type FormConfiguration implements AdminSharedAttributesInterface { """ API calls sent after a successful submission """ api_call_notifications: [ApiCallNotification!] """ Liquid run in a background job after the submission is saved """ async_callback_actions: String """ Liquid that evaluates to the number of minutes to delay the async_callback_actions job """ async_callback_delay: String """ Number of retries of a failed async_callback_actions job """ async_callback_max_attempts: Int """ Priority of the async_callback_actions job """ async_callback_priority: AsyncCallbackPriority """ Authorization policies checked on submission """ authorization_policies: [AuthorizationPolicy!] """ Liquid run after the submission is saved """ callback_actions: String """ Attributes the form accepts and their validations """ configuration: HashObject """ Timestamp of when the object was created, set automatically by the system """ created_at: JSONDate! """ Liquid that evaluates to JSON merged into the submitted data before validation """ default_payload: String """ Emails sent after a successful submission """ email_notifications: [EmailNotification!] """ Liquid message shown when the submission fails validation """ flash_alert: String """ Liquid message shown after a successful submission """ flash_notice: String """ Unique identifier of the object """ id: ID! """ Liquid that renders the form HTML """ liquid_body: String """ When true, the resource is managed outside of files: pos-cli deploy and sync never overwrite or delete it """ manually_managed: Boolean """ Free-form data attached to the resource with the metadata key of its file (or the metadata argument of an admin mutation) """ metadata: HashObject """ Name of the form """ name: String! """ Path of the file the resource comes from, relative to the app directory, for example views/pages/index.liquid or modules/my_module/public/views/partials/header.liquid. Identifies the resource in deploy, sync and admin mutations """ physical_file_path: String """ Liquid path or URL to redirect to after a successful submission """ redirect_to: String """ Resource the form saves, for example User or the name of a table """ resource: String! """ Who can submit the form: creator, self or anyone """ resource_owner: String! """ SMS notifications sent after a successful submission """ sms_notifications: [SmsNotification!] """ Spam protection strategy (recaptcha_v2, recaptcha_v3 or hcaptcha) and its settings """ spam_protection: HashObject """ Timestamp of when the object was last updated, set automatically by the system """ updated_at: JSONDate! } """ Paginated list of form configurations. Deprecated, use FormCollection instead """ type FormConfigurationCollection { """ Number of the page returned in results """ current_page: Int! """ True when there is at least one page after the current one """ has_next_page: Boolean! """ True when the current page is not the first one """ has_previous_page: Boolean! """ Maximum number of results returned on a single page """ per_page: Int! """ Results on the current page """ results: [FormConfiguration!] """ Total number of results matching the query, across all pages """ total_entries: Int! """ Total number of pages, given per_page """ total_pages: Int! } """ Deprecated, use FormInputType. Attributes of a form """ input FormConfigurationInputType { """ Liquid code run in a background job after the data is saved """ async_callback_actions: String """ Liquid code rendering to the number of minutes async_callback_actions are delayed by """ async_callback_delay: String = "0" """ Maximum number of attempts of async_callback_actions when they fail """ async_callback_max_attempts: Int = 1 """ Priority of the async_callback_actions background job """ async_callback_priority: AsyncCallbackPriority = default """ Ids of authorization policies checked before the form is shown or submitted """ authorization_policy_ids: [ID] """ Liquid code run right after the data is saved; prefer async_callback_actions """ callback_actions: String """ Allowlist of attributes that can be saved; submitted values are available in callbacks and notifications through the `form` variable, for example `form.properties.my_var` """ configuration: HashObject """ Liquid code rendering to JSON merged over the submitted input before validation, for values users must not set themselves, such as context.current_user.id """ default_payload: String """ Liquid code rendering to the message shown when validation fails, available as context.flash_alert """ flash_alert: String """ Liquid code rendering to the message shown after a successful submission, available as context.flash_notice """ flash_notice: String """ Liquid code rendering the form HTML; the `form_builder` variable and the `form` tag are available """ liquid_body: String """ Arbitrary JSON data stored with the form """ metadata: HashObject """ Deprecated, derived from physical_file_path. Name of the form """ name: String """ Path of the file the form is stored as, for example `forms/sign_up.liquid` or `modules/<module_name>/public/forms/sign_up.liquid` """ physical_file_path: String! """ Liquid code rendering to the path or URL the user is redirected to after a successful submission """ redirect_to: String """ Kind of record the form saves, for example a table name, `User` or `Session` """ resource: String! """ Who can submit the form: `anyone` or `creator` (`anyone` or `self` for User forms); when `anyone`, protect the form with authorization policies """ resource_owner: String! """ Captcha the submission must pass """ spam_protection: SpamProtectionInputType = null } """ Conditions for the deprecated admin_form_configurations query """ input FormConfigurationsFilterInput { """ Conditions on the async callback actions """ async_callback_actions: StringFilter """ Conditions on the callback actions """ callback_actions: StringFilter """ Conditions on the creation time """ created_at: DateFilter """ Conditions on the default payload """ default_payload: StringFilter """ Conditions on the flash notice """ flash_notice: StringFilter """ Conditions on the id """ id: UniqIdFilter """ Conditions on the Liquid body """ liquid_body: StringFilter """ Conditions on the metadata defined in the file. All conditions are combined with AND """ metadata: [JsonbFilter!] """ Conditions on the name """ name: StringFilter """ Conditions on the redirect target """ redirect_to: StringFilter """ Conditions on the resource the form saves """ resource: StringFilter """ Conditions on the resource owner """ resource_owner: StringFilter """ Conditions on the last update time """ updated_at: DateFilter } """ Sort order for the deprecated admin_form_configurations query """ input FormConfigurationsSortInput { """ Sort by creation time """ created_at: StandardSort """ Sort by id """ id: StandardSort """ Sort by metadata values, applied in the given order """ metadata: [JsonbSort!] """ Sort by name """ name: StandardSort """ Sort by the path of the source file """ physical_file_path: StandardSort """ Sort by last update time """ updated_at: StandardSort } """ Attributes of a form, the same ones that can be set in a forms/*.liquid file """ input FormInput { """ Liquid code run in a background job after the data is saved """ async_callback_actions: String """ Liquid code rendering to the number of minutes async_callback_actions are delayed by """ async_callback_delay: String = "0" """ Maximum number of attempts of async_callback_actions when they fail """ async_callback_max_attempts: Int = 1 """ Priority of the async_callback_actions background job """ async_callback_priority: AsyncCallbackPriority = default """ Ids of authorization policies checked before the form is shown or submitted """ authorization_policy_ids: [ID!] """ Liquid code run right after the data is saved; prefer async_callback_actions """ callback_actions: String """ Allowlist of attributes that can be saved; submitted values are available in callbacks and notifications through the `form` variable, for example `form.properties.my_var` """ configuration: HashObject """ Liquid code rendering to JSON merged over the submitted input before validation, for values users must not set themselves, such as context.current_user.id """ default_payload: String """ Liquid code rendering to the message shown when validation fails, available as context.flash_alert """ flash_alert: String """ Liquid code rendering to the message shown after a successful submission, available as context.flash_notice """ flash_notice: String """ Liquid code rendering the form HTML; the `form_builder` variable and the `form` tag are available """ liquid_body: String """ Arbitrary JSON data stored with the form """ metadata: HashObject """ Deprecated, derived from physical_file_path. Name of the form """ name: String """ Path of the file the form is stored as, for example `forms/sign_up.liquid` or `modules/<module_name>/public/forms/sign_up.liquid` """ physical_file_path: String! """ Liquid code rendering to the path or URL the user is redirected to after a successful submission """ redirect_to: String """ Kind of record the form saves, for example a table name, `User` or `Session` """ resource: String! """ Who can submit the form: `anyone` or `creator` (`anyone` or `self` for User forms); when `anyone`, protect the form with authorization policies """ resource_owner: String! """ Liquid code rendering to a JSON object of headers added to the response of a form submission """ response_headers: String = null """ Captcha the submission must pass """ spam_protection: SpamProtectionInput = null } """ Autogenerated return type of FormSubmit. """ type FormSubmitPayload { """ The saved resource; null when validation failed """ result: Result """ Validation error messages per field; null when the submission succeeded """ validation_errors: HashObject } """ Conditions for admin_forms """ input FormsFilterInput { """ Conditions on the async callback actions """ async_callback_actions: StringFilter """ Conditions on the callback actions """ callback_actions: StringFilter """ Conditions on the creation time """ created_at: DateFilter """ Conditions on the default payload """ default_payload: StringFilter """ Conditions on the flash notice """ flash_notice: StringFilter """ Conditions on the id """ id: UniqIdFilter """ Conditions on the Liquid body """ liquid_body: StringFilter """ Conditions on the metadata defined in the file. All conditions are combined with AND """ metadata: [JsonbFilter!] """ Conditions on the name """ name: StringFilter """ Alternative condition sets: matches when at least one of them matches. Combined with AND with the other conditions """ or: [FormsFilterInput!] """ Conditions on the source file path relative to the app directory, e.g. views/pages/index.liquid """ physical_file_path: StringFilter """ Conditions on the redirect target """ redirect_to: StringFilter """ Conditions on the resource the form saves """ resource: StringFilter """ Conditions on the resource owner """ resource_owner: StringFilter """ Conditions on the last update time """ updated_at: DateFilter } """ Sort order for admin_forms """ input FormsSortInput { """ Sort by creation time """ created_at: StandardSort """ Sort by id """ id: StandardSort """ Sort by metadata values, applied in the given order """ metadata: [JsonbSort!] """ Sort by name """ name: StandardSort """ Sort by the path of the source file """ physical_file_path: StandardSort """ Sort by last update time """ updated_at: StandardSort } """ Field searched by a full-text query, with its relevance weight """ input FullTextQueryField { """ Name of the field to search. For records use `properties.<property name>`; add a `.raw` suffix (e.g. `properties.title.raw`) to match the exact, not analyzed value. For documents use the field name of the search index """ name: String """ Relevance weight of matches in this field; matches in fields with a higher priority rank higher """ priority: Int = 1 """ Legacy: user profile field to search, e.g. `properties.bio`, for the deprecated people query """ profile_field: String } """ ASCII-armored GPG (OpenPGP) public key; an invalid key returns an error """ scalar GPGKey """ Bounding box given by its edges """ input GeoBox { """ Latitude of the bottom edge """ bottom: LatDegree! """ Longitude of the left edge """ left: LngDegree! """ Longitude of the right edge """ right: LngDegree! """ Latitude of the top edge """ top: LatDegree! } """ Bounding box given by its top-left and bottom-right corners """ input GeoBoxTopLeftBottomRight { """ Bottom-right corner """ bottom_right: GeoPoint """ Top-left corner """ top_left: GeoPoint } """ Bounding box given by its top-right and bottom-left corners """ input GeoBoxTopRightBottomLeft { """ Bottom-left corner """ bottom_left: GeoPoint """ Top-right corner """ top_right: GeoPoint } """ Geographic point """ input GeoPoint { """ Latitude in degrees """ lat: LatDegree! """ Longitude in degrees """ lng: LngDegree! } """ Point that a stored shape must contain """ input GeoPointInShape { """ Point the shape must contain """ point: GeoPoint } """ Geographic point """ type GeoPointType { """ Latitude """ lat: Float """ Longitude """ lon: Float } """ Polygon given by its vertices """ input GeoPolygon { """ Vertices of the polygon, ordered as the GeoJSON spec requires """ points: [GeoPoint] } """ Matches records whose geometry property lies closer than a given distance to a center geometry """ input GeoPropertyFilterInput { """ GeoJSON geometry of type Point, MultiPoint, LineString or Polygon the distance is measured from, e.g. `{ type: "Point", coordinates: [-84.3, 39.8] }` (longitude first) """ center: GeometryJSON """ Maximum distance in kilometers; records exactly at this distance do not match """ distance_in_km: Float """ How results are ordered by their distance from center. Distance ordering is applied before the sort argument of the query """ sort: GeoSortOrderEnum = ASC } """ Geographic conditions for deprecated search queries. Deprecated, use the distance_sphere and within_radius conditions of PropertyFilterInput instead """ input GeoQuery { """ Matches locations inside the bounding box """ box: GeoBox """ Matches locations inside the bounding box """ box_top_left_bottom_right: GeoBoxTopLeftBottomRight """ Matches locations inside the bounding box """ box_top_right_bottom_left: GeoBoxTopRightBottomLeft """ Matches stored service areas that contain the point """ point_in_shape: GeoPointInShape """ Matches locations inside the polygon """ polygon: GeoPolygon """ Matches locations inside the circle """ radius: GeoRadius } """ Circle around a center point """ input GeoRadius { """ Center of the circle """ center: GeoPoint """ Radius of the circle with its unit, e.g. 1km, 100mi, 50yards, 2meters """ distance: String! } """ Matches records whose geometry property lies within a radius, stored in another property of the same record, from a point """ input GeoRadiusPropertyFilterInput { """ GeoJSON geometry of type Point, MultiPoint, LineString or Polygon the distance is measured from, e.g. `{ type: "Point", coordinates: [-84.3, 39.8] }` (longitude first) """ point: GeometryJSON """ Name of the property of the record that holds the radius, in kilometers. The property must be of type Float """ radius_in_km_from_property: String } """ How results of a distance_sphere condition are ordered by their distance from center """ enum GeoSortOrderEnum { """ Closest first (default) """ ASC """ Farthest first """ DESC """ Not ordered by distance; ordering is controlled only by the sort argument of the query, if any """ NONE } """ GeoJSON geometry object (https://tools.ietf.org/html/rfc7946) given as an input object with type and coordinates. Supported types: Point [lng, lat], MultiPoint [[lng, lat], ...], LineString [[lng, lat], ...] and Polygon [[[lng, lat], ...]], with longitude first. Point example: {"type": "Point", "coordinates": [100.0, 0.0]}, Polygon example: {"type": "Polygon", "coordinates": [[[100.0, 0.0], [101.0, 0.0], [101.0, 1.0], [100.0, 1.0], [100.0, 0.0]]]}. Invalid coordinates or another type return an error """ scalar GeometryJSON """ GraphQL query or mutation stored in the instance (app/graphql), returned by the admin_graphql_* mutations """ type GraphQL implements AdminSharedAttributesInterface { """ GraphQL source of the query or mutation """ body: String """ Timestamp of when the object was created, set automatically by the system """ created_at: JSONDate! """ Unique identifier of the object """ id: ID! """ When true, the resource is managed outside of files: pos-cli deploy and sync never overwrite or delete it """ manually_managed: Boolean """ Free-form data attached to the resource with the metadata key of its file (or the metadata argument of an admin mutation) """ metadata: HashObject """ Path of the file the resource comes from, relative to the app directory, for example views/pages/index.liquid or modules/my_module/public/views/partials/header.liquid. Identifies the resource in deploy, sync and admin mutations """ physical_file_path: String """ Timestamp of when the object was last updated, set automatically by the system """ updated_at: JSONDate! } """ GraphQL query or mutation stored in the instance (app/graphql), run from Liquid with the graphql tag """ type GraphQuery implements AdminSharedAttributesInterface { """ Timestamp of when the object was created, set automatically by the system """ created_at: JSONDate! """ Unique identifier of the object """ id: ID! """ When true, the resource is managed outside of files: pos-cli deploy and sync never overwrite or delete it """ manually_managed: Boolean """ Free-form data attached to the resource with the metadata key of its file (or the metadata argument of an admin mutation) """ metadata: HashObject """ Name used to run the query with the graphql tag: its file path below app/graphql without the extension, for example users/search; module queries are prefixed with modules/<module name>/ """ name: String! """ Path of the file the resource comes from, relative to the app directory, for example views/pages/index.liquid or modules/my_module/public/views/partials/header.liquid. Identifies the resource in deploy, sync and admin mutations """ physical_file_path: String """ GraphQL source of the query or mutation """ query_string: String! """ Timestamp of when the object was last updated, set automatically by the system """ updated_at: JSONDate! } """ Paginated list of GraphQL queries and mutations stored in the instance """ type GraphQueryCollection { """ Number of the page returned in results """ current_page: Int! """ True when there is at least one page after the current one """ has_next_page: Boolean! """ True when the current page is not the first one """ has_previous_page: Boolean! """ Maximum number of results returned on a single page """ per_page: Int! """ Results on the current page """ results: [GraphQuery!] """ Total number of results matching the query, across all pages """ total_entries: Int! """ Total number of pages, given per_page """ total_pages: Int! } """ Conditions for admin_graphql """ input GraphqlFilterInput { """ Conditions on the creation time """ created_at: DateFilter """ Conditions on the id """ id: UniqIdFilter """ Conditions on the metadata defined in the file. All conditions are combined with AND """ metadata: [JsonbFilter!] """ Conditions on the name """ name: StringFilter """ Alternative condition sets: matches when at least one of them matches. Combined with AND with the other conditions """ or: [GraphqlFilterInput!] """ Conditions on the source file path relative to the app directory, e.g. views/pages/index.liquid """ physical_file_path: StringFilter """ Conditions on the source of the query """ query_string: StringFilter """ Conditions on the last update time """ updated_at: DateFilter } """ Attributes of a stored GraphQL query or mutation, the same ones as a graphql/*.graphql file """ input GraphqlInputType { """ GraphQL document of the query or mutation; it must be valid against the schema """ body: String! """ When true, pos-cli deploy and sync never overwrite or delete it and pos-cli pull skips it. When omitted, defaults to the track_manually_managed setting of the instance (false unless enabled in app/config.yml) """ manually_managed: Boolean """ Arbitrary JSON data stored with the query """ metadata: HashObject """ Path of the file the query is stored as, used by pos-cli pull and deploy. Must be under `graphql/` (or legacy `graph_queries/`), optionally prefixed with `modules/<module_name>/public/` or `modules/<module_name>/private/`, for example `graphql/users/search.graphql`. The query name used by the graphql tag is derived from it, for example `users/search` """ physical_file_path: String! } """ Sort order for admin_graphql """ input GraphqlSortInput { """ Sort by creation time """ created_at: StandardSort """ Sort by id """ id: StandardSort """ Sort by metadata values, applied in the given order """ metadata: [JsonbSort!] """ Sort by name """ name: StandardSort """ Sort by the path of the source file """ physical_file_path: StandardSort """ Sort by last update time """ updated_at: StandardSort } """ Details of the current HTTP request. Deprecated, use context.params, context.headers etc. in Liquid """ type HTTPRequestContext { """ Authentication providers configured for the instance """ authentication_providers: [AuthenticationProvider] """ Raw request body """ body: String """ Path of the request including the query string, e.g. /foo?bar """ current_full_path: String! """ Path of the request, without the query string """ current_path: String! """ Full URL of the request, e.g. "http://www.example.com/articles?page=2" """ current_url: String! """ Flash messages of the current request """ flash: FlashMessages """ CSRF token to include in HTML forms and requests sent by the current session """ form_authenticity_token: String! """ Access request headers """ headers: HeadersObject! """ True when the X-Requested-With header contains XMLHttpRequest (case insensitive); some JavaScript libraries do not send it automatically """ is_xhr: Boolean """ Access data sent in by the user or other parameters in your controller actions """ params: ParamsObject! """ Request parameters """ params_unfiltered: HashObject! """ The referer of the client """ referer: String } """ Object that can load related users and (deprecated) related models """ interface HasModelsInterface { """ Returns one related model. Deprecated, use related_record """ model( """ Additional conditions the related objects must match """ filter: ModelsFilterInput """ Name of the property (or attribute) of the related object equal to join_on_property """ foreign_property: String = "id" """ Name of the property (or attribute) of this object matched against foreign_property """ join_on_property: String! """ Name of the model schema (table) of the related models """ model_name: [String]! """ Sort order of the results. When several entries are given, they are applied in the given order """ sort: [ModelsSortInput!] ): Model @deprecated(reason: "use `related_record`") """ Returns related models. Deprecated, use related_records """ models( """ Name of the property (or attribute) of the related object equal to join_on_property """ foreign_property: String! """ Name of the property (or attribute) of this object matched against foreign_property """ join_on_property: String! """ Maximum number of related objects returned for each object """ limit: Int """ Name of the model schema (table) of the related models """ model_name: [String]! """ Sort order of the results. When several entries are given, they are applied in the given order """ sort: [ModelsSortInput!] ): [Model!] @deprecated(reason: "use `related_records`") """ Returns one related model. Deprecated, use related_record """ related_model( """ Additional conditions the related objects must match """ filter: ModelsFilterInput """ Name of the property (or attribute) of the related object equal to join_on_property """ foreign_property: String = "id" """ Name of the property (or attribute) of this object matched against foreign_property """ join_on_property: String! """ Name of the model schema (table) of the related models """ model_schema_name: [String]! """ Sort order of the results. When several entries are given, they are applied in the given order """ sort: [ModelsSortInput!] ): Model @deprecated(reason: "use `related_record`") """ Returns related models. Deprecated, use related_records """ related_models( """ Additional conditions the related objects must match """ filter: ModelsFilterInput """ Name of the property (or attribute) of the related object equal to join_on_property """ foreign_property: String! """ Name of the property (or attribute) of this object matched against foreign_property """ join_on_property: String! """ Maximum number of related objects returned for each object """ limit: Int """ Name of the model schema (table) of the related models """ model_schema_name: [String]! """ Sort order of the results. When several entries are given, they are applied in the given order """ sort: [ModelsSortInput!] ): [Model!] @deprecated(reason: "use `related_records`") """ Returns the user whose foreign_property equals the value of join_on_property of this object (belongs-to relation); by default the user whose id is in user_id; ex: invited_by: related_user(join_on_property: "invited_by_id") { id } """ related_user( """ Additional conditions the related objects must match """ filter: ModelsFilterInput """ Name of the property (or attribute) of the related object equal to join_on_property """ foreign_property: String = "id" """ Name of the property (or attribute) of this object matched against foreign_property """ join_on_property: String = "user_id" """ Sort order of the results. When several entries are given, they are applied in the given order """ sort: [UsersSortInput!] ): User """ Returns users whose foreign_property equals the value of join_on_property of this object (has-many relation). Related users of all objects in the result are loaded in one batch of at most 10,000 users, soft-deleted users are skipped; ex: friends: related_users(join_on_property: "friend_ids", foreign_property: "id") { id } """ related_users( """ Additional conditions the related objects must match """ filter: ModelsFilterInput """ Name of the property (or attribute) of the related object equal to join_on_property """ foreign_property: String! """ Name of the property (or attribute) of this object matched against foreign_property """ join_on_property: String! """ Maximum number of related objects returned for each object """ limit: Int """ Sort order of the results. When several entries are given, they are applied in the given order """ sort: [UsersSortInput!] ): [User!] """ Returns the related user. Deprecated, use related_user """ user( """ Name of the property (or attribute) of the related object equal to join_on_property """ foreign_property: String = "id" """ Name of the property (or attribute) of this object matched against foreign_property """ join_on_property: String = "user_id" """ Sort order of the results. When several entries are given, they are applied in the given order """ sort: [UsersSortInput!] ): User @deprecated(reason: "use `related_user`") """ Returns related users. Deprecated, use related_users """ users( """ Name of the property (or attribute) of the related object equal to join_on_property """ foreign_property: String! """ Name of the property (or attribute) of this object matched against foreign_property """ join_on_property: String! """ Maximum number of related objects returned for each object """ limit: Int """ Sort order of the results. When several entries are given, they are applied in the given order """ sort: [UsersSortInput!] ): [User!] @deprecated(reason: "use `related_users`") } """ Deprecated relations of a record to models and users; use related_records and related_users instead """ interface HasModelsInterfaceForRecords { """ Returns one related model. Deprecated, use related_record """ model( """ Additional conditions the related objects must match """ filter: ModelsFilterInput """ Name of the property (or attribute) of the related object equal to join_on_property """ foreign_property: String = "id" """ Name of the property (or attribute) of this object matched against foreign_property """ join_on_property: String! """ Name of the model schema (table) of the related models """ model_name: [String]! """ Sort order of the results. When several entries are given, they are applied in the given order """ sort: [ModelsSortInput!] ): Model @deprecated(reason: "use `related_record`") """ Returns related models. Deprecated, use related_records """ models( """ Name of the property (or attribute) of the related object equal to join_on_property """ foreign_property: String! """ Name of the property (or attribute) of this object matched against foreign_property """ join_on_property: String! """ Maximum number of related objects returned for each object """ limit: Int """ Name of the model schema (table) of the related models """ model_name: [String]! """ Sort order of the results. When several entries are given, they are applied in the given order """ sort: [ModelsSortInput!] ): [Model!] @deprecated(reason: "use `related_records`") """ Returns one related model. Deprecated, use related_record """ related_model( """ Additional conditions the related objects must match """ filter: ModelsFilterInput """ Name of the property (or attribute) of the related object equal to join_on_property """ foreign_property: String = "id" """ Name of the property (or attribute) of this object matched against foreign_property """ join_on_property: String! """ Name of the model schema (table) of the related models """ model_schema_name: [String]! """ Sort order of the results. When several entries are given, they are applied in the given order """ sort: [ModelsSortInput!] ): Model @deprecated(reason: "use `related_record`") """ Returns related models. Deprecated, use related_records """ related_models( """ Additional conditions the related objects must match """ filter: ModelsFilterInput """ Name of the property (or attribute) of the related object equal to join_on_property """ foreign_property: String! """ Name of the property (or attribute) of this object matched against foreign_property """ join_on_property: String! """ Maximum number of related objects returned for each object """ limit: Int """ Name of the model schema (table) of the related models """ model_schema_name: [String]! """ Sort order of the results. When several entries are given, they are applied in the given order """ sort: [ModelsSortInput!] ): [Model!] @deprecated(reason: "use `related_records`") """ Returns the related user. Deprecated, use related_user """ user( """ Name of the property (or attribute) of the related object equal to join_on_property """ foreign_property: String = "id" """ Name of the property (or attribute) of this object matched against foreign_property """ join_on_property: String = "user_id" """ Sort order of the results. When several entries are given, they are applied in the given order """ sort: [UsersSortInput!] ): User @deprecated(reason: "use `related_user`") """ Returns related users. Deprecated, use related_users """ users( """ Name of the property (or attribute) of the related object equal to join_on_property """ foreign_property: String! """ Name of the property (or attribute) of this object matched against foreign_property """ join_on_property: String! """ Maximum number of related objects returned for each object """ limit: Int """ Sort order of the results. When several entries are given, they are applied in the given order """ sort: [UsersSortInput!] ): [User!] @deprecated(reason: "use `related_users`") } """ Object that can load related records """ interface HasRecordsInterface { """ Returns one record of the given table whose foreign_property equals the value of join_on_property of this object (belongs-to or has-one relation). When several records match, the last one in sort order is returned, by default the most recently updated; ex: parent: related_record(table: "parent", join_on_property: "parent_id") { id } """ related_record( """ Additional conditions the related record must match """ filter: RecordsFilterInput """ Name of the property (or attribute, e.g. id) of the related object that must equal the value of join_on_property """ foreign_property: String = "id" """ Name of the property (or attribute, e.g. id or user_id) of this object whose value is matched against foreign_property. When the value is an array, records matching any of its elements are returned. Returns an error when this object has no such property """ join_on_property: String! """ Sort order used to pick the record; updated_at ascending when omitted """ sort: [RecordsSortInput!] """ Name of the table (or tables) the related record belongs to """ table: [String]! ): Record """ Returns records of the given table whose foreign_property equals the value of join_on_property of this object (has-many relation). Related records of all objects in the result are loaded in one batch of at most 10,000 records, soft-deleted records are skipped; ex: children: related_records(table: "child", join_on_property: "id", foreign_property: "parent_id") { id } """ related_records( """ Additional conditions the related records must match """ filter: RecordsFilterInput """ Name of the property (or attribute, e.g. id) of the related object that must equal the value of join_on_property """ foreign_property: String! """ Name of the property (or attribute, e.g. id or user_id) of this object whose value is matched against foreign_property. When the value is an array, records matching any of its elements are returned. Returns an error when this object has no such property """ join_on_property: String! """ Maximum number of related objects returned for each object """ limit: Int """ Sort order of the related records; updated_at ascending when omitted """ sort: [RecordsSortInput!] """ Name of the table (or tables) the related records belong to """ table: [String]! ): [Record!] } """ Object that can load related users """ interface HasUsersInterface { """ Returns the user whose foreign_property equals the value of join_on_property of this object (belongs-to relation); by default the user whose id is in user_id; ex: invited_by: related_user(join_on_property: "invited_by_id") { id } """ related_user( """ Additional conditions the related user must match """ filter: UsersFilterInput """ Name of the property (or attribute, e.g. id, email, slug or external_id) of the user that must equal the value of join_on_property """ foreign_property: String = "id" """ Name of the property (or attribute) of this object whose value is matched against foreign_property. Must not be an array (use related_users). Returns an error when this object has no such property """ join_on_property: String = "user_id" """ Sort order used to pick the user when several match; the last one is returned """ sort: [UsersSortInput!] ): User """ Returns users whose foreign_property equals the value of join_on_property of this object (has-many relation). Related users of all objects in the result are loaded in one batch of at most 10,000 users, soft-deleted users are skipped; ex: members: related_users(join_on_property: "id", foreign_property: "company_id") { id } """ related_users( """ Additional conditions the related users must match """ filter: UsersFilterInput """ Name of the property (or attribute, e.g. id, email, slug or external_id) of the user that must equal the value of join_on_property """ foreign_property: String! """ Name of the property (or attribute, e.g. id) of this object whose value is matched against foreign_property. When the value is an array, users matching any of its elements are returned. Returns an error when this object has no such property """ join_on_property: String! """ Maximum number of related objects returned for each object """ limit: Int """ Sort order of the results. When several entries are given, they are applied in the given order """ sort: [UsersSortInput!] ): [User!] } """ Object made of keys and values, nested to any depth (also known as a map, dictionary or hash). Accepts an object or a string with JSON text of an object; anything else returns an error. In Liquid you can build one from a JSON literal, e.g. {% assign object = { "color": "green" } %} """ scalar HashObject """ Represents data defined by platformOS stored in context.headers variable. """ scalar HeadersObject """ An ISO 8601-encoded datetime """ scalar ISO8601DateTime @specifiedBy(url: "https://tools.ietf.org/html/rfc3339") """ Bounds for an identifier. All bounds given must match, so gt and lt together select the ids between them """ input IdRangeFilter { """ Matches identifiers greater than the given value """ gt: ID """ Matches identifiers greater than or equal to the given value """ gte: ID """ Matches identifiers lower than the given value """ lt: ID """ Matches identifiers lower than or equal to the given value """ lte: ID } """ Image stored in a legacy image property. Deprecated, use property uploads """ type Image { """ Deprecated, file name of the image """ filename: String! @deprecated(reason: "Not used in direct s3 way of uploading file") """ Unique identifier of the object """ id: ID """ Deprecated, height of the original image """ image_original_height: Int! @deprecated(reason: "Not used in direct s3 way of uploading file") """ Deprecated, width of the original image """ image_original_width: Int! @deprecated(reason: "Not used in direct s3 way of uploading file") """ Deprecated, name of the image property """ name: String @deprecated(reason: "Not needed") """ ID of the user who uploaded the image """ uploader_id: ID """ URL of the image, or of one of its versions; ex: thumb: url(version: "thumb") """ url( """ Name of the image version; the original image when omitted """ version: String ): String """ URLs of all versions, keyed by version name, ex. { "big": { "url": "https://uploads.example.com/images/big_photo.jpg" }, "small": { "url": "https://uploads.example.com/images/small_photo.jpg" } } """ urls: HashObject! } """ Blur radius applied to an image: a number from 0.3 to 1000; higher values blur more """ scalar ImageBlur """ Output format of a generated image version. Deprecated together with presigned_upload_url """ enum ImageFormat { """ AVIF image """ avif """ JPEG image """ jpeg """ PNG image """ png """ WebP image """ webp } """ Legacy custom image value. Deprecated, use a property of type upload instead """ input ImageInputType { """ Direct URL of the image """ direct_url: String """ URL of an image uploaded directly to storage with a presigned URL """ image: String """ Name of the image property """ name: String! """ URL of an external image that is downloaded and stored """ remote_image_url: String } """ Options of the deprecated image_presign_url mutation """ input ImagePresignUrlInput { """ Allowed file size range in KiB, for example { gte: 1, lte: 1024 } allows files from 1 KiB to 1 MiB """ content_length: ContentLengthRange """ Table property whose image versions are generated. Provide this or user_property """ model_property: ModelPropertyInput """ User property whose image versions are generated. Provide this or model_property """ user_property: UserPropertyInput """ Deprecated and ignored; versions are taken from the property definition """ versions: [VersionInput!] } """ Presigned URL for uploading a legacy image directly to storage """ type ImagePresignedUploadUrl { """ URL to which the file is uploaded directly with a multipart POST request, including the fields from upload_url_payload """ upload_url: String! """ Form fields that must be sent along with the file to upload_url """ upload_url_payload: HashObject! } """ Image compression quality: an integer from 0 (lowest quality, smallest file) to 100 (highest quality) """ scalar ImageQuality """ How an image is resized to the given width and height; the values follow the object-fit CSS property """ enum ImageResizeFit { """ Preserving aspect ratio, embed the image within both provided dimensions, filling the rest with the background color """ contain """ Preserving aspect ratio, crop the image to cover both provided dimensions """ cover """ Ignore the aspect ratio of the input and stretch to both provided dimensions """ fill """ Preserving aspect ratio, resize the image to be as large as possible while ensuring its dimensions are less than or equal to both those specified """ inside """ Preserving aspect ratio, resize the image to be as small as possible while ensuring its dimensions are greater than or equal to both those specified """ outside } """ Part of the image kept when it is cropped (fit cover) or placed when it is embedded (fit contain) """ enum ImageResizePosition { """ Bottom edge """ bottom """ Center """ center """ Left edge """ left """ Bottom left corner """ left_bottom """ Top left corner """ left_top """ Right edge """ right """ Bottom right corner """ right_bottom """ Top right corner """ right_top """ Top edge """ top } """ Conditions for legacy image uploads """ input ImagesFilterInput { """ Conditions on the creation time """ created_at: DateFilter """ Conditions on the soft deletion time. When given, soft deleted items are included """ deleted_at: DateFilter """ Conditions on the id """ id: UniqIdFilter """ Conditions on the name of the property the image is uploaded to """ name: StringFilter """ Conditions on the id of the property the image is uploaded to """ property_id: UniqIdFilter """ Conditions on the last update time """ updated_at: DateFilter """ Conditions on the id of the user who uploaded the image """ uploader_id: UniqIdFilter } """ Value of an image property of an imported object """ input ImagesImport { """ Path of a file already in the instance storage, used instead of url """ direct_path: String """ Ignored """ id: ID """ Name of the image property """ name: String! """ URL the file is downloaded from after the import """ url: String } """ Sort order for legacy image uploads """ input ImagesSortInput { """ Sort by creation time """ created_at: StandardSort """ Sort by soft deletion time """ deleted_at: StandardSort """ Sort by id """ id: StandardSort """ Sort by the id of the property the image is uploaded to """ property_id: StandardSort """ Sort by last update time """ updated_at: StandardSort """ Sort by the id of the user who uploaded the image """ uploader_id: StandardSort } """ Autogenerated return type of ImportCustomizationsMutation. """ type ImportCustomizationsMutationPayload { """ External ids of the imported records, in the same order as ids """ external_ids: [ID!]! """ Ids of the imported records """ ids: [ID!]! } """ Autogenerated return type of ImportTransactablesMutation. """ type ImportTransactablesMutationPayload { """ External ids of the imported transactables, in the same order as ids """ external_ids: [ID!]! """ Ids of the imported transactables """ ids: [ID!]! } """ Autogenerated return type of ImportUsersMutation. """ type ImportUsersMutationPayload { """ External ids of the imported users, in the same order as ids """ external_ids: [ID!]! """ Ids of the imported users """ ids: [ID!]! } """ Paginated list of documents found in a custom search index """ type IndexSearchCollection { """ Results of the aggregations requested in the query, calculated over all matching documents """ aggregations: Aggregations! """ Number of the page returned in results """ current_page: Int! """ True when there is at least one page after the current one """ has_next_page: Boolean! """ True when the current page is not the first one """ has_previous_page: Boolean! """ Maximum number of results returned on a single page """ per_page: Int! """ Results on the current page """ results: [Document!] """ Total number of results matching the query, across all pages """ total_entries: Int! """ Total number of pages, given per_page """ total_pages: Int! } """ Condition on a single field of documents in a search index. Values are compared exactly, without text analysis """ input IndexSearchFilterInput { """ Intended to match documents where the field is present and not null (true) or missing or null (false). Currently has no effect """ exists: Boolean """ Name of the document field the condition applies to """ name: String! """ Matches when the field is not equal to this value """ not_value: String """ Matches when the field is equal to none of these values """ not_value_in: [String!] """ Matches when the field value starts with this string """ prefix: String """ Matches when the field value is within the range; lt (lower than), lte (lower than or equal), gt (greater than) and gte (greater than or equal) can be combined """ range: RangeFilter """ Matches when the field is equal to this value """ value: String """ Matches when the field is equal to one of these values (OR), or, with value_in_operator AND, when the field contains every one of them (for array fields) """ value_in: [String!] """ How value_in values are combined """ value_in_operator: OperatorEnum = OR } """ Full-text search conditions for documents of a search index """ input IndexSearchQuery { """ Language analyzer for the keyword, e.g. english or arabic. Currently has no effect: the analyzer configured for the searched fields is used """ analyzer: String """ Document fields to search, each with its relevance weight. When omitted, all fields are searched """ fields: [FullTextQueryField] """ Text to search for. Wildcards are accepted: `?` matches a single character, `*` any number of characters """ keyword: String """ How keyword is matched against words. With FUZZY and fields, each word may differ from the indexed word by one character """ match_type: QueryMatchTypeEnum = EXACT """ How the words of keyword are combined: AND requires every word to match, OR at least one """ operator: OperatorEnum = AND """ Alias of fields """ properties: [FullTextQueryField] } """ Sort entry for documents in the search index """ input IndexSearchSortInput { """ Name of the document field to sort by. Nested fields use dot notation, e.g. merchant.address """ name: String! """ Sort direction: asc or desc """ order: String = "asc" } """ Instance serving the request """ type Instance { """ Timestamp of when the object was created, set automatically by the system """ created_at: JSONDate! """ Configuration flags of the instance and their values, most of them set in app/config.yml """ feature_flags: HashObject! """ Unique identifier of the object """ id: ID! """ Name of the instance """ name: String! """ Timestamp of when the object was last updated, set automatically by the system """ updated_at: JSONDate! } """ Number of objects of each kind stored in the instance. Soft-deleted objects are not counted; the counters are updated together with every create, delete and undelete """ type InstanceMetrics { """ Number of activities """ activities_total: Int! """ Number of addresses """ addresses_total: Int! """ Number of attachments """ attachments_total: Int! """ Number of images """ images_total: Int! """ Number of records """ records_total: Int! """ Number of transactables """ transactables_total: Int! """ Number of user profiles """ user_profiles_total: Int! """ Number of users """ users_total: Int! } """ Conditions on an integer field. All operators given in one filter must match (they are combined with AND); operators with a null value are ignored """ input IntegerFilter { """ Matches when the field is none of the given numbers. Records without a value are not matched """ not_value_in: [Int] """ Matches when the field is within the given bounds """ range: IntegerRangeFilter """ Matches when the field is equal to the given number """ value: Int """ Matches when the field is one of the given numbers. Include null in the list to also match records without a value """ value_in: [Int] } """ Bounds for an integer field. All bounds given must match, so gte and lte together select an inclusive range """ input IntegerRangeFilter { """ Matches values greater than the given number """ gt: Int """ Matches values greater than or equal to the given number """ gte: Int """ Matches values lower than the given number """ lt: Int """ Matches values lower than or equal to the given number """ lte: Int } """ Date and time, returned in ISO 8601 format (e.g. "2024-05-01T13:30:00.000Z"). On input the value is passed as is to the receiving argument; use ISO 8601 """ scalar JSONDate """ Any JSON value (object, array, string, number, boolean or null), passed through unchanged """ scalar JSONPayload """ How related records or users are joined: a filtered object and a related object are related when the value of join_on_property of the first is equal to the value of foreign_property of the second """ input JoinModelCollection { """ Property of the related object used for the join; built-in fields such as id, user_id and external_id are accepted too. An unknown property raises an error """ foreign_property: PropertyName! """ Property of the filtered object used for the join; built-in fields such as id, user_id and external_id are accepted too. Defaults to id """ join_on_property: PropertyName = "id" """ Type of join_on_property. Set it to `array` when join_on_property holds a list of values, to relate every element of the list; detected automatically when omitted """ property_type: String } """ How related records are joined: a filtered record and a related record are related when the value of join_on_property of the first is equal to the value of foreign_property of the second """ input JoinRecordCollection { """ Property of the related record used for the join; built-in fields such as id, user_id and external_id are accepted too. An unknown property raises an error """ foreign_property: PropertyName! """ Property of the filtered record (or user) used for the join; built-in fields such as id, user_id and external_id are accepted too. Defaults to id """ join_on_property: PropertyName = "id" """ Type of join_on_property. Set it to `array` when join_on_property holds a list of values, to relate every element of the list; detected automatically when omitted """ property_type: String } """ Condition on the value stored under one top-level key of a JSON object. Exactly one operator must be given besides key; zero or several operators return an error. Values are compared to the stored JSON value, so a number stored as 5 is matched by value_int, while the string "5" is matched by value. A not_ operator matches when its positive counterpart does not; records without the key are not matched by most not_ operators (not_value does match them) """ input JsonbAttributeFilter { """ Matches when the value is an array that contains all of the given elements """ array_contains: [String!] """ Matches when the value is an array that has at least one element in common with the given list """ array_overlaps: [String!] """ Matches when the value is an array whose every element is in the given list (a subset of it) """ array_value_in: [String!] """ Matches when the value, serialized as JSON text, contains the given text; case insensitive. % and _ act as wildcards """ contains: String """ Matches when the given string is an element of the array, a key of the object, or equal to the string stored under key. It does not test whether key itself exists; use has_key of the parent filter for that """ exists: Any """ Top-level key whose value is checked """ key: String! """ Negation of array_contains: the array lacks at least one of the given elements """ not_array_contains: [String!] """ Negation of array_overlaps: the array has no element in common with the given list """ not_array_overlaps: [String!] """ Negation of array_value_in: the array has at least one element outside the given list """ not_array_value_in: [String!] """ Negation of contains """ not_contains: String """ Negation of exists """ not_exists: Any """ Negation of value; also matches records that do not have the key """ not_value: Any """ Matches when the value is an array that is not exactly equal to the given one """ not_value_array: [String!] """ Negation of value_boolean """ not_value_boolean: Boolean """ Negation of value_float """ not_value_float: Float """ Matches when the value, read as text, is none of the given values """ not_value_in: [String!] """ Negation of value_int """ not_value_int: Int """ Matches when the value is the given string. Non-string input is converted to its JSON text first, so use value_int, value_float or value_boolean for non-string values """ value: Any """ Matches when the value is an array exactly equal to the given one, in the same order """ value_array: [String!] """ Matches when the value is the given boolean """ value_boolean: Boolean """ Matches when the value is the given number """ value_float: Float """ Matches when the value, read as text, is one of the given values """ value_in: [String!] """ Matches when the value is the given integer """ value_int: Int } """ Conditions on a JSON object field, such as metadata. All operators given in one filter must match (they are combined with AND); when a list of filters is given, every filter must match as well """ input JsonbFilter { """ Condition on the value of a single top-level key """ attribute: JsonbAttributeFilter """ Conditions on the values of top-level keys; all of them must match """ attributes: [JsonbAttributeFilter!] """ Matches when the JSON, serialized as text (keys included), contains the given text; case insensitive. % and _ act as wildcards """ contains: String """ When true, each condition in this filter is negated, so records matching any of them are left out. Combined with a not_ operator of an attribute, the two negations cancel out """ exclude: Boolean """ Matches when the JSON object has the given top-level key """ has_key: String } """ Sort by a top-level metadata key """ input JsonbSort { """ Name of the top-level metadata key to sort by; values are compared as text """ name: String! """ Sort direction """ order: SortOrderEnum! } """ Algorithm used to sign and verify a JSON Web Token (JWT). none produces an unsigned token """ enum JwtAlgorithm { """ ES256 signature """ ES256 """ ES384 signature """ ES384 """ ES512 signature """ ES512 """ HS256 signature """ HS256 """ HS384 signature """ HS384 """ HS512 signature """ HS512 """ PS256 signature """ PS256 """ PS384 signature """ PS384 """ PS512 signature """ PS512 """ RS256 signature """ RS256 """ RS384 signature """ RS384 """ RS512 signature """ RS512 """ No signature """ none } """ Latitude in decimal degrees, a number within -90.0..90.0; numeric strings are accepted """ scalar LatDegree """ Deprecated accessors of legacy attachment, image and address properties """ interface LegacyCustomAttributeInterface { """ Returns the legacy address property with the given name. Deprecated, store addresses in your own table """ custom_address( """ Name of the property """ name: String! ): CustomAddrress @deprecated(reason: "Use address") """ Returns legacy address properties. Deprecated, store addresses in your own table """ custom_addresses( """ Name of the property; all when omitted """ name: String ): [CustomAddrress!] @deprecated(reason: "Use addresses") """ Returns the legacy attachment property with the given name. Deprecated, use property_upload """ custom_attachment( """ Name of the property """ name: String! ): PrivateFile @deprecated(reason: "Use attachment") """ Returns legacy attachment properties. Deprecated, use property_upload """ custom_attachments( """ Name of the property; all when omitted """ name: String ): [PrivateFile!] @deprecated(reason: "Use attachments") """ Returns the legacy image property with the given name. Deprecated, use property_upload """ custom_image( """ Name of the property """ name: String! ): Image @deprecated(reason: "Use image") """ Returns legacy image properties. Deprecated, use property_upload """ custom_images( """ Name of the property; all when omitted """ name: String ): [Image!] @deprecated(reason: "Use images") } """ Layout (app/views/layouts): Liquid that wraps the content of pages and emails """ type LiquidLayout implements AdminSharedAttributesInterface { """ Liquid source of the layout. The content of the page or email using the layout is inserted with {{ content_for_layout }} """ body: String """ Timestamp of when the object was created, set automatically by the system """ created_at: JSONDate! """ Format of the pages the layout is used for, html by default """ format: PageFormat """ Unique identifier of the object """ id: ID! """ When true, the resource is managed outside of files: pos-cli deploy and sync never overwrite or delete it """ manually_managed: Boolean """ Free-form data attached to the resource with the metadata key of its file (or the metadata argument of an admin mutation) """ metadata: HashObject """ Path of the layout, starting with layouts/, for example layouts/my_layout. Pages and emails refer to it without the layouts/ prefix """ path: String! """ Path of the file the resource comes from, relative to the app directory, for example views/pages/index.liquid or modules/my_module/public/views/partials/header.liquid. Identifies the resource in deploy, sync and admin mutations """ physical_file_path: String """ Timestamp of when the object was last updated, set automatically by the system """ updated_at: JSONDate! } """ Paginated list of layouts """ type LiquidLayoutCollection { """ Number of the page returned in results """ current_page: Int! """ True when there is at least one page after the current one """ has_next_page: Boolean! """ True when the current page is not the first one """ has_previous_page: Boolean! """ Maximum number of results returned on a single page """ per_page: Int! """ Results on the current page """ results: [LiquidLayout!] """ Total number of results matching the query, across all pages """ total_entries: Int! """ Total number of pages, given per_page """ total_pages: Int! } """ Attributes of a layout, the same ones that can be set in a views/layouts/*.liquid file """ input LiquidLayoutInputType { """ Liquid code of the layout; `{{ content_for_layout }}` marks where the page content goes. Required """ body: String """ Format of the pages the layout is used for. Defaults to html """ format: PageFormat = html """ When true, pos-cli deploy and sync never overwrite or delete it and pos-cli pull skips it. When omitted, defaults to the track_manually_managed setting of the instance (false unless enabled in app/config.yml) """ manually_managed: Boolean """ Arbitrary JSON data stored with the layout """ metadata: HashObject """ Name the layout is referred to by, for example from the layout setting of a page; for a module layout the `modules/<module_name>/` prefix is added automatically """ path: String! """ Path of the file the layout is stored as, used by pos-cli pull and deploy. Must be under `views/layouts/`, optionally prefixed with `modules/<module_name>/public/` or `modules/<module_name>/private/`, for example `views/layouts/application.liquid` """ physical_file_path: String! } """ Conditions for admin_liquid_layouts """ input LiquidLayoutsFilterInput { """ Conditions on the Liquid source """ body: StringFilter """ Conditions on the creation time """ created_at: DateFilter """ Conditions on the id """ id: UniqIdFilter """ Conditions on the metadata defined in the file. All conditions are combined with AND """ metadata: [JsonbFilter!] """ Alternative condition sets: matches when at least one of them matches. Combined with AND with the other conditions """ or: [LiquidLayoutsFilterInput!] """ Conditions on the path used to refer to the layout, e.g. application """ path: StringFilter """ Conditions on the source file path relative to the app directory, e.g. views/pages/index.liquid """ physical_file_path: StringFilter """ Conditions on the last update time """ updated_at: DateFilter } """ Sort order for admin_liquid_layouts """ input LiquidLayoutsSortInput { """ Sort by creation time """ created_at: StandardSort """ Sort by id """ id: StandardSort """ Sort by metadata values, applied in the given order """ metadata: [JsonbSort!] """ Sort by path """ path: StandardSort """ Sort by the path of the source file """ physical_file_path: StandardSort """ Sort by last update time """ updated_at: StandardSort } """ Partial (app/views/partials or app/lib): reusable Liquid included with the render, include and function tags """ type LiquidPartial implements AdminSharedAttributesInterface { """ Liquid source of the partial """ body: String """ Timestamp of when the object was created, set automatically by the system """ created_at: JSONDate! """ Format the partial is used for, html by default """ format: PageFormat """ Unique identifier of the object """ id: ID! """ When true, the resource is managed outside of files: pos-cli deploy and sync never overwrite or delete it """ manually_managed: Boolean """ Free-form data attached to the resource with the metadata key of its file (or the metadata argument of an admin mutation) """ metadata: HashObject """ Name used to include the partial: its file path below the partials directory without the extension, for example shared/header; module partials are prefixed with modules/<module name>/ """ path: String! """ Path of the file the resource comes from, relative to the app directory, for example views/pages/index.liquid or modules/my_module/public/views/partials/header.liquid. Identifies the resource in deploy, sync and admin mutations """ physical_file_path: String """ Timestamp of when the object was last updated, set automatically by the system """ updated_at: JSONDate! } """ Paginated list of partials """ type LiquidPartialCollection { """ Number of the page returned in results """ current_page: Int! """ True when there is at least one page after the current one """ has_next_page: Boolean! """ True when the current page is not the first one """ has_previous_page: Boolean! """ Maximum number of results returned on a single page """ per_page: Int! """ Results on the current page """ results: [LiquidPartial!] """ Total number of results matching the query, across all pages """ total_entries: Int! """ Total number of pages, given per_page """ total_pages: Int! } """ Attributes of a partial, the same ones that can be set in a views/partials/*.liquid file """ input LiquidPartialInputType { """ Liquid code of the partial. Defaults to an empty string """ body: String = "" """ Format the partial is used for. Defaults to html """ format: PageFormat = html """ When true, pos-cli deploy and sync never overwrite or delete it and pos-cli pull skips it. When omitted, defaults to the track_manually_managed setting of the instance (false unless enabled in app/config.yml) """ manually_managed: Boolean """ Arbitrary JSON data stored with the partial """ metadata: HashObject """ Name the partial is rendered by, for example `shared/header` for `{% render 'shared/header' %}`; for a module partial the `modules/<module_name>/` prefix is added automatically """ path: String! """ Path of the file the partial is stored as, used by pos-cli pull and deploy. Must be under `views/partials/`, optionally prefixed with `modules/<module_name>/public/` or `modules/<module_name>/private/`, for example `views/partials/shared/header.liquid`. Required """ physical_file_path: String } """ Conditions for admin_liquid_partials """ input LiquidPartialsFilterInput { """ Conditions on the Liquid source """ body: StringFilter """ Conditions on the creation time """ created_at: DateFilter """ Conditions on the id """ id: UniqIdFilter """ Conditions on the metadata defined in the file. All conditions are combined with AND """ metadata: [JsonbFilter!] """ Alternative condition sets: matches when at least one of them matches. Combined with AND with the other conditions """ or: [LiquidPartialsFilterInput!] """ Conditions on the path used to render the partial, e.g. shared/header """ path: StringFilter """ Conditions on the source file path relative to the app directory, e.g. views/pages/index.liquid """ physical_file_path: StringFilter """ Conditions on the last update time """ updated_at: DateFilter } """ Sort order for admin_liquid_partials """ input LiquidPartialsSortInput { """ Sort by creation time """ created_at: StandardSort """ Sort by id """ id: StandardSort """ Sort by metadata values, applied in the given order """ metadata: [JsonbSort!] """ Sort by path """ path: StandardSort """ Sort by the path of the source file """ physical_file_path: StandardSort """ Sort by last update time """ updated_at: StandardSort } """ Listing (transactable) returned by the deprecated listings query. Deprecated, use Record instead """ type Listing implements ListingCustomAttributeInterface & ListingsMetadata & RelationOnDemandInterface & RemoteModelInterface { """ Timestamp of when the object was created, set automatically by the system """ created_at: JSONDate """ User who created the listing; only loaded when `listing: { has_creator: true }` is set in the query arguments """ creator: UserListing """ Id of the user who created the listing """ creator_id: ID """ Address with the given name; e.g. `address: custom_address(name: "office_address")` """ custom_address( """ Name of the address property """ name: String! ): ListingAddress """ All addresses, optionally only those with the given name; e.g. `home: custom_addresses(name: "home")` """ custom_addresses( """ Name of the address property to return addresses of """ name: String ): [ListingAddress!] """ Attachment with the given name; e.g. `sales_report: custom_attachment(name: "sales_report")` """ custom_attachment( """ Name of the attachment property """ name: String! ): ListingsPrivateFile """ All attachments, optionally only those with the given name """ custom_attachments( """ Name of the attachment property to return attachments of """ name: String ): [ListingsPrivateFile!] """ Image with the given name; e.g. `header: custom_image(name: "header")` """ custom_image( """ Name of the image property """ name: String! ): ListingImage """ All images, optionally only those with the given name; e.g. `cat_images: custom_images(name: "cat")` """ custom_images( """ Name of the image property to return images of """ name: String ): [ListingImage!] """ Customizations attached to the listing """ customizations( """ Only customizations of this model schema """ name: String """ Only customizations matching these property conditions """ properties: [QueryCustomAttribute] """ Only customizations owned by this user """ user_id: ID ): [ListingsCustomization!] """ Timestamp of when the object was soft deleted, populated by the delete action. It is also possible to set it manually via update. To undelete, change it back to an empty value; note that associated objects need to be undeleted manually as well. """ deleted_at: JSONDate """ Identifier of the object in an external system. Used mainly for import/export, when a third party service is the source of truth """ external_id: ID """ Unique identifier of the object """ id: ID! """ Returns the related model. Deprecated, use related_model """ model( """ Name of the property of the related object that must equal the value of join_on_property """ foreign_property: String = "id" """ Name of the property of this object whose value is matched against foreign_property """ join_on_property: String """ Name of the model schema (table) of the related models """ model_name: String ): ListingsCustomization @deprecated(reason: "use `related_model`") """ Returns related models. Deprecated, use related_models """ models( """ Name of the property of the related object that must equal the value of join_on_property """ foreign_property: String! """ Name of the property of this object whose value is matched against foreign_property """ join_on_property: String! """ Name of the model schema (table) of the related models """ model_name: [String] ): [ListingsCustomization!] @deprecated(reason: "use `related_models`") """ Name of the listing """ name: String """ All properties of the object """ properties: HashObject """ Value of the property with the given name, as a String; e.g. `hair_color: property(name: "hair_color")` """ property( """ Name of the property """ name: String! ): String """ Value of the Array property with the given name, as an Array (in contrast to property, which returns a String); e.g. `todo_list: property_array(name: "todo_list")` """ property_array( """ Name of the property """ name: String! ): [String!] """ Value of the property with the given name, as JSON (in contrast to property, which returns a String); e.g. `todo_list: property_json(name: "todo_list")` """ property_json( """ Name of the property """ name: String! ): JSONPayload """ Returns the model whose foreign_property equals the value of join_on_property of this object (belongs-to relation). Legacy relation, use related_record of Record instead """ related_model( """ Name of the property of the related object that must equal the value of join_on_property """ foreign_property: String = "id" """ Name of the property of this object whose value is matched against foreign_property """ join_on_property: String """ Name of the model schema (table) of the related models """ model_schema_name: String ): ListingsCustomization """ Returns models whose foreign_property equals the value of join_on_property of this object (has-many relation), at most 10000 at once. Legacy relation, use related_records of Record instead """ related_models( """ Name of the property of the related object that must equal the value of join_on_property """ foreign_property: String! """ Name of the property of this object whose value is matched against foreign_property """ join_on_property: String! """ Name of the model schema (table) of the related models """ model_schema_name: [String] ): [ListingsCustomization!] """ Returns the user whose foreign_property equals the value of join_on_property of this object; by default the user whose id is in user_id """ related_user( """ Name of the user attribute that must equal the value of join_on_property """ foreign_property: String = "id" """ Name of the property of this object holding the user id """ join_on_property: String = "user_id" ): User """ Returns an object loaded from the remote endpoint by the id stored in join_on_property. Deprecated, use remote_records """ remote_model( """ Remote endpoint returning the resources for the given ids as JSON """ endpoint: Endpoint! """ Name of the property of this object holding the id (or array of ids) to request """ join_on_property: String! ): Customization """ URL-friendly identifier of the listing """ slug: String! """ When sorting by distance, the distance to the reference point. Deprecated """ sort_score: [Int] @deprecated(reason: "not supported everywhere") """ Name of the transactable type of the listing """ type: String """ Timestamp of when the object was last updated, set automatically by the system """ updated_at: JSONDate """ Returns the related user. Deprecated, use related_user """ user( """ Name of the user attribute that must equal the value of join_on_property """ foreign_property: String = "id" """ Name of the property of this object holding the user id """ join_on_property: String = "user_id" ): User @deprecated(reason: "use `related_users`") } """ Address returned by deprecated search queries. Deprecated, use address properties of records instead """ type ListingAddress { """ Full address """ address: String """ Second address line """ address2: String """ Apartment """ apartment: String """ City """ city: String """ Country """ country: String """ Id of the address """ id: Int! """ ISO country code """ iso_country_code: String """ Latitude """ lat: Float """ Longitude """ lng: Float """ Name of the address property """ name: String """ Geographic location of the address """ point: GeoPointType """ Postcode """ postcode: String """ Service radius around the address """ service_radius: String """ State """ state: String """ Street """ street: String """ Street number """ street_number: String """ Suburb """ suburb: String } """ Named group of aggregations computed over the documents matching the query """ input ListingAggregation { """ Aggregations computed in this group """ fields: [AggregationField] """ Legacy: restricts the documents this group aggregates over using deprecated listing conditions """ filter: QueryListing """ When true, the group aggregates over all documents of the index, ignoring the query and filter arguments """ global: Boolean = false """ Key under which the result of this group is returned """ name: String } """ Paginated list of transactables found in the search index. Deprecated, use RecordCollection instead """ type ListingCollection { """ Results of the requested aggregations """ aggregations: Aggregations! """ Number of the page returned in results """ current_page: Int! """ True when there is at least one page after the current one """ has_next_page: Boolean! """ True when the current page is not the first one """ has_previous_page: Boolean! """ Deprecated, use current_page instead """ page: Int! @deprecated(reason: "use current_page") """ Maximum number of results returned on a single page """ per_page: Int! """ Results on the current page """ results: [Listing!] """ Number of results on the current page """ size: Int! """ Total number of results matching the query, across all pages """ total_entries: Int! """ Total number of pages, given per_page """ total_pages: Int! } """ Property and attachment accessors of objects returned by deprecated search queries. Deprecated """ interface ListingCustomAttributeInterface { """ Address with the given name; e.g. `address: custom_address(name: "office_address")` """ custom_address( """ Name of the address property """ name: String! ): ListingAddress """ All addresses, optionally only those with the given name; e.g. `home: custom_addresses(name: "home")` """ custom_addresses( """ Name of the address property to return addresses of """ name: String ): [ListingAddress!] """ Attachment with the given name; e.g. `sales_report: custom_attachment(name: "sales_report")` """ custom_attachment( """ Name of the attachment property """ name: String! ): ListingsPrivateFile """ All attachments, optionally only those with the given name """ custom_attachments( """ Name of the attachment property to return attachments of """ name: String ): [ListingsPrivateFile!] """ Image with the given name; e.g. `header: custom_image(name: "header")` """ custom_image( """ Name of the image property """ name: String! ): ListingImage """ All images, optionally only those with the given name; e.g. `cat_images: custom_images(name: "cat")` """ custom_images( """ Name of the image property to return images of """ name: String ): [ListingImage!] """ All properties of the object """ properties: HashObject """ Value of the property with the given name, as a String; e.g. `hair_color: property(name: "hair_color")` """ property( """ Name of the property """ name: String! ): String """ Value of the Array property with the given name, as an Array (in contrast to property, which returns a String); e.g. `todo_list: property_array(name: "todo_list")` """ property_array( """ Name of the property """ name: String! ): [String!] """ Value of the property with the given name, as JSON (in contrast to property, which returns a String); e.g. `todo_list: property_json(name: "todo_list")` """ property_json( """ Name of the property """ name: String! ): JSONPayload } """ Image returned by legacy types. Deprecated, use image properties of records instead """ type ListingImage { """ Original file name """ file_name: String """ Deprecated, use file_name """ filename: String @deprecated(reason: "Use file_name") """ Unique identifier of the object """ id: ID """ Height of the original image in pixels """ image_original_height: Int """ Width of the original image in pixels """ image_original_width: Int """ Name of the image property """ name: String """ URL of the given version of the image; e.g. `thumb: url(version: "thumb")` """ url( """ Name of the image version; for thumb, falls back to the original when there is no thumb version """ version: String = "thumb" ): String } """ User profile returned by the deprecated people query. Deprecated, use User.profiles instead """ type ListingUserProfile implements ListingCustomAttributeInterface & RelationOnDemandInterface & RemoteModelInterface { """ Address with the given name; e.g. `address: custom_address(name: "office_address")` """ custom_address( """ Name of the address property """ name: String! ): ListingAddress """ All addresses, optionally only those with the given name; e.g. `home: custom_addresses(name: "home")` """ custom_addresses( """ Name of the address property to return addresses of """ name: String ): [ListingAddress!] """ Attachment with the given name; e.g. `sales_report: custom_attachment(name: "sales_report")` """ custom_attachment( """ Name of the attachment property """ name: String! ): ListingsPrivateFile """ All attachments, optionally only those with the given name """ custom_attachments( """ Name of the attachment property to return attachments of """ name: String ): [ListingsPrivateFile!] """ Image with the given name; e.g. `header: custom_image(name: "header")` """ custom_image( """ Name of the image property """ name: String! ): ListingImage """ All images, optionally only those with the given name; e.g. `cat_images: custom_images(name: "cat")` """ custom_images( """ Name of the image property to return images of """ name: String ): [ListingImage!] """ Customizations attached to the profile """ customizations( """ Only customizations of this model schema """ name: String! """ Only customizations owned by this user """ user_id: ID ): [ListingsCustomization!] """ Identifier of the object in an external system. Used mainly for import/export, when a third party service is the source of truth """ external_id: ID """ Unique identifier of the object """ id: ID! """ Returns the related model. Deprecated, use related_model """ model( """ Name of the property of the related object that must equal the value of join_on_property """ foreign_property: String = "id" """ Name of the property of this object whose value is matched against foreign_property """ join_on_property: String """ Name of the model schema (table) of the related models """ model_name: String ): ListingsCustomization @deprecated(reason: "use `related_model`") """ Returns related models. Deprecated, use related_models """ models( """ Name of the property of the related object that must equal the value of join_on_property """ foreign_property: String! """ Name of the property of this object whose value is matched against foreign_property """ join_on_property: String! """ Name of the model schema (table) of the related models """ model_name: [String] ): [ListingsCustomization!] @deprecated(reason: "use `related_models`") """ Name of the user profile type """ profile_type: String! """ All properties of the object """ properties: HashObject """ Value of the property with the given name, as a String; e.g. `hair_color: property(name: "hair_color")` """ property( """ Name of the property """ name: String! ): String """ Value of the Array property with the given name, as an Array (in contrast to property, which returns a String); e.g. `todo_list: property_array(name: "todo_list")` """ property_array( """ Name of the property """ name: String! ): [String!] """ Value of the property with the given name, as JSON (in contrast to property, which returns a String); e.g. `todo_list: property_json(name: "todo_list")` """ property_json( """ Name of the property """ name: String! ): JSONPayload """ Returns the model whose foreign_property equals the value of join_on_property of this object (belongs-to relation). Legacy relation, use related_record of Record instead """ related_model( """ Name of the property of the related object that must equal the value of join_on_property """ foreign_property: String = "id" """ Name of the property of this object whose value is matched against foreign_property """ join_on_property: String """ Name of the model schema (table) of the related models """ model_schema_name: String ): ListingsCustomization """ Returns models whose foreign_property equals the value of join_on_property of this object (has-many relation), at most 10000 at once. Legacy relation, use related_records of Record instead """ related_models( """ Name of the property of the related object that must equal the value of join_on_property """ foreign_property: String! """ Name of the property of this object whose value is matched against foreign_property """ join_on_property: String! """ Name of the model schema (table) of the related models """ model_schema_name: [String] ): [ListingsCustomization!] """ Returns the user whose foreign_property equals the value of join_on_property of this object; by default the user whose id is in user_id """ related_user( """ Name of the user attribute that must equal the value of join_on_property """ foreign_property: String = "id" """ Name of the property of this object holding the user id """ join_on_property: String = "user_id" ): User """ Returns an object loaded from the remote endpoint by the id stored in join_on_property. Deprecated, use remote_records """ remote_model( """ Remote endpoint returning the resources for the given ids as JSON """ endpoint: Endpoint! """ Name of the property of this object holding the id (or array of ids) to request """ join_on_property: String! ): Customization """ Returns the related user. Deprecated, use related_user """ user( """ Name of the user attribute that must equal the value of join_on_property """ foreign_property: String = "id" """ Name of the property of this object holding the user id """ join_on_property: String = "user_id" ): User @deprecated(reason: "use `related_users`") } """ Phone verification details of a user returned by deprecated search queries. Deprecated, use records instead """ type ListingsCommunication { """ Phone number """ phone_number: String! """ Whether the phone number has been verified """ verified: Boolean! } """ Model schema of a model returned by deprecated search queries. Deprecated, use model_schema """ type ListingsCustomModelType { """ Id of the model schema """ id: ID! """ Name of the model schema """ name: String! } """ Model (formerly customization) returned by deprecated search queries. Deprecated, use Record instead """ type ListingsCustomization implements ListingCustomAttributeInterface & RelationOnDemandInterface & RemoteModelInterface { """ Timestamp of when the object was created, set automatically by the system """ created_at: JSONDate """ Address with the given name; e.g. `address: custom_address(name: "office_address")` """ custom_address( """ Name of the address property """ name: String! ): ListingAddress """ All addresses, optionally only those with the given name; e.g. `home: custom_addresses(name: "home")` """ custom_addresses( """ Name of the address property to return addresses of """ name: String ): [ListingAddress!] """ Attachment with the given name; e.g. `sales_report: custom_attachment(name: "sales_report")` """ custom_attachment( """ Name of the attachment property """ name: String! ): ListingsPrivateFile """ All attachments, optionally only those with the given name """ custom_attachments( """ Name of the attachment property to return attachments of """ name: String ): [ListingsPrivateFile!] """ Image with the given name; e.g. `header: custom_image(name: "header")` """ custom_image( """ Name of the image property """ name: String! ): ListingImage """ All images, optionally only those with the given name; e.g. `cat_images: custom_images(name: "cat")` """ custom_images( """ Name of the image property to return images of """ name: String ): [ListingImage!] """ Deprecated, use model_schema """ custom_model_type: ListingsCustomModelType """ Object this model is attached to """ customizable: Customizable """ Id of the object this model is attached to """ customizable_id: ID """ Type of the object this model is attached to: User, UserProfile, Customization or Transactable """ customizable_type: String """ Models attached to this model. Deprecated, use related_models """ customizations( """ Conditions the returned results must match. All conditions are combined with AND """ filter: NestedCustomizationFilters """ Page number to return, starting at 1. Requesting a page beyond the last one returns an empty results list """ page: Int = 1 """ Number of results per page, must be greater than 0 """ per_page: Int = 20 """ Sort order of the results. When several entries are given, they are applied in the given order """ sort: [CustomizationsSortOrder] ): ListingsCustomizationCollection! @deprecated(reason: "Use models: instead.") """ Timestamp of when the object was soft deleted, populated by the delete action. It is also possible to set it manually via update. To undelete, change it back to an empty value; note that associated objects need to be undeleted manually as well. """ deleted_at: JSONDate """ Identifier of the object in an external system. Used mainly for import/export, when a third party service is the source of truth """ external_id: ID """ Human readable name of the model schema """ human_name: String """ Unique identifier of the object """ id: ID! """ Returns the related model. Deprecated, use related_model """ model( """ Name of the property of the related object that must equal the value of join_on_property """ foreign_property: String = "id" """ Name of the property of this object whose value is matched against foreign_property """ join_on_property: String """ Name of the model schema (table) of the related models """ model_name: String ): ListingsCustomization @deprecated(reason: "use `related_model`") """ Model schema of the model """ model_schema: ListingsModelSchema """ Returns related models. Deprecated, use related_models """ models( """ Name of the property of the related object that must equal the value of join_on_property """ foreign_property: String! """ Name of the property of this object whose value is matched against foreign_property """ join_on_property: String! """ Name of the model schema (table) of the related models """ model_name: [String] ): [ListingsCustomization!] @deprecated(reason: "use `related_models`") """ Name of the model schema """ name: String """ All properties of the object """ properties: HashObject """ Value of the property with the given name, as a String; e.g. `hair_color: property(name: "hair_color")` """ property( """ Name of the property """ name: String! ): String """ Value of the Array property with the given name, as an Array (in contrast to property, which returns a String); e.g. `todo_list: property_array(name: "todo_list")` """ property_array( """ Name of the property """ name: String! ): [String!] """ Value of the property with the given name, as JSON (in contrast to property, which returns a String); e.g. `todo_list: property_json(name: "todo_list")` """ property_json( """ Name of the property """ name: String! ): JSONPayload """ Returns the model whose foreign_property equals the value of join_on_property of this object (belongs-to relation). Legacy relation, use related_record of Record instead """ related_model( """ Name of the property of the related object that must equal the value of join_on_property """ foreign_property: String = "id" """ Name of the property of this object whose value is matched against foreign_property """ join_on_property: String """ Name of the model schema (table) of the related models """ model_schema_name: String ): ListingsCustomization """ Returns models whose foreign_property equals the value of join_on_property of this object (has-many relation), at most 10000 at once. Legacy relation, use related_records of Record instead """ related_models( """ Name of the property of the related object that must equal the value of join_on_property """ foreign_property: String! """ Name of the property of this object whose value is matched against foreign_property """ join_on_property: String! """ Name of the model schema (table) of the related models """ model_schema_name: [String] ): [ListingsCustomization!] """ Returns the user whose foreign_property equals the value of join_on_property of this object; by default the user whose id is in user_id """ related_user( """ Name of the user attribute that must equal the value of join_on_property """ foreign_property: String = "id" """ Name of the property of this object holding the user id """ join_on_property: String = "user_id" ): User """ Returns an object loaded from the remote endpoint by the id stored in join_on_property. Deprecated, use remote_records """ remote_model( """ Remote endpoint returning the resources for the given ids as JSON """ endpoint: Endpoint! """ Name of the property of this object holding the id (or array of ids) to request """ join_on_property: String! ): Customization """ Timestamp of when the object was last updated, set automatically by the system """ updated_at: JSONDate """ Returns the related user. Deprecated, use related_user """ user( """ Name of the user attribute that must equal the value of join_on_property """ foreign_property: String = "id" """ Name of the property of this object holding the user id """ join_on_property: String = "user_id" ): User @deprecated(reason: "use `related_users`") """ Id of the user who owns the model """ user_id: ID } """ Paginated list of customizations found in the search index. Deprecated, use RecordCollection instead """ type ListingsCustomizationCollection { """ Results of the requested aggregations """ aggregations: Aggregations! """ Number of the page returned in results """ current_page: Int! """ True when there is at least one page after the current one """ has_next_page: Boolean! """ True when the current page is not the first one """ has_previous_page: Boolean! """ Deprecated, use current_page instead """ page: Int! @deprecated(reason: "use current_page") """ Maximum number of results returned on a single page """ per_page: Int! """ Results on the current page """ results: [ListingsCustomization!] """ Number of results on the current page """ size: Int! """ Total number of results matching the query, across all pages """ total_entries: Int! """ Total number of pages, given per_page """ total_pages: Int! } """ Search metadata of results returned by deprecated search queries. Deprecated """ interface ListingsMetadata { """ When sorting by distance, the distance to the reference point. Deprecated """ sort_score: [Int] @deprecated(reason: "not supported everywhere") } """ Model schema of a model returned by deprecated search queries. Deprecated, use Record.table instead """ type ListingsModelSchema { """ Id of the model schema """ id: ID! """ Name of the model schema """ name: String! } """ Attachment returned by legacy types. Deprecated, use upload properties of records instead """ type ListingsPrivateFile { """ MIME type of the file """ content_type: String """ Timestamp of when the object was created, set automatically by the system """ created_at: JSONDate """ Original file name """ file_name: String """ Unique identifier of the object """ id: ID """ Name of the attachment property """ name: String """ File size in bytes """ size_bytes: Int """ URL of the file; a time-limited signed URL unless the file is public """ url( """ Number of seconds before presigned URL expires. Max value is one week (604800) """ expires_in: Int = 900 ): String } """ Longitude in decimal degrees, a number within -180.0..180.0; numeric strings are accepted """ scalar LngDegree """ Entry written to the instance log. Deprecated, use the log tag """ type LogEntry { """ Unique identifier of the object """ id: ID! """ Logged message """ message: String! """ Type (category) of the log entry """ type: String! } """ Severity of a log entry """ enum LogEntryType { """ Debug entry """ debug """ Error entry """ error """ Informational entry """ info } """ Conditions for admin_logs. For type and message, value is exact, while contains, starts_with and ends_with ignore case unless case_sensitive is true """ input LogsFilterInput { """ Conditions on the entry id. Use range: { gt: <id of the last entry seen> } to get only newer entries; range bounds must be entry ids """ id: UniqIdFilter """ Conditions on the entry message """ message: StringFilter """ Conditions on the entry type, as given to the log tag """ type: StringFilter } """ Record in the legacy model API. Deprecated, use Record """ type Model implements HasModelsInterface & PropertiesInterface { """ Returns the legacy address property with the given name. Deprecated, store addresses in your own table """ address( """ Name of the address property """ name: String! ): CustomAddrress @deprecated(reason: "use your own model for address if needed") """ Returns legacy address properties, optionally only those with the given name. Deprecated, store addresses in your own table """ addresses( """ Name of the address property; all when omitted """ name: String ): [CustomAddrress!] @deprecated(reason: "use your own model for address if needed") """ Returns the legacy attachment property with the given name. Deprecated, use property_upload """ attachment( """ Name of the attachment property """ name: String! ): PrivateFile @deprecated(reason: "use property upload") """ Returns legacy attachment properties, optionally only those with the given name. Deprecated, use property_upload """ attachments( """ Name of the attachment property; all when omitted """ name: String ): [PrivateFile!] @deprecated(reason: "use property upload") """ Timestamp of when the object was created, set automatically by the system """ created_at: JSONDate! """ Deprecated, ID of the attached-to object """ customizable_id: ID @deprecated(reason: "Use property to store foreign keys") """ Deprecated, type of the attached-to object """ customizable_type: String @deprecated(reason: "Use property to store foreign keys") """ Timestamp of when the object was soft deleted, populated by the delete action. It is also possible to set it manually via update. To undelete, change it back to an empty value; note that associated objects need to be undeleted manually as well. """ deleted_at: JSONDate """ Identifier of the object in an external system. Used mainly for import/export, when a third party service is the source of truth """ external_id: ID """ Unique identifier of the object """ id: ID """ Returns the legacy image property with the given name. Deprecated, use property_upload """ image( """ Name of the image property """ name: String! ): Image @deprecated(reason: "use property upload") """ Returns legacy image properties, optionally only those with the given name. Deprecated, use property_upload """ images( """ Name of the image property; all when omitted """ name: String ): [Image!] @deprecated(reason: "use property upload") """ Returns one related model. Deprecated, use related_record """ model( """ Additional conditions the related objects must match """ filter: ModelsFilterInput """ Name of the property (or attribute) of the related object equal to join_on_property """ foreign_property: String = "id" """ Name of the property (or attribute) of this object matched against foreign_property """ join_on_property: String! """ Name of the model schema (table) of the related models """ model_name: [String]! """ Sort order of the results. When several entries are given, they are applied in the given order """ sort: [ModelsSortInput!] ): Model @deprecated(reason: "use `related_record`") """ Deprecated, use table_id """ model_schema_id: ID! @deprecated(reason: "use table_id") """ Deprecated, use table """ model_schema_name: String @deprecated(reason: "use table") """ Returns related models. Deprecated, use related_records """ models( """ Name of the property (or attribute) of the related object equal to join_on_property """ foreign_property: String! """ Name of the property (or attribute) of this object matched against foreign_property """ join_on_property: String! """ Maximum number of related objects returned for each object """ limit: Int """ Name of the model schema (table) of the related models """ model_name: [String]! """ Sort order of the results. When several entries are given, they are applied in the given order """ sort: [ModelsSortInput!] ): [Model!] @deprecated(reason: "use `related_records`") """ Deprecated, use table """ name: String @deprecated(reason: "use table") """ All properties of the object as an object keyed by property name """ properties( """ Properties to return, each converted to the given type (as by the matching property_* field; other types become strings); all properties as stored when omitted """ select: [PropertiesFieldInput!] ): HashObject """ Returns the value of the property with the given name as a string; ex: hair_color: property(name: "hair_color") """ property( """ Name of the property """ name: String! ): String """ Returns the value of the property with the given name as an array of strings; a single value is wrapped in an array and no value gives an empty array; ex: todo_list: property_array(name: "todo_list") """ property_array( """ Name of the property """ name: String! ): [String!] """ Returns the value of the property with the given name as a boolean. Accepts true/false values and the strings "t"/"T" and "f"/"F"; any other value returns an error; ex: enabled: property_boolean(name: "enabled") """ property_boolean( """ Name of the property """ name: String! ): Boolean """ Returns the value of the property with the given name as a float; returns an error when the value is not a number; ex: price: property_float(name: "price") """ property_float( """ Name of the property """ name: String! ): Float """ Returns the value of the property with the given name as an integer; returns an error when the value cannot be converted, e.g. "abc" or "1.5"; ex: age: property_int(name: "age") """ property_int( """ Name of the property """ name: String! ): Int """ Returns the value of the property with the given name as stored, without conversion """ property_json( """ Name of the property """ name: String! ): JSONPayload """ Returns the value of the property with the given name parsed from JSON text into an object; returns an error when the value is not valid JSON """ property_object( """ Name of the property """ name: String! ): HashObject """ Returns the file stored in the given upload property; ex: avatar: property_upload(name: "avatar") { url } """ property_upload( """ Number of seconds for which the returned URLs are valid. When given, signed URLs are returned; required to access files uploaded with acl private """ expires_in: Int """ Name of the upload property """ name: String! ): PropertyUpload """ Returns one related model. Deprecated, use related_record """ related_model( """ Additional conditions the related objects must match """ filter: ModelsFilterInput """ Name of the property (or attribute) of the related object equal to join_on_property """ foreign_property: String = "id" """ Name of the property (or attribute) of this object matched against foreign_property """ join_on_property: String! """ Name of the model schema (table) of the related models """ model_schema_name: [String]! """ Sort order of the results. When several entries are given, they are applied in the given order """ sort: [ModelsSortInput!] ): Model @deprecated(reason: "use `related_record`") """ Returns related models. Deprecated, use related_records """ related_models( """ Additional conditions the related objects must match """ filter: ModelsFilterInput """ Name of the property (or attribute) of the related object equal to join_on_property """ foreign_property: String! """ Name of the property (or attribute) of this object matched against foreign_property """ join_on_property: String! """ Maximum number of related objects returned for each object """ limit: Int """ Name of the model schema (table) of the related models """ model_schema_name: [String]! """ Sort order of the results. When several entries are given, they are applied in the given order """ sort: [ModelsSortInput!] ): [Model!] @deprecated(reason: "use `related_records`") """ Returns the user whose foreign_property equals the value of join_on_property of this object (belongs-to relation); by default the user whose id is in user_id; ex: invited_by: related_user(join_on_property: "invited_by_id") { id } """ related_user( """ Additional conditions the related objects must match """ filter: ModelsFilterInput """ Name of the property (or attribute) of the related object equal to join_on_property """ foreign_property: String = "id" """ Name of the property (or attribute) of this object matched against foreign_property """ join_on_property: String = "user_id" """ Sort order of the results. When several entries are given, they are applied in the given order """ sort: [UsersSortInput!] ): User """ Returns users whose foreign_property equals the value of join_on_property of this object (has-many relation). Related users of all objects in the result are loaded in one batch of at most 10,000 users, soft-deleted users are skipped; ex: friends: related_users(join_on_property: "friend_ids", foreign_property: "id") { id } """ related_users( """ Additional conditions the related objects must match """ filter: ModelsFilterInput """ Name of the property (or attribute) of the related object equal to join_on_property """ foreign_property: String! """ Name of the property (or attribute) of this object matched against foreign_property """ join_on_property: String! """ Maximum number of related objects returned for each object """ limit: Int """ Sort order of the results. When several entries are given, they are applied in the given order """ sort: [UsersSortInput!] ): [User!] """ Name of the table the model belongs to """ table: String """ ID of the table the model belongs to """ table_id: ID! """ Timestamp of when the object was last updated, set automatically by the system """ updated_at: JSONDate! """ Returns the related user. Deprecated, use related_user """ user( """ Name of the property (or attribute) of the related object equal to join_on_property """ foreign_property: String = "id" """ Name of the property (or attribute) of this object matched against foreign_property """ join_on_property: String = "user_id" """ Sort order of the results. When several entries are given, they are applied in the given order """ sort: [UsersSortInput!] ): User @deprecated(reason: "use `related_user`") """ ID of the user who owns the model """ user_id: ID """ Returns related users. Deprecated, use related_users """ users( """ Name of the property (or attribute) of the related object equal to join_on_property """ foreign_property: String! """ Name of the property (or attribute) of this object matched against foreign_property """ join_on_property: String! """ Maximum number of related objects returned for each object """ limit: Int """ Sort order of the results. When several entries are given, they are applied in the given order """ sort: [UsersSortInput!] ): [User!] @deprecated(reason: "use `related_users`") } """ Paginated list of models. Deprecated, use RecordCollection instead """ type ModelCollection { """ Number of the page returned in results """ current_page: Int! """ True when there is at least one page after the current one """ has_next_page: Boolean! """ True when the current page is not the first one """ has_previous_page: Boolean! """ Maximum number of results returned on a single page """ per_page: Int! """ Results on the current page """ results: [Model!] """ Total number of results matching the query, across all pages """ total_entries: Int! """ Total number of pages, given per_page """ total_pages: Int! } """ Legacy image property of a table. Deprecated """ input ModelPropertyInput { """ Name of the table that defines the property """ model_schema_name: String! """ Name of the image property """ property_name: String! } """ Model schema, the former name of a table (app/schema). Deprecated, use Table instead """ type ModelSchema implements AdminPropertiesInterface & AdminSharedAttributesInterface { """ Timestamp of when the object was created, set automatically by the system """ created_at: JSONDate! """ Deprecated, use properties instead """ fields: [Property!]! @deprecated(reason: "Use properties") """ Unique identifier of the object """ id: ID! """ When true, the resource is managed outside of files: pos-cli deploy and sync never overwrite or delete it """ manually_managed: Boolean """ Free-form data attached to the resource with the metadata key of its file (or the metadata argument of an admin mutation) """ metadata: HashObject """ Name of the model schema, as given in its file """ name: String! """ Name used to refer to the model schema in queries and mutations: the name in lower case with spaces replaced by underscores, prefixed with modules/<module name>/ for a module """ parameterized_name: String! """ Path of the file the resource comes from, relative to the app directory, for example views/pages/index.liquid or modules/my_module/public/views/partials/header.liquid. Identifies the resource in deploy, sync and admin mutations """ physical_file_path: String """ Properties defined in the schema, sorted by name """ properties: [Property!]! """ Timestamp of when the object was last updated, set automatically by the system """ updated_at: JSONDate! } """ Paginated list of model schemas (former name of tables) """ type ModelSchemaCollection { """ Number of the page returned in results """ current_page: Int! """ True when there is at least one page after the current one """ has_next_page: Boolean! """ True when the current page is not the first one """ has_previous_page: Boolean! """ Maximum number of results returned on a single page """ per_page: Int! """ Results on the current page """ results: [ModelSchema!] """ Total number of results matching the query, across all pages """ total_entries: Int! """ Total number of pages, given per_page """ total_pages: Int! } """ Attributes of a model schema (table); prefer TableInputType with admin_table_create """ input ModelSchemaInputType { """ Deprecated, use properties """ fields: [NestedPropertyInputType] """ Arbitrary JSON data stored with the schema """ metadata: HashObject """ Deprecated, the name is derived from physical_file_path """ name: String """ Path of the file the model schema is stored as, used by pos-cli pull and deploy. Must be `schema/<name>.yml` (or legacy `custom_model_types/` or `model_schemas/`), optionally prefixed with `modules/<module_name>/public/` or `modules/<module_name>/private/`. The schema name is derived from it, for example `schema/blog_post.yml` gives `blog_post` """ physical_file_path: String! """ Properties (columns) of the schema """ properties: [NestedPropertyInputType] } """ Conditions for admin_model_schemas """ input ModelSchemasFilterInput { """ Conditions on the creation time """ created_at: DateFilter """ Conditions on the id """ id: UniqIdFilter """ Conditions on the metadata defined in the file. All conditions are combined with AND """ metadata: [JsonbFilter!] """ Conditions on the name """ name: StringFilter """ Alternative condition sets: matches when at least one of them matches. Combined with AND with the other conditions """ or: [ModelSchemasFilterInput!] """ Conditions on the parameterized name, the form of the name used to refer to it in code """ parameterized_name: StringFilter """ Conditions on the source file path relative to the app directory, e.g. views/pages/index.liquid """ physical_file_path: StringFilter """ Conditions on the last update time """ updated_at: DateFilter } """ Sort order for admin_model_schemas """ input ModelSchemasSortInput { """ Sort by creation time """ created_at: StandardSort """ Sort by id """ id: StandardSort """ Sort by metadata values, applied in the given order """ metadata: [JsonbSort!] """ Sort by name """ name: StandardSort """ Sort by parameterized name """ parameterized_name: StandardSort """ Sort by the path of the source file """ physical_file_path: StandardSort """ Sort by last update time """ updated_at: StandardSort } """ Deprecated. Changes to an existing record """ input ModelUpdate { """ Values of address properties """ addresses: [AddressImport!] """ Values of attachment properties """ attachments: [AttachmentsImport!] """ Creation time to set """ created_at: ISO8601DateTime """ Deprecated. Id of the object the record is attached to """ customizable_id: ID """ Deprecated. Type of the object the record is attached to """ customizable_type: CustomizableTypeEnum """ Id of the existing record """ id: ID! """ Values of image properties """ images: [ImagesImport!] """ Property values, for example `{ "color": "red" }`; every key must be a defined property. Merged into the properties of an existing object """ properties: HashObject """ Name of the table the record belongs to """ type_name: String! """ Last update time to set """ updated_at: ISO8601DateTime """ Id of the user owning the record """ user_id: ID } """ Conditions models must match, for the deprecated models fields. Deprecated, use records with RecordsFilterInput instead """ input ModelsFilterInput { """ Condition on the creation time """ created_at: DateFilter """ Condition on the soft deletion time. Using it makes soft deleted models eligible """ deleted_at: DateFilter """ Condition on the external id """ external_id: StringFilter """ Condition on the model id """ id: UniqIdFilter """ Condition on the id of the model schema """ model_schema_id: UniqIdFilter """ Condition on the name of the model schema """ model_schema_name: StringFilter """ Deprecated, use related_models """ models: [RelatedModelsFilterInput!] """ Deprecated, use model_schema_name """ name: StringFilter """ Alternative sets of conditions: matches models meeting at least one of them, in addition to the other conditions of this filter """ or: [ModelsFilterInput!] """ Conditions on properties; every entry must match """ properties: [PropertyFilterInput!] """ Matches models related to models meeting the given conditions; when several entries are given, all must match """ related_models: [RelatedModelsFilterInput!] """ Matches models related to users meeting the given conditions; when several entries are given, all must match """ related_users: [RelatedUsersFilterInput!] """ Condition on the last update time """ updated_at: DateFilter """ Condition on the id of the user who owns the model """ user_id: UniqIdFilter """ Deprecated, use related_users """ users: [RelatedUsersFilterInput!] } """ Sort order for the deprecated models query """ input ModelsSortInput { """ Sort by creation time """ created_at: StandardSort """ Sort by soft deletion time """ deleted_at: StandardSort """ Sort by external id """ external_id: StandardSort """ Sort by id """ id: StandardSort """ Sort by table id """ model_schema_id: StandardSort """ Sort by property values, applied in the given order """ properties: [PropertySort!] """ When true, returns results in random order """ random_sort: Boolean """ Sort by last update time """ updated_at: StandardSort } """ Conditions an asset must match to be changed by a bulk asset mutation. All conditions are combined with AND """ input MutationAssetsFilterInput { """ Matches by creation time """ created_at: DateFilter """ Matches by deletion time """ deleted_at: DateFilter """ Matches by asset id """ id: UniqIdFilter """ Matches by values in metadata """ metadata: JsonbFilter """ Matches by asset name, for example `images/logo.png` """ name: StringFilter """ Matches by physical_file_path """ physical_file_path: StringFilter """ Matches by last update time """ updated_at: DateFilter } """ Conditions for nested customizations of deprecated search results. Deprecated, use RecordsFilterInput with records """ input NestedCustomizationFilters { """ Creation date range """ created_at: DateRange """ Matches this id """ id: ID """ Matches any of these ids """ ids: [ID] """ When true, deleted customizations are excluded """ ignore_deleted: Boolean = true """ When true, returns only deleted customizations; when false, only not deleted ones """ is_deleted: Boolean """ Name of the model schema """ name: String """ Property conditions """ properties: [QueryCustomAttribute] """ Matches this owner user id """ user_id: ID """ Matches any of these owner user ids """ user_ids: [ID] } """ A property of a table or schema, given together with the table. Entries with an id update that property, entries without one add a new property """ input NestedPropertyInputType { """ `1` removes the property given by id, `0` (or omitted) keeps it """ _destroy: String """ Data type of the property. Defaults to string """ attribute_type: PropertyTypeEnum = string """ Name of the table (or `user`) whose record ids this property holds. Used by data import and export to remap ids between instances """ belongs_to: String """ Value given to the property in new records that do not set it. For the array type it must be a JSON array """ default_value: String """ Id of an existing property to update or remove; omit to add a new property """ id: ID """ Arbitrary JSON data stored with the property """ metadata: HashObject """ Name of the property; spaces are replaced with underscores and it is lowercased. Must be unique within its table, and cannot be `errors` or `model` """ name: String! """ Options of an upload property, such as file access, size limit and image versions; ignored for other types """ options: PropertyUploadOptionsInput } """ Legacy custom image to create. Deprecated, use a property of type upload instead """ input NewCustomImageInputType { """ Name of the image property, defined in the schema of the record """ custom_attribute_name: String! """ URL of an image uploaded directly to storage with image_presign_url """ direct_url: String """ Id of the record the image belongs to """ owner_id: ID! """ Type of the record the image belongs to: Customization, User or UserProfile """ owner_type: String! """ Deprecated, ignored """ page_slug: String """ URL of a remote image to download. Deprecated, use direct_url """ raw_remote_image_url: String """ Id of the user who uploads the image """ uploader_id: ID } """ Email to send directly, without an email template """ input NotificationEmailInput { """ Blind carbon copy recipient email addresses """ bcc: [String!] """ Carbon copy recipient email addresses """ cc: [String!] """ Body of the email, sent as HTML """ content: String! """ Number of minutes to wait before sending the email; sent as soon as possible when omitted """ delay: Int """ Sender email address """ from: String! """ Reply-to email addresses """ reply_to: [String!] """ Subject of the email """ subject: String! """ Recipient email addresses """ to: [String!]! } """ Autogenerated return type of NotificationSendEmail. """ type NotificationSendEmailPayload { """ Always empty; failures are raised as errors """ errors: [BaseError!]! @deprecated(reason: "Not needed") """ True when the email was scheduled to be sent """ is_scheduled_to_send: Boolean! } """ Notification template defined in the app, identified by name """ input NotificationTemplateInput { """ Name of the template: its file path relative to the notification directory, without extension (for example welcome or modules/my_module/welcome) """ name: String! } """ Kind of notification """ enum NotificationTypeEnum { """ API call notification """ API_CALL """ Email notification """ EMAIL """ SMS notification """ SMS } """ Conditions on the notification type """ input NotificationTypeFilter { """ Matches when the type differs from the given one """ not_value: NotificationTypeEnum """ Matches when the type is none of the given values """ not_value_in: [NotificationTypeEnum!] """ Matches when the type equals the given one """ value: NotificationTypeEnum """ Matches when the type is one of the given values """ value_in: [NotificationTypeEnum!] } """ Result of a bulk operation """ type ObjectCount { """ Number of objects affected by the operation """ count: Int! } """ Result of deleting property uploads of an object """ type ObjectUpload { """ Validation errors; empty when the operation succeeded """ errors: [String!] """ ID of the background job deleting the files; empty when the deletion ran synchronously """ job_id: String """ ID of the object whose uploads are deleted """ upload_object_id: ID! """ Type of the object whose uploads are deleted """ upload_object_type: String! """ Upload data of the targeted property (or of all upload properties) as stored on the object when the response was built """ uploads: JSONPayload } """ Kind of object an upload property belongs to """ enum ObjectsWithUploadsEnum { """ Upload property of a record """ Record """ Upload property of a user """ User """ Upload property of a legacy user profile """ UserProfile } """ How several values or search words are combined """ enum OperatorEnum { """ All values must match """ AND """ At least one value must match """ OR } """ Time-based one-time password (TOTP) secret of a user, for two-factor authentication """ type Otp { """ One-time password valid at this moment (6 digits) """ current_code: String! """ Secret key the one-time passwords are generated from; keep it confidential """ secret: String! """ QR code, as an SVG document, that an authenticator app scans to add the secret """ secret_as_svg_qr_code( """ Issuer (usually the application name) shown in the authenticator app """ issuer: String """ Account name shown in the authenticator app. Defaults to the email of the user """ label: String ): String! } """ Page (app/views/pages): Liquid rendered for requests to the URL defined by its slug """ type Page implements AdminSharedAttributesInterface { """ Authorization policies checked before the page is rendered; all must pass """ authorization_policies: [AuthorizationPolicy!] """ Source of the page as written by the developer: Liquid, optionally with HTML or Markdown """ content: String """ Timestamp of when the content last changed (falls back to updated_at), useful as a cache key """ content_updated_at: JSONDate! """ Timestamp of when the object was created, set automatically by the system """ created_at: JSONDate! """ Timestamp of when the page was soft deleted; null for an existing page """ deleted_at: JSONDate """ Number of seconds the rendered page is cached for every visitor, keyed by dynamic_cache_key. Authorization policies are still checked. Use it only when a cache key cannot be easily determined for fragment caching, for example for a search results page """ dynamic_cache_expire: Int """ Liquid that evaluates to the cache key used by dynamic_cache_expire. For example {{ context.page.slug }}/{{ context.params.slug2 }} for a page with slug abc caches /abc/1 and /abc/2 separately, but returns the same content for /abc/1/1 and /abc/1/2. When blank, the full URL is used """ dynamic_cache_key: String """ When true, the dynamic cache stores the page together with its layout; otherwise only the page content is cached. Layouts usually contain data specific to the visitor, such as the name of the signed in user, hence the default is false """ dynamic_cache_layout: Boolean """ Format of the response, html by default """ format: PageFormat """ Template language of the content, liquid by default """ handler: PageHandler """ Content after conversion to HTML (relevant when the content is Markdown); this is what is rendered """ html_content: String """ Unique identifier of the object """ id: ID! """ Name of the layout the page is rendered in, without the layouts/ prefix; application by default. Liquid allowed. When blank, the page is rendered without a layout """ layout: String """ Deprecated, use layout instead """ layout_name: String @deprecated(reason: "use layout") """ When true, the resource is managed outside of files: pos-cli deploy and sync never overwrite or delete it """ manually_managed: Boolean """ Maximum number of URL segments the slug resolves, 3 by default. For example slug abc with max_deep_level 2 resolves /abc, /abc/1 and /abc/2, but not /abc/2/something """ max_deep_level: Int """ Free-form data attached to the resource with the metadata key of its file (or the metadata argument of an admin mutation) """ metadata: HashObject """ Path of the file the resource comes from, relative to the app directory, for example views/pages/index.liquid or modules/my_module/public/views/partials/header.liquid. Identifies the resource in deploy, sync and admin mutations """ physical_file_path: String """ HTTP status of the redirect when redirect_to is set: 301, 302 or 307; 302 when blank """ redirect_code: Int """ Liquid that evaluates to the path or URL the visitor is redirected to instead of rendering the page; no redirect when it evaluates to blank """ redirect_to: String """ HTTP method the page responds to, get by default """ request_method: PageRequestMethod """ Liquid that evaluates to a JSON object of headers added to the response """ response_headers: HashObject """ When true, the rendered content is stored so that pages can be found by it with the content filter of admin_pages """ searchable: Boolean """ URL path of the page without the leading slash, for example about-us or users/:id; / for the home page. Defaults to the file path """ slug: String! """ Number of seconds the rendered page is cached as static HTML. The cache is used only for visitors who are not signed in, and skips authorization policies """ static_cache_expire: Int """ When set, the page is served only on hosts that start with this subdomain followed by a dot """ subdomain: String """ Timestamp of when the object was last updated, set automatically by the system """ updated_at: JSONDate! } """ Paginated list of pages """ type PageCollection { """ Number of the page returned in results """ current_page: Int! """ True when there is at least one page after the current one """ has_next_page: Boolean! """ True when the current page is not the first one """ has_previous_page: Boolean! """ Maximum number of results returned on a single page """ per_page: Int! """ Results on the current page """ results: [Page!] """ Total number of results matching the query, across all pages """ total_entries: Int! """ Total number of pages, given per_page """ total_pages: Int! } """ Conditions for admin_pages """ input PageFilterInput { """ Conditions on the attached authorization policies, e.g. authorization_policies: { value_in: ["page_protection", "check_user"] } """ authorization_policies: AuthorizationPoliciesFilter """ Conditions on the rendered page content. Only pages marked as searchable have it """ content: StringFilter """ Conditions on the time the page content last changed """ content_updated_at: DateFilter """ Conditions on the creation time """ created_at: DateFilter """ Conditions on the soft deletion time. When given, soft deleted items are included """ deleted_at: DateFilter """ Conditions on the format, e.g. format: { value: HTML } """ format: PageFormatFilter """ Conditions on the id """ id: UniqIdFilter """ Conditions on the name of the layout the page is rendered in """ layout: StringFilter """ Deprecated, use layout """ layout_name: StringFilter """ Conditions on the metadata defined in the file. All conditions are combined with AND """ metadata: [JsonbFilter!] """ Alternative condition sets: matches when at least one of them matches. Combined with AND with the other conditions """ or: [PageFilterInput!] """ Conditions on the source file path relative to the app directory, e.g. views/pages/index.liquid """ physical_file_path: StringFilter """ Conditions on the HTTP redirect status code """ redirect_code: IntegerFilter """ Conditions on the redirect target """ redirect_to: StringFilter """ Conditions on the HTTP request method the page responds to """ request_method: PagesRequestMethodFilter """ Conditions on whether the page is searchable """ searchable: BooleanFilter """ Conditions on the slug, given without the leading slash, e.g. slug: { value: "client/orders" } """ slug: StringFilter """ Conditions on the subdomain the page is served on """ subdomain: StringFilter """ Conditions on the last update time """ updated_at: DateFilter } """ Output format of a page, layout or partial; it sets the response content type and the URL extension the page responds to (for example a json page responds to /slug.json) """ enum PageFormat { """ css format """ css """ csv format """ csv """ html format """ html """ ics format """ ics """ js format """ js """ json format """ json """ pdf format """ pdf """ rss format """ rss """ svg format """ svg """ text format """ text """ txt format """ txt """ xml format """ xml } """ Conditions on the format of a page """ input PageFormatFilter { """ Matches when the format differs from the given one """ not_value: PageFormat """ Matches when the format is none of the given values """ not_value_in: [PageFormat!] """ Matches when the format equals the given one """ value: PageFormat """ Matches when the format is one of the given values """ value_in: [PageFormat!] } """ Template language of a page """ enum PageHandler { """ Liquid template (the default) """ liquid """ Markdown template """ markdown } """ Attributes of a page, the same ones that can be set in a views/pages/*.liquid file """ input PageInputType { """ Names of authorization policies checked before the page is rendered, the same names as in the authorization_policies setting of a page file, for example `page_policy` or `modules/my_module/page_policy`. Can be combined with authorization_policy_ids; raises a validation error if any name does not exist """ authorization_policies: [String] """ Ids of authorization policies checked before the page is rendered; replaces the current list """ authorization_policy_ids: [ID] """ Liquid code rendered as the page body """ content: String """ Number of seconds the rendered page is cached for; authorization policies are still checked on every request """ dynamic_cache_expire: Int """ Liquid code rendering to the cache key, for example `{{ context.page.slug }}/{{ context.params.slug2 }}`. When blank, the full URL is used """ dynamic_cache_key: String """ When true, the layout is cached together with the page; usually not possible when the layout shows user-specific data. Defaults to false """ dynamic_cache_layout: Boolean = false """ Format of the page, for example html or json; the same slug can serve several formats. Defaults to html """ format: PageFormat = html """ Template language of the content. Currently ignored by this mutation """ handler: PageHandler = liquid """ Name of the layout the page content is rendered into, for example `application`; must be an existing layout unless it contains Liquid """ layout: String """ Deprecated, use layout """ layout_name: String """ When true, pos-cli deploy and sync never overwrite or delete it and pos-cli pull skips it. When omitted, defaults to the track_manually_managed setting of the instance (false unless enabled in app/config.yml) """ manually_managed: Boolean """ Maximum number of URL segments, counting the slug itself, the page responds to. For example slug `abc` with max_deep_level 2 resolves /abc and /abc/1 but not /abc/1/something. Defaults to 3 """ max_deep_level: Int = 3 """ Arbitrary JSON data stored with the page """ metadata: HashObject """ Path of the file the page is stored as, used by pos-cli pull and deploy. Must be under `views/pages/` (or `pages/`), optionally prefixed with `modules/<module_name>/public/` or `modules/<module_name>/private/`, for example `views/pages/hello/world.html.liquid` """ physical_file_path: String! """ HTTP status of the redirect when redirect_to is set """ redirect_code: PageRedifectCode """ Liquid code rendering to the URL the request is redirected to instead of rendering the page """ redirect_to: String """ HTTP method the page responds to. Defaults to get """ request_method: PageRequestMethod = get """ Headers added to the response; values may contain Liquid """ response_headers: HashObject """ When true, the rendered content is stored with the page so it can be searched. Defaults to false """ searchable: Boolean = false """ URL path the page is served at, for example `hello/world` for https://example.com/hello/world. When omitted, it is derived from physical_file_path, for example `views/pages/hello/world.html.liquid` gives `hello/world` """ slug: String """ Number of seconds the page is cached for as static HTML. Currently ignored by this mutation """ static_cache_expire: Int """ Subdomain the page is served on, for pages that should respond only on that subdomain """ subdomain: String } """ HTTP status used when a page redirects """ enum PageRedifectCode { """ 301 Moved Permanently """ MOVED_PERMANENTLY """ 302 Moved Temporarily """ MOVED_TEMPORARILY } """ HTTP method a page responds to """ enum PageRequestMethod { """ HTTP DELETE """ delete """ HTTP GET """ get """ HTTP OPTIONS """ options """ HTTP PATCH """ patch """ HTTP POST """ post """ HTTP PUT """ put } """ Conditions on the HTTP request method of a page """ input PagesRequestMethodFilter { """ Matches when the method differs from the given one """ not_value: PageRequestMethod """ Matches when the method is none of the given values """ not_value_in: [PageRequestMethod!] """ Matches when the method equals the given one """ value: PageRequestMethod """ Matches when the method is one of the given values """ value_in: [PageRequestMethod!] } """ Sort order for admin_pages """ input PagesSortInput { """ Sort by the time the page content last changed """ content_updated_at: StandardSort """ Sort by creation time """ created_at: StandardSort """ Sort by id """ id: StandardSort """ Sort by metadata values, applied in the given order """ metadata: [JsonbSort!] """ Sort by the path of the source file """ physical_file_path: StandardSort """ Sort by redirect status code """ redirect_code: StandardSort """ Sort by redirect target """ redirect_to: StandardSort """ Sort by slug """ slug: StandardSort """ Sort by last update time """ updated_at: StandardSort } """ Represents data defined by platformOS stored in context.params variable. """ scalar ParamsObject """ Restrictions for a presigned upload URL. Given values override the options configured on the upload property """ input PresignUrl { """ Access level of the uploaded file. Defaults to the acl configured on the property, or public when none is configured """ acl: ACL = null """ Allowed file size range. Defaults to the content_length configured on the property, or to the platform maximum upload size """ content_length: ContentLength = null """ Allowed content type of the uploaded file """ content_type: Content = null } """ Options of the deprecated presigned_upload_url mutation """ input PresignUrlInput { """ Whether anyone who knows the file URL can read it (public), or reading requires a signed URL (private) """ acl: ACL = public """ Content-Disposition header served with the file """ content_disposition: String = "inline" """ Allowed file size range in KiB, for example { gte: 1, lte: 1024 } allows files from 1 KiB to 1 MiB """ content_length: ContentLengthRange """ Kind of the uploaded file """ type: UploadType = image """ Versions generated automatically when the uploaded file is an image """ versions: [VersionInput!] } """ Presigned URL for uploading a file directly to storage """ type PresignedUploadUrl { """ URL to which the file is uploaded directly with a multipart POST request, including the fields from upload_url_payload """ upload_url: String! """ Form fields that must be sent along with the file to upload_url """ upload_url_payload: HashObject! } """ Upload URL for an asset file """ type PresignedUrl { """ URL the file will be served from once it is uploaded """ access_url: String! """ Requested path, URL-encoded """ path: String! """ Temporary URL to upload the file to; uploaded files are publicly readable """ upload_url: String! } """ File stored in a legacy attachment property. Deprecated, use property uploads """ type PrivateFile { """ MIME type guessed from the file extension; application/octet-stream when unknown """ content_type: String """ Timestamp of when the object was created, set automatically by the system """ created_at: JSONDate """ File name """ file_name: String """ Unique identifier of the object """ id: ID """ Name of the attachment property """ name: String """ File size in bytes """ size_bytes: Int """ URL of the file. For private files it is a signed URL valid for expires_in seconds """ url( """ Number of seconds before presigned URL expires. Max value is one week (604800) """ expires_in: Int = 900 ): String } """ Page rendered to produce the content of a generated file """ input ProcessPageInputType { """ Parameters passed to the page, available there as context.params """ params: HashObject """ Slug of the page to render """ slug: String! } """ How the content of a legacy attachment is turned into a file. Deprecated """ enum ProcessStrategy { """ Convert the content, which must be HTML, to a PDF """ pdf """ Store the content as is; for CSV, JSON, XML, plain text etc. """ text } """ Generates the content of a legacy custom attachment from a body or a rendered page """ input ProcessStrategyInputType { """ Content to process; what is expected depends on the strategy (usually text, HTML, CSV, JSON or XML). Alternatively use page """ body: String """ Name of the output file """ file_name: String! """ Page rendered to produce the body. Alternatively use body """ page: ProcessPageInputType """ How the body is turned into a file """ strategy: ProcessStrategy! """ If true and the strategy processes the file in the background (like PDF generation), the mutation waits (up to about 10 seconds) until the file is available, e.g. to attach it to an email """ synchronous: Boolean = false } """ User profile: a role or namespace that groups properties of a user """ type Profile implements HasModelsInterface & HasRecordsInterface & LegacyCustomAttributeInterface & PropertiesInterface & RemoteRecordsInterface & RemoteUsersInterface { """ Returns the legacy address property with the given name. Deprecated, store addresses in your own table """ address( """ Name of the address property """ name: String! ): CustomAddrress @deprecated(reason: "use your own model for address if needed") """ Returns legacy address properties, optionally only those with the given name. Deprecated, store addresses in your own table """ addresses( """ Name of the address property; all when omitted """ name: String ): [CustomAddrress!] @deprecated(reason: "use your own model for address if needed") """ Returns the legacy attachment property with the given name. Deprecated, use property_upload """ attachment( """ Name of the attachment property """ name: String! ): PrivateFile @deprecated(reason: "use property upload") """ Returns legacy attachment properties, optionally only those with the given name. Deprecated, use property_upload """ attachments( """ Name of the attachment property; all when omitted """ name: String ): [PrivateFile!] @deprecated(reason: "use property upload") """ Returns the legacy address property with the given name. Deprecated, store addresses in your own table """ custom_address( """ Name of the property """ name: String! ): CustomAddrress @deprecated(reason: "Use address") """ Returns legacy address properties. Deprecated, store addresses in your own table """ custom_addresses( """ Name of the property; all when omitted """ name: String ): [CustomAddrress!] @deprecated(reason: "Use addresses") """ Returns the legacy attachment property with the given name. Deprecated, use property_upload """ custom_attachment( """ Name of the property """ name: String! ): PrivateFile @deprecated(reason: "Use attachment") """ Returns legacy attachment properties. Deprecated, use property_upload """ custom_attachments( """ Name of the property; all when omitted """ name: String ): [PrivateFile!] @deprecated(reason: "Use attachments") """ Returns the legacy image property with the given name. Deprecated, use property_upload """ custom_image( """ Name of the property """ name: String! ): Image @deprecated(reason: "Use image") """ Returns legacy image properties. Deprecated, use property_upload """ custom_images( """ Name of the property; all when omitted """ name: String ): [Image!] @deprecated(reason: "Use images") """ Customizations attached to the profile. Deprecated, use records """ customizations( """ Only customizations attached to the object with this id """ customizable_id: ID """ Only customizations attached to this type of object """ customizable_type: String """ Only customizations with these ids """ id: [ID] """ Only customizations of this model schema """ name: String """ Only customizations matching these property conditions """ properties: [QueryCustomAttribute] """ Sort order of the customizations """ sort: [CustomizationSortOrder] """ Only customizations owned by this user """ user_id: ID ): [Customization!] """ Timestamp of when the object was soft deleted, populated by the delete action. It is also possible to set it manually via update. To undelete, change it back to an empty value; note that associated objects need to be undeleted manually as well. """ deleted_at: JSONDate """ Unique identifier of the object """ id: ID """ Returns the legacy image property with the given name. Deprecated, use property_upload """ image( """ Name of the image property """ name: String! ): Image @deprecated(reason: "use property upload") """ Returns legacy image properties, optionally only those with the given name. Deprecated, use property_upload """ images( """ Name of the image property; all when omitted """ name: String ): [Image!] @deprecated(reason: "use property upload") """ Returns one related model. Deprecated, use related_record """ model( """ Additional conditions the related objects must match """ filter: ModelsFilterInput """ Name of the property (or attribute) of the related object equal to join_on_property """ foreign_property: String = "id" """ Name of the property (or attribute) of this object matched against foreign_property """ join_on_property: String! """ Name of the model schema (table) of the related models """ model_name: [String]! """ Sort order of the results. When several entries are given, they are applied in the given order """ sort: [ModelsSortInput!] ): Model @deprecated(reason: "use `related_record`") """ Returns related models. Deprecated, use related_records """ models( """ Name of the property (or attribute) of the related object equal to join_on_property """ foreign_property: String! """ Name of the property (or attribute) of this object matched against foreign_property """ join_on_property: String! """ Maximum number of related objects returned for each object """ limit: Int """ Name of the model schema (table) of the related models """ model_name: [String]! """ Sort order of the results. When several entries are given, they are applied in the given order """ sort: [ModelsSortInput!] ): [Model!] @deprecated(reason: "use `related_records`") """ Name of the user profile type """ profile_type: String! """ All properties of the object as an object keyed by property name """ properties( """ Properties to return, each converted to the given type (as by the matching property_* field; other types become strings); all properties as stored when omitted """ select: [PropertiesFieldInput!] ): HashObject """ Returns the value of the property with the given name as a string; ex: hair_color: property(name: "hair_color") """ property( """ Name of the property """ name: String! ): String """ Returns the value of the property with the given name as an array of strings; a single value is wrapped in an array and no value gives an empty array; ex: todo_list: property_array(name: "todo_list") """ property_array( """ Name of the property """ name: String! ): [String!] """ Returns the value of the property with the given name as a boolean. Accepts true/false values and the strings "t"/"T" and "f"/"F"; any other value returns an error; ex: enabled: property_boolean(name: "enabled") """ property_boolean( """ Name of the property """ name: String! ): Boolean """ Returns the value of the property with the given name as a float; returns an error when the value is not a number; ex: price: property_float(name: "price") """ property_float( """ Name of the property """ name: String! ): Float """ Returns the value of the property with the given name as an integer; returns an error when the value cannot be converted, e.g. "abc" or "1.5"; ex: age: property_int(name: "age") """ property_int( """ Name of the property """ name: String! ): Int """ Returns the value of the property with the given name as stored, without conversion """ property_json( """ Name of the property """ name: String! ): JSONPayload """ Returns the value of the property with the given name parsed from JSON text into an object; returns an error when the value is not valid JSON """ property_object( """ Name of the property """ name: String! ): HashObject """ Returns the file stored in the given upload property; ex: avatar: property_upload(name: "avatar") { url } """ property_upload( """ Number of seconds for which the returned URLs are valid. When given, signed URLs are returned; required to access files uploaded with acl private """ expires_in: Int """ Name of the upload property """ name: String! ): PropertyUpload """ Returns one related model. Deprecated, use related_record """ related_model( """ Additional conditions the related objects must match """ filter: ModelsFilterInput """ Name of the property (or attribute) of the related object equal to join_on_property """ foreign_property: String = "id" """ Name of the property (or attribute) of this object matched against foreign_property """ join_on_property: String! """ Name of the model schema (table) of the related models """ model_schema_name: [String]! """ Sort order of the results. When several entries are given, they are applied in the given order """ sort: [ModelsSortInput!] ): Model @deprecated(reason: "use `related_record`") """ Returns related models. Deprecated, use related_records """ related_models( """ Additional conditions the related objects must match """ filter: ModelsFilterInput """ Name of the property (or attribute) of the related object equal to join_on_property """ foreign_property: String! """ Name of the property (or attribute) of this object matched against foreign_property """ join_on_property: String! """ Maximum number of related objects returned for each object """ limit: Int """ Name of the model schema (table) of the related models """ model_schema_name: [String]! """ Sort order of the results. When several entries are given, they are applied in the given order """ sort: [ModelsSortInput!] ): [Model!] @deprecated(reason: "use `related_records`") """ Returns one record of the given table whose foreign_property equals the value of join_on_property of this object (belongs-to or has-one relation). When several records match, the last one in sort order is returned, by default the most recently updated; ex: parent: related_record(table: "parent", join_on_property: "parent_id") { id } """ related_record( """ Additional conditions the related record must match """ filter: RecordsFilterInput """ Name of the property (or attribute, e.g. id) of the related object that must equal the value of join_on_property """ foreign_property: String = "id" """ Name of the property (or attribute, e.g. id or user_id) of this object whose value is matched against foreign_property. When the value is an array, records matching any of its elements are returned. Returns an error when this object has no such property """ join_on_property: String! """ Sort order used to pick the record; updated_at ascending when omitted """ sort: [RecordsSortInput!] """ Name of the table (or tables) the related record belongs to """ table: [String]! ): Record """ Returns records of the given table whose foreign_property equals the value of join_on_property of this object (has-many relation). Related records of all objects in the result are loaded in one batch of at most 10,000 records, soft-deleted records are skipped; ex: children: related_records(table: "child", join_on_property: "id", foreign_property: "parent_id") { id } """ related_records( """ Additional conditions the related records must match """ filter: RecordsFilterInput """ Name of the property (or attribute, e.g. id) of the related object that must equal the value of join_on_property """ foreign_property: String! """ Name of the property (or attribute, e.g. id or user_id) of this object whose value is matched against foreign_property. When the value is an array, records matching any of its elements are returned. Returns an error when this object has no such property """ join_on_property: String! """ Maximum number of related objects returned for each object """ limit: Int """ Sort order of the related records; updated_at ascending when omitted """ sort: [RecordsSortInput!] """ Name of the table (or tables) the related records belong to """ table: [String]! ): [Record!] """ Returns the user whose foreign_property equals the value of join_on_property of this object (belongs-to relation); by default the user whose id is in user_id; ex: invited_by: related_user(join_on_property: "invited_by_id") { id } """ related_user( """ Additional conditions the related objects must match """ filter: ModelsFilterInput """ Name of the property (or attribute) of the related object equal to join_on_property """ foreign_property: String = "id" """ Name of the property (or attribute) of this object matched against foreign_property """ join_on_property: String = "user_id" """ Sort order of the results. When several entries are given, they are applied in the given order """ sort: [UsersSortInput!] ): User """ Returns users whose foreign_property equals the value of join_on_property of this object (has-many relation). Related users of all objects in the result are loaded in one batch of at most 10,000 users, soft-deleted users are skipped; ex: friends: related_users(join_on_property: "friend_ids", foreign_property: "id") { id } """ related_users( """ Additional conditions the related objects must match """ filter: ModelsFilterInput """ Name of the property (or attribute) of the related object equal to join_on_property """ foreign_property: String! """ Name of the property (or attribute) of this object matched against foreign_property """ join_on_property: String! """ Maximum number of related objects returned for each object """ limit: Int """ Sort order of the results. When several entries are given, they are applied in the given order """ sort: [UsersSortInput!] ): [User!] """ Returns records loaded from a remote endpoint: the value of join_on_property is sent as ids and the records in the JSON response are returned. Requests of all objects in the result are batched. Not available while serving a request made by another platformOS remote fetch (returns null) """ remote_records( """ Remote endpoint returning the resources for the given ids as JSON """ endpoint: Endpoint! """ Name of the property of this object holding the id (or array of ids) to request """ join_on_property: String! ): [Record!] """ Returns users loaded from a remote endpoint: the value of join_on_property is sent as ids and the users in the JSON response are returned. Requests of all objects in the result are batched. Not available while serving a request made by another platformOS remote fetch (returns null) """ remote_users( """ Remote endpoint returning the resources for the given ids as JSON """ endpoint: Endpoint! """ Name of the property of this object holding the id (or array of ids) to request """ join_on_property: String! ): [User!] """ Returns the related user. Deprecated, use related_user """ user( """ Name of the property (or attribute) of the related object equal to join_on_property """ foreign_property: String = "id" """ Name of the property (or attribute) of this object matched against foreign_property """ join_on_property: String = "user_id" """ Sort order of the results. When several entries are given, they are applied in the given order """ sort: [UsersSortInput!] ): User @deprecated(reason: "use `related_user`") """ Returns related users. Deprecated, use related_users """ users( """ Name of the property (or attribute) of the related object equal to join_on_property """ foreign_property: String! """ Name of the property (or attribute) of this object matched against foreign_property """ join_on_property: String! """ Maximum number of related objects returned for each object """ limit: Int """ Sort order of the results. When several entries are given, they are applied in the given order """ sort: [UsersSortInput!] ): [User!] @deprecated(reason: "use `related_users`") } """ Conditions on a user profile. Matches users that have at least one not deleted profile meeting all given conditions """ input ProfileFilterInput { """ Name of the user profile type, matched exactly """ name: String """ Condition on the name of the user profile type """ name_filter: StringFilter """ Conditions on profile properties; every entry must match """ properties: [PropertyFilterInput!] } """ Property to include in the properties result, with the type its value is converted to """ input PropertiesFieldInput { """ Type the value is returned as; values of type string are returned as text. A value that cannot be converted raises an error """ attribute_type: SelectPropertyTypeEnum! """ Name of the property """ name: String! } """ Object with properties, including upload properties """ interface PropertiesInterface { """ Returns the legacy address property with the given name. Deprecated, store addresses in your own table """ address( """ Name of the address property """ name: String! ): CustomAddrress @deprecated(reason: "use your own model for address if needed") """ Returns legacy address properties, optionally only those with the given name. Deprecated, store addresses in your own table """ addresses( """ Name of the address property; all when omitted """ name: String ): [CustomAddrress!] @deprecated(reason: "use your own model for address if needed") """ Returns the legacy attachment property with the given name. Deprecated, use property_upload """ attachment( """ Name of the attachment property """ name: String! ): PrivateFile @deprecated(reason: "use property upload") """ Returns legacy attachment properties, optionally only those with the given name. Deprecated, use property_upload """ attachments( """ Name of the attachment property; all when omitted """ name: String ): [PrivateFile!] @deprecated(reason: "use property upload") """ Unique identifier of the object """ id: ID """ Returns the legacy image property with the given name. Deprecated, use property_upload """ image( """ Name of the image property """ name: String! ): Image @deprecated(reason: "use property upload") """ Returns legacy image properties, optionally only those with the given name. Deprecated, use property_upload """ images( """ Name of the image property; all when omitted """ name: String ): [Image!] @deprecated(reason: "use property upload") """ All properties of the object as an object keyed by property name """ properties( """ Properties to return, each converted to the given type (as by the matching property_* field; other types become strings); all properties as stored when omitted """ select: [PropertiesFieldInput!] ): HashObject """ Returns the value of the property with the given name as a string; ex: hair_color: property(name: "hair_color") """ property( """ Name of the property """ name: String! ): String """ Returns the value of the property with the given name as an array of strings; a single value is wrapped in an array and no value gives an empty array; ex: todo_list: property_array(name: "todo_list") """ property_array( """ Name of the property """ name: String! ): [String!] """ Returns the value of the property with the given name as a boolean. Accepts true/false values and the strings "t"/"T" and "f"/"F"; any other value returns an error; ex: enabled: property_boolean(name: "enabled") """ property_boolean( """ Name of the property """ name: String! ): Boolean """ Returns the value of the property with the given name as a float; returns an error when the value is not a number; ex: price: property_float(name: "price") """ property_float( """ Name of the property """ name: String! ): Float """ Returns the value of the property with the given name as an integer; returns an error when the value cannot be converted, e.g. "abc" or "1.5"; ex: age: property_int(name: "age") """ property_int( """ Name of the property """ name: String! ): Int """ Returns the value of the property with the given name as stored, without conversion """ property_json( """ Name of the property """ name: String! ): JSONPayload """ Returns the value of the property with the given name parsed from JSON text into an object; returns an error when the value is not valid JSON """ property_object( """ Name of the property """ name: String! ): HashObject """ Returns the file stored in the given upload property; ex: avatar: property_upload(name: "avatar") { url } """ property_upload( """ Number of seconds for which the returned URLs are valid. When given, signed URLs are returned; required to access files uploaded with acl private """ expires_in: Int """ Name of the upload property """ name: String! ): PropertyUpload } """ Property values of a record as a JSON object (or a string containing one) mapping property names to values, for example { color: "green" } """ scalar PropertiesObject """ Property definition: a named, typed attribute of a table, the user schema or a user profile schema """ type Property implements AdminSharedAttributesInterface { """ Type of the property """ attribute_type: PropertyTypeEnum! """ Name of the table (or user) the property refers to, defining a relationship. Used when importing and exporting data """ belongs_to: String """ Timestamp of when the object was created, set automatically by the system """ created_at: JSONDate! """ Default value stored with the definition. It is not applied to new records automatically """ default_value: String """ Unique identifier of the object """ id: ID! """ When true, the resource is managed outside of files: pos-cli deploy and sync never overwrite or delete it """ manually_managed: Boolean """ Free-form data attached to the resource with the metadata key of its file (or the metadata argument of an admin mutation) """ metadata: HashObject """ Name of the property """ name: String! """ Settings of an upload property, for example access control, size limits and image versions; empty for other types """ options: HashObject """ Path of the file the resource comes from, relative to the app directory, for example views/pages/index.liquid or modules/my_module/public/views/partials/header.liquid. Identifies the resource in deploy, sync and admin mutations """ physical_file_path: String """ Id of the schema the property belongs to """ target_id: ID! """ Kind of schema the property belongs to: CustomModelType (a table), UserType (the user schema) or InstanceProfileType (a user profile schema) """ target_type: String! """ Timestamp of when the object was last updated, set automatically by the system """ updated_at: JSONDate! } """ Condition on a single property. When several operators are given, all of them must match. Operators given a null or empty string value are ignored, unless allow_empty is true """ input PropertyFilterInput { """ When true, operators given a null or empty string value are applied (e.g. `value: ""` matches an empty string) instead of being ignored """ allow_empty: Boolean """ Matches when the Array property contains all of the given elements. Raises an error for a property that is not an Array """ array_contains: [String!] """ Matches when the Array property contains at least one of the given elements. Raises an error for a property that is not an Array """ array_overlaps: [String!] """ When true, contains, starts_with, ends_with and their not_ variants are case sensitive. Defaults to case insensitive """ case_sensitive: Boolean """ Matches when the property value contains this string. Case insensitive unless case_sensitive is true """ contains: String """ Matches records whose geometry property lies closer than distance_in_km to center, ordered by distance (see sort) """ distance_sphere: GeoPropertyFilterInput """ Matches when the property value ends with this string. Case insensitive unless case_sensitive is true """ ends_with: String """ When true, matches records where the property is present and not null; when false, records where it is missing or null """ exists: Boolean """ Name of the property the condition applies to """ name: String! """ Matches when the Array property does not contain all of the given elements (it may contain some of them). Raises an error for a property that is not an Array """ not_array_contains: [String!] """ Matches when the Array property has no element in common with the given elements. Raises an error for a property that is not an Array """ not_array_overlaps: [String!] """ Matches when the property value does not contain this string. Case insensitive unless case_sensitive is true """ not_contains: String """ Matches when the property value does not end with this string. Case insensitive unless case_sensitive is true """ not_ends_with: String """ Matches when the property value does not start with this string. Case insensitive unless case_sensitive is true """ not_starts_with: String """ Matches when the property value is not equal to this string, including records without the property """ not_value: String """ Matches when the Array property is not equal to the given array. Raises an error for a property that is not an Array """ not_value_array: [String!] """ Matches when the property is not equal to this boolean, including records without the property """ not_value_boolean: Boolean """ Matches when the property is not equal to this number, including records without the property """ not_value_float: Float """ Matches when the property is equal to none of the given values. For an Array property, matches when at least one element of the property is not among the given values """ not_value_in: [String!] """ Matches when the property is not equal to this integer, including records without the property """ not_value_int: Int """ Matches records whose geometry property does not lie within radius_in_km_from_property kilometers from point """ not_within_radius: GeoRadiusPropertyFilterInput """ Type of the property, e.g. string, integer, float, boolean, array, date or datetime. Only needed when it cannot be determined from the table in the filter; an unknown type raises an error """ property_type: String """ Matches when the property value is within the range; lt, lte, gt and gte can be combined. String, Date and DateTime properties are compared as text (use ISO 8601 dates), other properties numerically """ range: RangeFilter """ Matches when the property value starts with this string. Case insensitive unless case_sensitive is true """ starts_with: String """ Matches when the property value is equal to this string. Integer, Float and Boolean properties are compared as text; use value_int, value_float or value_boolean for them, which is also faster """ value: String """ Matches when the Array property is equal to the given array, including element order. Raises an error for a property that is not an Array """ value_array: [String!] """ Matches when the property is equal to this boolean """ value_boolean: Boolean """ Matches when the property is equal to this number """ value_float: Float """ Matches when the property is equal to one of the given values. For an Array property, matches when every element of the property is one of the given values """ value_in: [String!] """ Matches when the property is equal to this integer """ value_int: Int """ Matches records whose geometry property lies within radius_in_km_from_property kilometers from point """ within_radius: GeoRadiusPropertyFilterInput } """ A value for one property of a record, identified by name. Provide name and exactly one of the value arguments (value, value_int, value_float, value_boolean, value_array, value_json, value_upload) or atomic operations (array_append, array_remove, increment, decrement) """ input PropertyInputType { """ Appends the value at the end of an array property, creating the array when the property is empty. Atomic: applied directly in the database before the rest of the update, so concurrent changes are not lost; it skips validations and callbacks. Only applied by update mutations """ array_append: String """ Removes every occurrence of the value from an array property. Atomic: applied directly in the database before the rest of the update, so concurrent changes are not lost; it skips validations and callbacks. Only applied by update mutations """ array_remove: String """ Subtracts the value from a numeric property, treating an empty property as 0. Atomic: applied directly in the database before the rest of the update, so concurrent changes are not lost; it skips validations and callbacks. Only applied by update mutations """ decrement: Float """ Adds the value to a numeric property, treating an empty property as 0. Atomic: applied directly in the database before the rest of the update, so concurrent changes are not lost; it skips validations and callbacks. Only applied by update mutations """ increment: Float """ Name of the property """ name: String! """ New value as a string; it is converted to the type of the property """ value: String """ New value of an array property """ value_array: [String] """ New value of a boolean property """ value_boolean: Boolean """ New value of a float property """ value_float: Float """ New value of an integer property """ value_int: Int """ New value of a JSON property, as any JSON value """ value_json: JSONPayload """ New file of an upload property """ value_upload: ValueUploadInput } """ Name of a property: letters, digits, underscores and slashes only """ scalar PropertyName """ Sort by the value of a property. Items without a value are placed last """ input PropertySort { """ Name of the property """ name: String! """ Sort direction """ order: SortOrderEnum! } """ Kind of schema a property belongs to """ enum PropertyTargetType { """ Table (model schema) """ ModelSchema """ User schema """ User """ User profile schema """ UserProfileSchema } """ Type of a property """ enum PropertyTypeEnum { """ Postal address """ address """ Array of strings; will be deprecated in the future, as arrays of other types cannot be stored """ array """ Binary data """ binary """ True or false """ boolean """ Date without time """ date """ Date with time """ datetime """ Exact decimal number, for example a price """ decimal """ Uploaded file. Deprecated, use upload instead """ file """ Floating point number """ float """ GeoJSON geometry, for example a point or a polygon """ geojson """ Whole number """ integer """ Uploaded image. Deprecated, use upload instead """ photo """ Text value """ string """ Deprecated, use string instead """ text """ Time of day """ time """ File uploaded directly to storage; configured with the property options """ upload } """ File stored in an upload property. All fields are empty when nothing has been uploaded """ type PropertyUpload { """ File extension extracted from the path, without the dot; for example jpg, pdf """ extension: String """ File name extracted from the path """ file_name: String """ URL of the original file. When property_upload was called with expires_in it is a signed URL valid for that many seconds, which is required to access private files """ url: String """ Object where the key is an image version name and the value is its URL; populated when the file is an image and versions are configured for the property """ versions( """ Names of the versions to return; all versions when omitted """ names: [String!] ): HashObject } """ Who can access files uploaded to an upload property """ enum PropertyUploadACL { """ Files are accessible only through temporary signed URLs """ private """ Files are accessible to anyone who has the URL """ public } """ Content-Disposition header sent with uploaded files, which tells the browser how to handle them """ enum PropertyUploadContentDisposition { """ The browser downloads the file """ attachment """ The browser displays the file when it can, for example an image or a PDF """ inline } """ Allowed size range of an uploaded file, in KiB """ input PropertyUploadContentLengthInput { """ Minimum file size in KiB. Defaults to 0 """ gte: Int = 0 """ Maximum file size in KiB """ lte: Int! } """ GnuPG (OpenPGP) encryption settings """ input PropertyUploadEncryptionGPGInput { """ When true, the encrypted file is ASCII armored (text). Defaults to the binary OpenPGP format """ armor: Boolean """ Public key the file is encrypted with; only the holder of the matching private key can decrypt it """ key: GPGKey! } """ Encryption applied to a file before it is stored """ input PropertyUploadEncryptionInput { """ Encrypt with a GnuPG public key """ gpg: PropertyUploadEncryptionGPGInput } """ How an image is resized to the given width and height; the values follow the CSS object-fit property """ enum PropertyUploadFit { """ Preserving aspect ratio, embed the image within both provided dimensions, filling the rest with the background color """ contain """ Preserving aspect ratio, crop the image to cover both provided dimensions """ cover """ Ignore the aspect ratio of the input and stretch it to both provided dimensions """ fill """ Preserving aspect ratio, resize the image to be as large as possible while ensuring its dimensions are less than or equal to both those specified """ inside """ Preserving aspect ratio, resize the image to be as small as possible while ensuring its dimensions are greater than or equal to both those specified """ outside } """ Image format an image version is converted to """ enum PropertyUploadFormat { """ AVIF image """ avif """ JPEG image """ jpeg """ PNG image """ png """ WEBP image """ webp } """ Effects applied to an image version """ input PropertyUploadManipulateInput { """ Gaussian blur strength, given as the sigma of the Gaussian mask (sigma = 1 + radius / 2); no blur when omitted """ blur: ImageBlur """ Background color transparent areas are flattened onto. Defaults to #000000 """ flatten: CssColor = "#000000" """ When true, converts the image to 8-bit greyscale (256 shades of grey). Defaults to false """ greyscale: Boolean = false } """ Options of an upload property: access, headers, size limit and image versions of the uploaded files """ input PropertyUploadOptionsInput { """ Who can access uploaded files. Defaults to public """ acl: PropertyUploadACL = public """ Cache-Control header sent with uploaded files. Defaults to `max-age=315576000, public` """ cache_control: String = "max-age=315576000, public" """ Whether browsers display or download uploaded files. Defaults to inline """ content_disposition: PropertyUploadContentDisposition = inline """ Allowed file size in KiB, for example `{ gte: 1, lte: 1024 }` allows files from 1 KiB to 1 MiB """ content_length: PropertyUploadContentLengthInput """ Additional versions generated from an uploaded image, for example resized or compressed. At most 10 versions """ versions: [PropertyUploadVersionInput!] } """ Format and compression of an image version """ input PropertyUploadOutputInput { """ Format the image is converted to """ format: PropertyUploadFormat """ Quality the image is compressed to, from 0 (lowest) to 100 (highest). Defaults: PNG 80, WEBP 80, JPEG 85, AVIF 60 """ quality: ImageQuality } """ Part of the image that is kept when it is cropped (fit cover) or placed (fit contain) """ enum PropertyUploadPosition { """ Anchor the image at bottom """ bottom """ Anchor the image at center """ center """ Anchor the image at left """ left """ Anchor the image at left bottom """ left_bottom """ Anchor the image at left top """ left_top """ Anchor the image at right """ right """ Anchor the image at right bottom """ right_bottom """ Anchor the image at right top """ right_top """ Anchor the image at top """ top } """ Signed form that lets a browser upload a file for an upload property directly to storage """ type PropertyUploadPresignedUrl { """ URL to which the file is uploaded with a multipart/form-data POST request that includes upload_url_payload """ upload_url: String """ Form fields to send, unchanged, with the upload request; the file itself goes last, in a field named file """ upload_url_payload: HashObject } """ How an image version is resized """ input PropertyUploadResizeInput { """ Background color of the padding added when fit is contain. Defaults to #000000 """ background: CssColor """ How the image is fitted into width and height. Defaults to cover """ fit: PropertyUploadFit = cover """ Target height in pixels. When omitted, it is calculated from width, preserving the aspect ratio """ height: Int """ Part of the image to keep when fit is cover or contain """ position: PropertyUploadPosition """ Target width in pixels. When omitted, it is calculated from height, preserving the aspect ratio """ width: Int """ When true, an image already smaller than width or height is not enlarged. Defaults to false """ without_enlargement: Boolean = false } """ An additional version of an uploaded image, generated automatically after upload """ input PropertyUploadVersionInput { """ Effects applied to the version """ manipulate: PropertyUploadManipulateInput """ Name of the version, used to get its URL, for example `thumb` """ name: String! """ Format and compression of the version """ output: PropertyUploadOutputInput """ How the version is resized """ resize: PropertyUploadResizeInput } """ Full-text search conditions, evaluated against the search index """ input Query { """ Fields to search, each with its relevance weight. When omitted, all indexed fields are searched """ fields: [FullTextQueryField] """ Text to search for. Wildcards are accepted: `?` matches a single character, `*` any number of characters """ keyword: String """ How keyword is matched against words """ match_type: QueryMatchTypeEnum = EXACT """ How the words of keyword are combined: AND requires every word to match, OR at least one """ operator: OperatorEnum = AND """ Alias of fields """ properties: [FullTextQueryField] """ When true and fields is not given, records search matches the exact (not analyzed) value of every String and Text property of the table given in the filter (or of all tables). Has no effect for other queries """ raw: Boolean } """ Conditions for admin_assets """ input QueryAssetsFilterInput { """ Conditions on the content type, e.g. image/png """ content_type: StringFilter """ Conditions on the creation time """ created_at: DateFilter """ Conditions on the soft deletion time. When given, soft deleted items are included """ deleted_at: DateFilter """ Conditions on the file size in bytes """ file_size: RangeFilter """ Conditions on the id """ id: UniqIdFilter """ Conditions on whether the asset is managed manually instead of by deploys """ manually_managed: BooleanFilter """ Conditions on the metadata defined in the file. All conditions are combined with AND """ metadata: [JsonbFilter!] """ Conditions on the asset name, its path within the assets directory """ name: StringFilter """ Alternative condition sets: matches when at least one of them matches. Combined with AND with the other conditions """ or: [QueryAssetsFilterInput!] """ Conditions on the source file path relative to the app directory, e.g. views/pages/index.liquid """ physical_file_path: StringFilter """ Conditions on the last update time """ updated_at: DateFilter """ Deprecated, use deleted_at """ virtual_deleted_at: DateFilter } """ Property condition used by deprecated search queries. Deprecated, use PropertyFilterInput with records or users instead """ input QueryCustomAttribute { """ When true, value, values and range exclude matching results instead of selecting them """ exclude: Boolean = false """ Matches when the property is present (true) or missing (false) """ exists: Boolean """ Name of the property """ name: String! """ Matches when the property value is within the range """ range: Range """ Matches when the property is equal to this value """ value: String """ Matches against several values, combined according to values_operator """ values: [String] """ OR matches any of values, AND requires all of them """ values_operator: OperatorEnum = OR } """ Model schema condition for the deprecated customizations query. Deprecated, use QueryModelSchema """ input QueryCustomModelType { """ Id of the model schema """ id: Int """ Ids of the model schemas """ ids: [Int] """ Name of the model schema """ name: String """ Names of the model schemas """ names: [String] } """ Condition on attached customizations used by deprecated search queries. Deprecated, use related_records in records or users filters """ input QueryCustomization { """ Legacy: not used """ addresses: [QueryListingLocation] """ Id of the customization """ id: ID """ Name of the model schema of the customization """ name: String """ Legacy: not used """ parameterized_name: String """ Property conditions the customization must match """ properties: [QueryCustomAttribute] """ Id of the user owning the customization """ user_id: ID } """ Conditions for the deprecated listings and people queries. Deprecated, use records or users with filter instead """ input QueryListing { """ Address conditions """ addresses: [QueryListingLocation] """ Creation date range """ created_at: DateRange """ Conditions the creator must match """ creator: QueryUser """ Matches this creator id """ creator_id: ID """ Matches any of these creator ids """ creator_ids: [ID] """ Legacy: not used, use properties """ custom_attributes: [QueryCustomAttribute] """ Conditions on attached customizations """ customizations: [QueryCustomization] """ Matches this external id """ external_id: ID """ Matches any of these external ids """ external_ids: [ID] """ When true, only returns results that have a creator, and loads the creator """ has_creator: Boolean """ Unique identifier of the object """ id: ID """ Matches any of these ids """ ids: [ID] """ When true, returns only deleted results; when false, only not deleted ones """ is_deleted: Boolean """ Legacy: not used """ name: String """ Property conditions """ properties: [QueryCustomAttribute] """ Matches this slug """ slug: String """ Transactable type condition """ transactable_type: QueryTransactableType """ Ids excluded from results """ without_ids: [ID] } """ Address condition used by deprecated search queries. Deprecated, use PropertyFilterInput geo conditions instead """ input QueryListingLocation { """ Matches any of these cities """ cities: [String] """ City of the address """ city: String """ Country of the address """ country: String """ Matches when an address is present (true) or missing (false) """ exists: Boolean """ Geographic condition on the address location """ geo_query: GeoQuery """ Postcode of the address """ postcode: String """ State of the address """ state: String """ Street of the address """ street: String """ Suburb of the address """ suburb: String } """ How the search keyword is matched against words in the searched fields """ enum QueryMatchTypeEnum { """ Matches words containing the keyword, as if the keyword was `*keyword*` """ CONTAINS """ Matches words ending with the keyword, as if the keyword was `*keyword` """ ENDS_WITH """ Matches whole words as given; the keyword may contain its own `?` and `*` wildcards """ EXACT """ Matches words similar to each word of the keyword, tolerating typos, e.g. "Keywodr" matches "Keyword" """ FUZZY """ Matches words starting with the keyword, as if the keyword was `keyword*` """ STARTS_WITH } """ Model schema condition for the deprecated customizations query. Deprecated, use records with filter.table instead """ input QueryModelSchema { """ Id of the model schema """ id: Int """ Ids of the model schemas """ ids: [Int] """ Name of the model schema """ name: String """ Names of the model schemas """ names: [String] } """ Per-query execution options. When several root fields of one operation pass options, read_replica applies to the whole operation if any of them asks for it, and the largest timeout wins """ input QueryOptionsInput { """ When true, the whole operation reads from the read replica database, when one is configured and reachable; otherwise it reads from the primary database, as it also does inside a transaction. Replica data can lag slightly behind recent writes. """ read_replica: Boolean = false """ Database statement timeout in seconds, applied to every database query of the whole operation; must be greater than 0. Defaults to 19 seconds when options is given. Inside a transaction the timeout of the transaction applies instead. """ timeout: Int = 19 } """ Transactable type condition for the deprecated listings query. Deprecated, use records instead """ input QueryTransactableType { """ Id of the transactable type """ id: Int """ Ids of the transactable types """ ids: [Int] """ Name of the transactable type """ name: String """ Names of the transactable types """ names: [String] } """ User conditions for the deprecated people query. Deprecated, use users with filter instead """ input QueryUser { """ Creation date range """ created_at: DateRange """ Conditions on attached customizations """ customizations: [QueryCustomization] """ Matches this email """ email: String """ Matches any of these emails """ emails: [String] """ Matches this external id """ external_id: ID """ Legacy: not used """ externals_id: [ID] """ Matches this first name """ first_name: String """ Unique identifier of the object """ id: ID """ Matches any of these ids """ ids: [ID] """ When true, returns only deleted users; when false, only not deleted ones """ is_deleted: Boolean = false """ Matches this last name """ last_name: String """ Legacy: not used """ middle_name: String """ Legacy: not used """ name: String """ User profile conditions """ profiles: [QueryUserProfile] """ Matches this slug """ slug: String """ Ids excluded from results """ without_ids: [ID] } """ User profile condition for the deprecated people query. Deprecated, use users with filter.profiles instead """ input QueryUserProfile { """ Address conditions """ addresses: [QueryListingLocation] """ Legacy: not used, use properties """ custom_attributes: [QueryCustomAttribute] """ Conditions on customizations attached to the profile """ customizations: [QueryCustomization] """ Geographic condition on the profile location """ geo_query: GeoQuery """ Legacy: not used """ is_deleted: Boolean """ Name of the user profile type """ name: String """ Name of the user profile type; alias of name """ profile_type: String """ Property conditions the profile must match """ properties: [QueryCustomAttribute] } """ Value range condition used by deprecated property conditions. Deprecated, use RangeFilter instead """ input Range { """ Matches values greater than this value """ gt: String """ Matches values greater than or equal to this value """ gte: String """ Matches values lower than this value """ lt: String """ Matches values lower than or equal to this value """ lte: String } """ Bounds for a value, given as strings. All bounds given must match, so gte and lte together select an inclusive range. For record and user properties read from the database, numeric properties are compared as numbers and string, date and datetime properties are compared as text (so ISO 8601 dates sort correctly, while "9" is greater than "10"). In search-index queries (index_search) the comparison follows the indexed type of the property: numbers numerically, dates as dates, text alphabetically """ input RangeFilter { """ Matches values greater than the given value """ gt: String """ Matches values greater than or equal to the given value """ gte: String """ Matches values lower than the given value """ lt: String """ Matches values lower than or equal to the given value """ lte: String } """ Record: a row of a table defined in app/schema, holding its values in properties """ type Record implements HasModelsInterfaceForRecords & HasRecordsInterface & HasUsersInterface & PropertiesInterface & RemoteRecordsInterface & RemoteUsersInterface { """ Returns the legacy address property with the given name. Deprecated, store addresses in your own table """ address( """ Name of the address property """ name: String! ): CustomAddrress @deprecated(reason: "use your own model for address if needed") """ Returns legacy address properties, optionally only those with the given name. Deprecated, store addresses in your own table """ addresses( """ Name of the address property; all when omitted """ name: String ): [CustomAddrress!] @deprecated(reason: "use your own model for address if needed") """ Returns the legacy attachment property with the given name. Deprecated, use property_upload """ attachment( """ Name of the attachment property """ name: String! ): PrivateFile @deprecated(reason: "use property upload") """ Returns legacy attachment properties, optionally only those with the given name. Deprecated, use property_upload """ attachments( """ Name of the attachment property; all when omitted """ name: String ): [PrivateFile!] @deprecated(reason: "use property upload") """ Timestamp of when the object was created, set automatically by the system """ created_at: JSONDate! """ Deprecated, ID of the attached-to object """ customizable_id: ID @deprecated(reason: "Use property to store foreign keys") """ Deprecated, type of the attached-to object """ customizable_type: String @deprecated(reason: "Use property to store foreign keys") """ Timestamp of when the object was soft deleted, populated by the delete action. It is also possible to set it manually via update. To undelete, change it back to an empty value; note that associated objects need to be undeleted manually as well. """ deleted_at: JSONDate """ Identifier of the object in an external system. Used mainly for import/export, when a third party service is the source of truth """ external_id: ID """ Unique identifier of the object """ id: ID """ Returns the legacy image property with the given name. Deprecated, use property_upload """ image( """ Name of the image property """ name: String! ): Image @deprecated(reason: "use property upload") """ Returns legacy image properties, optionally only those with the given name. Deprecated, use property_upload """ images( """ Name of the image property; all when omitted """ name: String ): [Image!] @deprecated(reason: "use property upload") """ Returns one related model. Deprecated, use related_record """ model( """ Additional conditions the related objects must match """ filter: ModelsFilterInput """ Name of the property (or attribute) of the related object equal to join_on_property """ foreign_property: String = "id" """ Name of the property (or attribute) of this object matched against foreign_property """ join_on_property: String! """ Name of the model schema (table) of the related models """ model_name: [String]! """ Sort order of the results. When several entries are given, they are applied in the given order """ sort: [ModelsSortInput!] ): Model @deprecated(reason: "use `related_record`") """ Deprecated, use table_id """ model_schema_id: ID! @deprecated(reason: "use table_id") """ Deprecated, use table """ model_schema_name: String @deprecated(reason: "use table") """ Returns related models. Deprecated, use related_records """ models( """ Name of the property (or attribute) of the related object equal to join_on_property """ foreign_property: String! """ Name of the property (or attribute) of this object matched against foreign_property """ join_on_property: String! """ Maximum number of related objects returned for each object """ limit: Int """ Name of the model schema (table) of the related models """ model_name: [String]! """ Sort order of the results. When several entries are given, they are applied in the given order """ sort: [ModelsSortInput!] ): [Model!] @deprecated(reason: "use `related_records`") """ Deprecated, use table """ name: String @deprecated(reason: "use table") """ All properties of the object as an object keyed by property name """ properties( """ Properties to return, each converted to the given type (as by the matching property_* field; other types become strings); all properties as stored when omitted """ select: [PropertiesFieldInput!] ): HashObject """ Returns the value of the property with the given name as a string; ex: hair_color: property(name: "hair_color") """ property( """ Name of the property """ name: String! ): String """ Returns the value of the property with the given name as an array of strings; a single value is wrapped in an array and no value gives an empty array; ex: todo_list: property_array(name: "todo_list") """ property_array( """ Name of the property """ name: String! ): [String!] """ Returns the value of the property with the given name as a boolean. Accepts true/false values and the strings "t"/"T" and "f"/"F"; any other value returns an error; ex: enabled: property_boolean(name: "enabled") """ property_boolean( """ Name of the property """ name: String! ): Boolean """ Returns the value of the property with the given name as a float; returns an error when the value is not a number; ex: price: property_float(name: "price") """ property_float( """ Name of the property """ name: String! ): Float """ Returns the value of the property with the given name as an integer; returns an error when the value cannot be converted, e.g. "abc" or "1.5"; ex: age: property_int(name: "age") """ property_int( """ Name of the property """ name: String! ): Int """ Returns the value of the property with the given name as stored, without conversion """ property_json( """ Name of the property """ name: String! ): JSONPayload """ Returns the value of the property with the given name parsed from JSON text into an object; returns an error when the value is not valid JSON """ property_object( """ Name of the property """ name: String! ): HashObject """ Returns the file stored in the given upload property; ex: avatar: property_upload(name: "avatar") { url } """ property_upload( """ Number of seconds for which the returned URLs are valid. When given, signed URLs are returned; required to access files uploaded with acl private """ expires_in: Int """ Name of the upload property """ name: String! ): PropertyUpload """ Returns one related model. Deprecated, use related_record """ related_model( """ Additional conditions the related objects must match """ filter: ModelsFilterInput """ Name of the property (or attribute) of the related object equal to join_on_property """ foreign_property: String = "id" """ Name of the property (or attribute) of this object matched against foreign_property """ join_on_property: String! """ Name of the model schema (table) of the related models """ model_schema_name: [String]! """ Sort order of the results. When several entries are given, they are applied in the given order """ sort: [ModelsSortInput!] ): Model @deprecated(reason: "use `related_record`") """ Returns related models. Deprecated, use related_records """ related_models( """ Additional conditions the related objects must match """ filter: ModelsFilterInput """ Name of the property (or attribute) of the related object equal to join_on_property """ foreign_property: String! """ Name of the property (or attribute) of this object matched against foreign_property """ join_on_property: String! """ Maximum number of related objects returned for each object """ limit: Int """ Name of the model schema (table) of the related models """ model_schema_name: [String]! """ Sort order of the results. When several entries are given, they are applied in the given order """ sort: [ModelsSortInput!] ): [Model!] @deprecated(reason: "use `related_records`") """ Returns one record of the given table whose foreign_property equals the value of join_on_property of this object (belongs-to or has-one relation). When several records match, the last one in sort order is returned, by default the most recently updated; ex: parent: related_record(table: "parent", join_on_property: "parent_id") { id } """ related_record( """ Additional conditions the related record must match """ filter: RecordsFilterInput """ Name of the property (or attribute, e.g. id) of the related object that must equal the value of join_on_property """ foreign_property: String = "id" """ Name of the property (or attribute, e.g. id or user_id) of this object whose value is matched against foreign_property. When the value is an array, records matching any of its elements are returned. Returns an error when this object has no such property """ join_on_property: String! """ Sort order used to pick the record; updated_at ascending when omitted """ sort: [RecordsSortInput!] """ Name of the table (or tables) the related record belongs to """ table: [String]! ): Record """ Returns records of the given table whose foreign_property equals the value of join_on_property of this object (has-many relation). Related records of all objects in the result are loaded in one batch of at most 10,000 records, soft-deleted records are skipped; ex: children: related_records(table: "child", join_on_property: "id", foreign_property: "parent_id") { id } """ related_records( """ Additional conditions the related records must match """ filter: RecordsFilterInput """ Name of the property (or attribute, e.g. id) of the related object that must equal the value of join_on_property """ foreign_property: String! """ Name of the property (or attribute, e.g. id or user_id) of this object whose value is matched against foreign_property. When the value is an array, records matching any of its elements are returned. Returns an error when this object has no such property """ join_on_property: String! """ Maximum number of related objects returned for each object """ limit: Int """ Sort order of the related records; updated_at ascending when omitted """ sort: [RecordsSortInput!] """ Name of the table (or tables) the related records belong to """ table: [String]! ): [Record!] """ Returns the user whose foreign_property equals the value of join_on_property of this object (belongs-to relation); by default the user whose id is in user_id; ex: invited_by: related_user(join_on_property: "invited_by_id") { id } """ related_user( """ Additional conditions the related user must match """ filter: UsersFilterInput """ Name of the property (or attribute, e.g. id, email, slug or external_id) of the user that must equal the value of join_on_property """ foreign_property: String = "id" """ Name of the property (or attribute) of this object whose value is matched against foreign_property. Must not be an array (use related_users). Returns an error when this object has no such property """ join_on_property: String = "user_id" """ Sort order used to pick the user when several match; the last one is returned """ sort: [UsersSortInput!] ): User """ Returns users whose foreign_property equals the value of join_on_property of this object (has-many relation). Related users of all objects in the result are loaded in one batch of at most 10,000 users, soft-deleted users are skipped; ex: members: related_users(join_on_property: "id", foreign_property: "company_id") { id } """ related_users( """ Additional conditions the related users must match """ filter: UsersFilterInput """ Name of the property (or attribute, e.g. id, email, slug or external_id) of the user that must equal the value of join_on_property """ foreign_property: String! """ Name of the property (or attribute, e.g. id) of this object whose value is matched against foreign_property. When the value is an array, users matching any of its elements are returned. Returns an error when this object has no such property """ join_on_property: String! """ Maximum number of related objects returned for each object """ limit: Int """ Sort order of the results. When several entries are given, they are applied in the given order """ sort: [UsersSortInput!] ): [User!] """ Returns records loaded from a remote endpoint: the value of join_on_property is sent as ids and the records in the JSON response are returned. Requests of all objects in the result are batched. Not available while serving a request made by another platformOS remote fetch (returns null) """ remote_records( """ Remote endpoint returning the resources for the given ids as JSON """ endpoint: Endpoint! """ Name of the property of this object holding the id (or array of ids) to request """ join_on_property: String! ): [Record!] """ Returns users loaded from a remote endpoint: the value of join_on_property is sent as ids and the users in the JSON response are returned. Requests of all objects in the result are batched. Not available while serving a request made by another platformOS remote fetch (returns null) """ remote_users( """ Remote endpoint returning the resources for the given ids as JSON """ endpoint: Endpoint! """ Name of the property of this object holding the id (or array of ids) to request """ join_on_property: String! ): [User!] """ Name of the table the record belongs to; "DELETED" for a soft-deleted record whose table no longer exists """ table: String """ ID of the table the record belongs to """ table_id: ID! """ Timestamp of when the object was last updated, set automatically by the system """ updated_at: JSONDate! """ Returns the related user. Deprecated, use related_user """ user( """ Name of the property (or attribute) of the related object equal to join_on_property """ foreign_property: String = "id" """ Name of the property (or attribute) of this object matched against foreign_property """ join_on_property: String = "user_id" """ Sort order of the results. When several entries are given, they are applied in the given order """ sort: [UsersSortInput!] ): User @deprecated(reason: "use `related_user`") """ ID of the user who owns the record """ user_id: ID """ Returns related users. Deprecated, use related_users """ users( """ Name of the property (or attribute) of the related object equal to join_on_property """ foreign_property: String! """ Name of the property (or attribute) of this object matched against foreign_property """ join_on_property: String! """ Maximum number of related objects returned for each object """ limit: Int """ Sort order of the results. When several entries are given, they are applied in the given order """ sort: [UsersSortInput!] ): [User!] @deprecated(reason: "use `related_users`") } """ Page of records with pagination details """ type RecordCollection { """ Number of the page returned in results """ current_page: Int! """ True when there is at least one page after the current one """ has_next_page: Boolean! """ True when the current page is not the first one """ has_previous_page: Boolean! """ Maximum number of results returned on a single page """ per_page: Int! """ Results on the current page """ results: [Record!] """ Total number of results matching the query, across all pages """ total_entries: Int! """ Total number of pages, given per_page """ total_pages: Int! } """ Record created by records_create """ type RecordCreate { """ ID of the created record """ id: ID! """ Name of the table the record belongs to """ table: String! } """ Attributes of a record to create or update """ input RecordInputType { """ Legacy custom attachments. Deprecated, use properties of type upload with value_upload instead """ attachments: [AtachmentInputType] """ Timestamp of when the object was created, set automatically by the system. Can be overridden by record_update """ created_at: JSONDate """ Timestamp of when the object was soft deleted, populated by the delete action. It is also possible to set it manually via update. To undelete, change it back to an empty value; note that associated objects need to be undeleted manually as well. """ deleted_at: JSONDate """ Identifier of the object in an external system. Used mainly for import/export, when a third party service is the source of truth """ external_id: ID """ Not used to identify the record; record_update takes the id as a separate argument """ id: ID """ Legacy custom images. Deprecated, use properties of type upload with value_upload instead """ images: [ImageInputType] """ Values of the properties to set """ properties: [PropertyInputType] """ Nested records created as children of this record """ records: [RecordsInputType] """ Name of the table the record belongs to. Required by record_create; in records_update_all, a table different from the table argument moves the matching records to this table """ table: String """ Timestamp of when the object was last updated, set automatically by the system. Can be overridden by record_update """ updated_at: JSONDate """ ID of the user who owns the record """ user_id: ID } """ Record to create with records_create """ input RecordsCreateInputType { """ Currently ignored by records_create; set to the current time """ created_at: JSONDate """ Currently ignored by records_create """ deleted_at: JSONDate """ Currently ignored by records_create """ external_id: ID """ ID to give the record; generated when omitted. Must not be used by another record """ id: ID """ Property values, stored as given without validation """ properties: PropertiesObject """ Name of the table the record belongs to """ table: String """ Currently ignored by records_create; set to the current time """ updated_at: JSONDate } """ Conditions records must match. All given conditions are combined with AND; use `or` for alternatives. Soft deleted records are excluded unless deleted_at is used """ input RecordsFilterInput { """ Condition on the creation time """ created_at: DateFilter """ Condition on the soft deletion time. Using it makes soft deleted records eligible, e.g. `deleted_at: { exists: true }` returns only deleted records """ deleted_at: DateFilter """ Condition on the external id """ external_id: StringFilter """ Full-text search using the search index. Matching records are ordered by relevance after any given sort, and only the best matching 10,000 are considered. Only used at the top level of the filter (ignored inside or and related_records) """ fulltext: Query """ Condition on the record id """ id: UniqIdFilter """ Alternative sets of conditions: matches records meeting at least one of them, in addition to the other conditions of this filter """ or: [RecordsFilterInput!] """ Conditions on properties; every entry must match """ properties: [PropertyFilterInput!] """ Matches records related to records meeting the given conditions; when several entries are given, all must match """ related_records: [RelatedRecordsFilterInput!] """ Matches records related to users meeting the given conditions; when several entries are given, all must match """ related_users: [RelatedUsersFilterInput!] """ Condition on the name of the table the records belong to. Name comparisons are case sensitive. Giving the table also lets property conditions detect property types """ table: StringFilter """ Condition on the id of the table the records belong to """ table_id: UniqIdFilter """ Condition on the last update time """ updated_at: DateFilter """ Condition on the id of the user who owns the record """ user_id: UniqIdFilter } """ Nested record created as a child of the parent record """ input RecordsInputType { """ Name of the table of the nested record """ table: String """ Attributes of the nested record """ values: RecordInputType } """ Sort order for records """ input RecordsSortInput { """ Sort by creation time """ created_at: StandardSort """ Sort by soft deletion time """ deleted_at: StandardSort """ Sort by external id """ external_id: StandardSort """ Sort by id """ id: StandardSort """ Sort by property values, applied in the given order """ properties: [PropertySort!] """ When true, returns results in random order """ random_sort: Boolean """ Sort by table id """ table_id: StandardSort """ Sort by last update time """ updated_at: StandardSort } """ Matches when at least one related model meets filter. Deprecated, use RelatedRecordsFilterInput """ input RelatedModelsFilterInput { """ Conditions the related model must meet """ filter: ModelsFilterInput """ How related models are joined; must be given """ join: JoinModelCollection } """ Matches when at least one related record meets filter, with records related through join """ input RelatedRecordsFilterInput { """ Conditions the related record must meet """ filter: RecordsFilterInput """ How related records are joined """ join: JoinRecordCollection! } """ Matches when at least one related user meets filter, with users related through join """ input RelatedUsersFilterInput { """ Conditions the related user must meet """ filter: UsersFilterInput """ How related users are joined; must be given """ join: JoinModelCollection } """ Deprecated relations of legacy objects to models and users """ interface RelationOnDemandInterface { """ Returns the related model. Deprecated, use related_model """ model( """ Name of the property of the related object that must equal the value of join_on_property """ foreign_property: String = "id" """ Name of the property of this object whose value is matched against foreign_property """ join_on_property: String """ Name of the model schema (table) of the related models """ model_name: String ): ListingsCustomization @deprecated(reason: "use `related_model`") """ Returns related models. Deprecated, use related_models """ models( """ Name of the property of the related object that must equal the value of join_on_property """ foreign_property: String! """ Name of the property of this object whose value is matched against foreign_property """ join_on_property: String! """ Name of the model schema (table) of the related models """ model_name: [String] ): [ListingsCustomization!] @deprecated(reason: "use `related_models`") """ Returns the model whose foreign_property equals the value of join_on_property of this object (belongs-to relation). Legacy relation, use related_record of Record instead """ related_model( """ Name of the property of the related object that must equal the value of join_on_property """ foreign_property: String = "id" """ Name of the property of this object whose value is matched against foreign_property """ join_on_property: String """ Name of the model schema (table) of the related models """ model_schema_name: String ): ListingsCustomization """ Returns models whose foreign_property equals the value of join_on_property of this object (has-many relation), at most 10000 at once. Legacy relation, use related_records of Record instead """ related_models( """ Name of the property of the related object that must equal the value of join_on_property """ foreign_property: String! """ Name of the property of this object whose value is matched against foreign_property """ join_on_property: String! """ Name of the model schema (table) of the related models """ model_schema_name: [String] ): [ListingsCustomization!] """ Returns the user whose foreign_property equals the value of join_on_property of this object; by default the user whose id is in user_id """ related_user( """ Name of the user attribute that must equal the value of join_on_property """ foreign_property: String = "id" """ Name of the property of this object holding the user id """ join_on_property: String = "user_id" ): User """ Returns the related user. Deprecated, use related_user """ user( """ Name of the user attribute that must equal the value of join_on_property """ foreign_property: String = "id" """ Name of the property of this object holding the user id """ join_on_property: String = "user_id" ): User @deprecated(reason: "use `related_users`") } """ Deprecated relation to an object loaded over HTTP from a remote endpoint """ interface RemoteModelInterface { """ Returns an object loaded from the remote endpoint by the id stored in join_on_property. Deprecated, use remote_records """ remote_model( """ Remote endpoint returning the resources for the given ids as JSON """ endpoint: Endpoint! """ Name of the property of this object holding the id (or array of ids) to request """ join_on_property: String! ): Customization } """ Object that can load related records over HTTP from a remote endpoint """ interface RemoteRecordsInterface { """ Returns records loaded from a remote endpoint: the value of join_on_property is sent as ids and the records in the JSON response are returned. Requests of all objects in the result are batched. Not available while serving a request made by another platformOS remote fetch (returns null) """ remote_records( """ Remote endpoint returning the resources for the given ids as JSON """ endpoint: Endpoint! """ Name of the property of this object holding the id (or array of ids) to request """ join_on_property: String! ): [Record!] } """ Object that can load related users over HTTP from a remote endpoint """ interface RemoteUsersInterface { """ Returns users loaded from a remote endpoint: the value of join_on_property is sent as ids and the users in the JSON response are returned. Requests of all objects in the result are batched. Not available while serving a request made by another platformOS remote fetch (returns null) """ remote_users( """ Remote endpoint returning the resources for the given ids as JSON """ endpoint: Endpoint! """ Name of the property of this object holding the id (or array of ids) to request """ join_on_property: String! ): [User!] } """ HTTP response returned by the called server """ type Response { """ Response body as returned by the server """ body: String """ Response headers returned by the server """ headers: HashObject """ HTTP status code of the response """ status: Int! } """ Resource saved by form_submit """ type Result { """ Attributes changed by the submission """ changes: HashObject """ Saved model, when the form is for a model """ model: Model """ Saved transactable, when the form is for a transactable """ transactable: Transactable @deprecated(reason: "use model") """ Saved user, when the form is for a user """ user: User } """ Entry point of all mutations: operations that create, change or delete data, or trigger side effects such as sending notifications """ type RootMutation { """ Creates an activity and returns it. The activity gets a generated UUID, which is also added to its payload as uuid. It is not added to any feed; use activity_publish for that. """ activity_create( """ Activity data as a JSON object, typically in the Activity Streams format (type, actor, object, target) """ payload: ActivityStreamsPayload! ): ActivityStreamsActivity @doc(category: "Activity feeds") """ Permanently deletes every activity and removes every feed of the instance. Does nothing unless confirm is true. """ activity_delete_all( """ Must be true for the activities and feeds to be deleted """ confirm: Boolean = false ): [ID] @doc(category: "Activity feeds") """ Adds an activity to the feeds of the given owners. A feed is identified by its type and its owner id; it keeps the 2000 most recent entries and older ones are dropped. """ activity_publish( """ Time the entry is ordered by in the feeds. Defaults to now """ at: ISO8601DateTime """ Name of the feed type, e.g. User, UserPrivate, AuditLog, Images or Posts. Any name can be used """ feed_type: String! """ Ids of the feed owners (for example user ids) whose feeds of this type receive the activity """ ids: [ID]! """ UUID of the activity to add, as returned by activity_create """ uuid: ID! ): JSONDate @doc(category: "Activity feeds") """ Removes activities from every feed they were published to. The activities themselves are not deleted. Arguments can be combined; each one removes the activities it matches. """ activity_unpublish( """ Removes every activity whose actor, object, target or attributted_to is {"id": "<record_id>"} """ record_id: ID """ Removes every activity whose payload contains "id": "<type>.<id>" for the given type and id (ids is ignored) """ related_to_object: ActiveRecordReference """ UUID of an activity to remove from all feeds """ uuid: ID ): [ID] @doc(category: "Activity feeds") """ Removes every feed of the instance. Activities are not deleted. Does nothing unless confirm is true. """ activity_unpublish_all( """ Must be true for the feeds to be removed """ confirm: Boolean = false ): [ID] @doc(category: "Activity feeds") """ Creates an API call, the same as deploying an api_calls/*.liquid file, which can then be sent with the api_call_send mutation. Raises a validation error if an API call with the same physical_file_path or name already exists """ admin_api_call_notification_create( """ Attributes of the new API call """ api_call_notification: ApiCallNotificationInputType! ): ApiCallNotification @doc(category: "Admin") """ Deletes (soft-deletes) an API call found by physical_file_path (or the deprecated id) and returns it. Raises an error when the API call does not exist; API calls stored in a private module directory cannot be deleted """ admin_api_call_notification_delete( """ Deprecated, use physical_file_path. Id of the API call to delete """ id: ID """ physical_file_path of the API call to delete; takes precedence over id """ physical_file_path: String ): ApiCallNotification @doc(category: "Admin") """ Updates an API call found by physical_file_path (or the deprecated id) and returns it. Raises an error when the API call does not exist; API calls stored in a private module directory cannot be updated """ admin_api_call_notification_update( """ Attributes to change """ api_call_notification: UpdateApiCallNotificationInputType! """ Deprecated, use physical_file_path. Id of the API call to update """ id: ID """ Current physical_file_path of the API call to update; takes precedence over id """ physical_file_path: String ): ApiCallNotification @doc(category: "Admin") """ Deletes an asset found by physical_file_path, including its file in storage, and returns it. The file cannot be recovered. Already deleted assets are found too. Raises an error when no such asset exists """ admin_asset_delete( """ physical_file_path of the asset to delete, for example `assets/images/logo.png` """ physical_file_path: String! ): Asset @doc(category: "Admin") """ Deletes (soft-deletes) all assets matching the filter in a background job and returns `scheduled`. Already deleted assets are matched too unless the filter excludes them """ admin_asset_delete_all( """ Conditions the deleted assets must match """ filter: MutationAssetsFilterInput! """ When true, the files are also removed from storage and cannot be recovered. Defaults to false """ hard_delete: Boolean = false ): String @doc(category: "Admin") """ Updates an asset found by physical_file_path and returns it; when the new physical_file_path differs, the file is moved in storage. Raises an error when no such asset exists; assets stored in a private module directory cannot be updated """ admin_asset_update( """ Attributes to change """ asset: AssetUpdateInput! """ Current physical_file_path of the asset to update """ physical_file_path: String! ): Asset @doc(category: "Admin") """ Applies the same changes to all assets matching the filter in a background job and returns the number of matched assets. Deleted assets and assets stored in a private module directory are never matched """ admin_asset_update_all( """ Attributes to change """ asset: AssetUpdateAllInput! """ Conditions the updated assets must match """ filter: MutationAssetsFilterInput! ): ObjectCount @doc(category: "Admin") """ Creates or updates assets by name in one call and returns them. Only the asset metadata is saved; upload the files separately. Raises a validation error, saving nothing, if any asset is invalid """ admin_assets_create( """ Assets to create or update; duplicate entries are saved once """ assets: [AssetInput!]! ): AssetsCreateMutationPayload @doc(category: "Admin") """ Schedules a background job that generates a listing of all assets currently in storage. Returns the ID to pass to the admin_assets_listing query, which reports the status and the result. """ admin_assets_listing_create: AssetsListingIdentifier! @doc(category: "Admin") """ Returns temporary upload URLs for asset files, one per requested path, in the same order. Uploading a file does not register it; register it with admin_assets_create """ admin_assets_presign_urls( """ Asset files to get upload URLs for """ paths: [AssetPresignInput!]! ): AssetsPresignUrlsMutationPayload @doc(category: "Admin") """ Creates an authorization policy, a Liquid condition that guards access to the pages it is attached to. Raises a validation error if a policy with the same physical_file_path or name already exists """ admin_authorization_policy_create( """ Attributes of the new authorization policy """ authorization_policy: AuthorizationPolicyInputType! ): AuthorizationPolicy @doc(category: "Admin") """ Deletes (soft-deletes) an authorization policy found by physical_file_path (or the deprecated id), detaches it from all pages using it, and returns it. Raises an error when the policy does not exist; policies stored in a private module directory cannot be deleted """ admin_authorization_policy_delete( """ Deprecated, use physical_file_path. Id of the policy to delete """ id: ID """ physical_file_path of the policy to delete; takes precedence over id """ physical_file_path: String ): AuthorizationPolicy @doc(category: "Admin") """ Updates an authorization policy found by physical_file_path (or the deprecated id) and returns it. Raises an error when the policy does not exist; policies stored in a private module directory cannot be updated """ admin_authorization_policy_update( """ Attributes to change """ authorization_policy: UpdateAuthorizationPolicyInputType! """ Deprecated, use physical_file_path. Id of the policy to update """ id: ID """ Current physical_file_path of the policy to update; takes precedence over id """ physical_file_path: String ): AuthorizationPolicy @doc(category: "Admin") """ Deletes a scheduled, retrying or dead background job of this instance and returns it. Raises "Job not found" when no such job exists; running jobs cannot be deleted """ admin_background_job_delete( """ Id of the background job, as returned by admin_background_jobs """ id: ID! ): BackgroundJob @doc(category: "Admin") """ Re-runs a dead background job (one that failed and has no retries left) of this instance right away and returns it. Raises "Jobs not found" when no such dead job exists """ admin_background_job_retry( """ Id of the dead background job, as returned by admin_background_jobs """ id: ID! ): BackgroundJob @doc(category: "Admin") """ Deletes background jobs of this instance that match the filter and have not run yet or have failed, and returns the deleted jobs. Looks at scheduled jobs unless filter.type says otherwise. Deletes at most 100 jobs per call (the first page of matches), so repeat the call until no results are returned """ admin_background_jobs_delete_all( """ Conditions the deleted jobs must match; when omitted, all scheduled jobs are deleted (up to 100) """ filter: BackgroundJobsFilterInput ): BackgroundJobsResult @doc(category: "Admin") """ Creates an email notification, the same as deploying an emails/*.liquid file, which can then be sent with the email_send mutation. Raises a validation error if an email with the same physical_file_path or name already exists, or if any Liquid attribute does not parse """ admin_email_notification_create( """ Attributes of the new email notification """ email_notification: EmailNotificationInputType! ): EmailNotification @doc(category: "Admin") """ Deletes (soft-deletes) an email notification found by physical_file_path (or the deprecated id) and returns it. Raises an error when the email does not exist; emails stored in a private module directory cannot be deleted """ admin_email_notification_delete( """ Deprecated, use physical_file_path. Id of the email notification to delete """ id: ID """ physical_file_path of the email notification to delete; takes precedence over id """ physical_file_path: String ): EmailNotification @doc(category: "Admin") """ Deletes (soft-deletes) all email notifications matching the filter in a background job and returns the number of matched notifications. Notifications stored in a private module directory are never matched """ admin_email_notification_delete_all( """ Conditions the deleted email notifications must match """ filter: EmailNotificationsFilterInput! ): ObjectCount @doc(category: "Admin") """ Updates an email notification found by physical_file_path (or the deprecated id) and returns it. Raises an error when the email does not exist; emails stored in a private module directory cannot be updated """ admin_email_notification_update( """ Attributes to change """ email_notification: UpdateEmailNotificationInputType! """ Deprecated, use physical_file_path. Id of the email notification to update """ id: ID """ Current physical_file_path of the email notification to update; takes precedence over id """ physical_file_path: String ): EmailNotification @doc(category: "Admin") """ Applies the same changes to all email notifications matching the filter in a background job and returns the number of matched notifications. Notifications stored in a private module directory are never matched. The job stops at the first notification that fails validation """ admin_email_notification_update_all( """ Attributes to change on every matched notification; trigger_condition and delay_by are reset to their defaults unless given """ email_notification: UpdateEmailNotificationInputType! """ Conditions the updated email notifications must match """ filter: EmailNotificationsFilterInput! ): ObjectCount @doc(category: "Admin") """ Deprecated, use admin_property_create. Adds a property to a table or to the user schema """ admin_field_create( """ Attributes of the new property """ field: StandalonePropertyInputType! ): Property @deprecated(reason: "Use admin_property_create") @doc(category: "Deprecated") """ Deprecated, use admin_property_delete. Deletes a property """ admin_field_delete( """ Id of the property to delete """ id: ID! ): Property @deprecated(reason: "Use admin_property_delete") @doc(category: "Deprecated") """ Deprecated, use admin_property_update. Updates a property """ admin_field_update( """ Attributes to change """ field: UpdateStandalonePropertyInputType! """ Id of the property to update """ id: ID! ): Property @deprecated(reason: "Use admin_property_update") @doc(category: "Deprecated") """ Deprecated, use admin_form_create. Creates a form """ admin_form_configuration_create( """ Attributes of the new form """ form_configuration: FormConfigurationInputType! ): FormConfiguration @deprecated(reason: "Use admin_form_create") @doc(category: "Deprecated") """ Deprecated, use admin_form_delete. Deletes a form """ admin_form_configuration_delete( """ Id of the form to delete """ id: ID! ): FormConfiguration @deprecated(reason: "Use admin_form_delete") @doc(category: "Deprecated") """ Deprecated, use admin_form_update. Updates a form """ admin_form_configuration_update( """ Attributes to change """ form_configuration: UpdateFormConfigurationInputType! """ Id of the form to update """ id: ID! ): FormConfiguration @deprecated(reason: "Use admin_form_update") @doc(category: "Deprecated") """ Creates a form. Deprecated, use a page with a GraphQL mutation instead """ admin_form_create( """ Attributes of the new form """ form: FormInput! ): Form @deprecated(reason: "Use page with mutation") @doc(category: "Deprecated") """ Deletes (soft-deletes) a form found by physical_file_path (or the deprecated id). Deprecated, use a page with a GraphQL mutation instead """ admin_form_delete( """ Deprecated, use physical_file_path. Id of the form to delete """ id: ID """ physical_file_path of the form to delete; takes precedence over id """ physical_file_path: String ): Form @deprecated(reason: "Use page with mutation") @doc(category: "Deprecated") """ Deletes (soft-deletes) all forms matching the filter in a background job and returns the number of matched forms. Deprecated, use a page with a GraphQL mutation instead """ admin_form_delete_all( """ Conditions the deleted forms must match """ filter: FormsFilterInput! ): ObjectCount @deprecated(reason: "Use page with mutation") @doc(category: "Deprecated") """ Updates a form found by physical_file_path (or the deprecated id). Deprecated, use a page with a GraphQL mutation instead """ admin_form_update( """ Attributes to change """ form: UpdateFormInput! """ Deprecated, use physical_file_path. Id of the form to update """ id: ID """ Current physical_file_path of the form to update; takes precedence over id """ physical_file_path: String ): Form @deprecated(reason: "Use page with mutation") @doc(category: "Deprecated") """ Applies the same changes to all forms matching the filter in a background job and returns the number of matched forms. Deprecated, use a page with a GraphQL mutation instead """ admin_form_update_all( """ Conditions the updated forms must match """ filter: FormsFilterInput! """ Attributes to change on every matched form """ form: UpdateFormInput! ): ObjectCount @deprecated(reason: "Use page with mutation") @doc(category: "Deprecated") """ Creates a stored GraphQL query or mutation that can be run with the graphql tag. Never updates an existing one: raises a validation error if one with the same name already exists or if the body is not valid GraphQL """ admin_graphql_create( """ Attributes of the new query """ graphql: GraphqlInputType! ): GraphQL @doc(category: "Admin") """ Permanently deletes a stored GraphQL query found by physical_file_path and returns it. Raises an error when no such query exists """ admin_graphql_delete( """ physical_file_path of the query to delete """ physical_file_path: String! ): GraphQL @doc(category: "Admin") """ Updates a stored GraphQL query found by physical_file_path and returns it. Raises an error when no such query exists; queries stored in a private module directory cannot be updated """ admin_graphql_update( """ Attributes to change """ graphql: UpdateGraphqlInputType! """ Current physical_file_path of the query to update """ physical_file_path: String! ): GraphQL @doc(category: "Admin") """ Creates a layout, the Liquid template pages are rendered into. Never updates an existing layout: raises a validation error if the path is already taken or the body is not valid Liquid """ admin_liquid_layout_create( """ Attributes of the new layout """ liquid_layout: LiquidLayoutInputType! ): LiquidLayout @doc(category: "Admin") """ Permanently deletes a layout found by physical_file_path (or the deprecated id) and returns it. Pages that still use the layout are not checked. Raises an error when no such layout exists """ admin_liquid_layout_delete( """ Deprecated, use physical_file_path. Id of the layout to delete """ id: ID """ physical_file_path of the layout to delete; takes precedence over id """ physical_file_path: String ): LiquidLayout @doc(category: "Admin") """ Permanently deletes all layouts matching the filter and returns the number of matched layouts. Runs in a background job unless sync is true; layouts that fail to delete are skipped """ admin_liquid_layout_delete_all( """ Conditions the deleted layouts must match """ filter: LiquidLayoutsFilterInput! """ When true, the deletion finishes before the mutation returns instead of in a background job """ sync: Boolean = false ): ObjectCount @doc(category: "Admin") """ Updates a layout found by physical_file_path (or the deprecated id) and returns it. Raises an error when no such layout exists """ admin_liquid_layout_update( """ Deprecated, use physical_file_path. Id of the layout to update """ id: ID """ Attributes to change """ liquid_layout: UpdateLiquidLayoutInputType! """ Current physical_file_path of the layout to update; takes precedence over id """ physical_file_path: String ): LiquidLayout @doc(category: "Admin") """ Applies the same changes to all layouts matching the filter in a background job and returns the number of matched layouts. The job stops at the first layout that fails validation """ admin_liquid_layout_update_all( """ Conditions the updated layouts must match """ filter: LiquidLayoutsFilterInput! """ Attributes to change on every matched layout; format is reset to html unless given """ liquid_layout: UpdateLiquidLayoutInputType! ): ObjectCount @doc(category: "Admin") """ Creates a partial, a reusable Liquid template rendered with the render, include or function tags. Never updates an existing partial: raises a validation error if the path is already taken or the body is not valid Liquid """ admin_liquid_partial_create( """ Attributes of the new partial """ liquid_partial: LiquidPartialInputType! ): LiquidPartial @doc(category: "Admin") """ Permanently deletes a partial found by physical_file_path (or the deprecated id) and returns it. Raises an error when no such partial exists """ admin_liquid_partial_delete( """ Deprecated, use physical_file_path. Id of the partial to delete """ id: ID """ physical_file_path of the partial to delete; takes precedence over id """ physical_file_path: String ): LiquidPartial @doc(category: "Admin") """ Permanently deletes all partials matching the filter and returns the number of matched partials. Runs in a background job unless sync is true; partials that fail to delete are skipped """ admin_liquid_partial_delete_all( """ Conditions the deleted partials must match """ filter: LiquidPartialsFilterInput! """ When true, the deletion finishes before the mutation returns instead of in a background job """ sync: Boolean = false ): ObjectCount @doc(category: "Admin") """ Updates a partial found by physical_file_path (or the deprecated id) and returns it. Raises an error when no such partial exists """ admin_liquid_partial_update( """ Deprecated, use physical_file_path. Id of the partial to update """ id: ID """ Attributes to change """ liquid_partial: UpdateLiquidPartialInputType! """ Current physical_file_path of the partial to update; takes precedence over id """ physical_file_path: String ): LiquidPartial @doc(category: "Admin") """ Applies the same changes to all partials matching the filter in a background job and returns the number of matched partials. The job stops at the first partial that fails validation """ admin_liquid_partial_update_all( """ Conditions the updated partials must match """ filter: LiquidPartialsFilterInput! """ Attributes to change on every matched partial; format is reset to html unless given """ liquid_partial: UpdateLiquidPartialInputType! ): ObjectCount @doc(category: "Admin") """ Creates a model schema (table) with its properties, and returns it. Same as admin_table_create. Raises a validation error if a schema with the same name already exists """ admin_model_schema_create( """ Attributes of the new schema """ model_schema: ModelSchemaInputType! ): ModelSchema @doc(category: "Admin") """ Deletes (soft-deletes) a model schema (table) found by physical_file_path (or the deprecated id) and returns it. Same as admin_table_delete; fails while records still exist """ admin_model_schema_delete( """ Deprecated, use physical_file_path. Id of the schema to delete """ id: ID """ physical_file_path of the schema to delete; takes precedence over id """ physical_file_path: String ): ModelSchema @doc(category: "Admin") """ Updates a model schema (table) found by physical_file_path (or the deprecated id) and returns it. Same as admin_table_update. Raises an error when no such schema exists """ admin_model_schema_update( """ Deprecated, use physical_file_path. Id of the schema to update """ id: ID """ Attributes to change """ model_schema: UpdateModelSchemaInputType! """ Current physical_file_path of the schema to update; takes precedence over id """ physical_file_path: String ): ModelSchema @doc(category: "Admin") """ Creates a page served at its slug. Never updates an existing page: raises a validation error if another page already uses the same slug, format, request method and subdomain, or if the content is not valid Liquid """ admin_page_create( """ Attributes of the new page """ page: PageInputType! ): Page @doc(category: "Admin") """ Deletes (soft-deletes) a page found by physical_file_path (or the deprecated id) and returns it. Raises an error when no such page exists; pages stored in a private module directory cannot be deleted """ admin_page_delete( """ Deprecated, use physical_file_path. Id of the page to delete """ id: ID """ physical_file_path of the page to delete; takes precedence over id """ physical_file_path: String ): Page @doc(category: "Admin") """ Updates a page found by physical_file_path (or the deprecated id) and returns it. Soft-deleted pages are found too and can be restored by setting deleted_at to null. Raises an error when no such page exists; pages stored in a private module directory cannot be updated """ admin_page_update( """ Deprecated, use physical_file_path. Id of the page to update """ id: ID """ Attributes to change """ page: UpdatePageInputType! """ Current physical_file_path of the page to update; takes precedence over id """ physical_file_path: String ): Page @doc(category: "Admin") """ Applies the same changes to all pages matching the filter in a background job and returns the number of matched pages. Pages stored in a private module directory are never matched. The job stops at the first page that fails validation """ admin_page_update_all( """ Conditions the updated pages must match """ filter: PageFilterInput! """ Attributes to change on every matched page """ page: UpdatePageInputType! ): ObjectCount! @doc(category: "Admin") """ Deletes all pages matching the filter and returns their number. Matched pages stop being served right away; they are then destroyed in a background job unless sync is true. Use with care, there is no undo """ admin_pages_delete_all( """ Conditions the deleted pages must match """ filter: PageFilterInput! """ When true, the deletion finishes before the mutation returns instead of in a background job """ sync: Boolean = false ): ObjectCount! @doc(category: "Admin") """ Adds a property (column) to a table, or to the user schema, and returns it. The search index mapping is refreshed so the property becomes searchable """ admin_property_create( """ Attributes of the new property """ property: StandalonePropertyInputType! ): Property @doc(category: "Admin") """ Deletes (soft-deletes) a property and returns it. Raises an error when no property has the given id """ admin_property_delete( """ Id of the property to delete """ id: ID! ): Property @doc(category: "Admin") """ Updates a property and returns it. Changing attribute_type converts the values stored in existing records in a background job. Raises an error when no property has the given id """ admin_property_update( """ Id of the property to update """ id: ID! """ Attributes to change """ property: UpdateStandalonePropertyInputType! ): Property @doc(category: "Admin") """ Creates an SMS notification, the same as deploying a smses/*.liquid file, which can then be sent with the sms_send mutation. Raises a validation error if an SMS with the same physical_file_path or name already exists """ admin_sms_notification_create( """ Attributes of the new SMS notification """ sms_notification: SmsNotificationInputType! ): SmsNotification @doc(category: "Admin") """ Deletes (soft-deletes) an SMS notification found by physical_file_path (or the deprecated id) and returns it. Raises an error when the SMS does not exist; SMSes stored in a private module directory cannot be deleted """ admin_sms_notification_delete( """ Deprecated, use physical_file_path. Id of the SMS notification to delete """ id: ID """ physical_file_path of the SMS notification to delete; takes precedence over id """ physical_file_path: String ): SmsNotification @doc(category: "Admin") """ Updates an SMS notification found by physical_file_path (or the deprecated id) and returns it. Raises an error when the SMS does not exist; SMSes stored in a private module directory cannot be updated """ admin_sms_notification_update( """ Deprecated, use physical_file_path. Id of the SMS notification to update """ id: ID """ Current physical_file_path of the SMS notification to update; takes precedence over id """ physical_file_path: String """ Attributes to change """ sms_notification: UpdateSmsNotificationInputType! ): SmsNotification @doc(category: "Admin") """ Creates a table (a schema for records) with its properties, and returns it. The search index mapping is refreshed. Raises a validation error if a table with the same name already exists """ admin_table_create( """ Attributes of the new table """ table: TableInputType! ): Table @doc(category: "Admin") """ Deletes (soft-deletes) a table found by physical_file_path and returns it. Fails while the table still has records; delete them first with records_delete_all. Raises an error when no such table exists """ admin_table_delete( """ physical_file_path of the table to delete """ physical_file_path: String! ): Table @doc(category: "Admin") """ Updates a table found by physical_file_path, including adding, changing and removing its properties, and returns it. The search index mapping is refreshed. Raises an error when no such table exists """ admin_table_update( """ Current physical_file_path of the table to update """ physical_file_path: String! """ Attributes to change """ table: UpdateTableInputType! ): Table @doc(category: "Admin") """ Creates a transactable schema. Deprecated, use tables and records instead """ admin_transactable_schema_create( """ Attributes of the schema """ transactable_schema: TransactableSchemaInputType! ): TransactableSchema @deprecated(reason: "Use records instead of transactables") @doc(category: "Deprecated") """ Deletes a transactable schema. Deprecated, use tables and records instead """ admin_transactable_schema_delete( """ Id of the schema """ id: ID! ): TransactableSchema @deprecated(reason: "Use records instead of transactables") @doc(category: "Deprecated") """ Updates a transactable schema. Deprecated, use tables and records instead """ admin_transactable_schema_update( """ Id of the schema """ id: ID! """ Attributes of the schema """ transactable_schema: UpdateTransactableSchemaInputType! ): TransactableSchema @deprecated(reason: "Use records instead of transactables") @doc(category: "Deprecated") """ Deprecated, use admin_translation_set. Creates a translation; fails if the key already exists in the locale """ admin_translation_create( """ The translation to create """ translation: TranslationInputType! ): Translation @deprecated(reason: "Please use admin_translation_set") @doc(category: "Deprecated") """ Deprecated, use admin_translation_unset. Permanently deletes the translation of a key in a locale """ admin_translation_delete( """ Translation key, a dot-separated path such as `app.welcome.title` """ key: String! """ Locale code, for example `en` or `de` """ locale: String! ): Translation @deprecated(reason: "Please use admin_translation_unset") @doc(category: "Deprecated") """ Sets the text of a translation key in a locale: creates the translation when the key does not exist in the locale yet, otherwise updates it. Returns the translation """ admin_translation_set( """ The key, locale and text to set """ translation: TranslationInputType! ): Translation @doc(category: "Admin") """ Sets a whole branch of translations of one locale at once from a nested JSON object, either merging it into the existing translations or replacing every translation whose key starts with the given key. Runs in a single transaction and returns the number of deleted and upserted translations """ admin_translation_set_json( """ Whether to merge with or replace the existing translations """ strategy: TranslationJsonStrategy! """ Key prefix, locale and translations to set """ translation: TranslationJsonInputType! ): TranslationJson @doc(category: "Admin") """ Permanently deletes the translation of a key in a locale and returns it. Does nothing (and returns an unsaved translation without id) when the key does not exist in the locale """ admin_translation_unset( """ Translation key, a dot-separated path such as `app.welcome.title` """ key: String! """ Locale code, for example `en` or `de` """ locale: String! ): Translation @doc(category: "Admin") """ Deprecated, use admin_translation_set. Updates the translation of a key in a locale, creating it if it does not exist """ admin_translation_update( """ Current key of the translation """ key: String! """ Current locale of the translation """ locale: String! """ Attributes to change """ translation: UpdateTranslationInputType! ): Translation @deprecated(reason: "Please use admin_translation_set") @doc(category: "Deprecated") """ Creates a user profile schema. Deprecated, use tables and records instead """ admin_user_profile_schema_create( """ Attributes of the schema """ user_profile_schema: UserProfileSchemaInputType! ): UserProfileSchema @deprecated(reason: "Use records instead of user_profiles") @doc(category: "Deprecated") """ Deletes a user profile schema. Deprecated, use tables and records instead """ admin_user_profile_schema_delete( """ Deprecated, use physical_file_path. Id of the schema """ id: ID """ physical_file_path of the schema; takes precedence over id """ physical_file_path: String ): UserProfileSchema @deprecated(reason: "Use records instead of user_profiles") @doc(category: "Deprecated") """ Updates a user profile schema. Deprecated, use tables and records instead """ admin_user_profile_schema_update( """ Deprecated, use physical_file_path. Id of the schema """ id: ID """ physical_file_path of the schema; takes precedence over id """ physical_file_path: String """ Attributes of the schema """ user_profile_schema: UpdateUserProfileSchemaInputType! ): UserProfileSchema @deprecated(reason: "Use records instead of user_profiles") @doc(category: "Deprecated") """ Sends an HTTP request synchronously and returns the response. The request is either an API call template from app/api_calls (template) or defined inline (api_call); when both are given, template is used. A template is sent only if its trigger_condition renders to true, and its callback is run with the response. Delivery problems (invalid URL, timeout, connection or SSL errors) are raised as errors. On staging instances requests are only sent when API call and SMS notifications are enabled for staging in the Partner Portal. """ api_call_send( """ Request defined inline, used when template is not given """ api_call: ApiCallSendRequestInput """ Variables available as data in the Liquid of the template, and in the url, method and headers of an inline api_call """ data: HashObject """ Options for the HTTP request, such as timeout """ options: ApiCallSendOptions """ API call template defined in app/api_calls (or a module), to render and send """ template: NotificationTemplateInput ): ApiCallSendPayload @doc(category: "Notifications") """ Returns a presigned URL for uploading a legacy attachment file directly to storage. Deprecated, use property_upload_presigned_url instead """ attachment_presign_url( """ Property the file is uploaded for and upload restrictions """ options: AttachmentPresignUrlInput ): AttachmentPresignedUploadUrl! @deprecated(reason: "Custom attachments were replaced with property upload") @doc(category: "Deprecated") """ Sends a message to every WebSocket client subscribed to the given channel and room, without running the channel's receive partial. Returns "dispatched" """ channel_send_message( """ Name of the channel, as used by subscribing clients """ channel_name: String! """ Message sent to the subscribers, as any JSON value """ payload: JSONPayload! """ ID of the room within the channel """ room_id: String! ): String @doc(category: "WebSockets") """ Creates a constant, or replaces the value of an existing one with the same name, and returns it. Values are stored encrypted and are available in Liquid as context.constants. Raises an error when name or value is blank """ constant_set( """ Name of the constant """ name: String! """ Value of the constant, stored encrypted """ value: String! ): EncryptedConstant! @doc(category: "Data") """ Deletes the constant with the given name and returns it; returns null when there is no such constant """ constant_unset( """ Name of the constant to delete """ name: String! ): EncryptedConstant @doc(category: "Data") """ Creates a legacy custom attachment. Deprecated, use a property of type upload instead """ custom_attachment_create( """ Attachment to create """ custom_attachment: CustomAttachmentInputType! """ Deprecated, leave blank """ form_configuration_name: String """ Deprecated, leave blank. Name of a legacy form that whitelists the attributes that can be saved and runs its notifications and callbacks """ form_name: String ): CustomAttachment @deprecated(reason: "Custom attachments were replaced with property upload") @doc(category: "Deprecated") """ Deletes a legacy custom attachment. Deprecated, use a property of type upload instead """ custom_attachment_delete( """ Deprecated, leave blank """ form_configuration_name: String """ Deprecated, leave blank. Name of a legacy form that whitelists the attributes that can be saved and runs its notifications and callbacks """ form_name: String """ Id of the attachment to delete """ id: ID! ): CustomAttachment @deprecated(reason: "Custom attachments were replaced with property upload") @doc(category: "Deprecated") """ Updates a legacy custom attachment. Deprecated, use a property of type upload instead """ custom_attachment_update( """ Attachment changes """ custom_attachment: UpdateCustomAttachmentInputType! """ Deprecated, leave blank """ form_configuration_name: String """ Deprecated, leave blank. Name of a legacy form that whitelists the attributes that can be saved and runs its notifications and callbacks """ form_name: String """ Id of the attachment to update """ id: ID! ): CustomAttachment @deprecated(reason: "Custom attachments were replaced with property upload") @doc(category: "Deprecated") """ Creates a legacy custom image. Deprecated, use a property of type upload instead """ custom_image_create( """ Image to create """ custom_image: NewCustomImageInputType! """ Deprecated, leave blank """ form_configuration_name: String """ Deprecated, leave blank. Name of a legacy form that whitelists the attributes that can be saved and runs its notifications and callbacks """ form_name: String ): CustomImage @deprecated(reason: "Custom images were replaced with property upload") @doc(category: "Deprecated") """ Deletes a legacy custom image. Deprecated, use a property of type upload instead """ custom_image_delete( """ Deprecated, leave blank """ form_configuration_name: String """ Deprecated, leave blank. Name of a legacy form that whitelists the attributes that can be saved and runs its notifications and callbacks """ form_name: String """ Id of the image to delete """ id: ID! ): CustomImage @deprecated(reason: "Custom images were replaced with property upload") @doc(category: "Deprecated") """ Updates a legacy custom image. Deprecated, use a property of type upload instead """ custom_image_update( """ Image changes """ custom_image: CustomImageInputType! """ Deprecated, leave blank """ form_configuration_name: String """ Deprecated, leave blank. Name of a legacy form that whitelists the attributes that can be saved and runs its notifications and callbacks """ form_name: String """ Id of the image to update """ id: ID! ): CustomImage @deprecated(reason: "Custom images were replaced with property upload") @doc(category: "Deprecated") """ Creates a legacy model. Deprecated, use records instead """ customization_create( """ Deprecated, use model """ customization: CustomizationInputType """ Deprecated, leave blank """ form_configuration_name: String """ Deprecated, leave blank. Name of a legacy form that whitelists the attributes that can be saved and runs its notifications and callbacks """ form_name: String """ Attributes of the model to create; required unless customization is given """ model: CustomizationInputType ): Customization! @deprecated(reason: "Use records instead of customizations") @doc(category: "Deprecated") """ Soft deletes a legacy model. Deprecated, use records instead """ customization_delete( """ Deprecated, leave blank """ form_configuration_name: String """ Deprecated, leave blank. Name of a legacy form that whitelists the attributes that can be saved and runs its notifications and callbacks """ form_name: String """ Id of the model to delete """ id: ID! ): Customization! @deprecated(reason: "use model_delete") @doc(category: "Deprecated") """ Updates a legacy model. Deprecated, use records instead """ customization_update( """ Deprecated, use model """ customization: CustomizationInputType """ Deprecated, leave blank """ form_configuration_name: String """ Deprecated, leave blank. Name of a legacy form that whitelists the attributes that can be saved and runs its notifications and callbacks """ form_name: String """ Id of the model to update """ id: ID! """ Attributes to change; required unless customization is given """ model: CustomizationInputType ): Customization! @deprecated(reason: "Use records instead of customizations") @doc(category: "Deprecated") """ Deletes all legacy models of a model schema, or of all schemas, and returns their count. Deprecated, use records instead """ customizations_delete_all( """ Deprecated, use all_model_schemas """ all_custom_model_types: Boolean """ Set to true to delete models of every model schema """ all_model_schemas: Boolean """ Deprecated, use model_schema_name """ custom_model_type_name: String """ Conditions the deleted models must match """ filter: ModelsFilterInput """ Name of the model schema whose models are deleted """ model_schema_name: String """ When true, the deletion finishes before the mutation returns instead of in a background job """ sync: Boolean = false ): ObjectCount! @deprecated(reason: "use models_delete_all") @doc(category: "Deprecated") """ Schedules a background export of records, users or both to CSV files, like pos-cli data export, but with filtering and sorting. Returns the export, whose status and file can be checked later with the data_exports query; the generated CSV files can be imported with pos-cli data import. """ data_export( """ Encrypts the generated export file """ encryption: PropertyUploadEncryptionInput """ Deprecated, use records """ models: DataExportModelsInput """ Records to export, selected like in the records query, at most 5000000 per export. Pass at least an empty object to export records; when omitted, no records are exported """ records: DataExportRecordsInput """ If true, each exported table is split into numbered files of at most 10,000 rows; if false, each table is written to a single file """ split_files: Boolean = true """ Users to export, selected like in the users query, at most 5000000 per export. Pass at least an empty object to export users; when omitted, no users are exported """ users: DataExportUsersInput ): DataExport! @doc(category: "Import/Export") """ Permanently deletes a data export created by data_export, including its generated file. This cannot be undone. """ data_export_delete( """ Id of the data export to delete """ id: ID! ): DataExport! @doc(category: "Import/Export") """ Stores many JSON documents in the search index in one request. Each document is identified by its own id key; an existing document with the same id is replaced entirely, a document without id gets a generated one. Returns the response of the search index, which lists the result or error of every document. """ documents_bulk_upsert( """ JSON documents to store. The id key of each document is used as its identifier; documents without id get a generated one """ documents: [HashObject]! """ Name of the search index the documents belong to; the documents query searches by this name """ search_index: String! ): HashObject @doc(category: "Data") """ Deprecated alias of documents_bulk_upsert """ documents_bulk_upsert_rc( """ JSON documents to store. The id key of each document is used as its identifier; documents without id get a generated one """ documents: [HashObject]! """ Name of the search index the documents belong to; the documents query searches by this name """ search_index: String! ): HashObject @deprecated(reason: "Use documents_bulk_upsert") @doc(category: "Deprecated") """ Removes the document with the given id from the search index. Returns the response of the search index. """ documents_delete( """ Identifier of the document to remove """ id: ID! """ Name of the search index the document belongs to """ search_index: String! ): HashObject @doc(category: "Data") """ Deprecated alias of documents_delete """ documents_delete_rc( """ Identifier of the document to remove """ id: ID! """ Name of the search index the document belongs to """ search_index: String! ): HashObject @deprecated(reason: "Use documents_delete") @doc(category: "Deprecated") """ Stores a JSON document in the custom search index of the instance (configured with search_indexes in app/config.yml) under the given search_index name, so that it can be found with the documents query. If a document with the same id already exists it is replaced entirely; without an id a new one is generated. Changes become visible to queries after a short delay. """ documents_insert( """ JSON document to store """ document: HashObject! """ Identifier of the document. An existing document with this id is replaced entirely; when omitted, a new id is generated """ id: ID """ Name of the search index the document belongs to; the documents query searches by this name """ search_index: String! ): HashObject @doc(category: "Data") """ Deprecated alias of documents_insert """ documents_insert_rc( """ JSON document to store """ document: HashObject! """ Identifier of the document. An existing document with this id is replaced entirely; when omitted, a new id is generated """ id: ID """ Name of the search index the document belongs to; the documents query searches by this name """ search_index: String! ): HashObject @deprecated(reason: "Use documents_insert") @doc(category: "Deprecated") """ Same as documents_insert: stores a JSON document in the search index, replacing an existing document with the same id entirely. """ documents_upsert( """ JSON document to store """ document: HashObject! """ Identifier of the document. An existing document with this id is replaced entirely; when omitted, a new id is generated """ id: ID """ Name of the search index the document belongs to; the documents query searches by this name """ search_index: String! ): HashObject @doc(category: "Data") """ Deprecated alias of documents_upsert """ documents_upsert_rc( """ JSON document to store """ document: HashObject! """ Identifier of the document. An existing document with this id is replaced entirely; when omitted, a new id is generated """ id: ID """ Name of the search index the document belongs to; the documents query searches by this name """ search_index: String! ): HashObject @deprecated(reason: "Use documents_upsert") @doc(category: "Deprecated") """ Schedules an email to be sent in a background job, either rendered from an email template defined in app/emails (template) or with the given content (email). When template is given, email is ignored. The template's own delay setting applies. Raises an error when the template does not exist """ email_send( """ Variables available in the Liquid of the template as data; used only with template """ data: HashObject """ Email to send without a template; required when template is not given """ email: NotificationEmailInput """ Email template defined in app/emails to render and send """ template: NotificationTemplateInput ): NotificationSendEmailPayload @doc(category: "Notifications") """ Creates an embedding: a text vector used for similarity search with the embeddings query. An instance can hold 2,000 embeddings by default; creating more raises an error (contact support to raise the limit) """ embedding_create( """ Attributes of the new embedding """ embedding: EmbeddingCreateInputType! ): Embedding! @doc(category: "Data") """ Creates an embedding: a text vector used for similarity search with the embeddings query. An instance can hold 2,000 embeddings by default; creating more raises an error (contact support to raise the limit) """ embedding_create_rc( """ Attributes of the new embedding """ embedding: EmbeddingCreateInputType! ): Embedding! @deprecated(reason: "Use embedding_create") @doc(category: "Deprecated") """ Permanently deletes an embedding and returns it. Raises an error when no embedding has the given id """ embedding_delete( """ Id of the embedding to delete """ id: ID! ): Embedding! @doc(category: "Data") """ Permanently deletes an embedding and returns it. Raises an error when no embedding has the given id """ embedding_delete_rc( """ Id of the embedding to delete """ id: ID! ): Embedding! @deprecated(reason: "Use embedding_delete") @doc(category: "Deprecated") """ Updates an embedding. Raises an error when no embedding has the given id """ embedding_update( """ Attributes to change """ embedding: EmbeddingUpdateInputType! """ Id of the embedding to update """ id: ID! ): Embedding! @doc(category: "Data") """ Updates an embedding. Raises an error when no embedding has the given id """ embedding_update_rc( """ Attributes to change """ embedding: EmbeddingUpdateInputType! """ Id of the embedding to update """ id: ID! ): Embedding! @deprecated(reason: "Use embedding_update") @doc(category: "Deprecated") """ Submits a legacy form with the given field values, running its validations, notifications and callbacks. Deprecated, use a page with a GraphQL mutation instead """ form_submit( """ Values for the fields defined in the form. Might include an "id" key which identifies the resource when the id argument is blank """ fields: HashObject! """ Name of the form to submit """ form_name: String! """ Id of the resource to update; can also be provided as "id" key in fields (if both are present, this argument takes precedence). Omit to create a new resource """ id: ID ): FormSubmitPayload @deprecated(reason: "Use page with mutation") @doc(category: "Deprecated") """ Generates a presigned URL for uploading a legacy image directly to storage; versions defined for the property are generated after upload. Deprecated, use property_upload_presigned_url instead """ image_presign_url( """ Upload options; model_property or user_property is required """ options: ImagePresignUrlInput ): ImagePresignedUploadUrl! @deprecated(reason: "Custom images were replaced with property upload") @doc(category: "Uploads") """ Imports records in bulk, for example from another instance. Each record is matched by its id (see _id_remap) and updated, or created when there is no match. Records that fail are skipped and reported together in one error after the others are imported """ import_models( """ When true, given ids are treated as external ids: objects are matched by them, new objects get new ids, and references between imported objects are rewritten to the new ids. When false, given ids are used as the actual ids and must be integers. Defaults to true """ _id_remap: Boolean = true """ When true, the search index is rebuilt in a background job after the import. Defaults to true """ _index_rebuild: Boolean = true """ The records to import """ models: [CustomizationImport!]! ): ImportCustomizationsMutationPayload @doc(category: "Import/Export") """ Deprecated, use import_models instead. Imports transactables in bulk """ import_transactables( """ When true, given ids are treated as external ids: objects are matched by them, new objects get new ids, and references between imported objects are rewritten to the new ids. When false, given ids are used as the actual ids and must be integers. Defaults to true """ _id_remap: Boolean = true """ When true, the search index is rebuilt in a background job after the import. Defaults to true """ _index_rebuild: Boolean = true """ The transactables to import """ transactables: [TransactableImport!]! ): ImportTransactablesMutationPayload @deprecated(reason: "use Models instead of Transactables") @doc(category: "Deprecated") """ Imports users in bulk, for example from another instance. Each user is matched by its id (see _id_remap) and updated, or created when there is no match; for an existing user only names, slug and properties change. Users that fail are skipped and reported together in one error after the others are imported; nothing is imported when two users share an email or slug """ import_users( """ When true, given ids are treated as external ids: objects are matched by them, new objects get new ids, and references between imported objects are rewritten to the new ids. When false, given ids are used as the actual ids and must be integers. Defaults to true """ _id_remap: Boolean = true """ When true, the search index is rebuilt in a background job after the import. Defaults to true """ _index_rebuild: Boolean = true """ The users to import """ users: [UserImport!]! ): ImportUsersMutationPayload @doc(category: "Import/Export") """ Verifies a JWT token and signs in the user it identifies. Deprecated, use users.jwt_token and the session tag instead """ jwt_decode_and_set_session( """ Algorithm the token was signed with """ jwt_algorithm: JwtAlgorithm = HS256 """ JWT token to verify """ jwt_token: String! ): User @deprecated(reason: "User query users.jwt_token and session tag") @doc(category: "Deprecated") """ Writes an entry to the instance logs (visible with pos-cli logs). Deprecated, use the log tag instead """ log( """ Message to log; any value """ message: Any! """ Severity of the entry """ type: LogEntryType! ): LogEntry @deprecated(reason: "Use log tag") @doc(category: "Deprecated") """ Creates a legacy model. Deprecated, use records instead """ model_create( """ Deprecated, use model """ customization: CustomizationInputType """ Deprecated, leave blank """ form_configuration_name: String """ Deprecated, leave blank. Name of a legacy form that whitelists the attributes that can be saved and runs its notifications and callbacks """ form_name: String """ Attributes of the model to create; required unless customization is given """ model: CustomizationInputType ): Model! @deprecated(reason: "Use records instead of models") @doc(category: "Deprecated") """ Soft deletes a legacy model. Deprecated, use records instead """ model_delete( """ Deprecated, leave blank """ form_configuration_name: String """ Deprecated, leave blank. Name of a legacy form that whitelists the attributes that can be saved and runs its notifications and callbacks """ form_name: String """ Id of the model to delete """ id: ID! ): Model! @deprecated(reason: "Use records instead of models") @doc(category: "Deprecated") """ Updates a legacy model. Deprecated, use records instead """ model_update( """ Deprecated, use model """ customization: CustomizationInputType """ Deprecated, leave blank """ form_configuration_name: String """ Deprecated, leave blank. Name of a legacy form that whitelists the attributes that can be saved and runs its notifications and callbacks """ form_name: String """ Id of the model to update """ id: ID! """ Attributes to change; required unless customization is given """ model: CustomizationInputType ): Model! @deprecated(reason: "Use records instead of models") @doc(category: "Deprecated") """ Deletes all legacy models of a model schema, or of all schemas, and returns their count. Deprecated, use records instead """ models_delete_all( """ Deprecated, use all_model_schemas """ all_custom_model_types: Boolean """ Set to true to delete models of every model schema """ all_model_schemas: Boolean """ Deprecated, use model_schema_name """ custom_model_type_name: String """ Conditions the deleted models must match """ filter: ModelsFilterInput """ Name of the model schema whose models are deleted """ model_schema_name: String """ When true, the deletion finishes before the mutation returns instead of in a background job """ sync: Boolean = false ): ObjectCount! @deprecated(reason: "Use records instead of models") @doc(category: "Deprecated") """ Updates all legacy models of a model schema matching the filter and returns their count. Deprecated, use records_update_all instead """ models_update_all( """ Conditions the updated models must match """ filter: ModelsFilterInput """ Attributes set on every matching model """ model: CustomizationInputType! """ Name of the model schema whose models are updated """ model_schema_name: String! """ When true, the update finishes before the mutation returns instead of in a background job """ sync: Boolean = false ): ObjectCount! @deprecated(reason: "Use records instead of models") @doc(category: "Deprecated") """ Generates a presigned URL for uploading a file directly to storage. Deprecated, use property_upload_presigned_url instead """ presigned_upload_url( """ Upload options """ options: PresignUrlInput ): PresignedUploadUrl! @deprecated(reason: "use property_upload_presign_url or attachment_presign_url") @doc(category: "Deprecated") """ Generates a presigned URL for uploading a file for an upload property directly to storage. The access level, size limit, cache and content disposition settings and image versions come from the property definition; the access level and size limit can be overridden with presign_url. Without a configured limit, files up to 100 MiB are accepted. Image versions defined for the property are generated after upload. Provide exactly one of table and user """ property_upload_presigned_url( """ Set to true to allow the upload request to include its own Content-Type field, stored with the file. Useful when the default type is wrong, for example for SVG files. Combine with presign_url.content_type.starts_with to restrict that field to a prefix. Cannot be combined with presign_url.content_type.value """ include_content_type: Boolean = false """ Deprecated, use table """ model_schema_name: String """ Overrides of the access level, size range and allowed content type """ presign_url: PresignUrl """ Name of the property of type upload """ property_name: String! """ Name of the table that defines the property. Must be omitted when the property is defined in user.yml """ table: String """ Must be true when the property is defined in user.yml rather than in a table """ user: Boolean = false ): PropertyUploadPresignedUrl! @doc(category: "Uploads") """ Creates a record, together with any nested records, and returns it. Raises an error when the table does not exist """ record_create( """ Deprecated, leave blank. Name of a legacy form that whitelists the attributes that can be saved and runs its notifications and callbacks """ form_name: String """ Attributes of the new record; record.table selects its table """ record: RecordInputType! ): Record! @doc(category: "Data") """ Soft deletes a record (sets its deleted_at) and returns it. Raises an error when the record does not exist """ record_delete( """ Deprecated, leave blank. Name of a legacy form that whitelists the attributes that can be saved and runs its notifications and callbacks """ form_name: String """ ID of the record to delete """ id: ID! """ Name of the table the record must belong to. Required unless require_table_for_record_delete_mutation is set to false in app/config.yml """ table: String ): Record! @doc(category: "Data") """ Updates a record and returns it. Property values and atomic operations are written directly in the database in one statement (unknown property names raise an error), except when an upload or time property, nested records, images or attachments are set, or the deprecated form_name is given """ record_update( """ Deprecated. Also updates the record in the legacy records search index, which can get very slow for larger amounts of data; use documents_upsert instead """ _index_update: Boolean = true """ Deprecated, leave blank. Name of a legacy form that whitelists the attributes that can be saved and runs its notifications and callbacks """ form_name: String """ ID of the record to update """ id: ID! """ Attributes to change; when record.table is given, the record must belong to that table """ record: RecordInputType! ): Record! @doc(category: "Data") """ Creates many records in a single database operation and returns their ids and tables. Much faster than record_create: properties are stored as given, without validations or callbacks. Fails as a whole when one of the records cannot be inserted, for example when its id already exists. """ records_create( """ Records to create """ records: [RecordsCreateInputType!]! ): [RecordCreate!]! @doc(category: "Data") """ Deprecated alias of records_create """ records_create_rc( """ Records to create """ records: [RecordsCreateInputType!]! ): [RecordCreate!]! @deprecated(reason: "Use records_create") @doc(category: "Deprecated") """ Soft deletes all records of a table that match the filter and returns their number. The records are marked as deleted immediately; the rest of the deletion runs in a background job unless sync is true """ records_delete_all( """ Must be true to delete records across all tables when neither table nor a table filter is given """ any_table: Boolean """ Conditions the deleted records must match """ filter: RecordsFilterInput """ When true, the deletion finishes before the mutation returns instead of in a background job """ sync: Boolean = false """ Name of the table whose records are deleted """ table: String ): ObjectCount! @doc(category: "Data") """ Updates every record of the table that matches the filter (all records of the table when no filter is given). The matching records are selected immediately and the returned count is their number; the update itself runs in a background job unless sync is true. Property values and atomic operations are written directly in the database without validations or callbacks; any other attribute is applied record by record. """ records_update_all( """ Deprecated. Also updates the records in the legacy records search index, which can get very slow for larger amounts of data; use documents_bulk_upsert instead """ _index_update: Boolean = false """ Conditions the updated records must match; all records of the table when omitted """ filter: RecordsFilterInput """ Attributes to set on every matching record """ record: RecordInputType! """ When true, the update finishes before the mutation returns instead of in a background job """ sync: Boolean = false """ Name of the table whose records are updated """ table: String! ): ObjectCount! @doc(category: "Data") """ Stores a value in the session of the current visitor under the given name; it is also immediately available as context.session in the current page. Returns the session. Raises an error outside of a request, for example in a background job """ session_create_field( """ Name of the session field """ name: String! """ Value to store """ value: Any! ): HashObject @doc(category: "Data") """ Removes a field from the session of the current visitor, also from context.session in the current page. Returns the removed value. Raises an error outside of a request, for example in a background job """ session_delete_field( """ Name of the session field to remove """ name: String! ): HashObject @doc(category: "Data") """ Schedules an SMS to be sent in a background job, either rendered from an SMS template defined in app/smses (template) or with the given content (sms). When template is given, sms is ignored. The template's own delay setting applies. Raises an error when the template does not exist """ sms_send( """ Variables available in the Liquid of the template as data; used only with template """ data: HashObject """ SMS to send without a template; required when template is not given """ sms: SmsSendInput """ SMS template defined in app/smses to render and send """ template: NotificationTemplateInput ): SmsSendPayload @doc(category: "Notifications") """ Creates a transactable. Deprecated, use record_create instead """ transactable_create( """ Deprecated, name of a legacy form to use """ form_configuration_name: String """ Attributes of the transactable """ transactable: TransactableInputType! ): Transactable! @deprecated(reason: "use Models instead of Transactables") @doc(category: "Deprecated") """ Deletes a transactable. Deprecated, use record_delete instead """ transactable_delete( """ Deprecated, name of a legacy form to use """ form_configuration_name: String """ ID of the transactable to delete """ id: ID! ): Transactable! @deprecated(reason: "use Models instead of Transactables") @doc(category: "Deprecated") """ Updates a transactable. Deprecated, use record_update instead """ transactable_update( """ Deprecated, name of a legacy form to use """ form_configuration_name: String """ ID of the transactable to update """ id: ID! """ Attributes to change """ transactable: TransactableInputType! ): Transactable! @deprecated(reason: "use Models instead of Transactables") @doc(category: "Deprecated") """ Deletes all transactables of a schema and returns their number. Deprecated, use records_delete_all instead """ transactables_delete_all( """ Must be true to delete transactables of all schemas """ all_transactable_types: Boolean """ Name of the transactable schema whose transactables are deleted """ transactable_type_name: String ): ObjectCount! @deprecated(reason: "use Models instead of Transactables") @doc(category: "Deprecated") """ Deprecated. Updates existing records in bulk """ update_models( """ Changes to apply, one entry per record """ models: [ModelUpdate!]! ): UpdateCustomizationsMutationPayload @deprecated(reason: "Use records instead of models") @doc(category: "Deprecated") """ Deprecated. Updates existing users in bulk """ update_users( """ Changes to apply, one entry per user """ users: [UserUpdate!]! ): UpdateUsersMutationPayload @deprecated(reason: "Use user_update or users_update_all") @doc(category: "Deprecated") """ Removes the stored files (including generated versions) of one or all upload properties of a record, user or user profile. The property values themselves are not changed. Runs in a background job unless sync is true. Provide exactly one of attribute_name and delete_all_properties """ upload_delete( """ Name of the upload property whose files are removed """ attribute_name: String """ Set to true to remove the files of all upload properties of the object """ delete_all_properties: Boolean """ When true, the files are removed before the mutation returns and errors are reported in the result """ sync: Boolean = false """ ID of the object that owns the uploads """ upload_object_id: ID! """ Type of the object that owns the uploads """ upload_object_type: ObjectsWithUploadsEnum! ): ObjectUpload! @doc(category: "Uploads") """ Creates a user and returns it """ user_create( """ Deprecated, leave blank """ form_configuration_name: String """ Deprecated, leave blank. Name of a legacy form that whitelists the attributes that can be saved and runs its notifications and callbacks """ form_name: String """ Not used when creating a user """ id: ID """ Attributes of the new user """ user: UserInputType! ): User @doc(category: "Data") """ Soft deletes a user (sets its deleted_at) and returns it """ user_delete( """ Deprecated, leave blank """ form_configuration_name: String """ Deprecated, leave blank. Name of a legacy form that whitelists the attributes that can be saved and runs its notifications and callbacks """ form_name: String """ ID of the user to delete """ id: ID! ): User @doc(category: "Data") """ Deletes a named OTP (one-time password) secret of a user. The default secret cannot be deleted, only refreshed with user_otp_secret_refresh. Status is not_found when the user has no secret with that name """ user_otp_delete_token( """ Name of the OTP secret to delete; required in practice, as the default secret cannot be deleted """ otp_name: String = null """ ID of the user """ user_id: ID! ): UserOtpDeleteTokenInformation @doc(category: "Data") """ Generates a new OTP (one-time password) secret for a user, replacing the previous one, so codes generated with the old secret stop working. Creates the named secret when it does not exist yet (up to 50 named secrets per user) """ user_otp_secret_refresh( """ Name of the OTP secret, at most 40 characters; the default secret when omitted """ otp_name: String = null """ ID of the user """ user_id: ID! ): UserOtpSecretRefreshInformation @doc(category: "Data") """ Deletes a user profile of a user. Deprecated, use records instead of user profiles """ user_profile_delete( """ Currently ignored """ form_configuration_name: String """ Currently ignored """ form_name: String """ Name of the profile type of the profile to delete """ profile_type: String! """ ID of the user who owns the profile """ user_id: ID! ): Profile! @deprecated(reason: "Use records instead of user_profiles") @doc(category: "Deprecated") """ Deletes all legacy user profiles of a profile type, or of all types, optionally only those of one user, and returns their count. Deprecated, use records instead """ user_profiles_delete_all( """ Must be true to delete profiles of all profile types """ all_user_profile_types: Boolean """ Only delete the profiles of this user """ user_id: Int """ Name of the profile type whose profiles are deleted """ user_profile_type_name: String ): ObjectCount! @deprecated(reason: "Use records instead of user_profiles") @doc(category: "Deprecated") """ Signs in a user with email and password. Deprecated, use the sign_in tag instead """ user_session_create( """ Email of the user """ email: String """ Deprecated, leave blank """ form_configuration_name: String """ Deprecated, leave blank. Name of a legacy form that whitelists the attributes that can be saved and runs its notifications and callbacks """ form_name: String """ Password of the user """ password: String! """ Remember the user between browser sessions; "1" to enable """ remember_me: String = "1" ): User @deprecated(reason: "Use sign_in tag") @doc(category: "Deprecated") """ Signs out the current user. Deprecated, use the session tag instead """ user_session_destroy( """ Deprecated, leave blank """ form_configuration_name: String """ Deprecated, leave blank. Name of a legacy form that whitelists the attributes that can be saved and runs its notifications and callbacks """ form_name: String ): HashObject @deprecated(reason: "Use session tag") @doc(category: "Deprecated") """ Updates a user, by default the currently signed in user, and returns it. Atomic property operations are applied directly in the database first, then the remaining attributes are saved """ user_update( """ Deprecated, leave blank """ form_configuration_name: String """ Deprecated, leave blank. Name of a legacy form that whitelists the attributes that can be saved and runs its notifications and callbacks """ form_name: String """ ID of the user to update; the currently signed in user when omitted. Raises an error when neither is available """ id: ID """ Attributes to change """ user: UserInputType! ): User @doc(category: "Data") """ Soft deletes all users that match the filter and returns their number. The users are marked as deleted immediately; the rest of the deletion runs in a background job unless sync is true """ users_delete_all( """ Must be true to delete all users when no filter is given """ all_users: Boolean """ Conditions the deleted users must match """ filter: UsersFilterInput """ When true, the deletion finishes before the mutation returns instead of in a background job """ sync: Boolean = false ): ObjectCount! @doc(category: "Data") """ Updates every user that matches the filter (all users when all_users is true). The matching users are selected immediately and the returned count is their number; the update itself runs in a background job unless sync is true. Atomic property operations are applied directly in the database, everything else is saved user by user, so use it for small sets only; for large amounts of data use data import instead. """ users_update_all( """ Must be true to update all users when no filter is given """ all_users: Boolean """ Conditions the updated users must match """ filter: UsersFilterInput """ When true, the update finishes before the mutation returns instead of in a background job """ sync: Boolean = false """ Attributes to set on every matching user """ user: UserInputType! ): ObjectCount! @doc(category: "Data") } """ Entry point for all read operations. Fields are grouped into documentation categories with the @doc directive """ type RootQuery { """ Returns activities published to activity feeds, looked up by id or uuid """ activities( """ Returns only activities with one of these ids """ ids: [ID] """ Page number to return, starting at 1. Requesting a page beyond the last one returns an empty results list """ page: Int = 1 """ Number of results per page, must be greater than 0 """ per_page: Int = 20 """ Sort order of the results. When several entries are given, they are applied in the given order. Results are additionally sorted by id ascending unless id (or random) is part of the sort """ sort: [ActivitiesSortInput!] """ Returns only activities with one of these uuids, in the order the uuids are given """ uuids: [String] ): ActivityStreamsActivityCollection @doc(category: "Activity feeds") """ Returns API call notifications (app/api_calls) of the instance, sorted by name unless sort is given. Files from the private directories of modules are not included. """ admin_api_call_notifications( """ Conditions the returned results must match. All conditions are combined with AND """ filter: ApiCallNotificationsFilterInput """ Page number to return, starting at 1. Requesting a page beyond the last one returns an empty results list """ page: Int = 1 """ Number of results per page, must be greater than 0 """ per_page: Int = 20 """ Sort order of the results. When several entries are given, they are applied in the given order """ sort: [ApiCallNotificationsSortInput!] ): ApiCallNotificationCollection! @doc(category: "Admin") """ Returns assets (app/assets) of the instance, sorted by name unless sort is given. Soft deleted assets are included only when filtering by deleted_at. Assets from the private directories of modules are not included. """ admin_assets( """ Conditions the returned results must match. All conditions are combined with AND """ filter: QueryAssetsFilterInput """ Page number to return, starting at 1. Requesting a page beyond the last one returns an empty results list """ page: Int = 1 """ Number of results per page, must be greater than 0 """ per_page: Int = 20 """ Sort order of the results. When several entries are given, they are applied in the given order """ sort: [AssetsSortInput!] ): AssetCollection! @doc(category: "Admin") """ Returns an asset listing generated in the background by the admin_assets_listing_create mutation: its status and, once done, the URLs of the manifests of public and private assets. """ admin_assets_listing( """ ID returned by the admin_assets_listing_create mutation """ id: ID! ): AssetsListing! @doc(category: "Admin") """ Returns authorization policies (app/authorization_policies) of the instance, sorted by name unless sort is given. Files from the private directories of modules are not included. """ admin_authorization_policies( """ Conditions the returned results must match. All conditions are combined with AND """ filter: AuthorizationPoliciesFilterInput """ Page number to return, starting at 1. Requesting a page beyond the last one returns an empty results list """ page: Int = 1 """ Number of results per page, must be greater than 0 """ per_page: Int = 20 """ Sort order of the results. When several entries are given, they are applied in the given order """ sort: [AuthorizationPoliciesSortInput!] ): AuthorizationPolicyCollection! @doc(category: "Admin") """ Returns background jobs of the instance that are scheduled (default), waiting for a retry, dead or running, depending on filter.type. Without sort, scheduled, retry and dead jobs are listed by timestamp. Only the first 50 pages of up to 100 jobs each can be retrieved. """ admin_background_jobs( """ Conditions the returned results must match. All conditions are combined with AND """ filter: BackgroundJobsFilterInput """ Page number to return, starting at 1. Requesting a page beyond the last one returns an empty results list. Maximum 50, higher values are treated as 50 """ page: Int = 1 """ Number of results per page, must be greater than 0. Maximum 100, higher values are treated as 100 """ per_page: Int = 20 """ Sort order of the results. Fields are applied one after another, so the last one given determines the order """ sort: [BackgroundJobsSortInput!] ): BackgroundJobCollection! @doc(category: "Admin") """ Returns the instance serving the request: its id, name, timestamps and feature flags """ admin_current_instance: Instance! @doc(category: "Admin") """ Returns email notifications (app/emails) of the instance, sorted by name unless sort is given. Files from the private directories of modules are not included. """ admin_email_notifications( """ Conditions the returned results must match. All conditions are combined with AND """ filter: EmailNotificationsFilterInput """ Page number to return, starting at 1. Requesting a page beyond the last one returns an empty results list """ page: Int = 1 """ Number of results per page, must be greater than 0 """ per_page: Int = 20 """ Sort order of the results. When several entries are given, they are applied in the given order """ sort: [EmailNotificationsSortInput!] ): EmailNotificationCollection! @doc(category: "Admin") """ Returns forms of the instance. Deprecated, use admin_forms instead """ admin_form_configurations( """ Conditions the returned results must match. All conditions are combined with AND """ filter: FormConfigurationsFilterInput """ Page number to return, starting at 1. Requesting a page beyond the last one returns an empty results list """ page: Int = 1 """ Number of results per page, must be greater than 0 """ per_page: Int = 20 """ Sort order of the results. When several entries are given, they are applied in the given order """ sort: [FormConfigurationsSortInput!] ): FormConfigurationCollection! @deprecated(reason: "use admin_forms") @doc(category: "Deprecated") """ Returns forms (app/forms) of the instance. Deprecated, use pages with GraphQL mutations instead """ admin_forms( """ Conditions the returned results must match. All conditions are combined with AND """ filter: FormsFilterInput """ Page number to return, starting at 1. Requesting a page beyond the last one returns an empty results list """ page: Int = 1 """ Number of results per page, must be greater than 0 """ per_page: Int = 20 """ Sort order of the results. When several entries are given, they are applied in the given order """ sort: [FormsSortInput!] ): FormCollection! @deprecated(reason: "Use page with mutation") @doc(category: "Deprecated") """ Returns GraphQL queries and mutations stored in the instance (app/graphql), sorted by name unless sort is given. Files from the private directories of modules are not included. """ admin_graphql( """ Conditions the returned results must match. All conditions are combined with AND """ filter: GraphqlFilterInput """ Page number to return, starting at 1. Requesting a page beyond the last one returns an empty results list """ page: Int = 1 """ Number of results per page, must be greater than 0 """ per_page: Int = 20 """ Sort order of the results. When several entries are given, they are applied in the given order """ sort: [GraphqlSortInput!] ): GraphQueryCollection! @doc(category: "Admin") """ Returns the current number of records, users, user profiles, images, attachments, addresses, activities and transactables stored in the instance. Soft deleted items are not counted """ admin_instance_metrics: InstanceMetrics! @doc(category: "Admin") """ Returns Liquid layouts (app/views/layouts) of the instance, sorted by path unless sort is given. Files from the private directories of modules are not included. """ admin_liquid_layouts( """ Conditions the returned results must match. All conditions are combined with AND """ filter: LiquidLayoutsFilterInput """ Page number to return, starting at 1. Requesting a page beyond the last one returns an empty results list """ page: Int = 1 """ Number of results per page, must be greater than 0 """ per_page: Int = 20 """ Sort order of the results. When several entries are given, they are applied in the given order """ sort: [LiquidLayoutsSortInput!] ): LiquidLayoutCollection! @doc(category: "Admin") """ Returns Liquid partials (app/views/partials and app/lib) of the instance, sorted by path unless sort is given. Files from the private directories of modules are not included. """ admin_liquid_partials( """ Conditions the returned results must match. All conditions are combined with AND """ filter: LiquidPartialsFilterInput """ Page number to return, starting at 1. Requesting a page beyond the last one returns an empty results list """ page: Int = 1 """ Number of results per page, must be greater than 0 """ per_page: Int = 20 """ Sort order of the results. When several entries are given, they are applied in the given order """ sort: [LiquidPartialsSortInput!] ): LiquidPartialCollection! @doc(category: "Admin") """ Returns entries of the instance log (what pos-cli logs streams), oldest first. Without a lower id bound it returns the latest matching entries; with filter: { id: { range: { gt: <id of the last entry seen> } } } only entries newer than that one. Conditions on type or message are checked against the most recent part of the log only. """ admin_logs( """ Conditions the returned results must match. All conditions are combined with AND """ filter: LogsFilterInput """ Maximum number of entries to return, between 1 and 500. Defaults to 20, or to 500 with a lower id bound """ per_page: Int ): [AdminLogEntry!]! @doc(category: "Admin") """ Returns model schemas, the former name of tables. Deprecated, use admin_tables instead """ admin_model_schemas( """ Conditions the returned results must match. All conditions are combined with AND """ filter: ModelSchemasFilterInput """ Page number to return, starting at 1. Requesting a page beyond the last one returns an empty results list """ page: Int = 1 """ Number of results per page, must be greater than 0 """ per_page: Int = 20 """ Sort order of the results. When several entries are given, they are applied in the given order """ sort: [ModelSchemasSortInput!] ): ModelSchemaCollection! @deprecated(reason: "Use admin_tables") @doc(category: "Deprecated") """ Returns pages (app/views/pages) of the instance, newest first unless sort is given. Soft deleted pages are included only when filtering by deleted_at. Files from the private directories of modules are not included. """ admin_pages( """ Deprecated, negates the metadata, has_key and value conditions. Use filter: { metadata: { exclude: $exclude } } """ exclude: Boolean """ Conditions the returned results must match. All conditions are combined with AND """ filter: PageFilterInput """ Deprecated, use filter: { metadata: { has_key: $key } } """ has_key: String """ Deprecated, use filter: { metadata: { contains: $text } } """ metadata: String """ Deprecated, metadata key used together with value. Use filter: { metadata: { attribute: { key: $name, value: $value } } } """ name: String """ Page number to return, starting at 1. Requesting a page beyond the last one returns an empty results list """ page: Int = 1 """ Number of results per page, must be greater than 0 """ per_page: Int = 20 """ Sort order of the results. When several entries are given, they are applied in the given order """ sort: [PagesSortInput!] """ Deprecated, use filter: { metadata: { attribute: { key: $key, value: $value } } }. Requires name """ value: String ): PageCollection! @doc(category: "Admin") """ Returns the field mapping of the search index of the instance, as configured with search_indexes in app/config.yml """ admin_search_index( """ Name of the search index. Currently not used: the mapping of the configured index is returned """ search_index: String! ): HashObject @doc(category: "Admin") """ Deprecated alias of admin_search_index """ admin_search_index_rc( """ Name of the search index. Currently not used: the mapping of the configured index is returned """ search_index: String! ): HashObject @deprecated(reason: "Use admin_search_index") @doc(category: "Deprecated") """ Returns the log of notifications (emails, SMS, API calls) sent by the instance """ admin_sent_notifications( """ Conditions the returned results must match. All conditions are combined with AND """ filter: SentNotificationsFilterInput """ Page number to return, starting at 1. Requesting a page beyond the last one returns an empty results list """ page: Int = 1 """ Number of results per page, must be greater than 0 """ per_page: Int = 20 """ Sort order of the results. When several entries are given, they are applied in the given order """ sort: [SentNotificationsSortInput!] ): SentNotificationCollection! @doc(category: "Admin") """ Returns SMS notifications (app/smses) of the instance, sorted by name unless sort is given. Files from the private directories of modules are not included. """ admin_sms_notifications( """ Conditions the returned results must match. All conditions are combined with AND """ filter: SmsNotificationsFilterInput """ Page number to return, starting at 1. Requesting a page beyond the last one returns an empty results list """ page: Int = 1 """ Number of results per page, must be greater than 0 """ per_page: Int = 20 """ Sort order of the results. When several entries are given, they are applied in the given order """ sort: [SmsNotificationsSortInput!] ): SmsNotificationCollection! @doc(category: "Admin") """ Returns table definitions (app/schema) of the instance, sorted by name unless sort is given. Files from the private directories of modules are not included. """ admin_tables( """ Conditions the returned results must match. All conditions are combined with AND """ filter: TablesFilterInput """ Page number to return, starting at 1. Requesting a page beyond the last one returns an empty results list """ page: Int = 1 """ Number of results per page, must be greater than 0 """ per_page: Int = 20 """ Sort order of the results. When several entries are given, they are applied in the given order """ sort: [TablesSortInput!] ): TableCollection! @doc(category: "Admin") """ Returns third party integrations configured for the instance, sorted by type unless sort is given """ admin_third_party_integrations( """ Conditions the returned results must match. All conditions are combined with AND """ filter: ThirdPartyIntegrationsFilterInput """ Page number to return, starting at 1. Requesting a page beyond the last one returns an empty results list """ page: Int = 1 """ Number of results per page, must be greater than 0 """ per_page: Int = 20 """ Sort order of the results. When several entries are given, they are applied in the given order """ sort: [ThirdPartyIntegrationsSortInput!] ): ThirdPartyIntegrationCollection! @doc(category: "Admin") """ Returns legacy transactable schemas. Deprecated, use admin_tables instead """ admin_transactable_schemas( """ Conditions the returned results must match. All conditions are combined with AND """ filter: TransactableSchemasFilterInput """ Page number to return, starting at 1. Requesting a page beyond the last one returns an empty results list """ page: Int = 1 """ Number of results per page, must be greater than 0 """ per_page: Int = 20 """ Sort order of the results. When several entries are given, they are applied in the given order """ sort: [TransactableSchemasSortInput!] ): TransactableSchemaCollection! @deprecated(reason: "Use admin_tables") @doc(category: "Deprecated") """ Returns legacy user profile schemas. Deprecated, use admin_tables instead """ admin_user_profile_schemas( """ Conditions the returned results must match. All conditions are combined with AND """ filter: UserProfileSchemasFilterInput """ Page number to return, starting at 1. Requesting a page beyond the last one returns an empty results list """ page: Int = 1 """ Number of results per page, must be greater than 0 """ per_page: Int = 20 """ Sort order of the results. When several entries are given, they are applied in the given order """ sort: [UserProfileSchemasSortInput!] ): UserProfileSchemaCollection! @deprecated(reason: "Use admin_tables") @doc(category: "Deprecated") """ Returns the user schema of the instance: the properties defined for users in app/user.yml """ admin_user_schema: UserSchema! @doc(category: "Admin") """ Returns the change history of records, users and user profiles from the last 7 days, newest first unless sort is given. Each version holds the state of the object before the change. """ admin_versions( """ Conditions the returned results must match. All conditions are combined with AND """ filter: VersionFilterInput """ Per-query execution options, such as reading from the read replica or a custom database timeout """ options: QueryOptionsInput """ Page number to return, starting at 1. Requesting a page beyond the last one returns an empty results list """ page: Int = 1 """ Number of results per page, must be greater than 0 """ per_page: Int = 20 """ Sort order of the results. When several entries are given, they are applied in the given order """ sort: [VersionSortInput!] ): VersionCollection! @doc(category: "Admin") """ Returns definitions of the CMS item types of the instance. Deprecated, use the admin_* queries instead """ cms_discovery( """ CMS item types to return; all when omitted """ types: [CMSItemType] ): CMSItemDefinitionCollection @deprecated(reason: "Use admin_* queries") @doc(category: "Deprecated") """ Returns CMS items of the given type. Deprecated, use the admin_* queries instead """ cms_items( """ Page number to return, starting at 1. Requesting a page beyond the last one returns an empty results list """ page: Int = 1 """ Number of results per page, must be greater than 0 """ per_page: Int """ Type of CMS items to return """ type: CMSItemType! ): CMSItemPayloadCollection @deprecated(reason: "Use admin_* queries") @doc(category: "Deprecated") """ Returns a single constant with its decrypted value. Deprecated, use constants instead """ constant( """ Conditions the constant must match """ filter: EncryptedConstantFilterInput ): EncryptedConstant @deprecated(reason: "Use constants") @doc(category: "Deprecated") """ Returns constants of the instance (set with constant_set or pos-cli constants) with their decrypted values, sorted by name unless sort is given """ constants( """ Conditions the returned results must match. All conditions are combined with AND """ filter: EncryptedConstantsFilterInput """ Page number to return, starting at 1. Requesting a page beyond the last one returns an empty results list """ page: Int = 1 """ Number of results per page, must be greater than 0 """ per_page: Int = 20 """ Sort order of the results. When several entries are given, they are applied in the given order """ sort: [EncryptedConstantsSortInput!] ): EncryptedConstantCollection! @doc(category: "Data") """ Returns the user signed in for the current request, or null when nobody is signed in """ current_user: User @doc(category: "Data") """ Returns the definition of a property by name. Deprecated, use the admin_* queries instead """ custom_attribute_definition( """ Name of the property """ name: String! ): CustomAttributeDefinition @deprecated(reason: "Use admin_* queries") @doc(category: "Deprecated") """ Returns a single record. Deprecated, use records instead """ customization( """ Unique identifier of the object """ id: ID """ Name of the table the record belongs to """ name: String ): Customization @deprecated(reason: "Use models instead.") @doc(category: "Deprecated") """ Searches records in the search index. Deprecated, use records instead """ customizations( """ Aggregations to calculate over the matching records """ aggregations: [ListingAggregation] """ Range of creation time """ created_at: DateRange """ Deprecated, use model_schema """ custom_model_type: QueryCustomModelType """ Id of the object the records belong to """ customizable_id: ID """ Ids of the objects the records belong to """ customizable_ids: [ID] """ Type of the object the records belong to """ customizable_type: String """ Returns only the record with this external id """ external_id: ID """ Returns only records with one of these external ids """ external_ids: [ID] """ Returns only the record with this id """ id: ID """ Returns only records with one of these ids """ ids: [ID] """ When true, returns only soft deleted records """ is_deleted: Boolean = false """ Conditions on the table of the records """ model_schema: QueryModelSchema """ Name of the table """ name: String """ Names of the tables """ names: [String] """ Page number to return, starting at 1. Requesting a page beyond the last one returns an empty results list """ page: Int = 1 """ Number of results per page, must be greater than 0 """ per_page: Int = 20 """ Conditions on record properties """ properties: [QueryCustomAttribute] """ Full-text search query """ query: Query """ Sort order of the results. When several entries are given, they are applied in the given order """ sort: [SortOrder] """ Range of last update time """ updated_at: DateRange """ Returns only records owned by this user """ user_id: ID """ Returns only records owned by one of these users """ user_ids: [ID] """ Ids of records to exclude from results """ without_ids: [ID] """ Names of the tables whose records are excluded from results """ without_names: [String] ): ListingsCustomizationCollection! @deprecated(reason: "Use records instead") @doc(category: "Deprecated") """ Returns data exports of the instance (created with the data_export mutation or pos-cli data export), most recently updated first. Once an export is done it holds the URL of the exported file. """ data_exports( """ Conditions the returned results must match. All conditions are combined with AND """ filter: DataExportsFilterInput """ Page number to return, starting at 1. Requesting a page beyond the last one returns an empty results list """ page: Int = 1 """ Number of results per page, must be greater than 0 """ per_page: Int = 20 """ Additional sort order, applied after the default most recently updated first """ sort: [DataExportsSortInput!] ): DataExportCollection! @doc(category: "Import/Export") """ Searches documents in the custom search index of the instance (configured with search_indexes in app/config.yml and filled with documents_insert, documents_upsert and documents_bulk_upsert) by full-text query, filters and aggregations. """ documents( """ Aggregations (e.g. counts of documents per field value) to calculate over the matching documents """ aggregations: [ListingAggregation] """ Conditions on document fields. All conditions are combined with AND """ filter: [IndexSearchFilterInput!] """ Page number to return, starting at 1. page multiplied by per_page cannot exceed the result window of the search index; within it, a page beyond the last one returns an empty results list """ page: Int = 1 """ Number of results per page, must be greater than 0 """ per_page: Int! """ Full-text search query """ query: IndexSearchQuery """ Name of the search index the documents were inserted with """ search_index: String! """ Sort order of the results. When several entries are given, they are applied in the given order """ sort: [IndexSearchSortInput!] ): IndexSearchCollection! @doc(category: "Data") """ Deprecated alias of documents """ documents_rc( """ Aggregations (e.g. counts of documents per field value) to calculate over the matching documents """ aggregations: [ListingAggregation] """ Conditions on document fields. All conditions are combined with AND """ filter: [IndexSearchFilterInput!] """ Page number to return, starting at 1. page multiplied by per_page cannot exceed the result window of the search index; within it, a page beyond the last one returns an empty results list """ page: Int = 1 """ Number of results per page, must be greater than 0 """ per_page: Int! """ Full-text search query """ query: IndexSearchQuery """ Name of the search index the documents were inserted with """ search_index: String! """ Sort order of the results. When several entries are given, they are applied in the given order """ sort: [IndexSearchSortInput!] ): IndexSearchCollection! @deprecated(reason: "Use documents") @doc(category: "Deprecated") """ Returns embeddings (vectors with their content and metadata) stored in the instance. Sort by embedding distance to find the entries nearest to a given vector. """ embeddings( """ Conditions the returned results must match. All conditions are combined with AND """ filter: EmbeddingsFilterInput """ Per-query execution options, such as reading from the read replica or a custom database timeout """ options: QueryOptionsInput """ Page number to return, starting at 1. Requesting a page beyond the last one returns an empty results list """ page: Int = 1 """ Number of results per page, must be greater than 0 """ per_page: Int! """ Sort order of the results. Only sorting by embedding distance is applied """ sort: [EmbeddingsSortInput!] ): EmbeddingCollection! @doc(category: "Data") """ Deprecated alias of embeddings """ embeddings_rc( """ Conditions the returned results must match. All conditions are combined with AND """ filter: EmbeddingsFilterInput """ Per-query execution options, such as reading from the read replica or a custom database timeout """ options: QueryOptionsInput """ Page number to return, starting at 1. Requesting a page beyond the last one returns an empty results list """ page: Int = 1 """ Number of results per page, must be greater than 0 """ per_page: Int! """ Sort order of the results. Only sorting by embedding distance is applied """ sort: [EmbeddingsSortInput!] ): EmbeddingCollection! @deprecated(reason: "Use embeddings") @doc(category: "Deprecated") """ Returns all activity feeds of the instance: each feed type with the ids of its feeds """ feeds: [ActivityStreamsFeed] @doc(category: "Activity feeds") """ Returns activity handlers (app/activity_streams/handlers), which decide to which feeds a published activity is added """ handlers( """ Page number to return, starting at 1. Requesting a page beyond the last one returns an empty results list """ page: Int = 1 """ Number of results per page, must be greater than 0 """ per_page: Int = 20 ): ActivityStreamsHandlerCollection @doc(category: "Activity feeds") """ Returns legacy image uploads. Deprecated, use upload properties instead """ images( """ Conditions the returned results must match. All conditions are combined with AND """ filter: ImagesFilterInput """ Page number to return, starting at 1. Requesting a page beyond the last one returns an empty results list """ page: Int = 1 """ Number of results per page, must be greater than 0 """ per_page: Int! """ Sort order of the results. When several entries are given, they are applied in the given order. Results are additionally sorted by id ascending unless id (or random) is part of the sort """ sort: [ImagesSortInput!] ): CustomImageCollection! @deprecated(reason: "Use property upload") @doc(category: "Deprecated") """ Returns the current instance. Deprecated, use admin_current_instance instead """ instance: Instance @deprecated(reason: "Use admin_current_instance") @doc(category: "Deprecated") """ Searches legacy transactables in the search index. Deprecated, use records instead """ listings( """ Aggregations to calculate over the matching transactables """ aggregations: [ListingAggregation] """ Geo search query. Deprecated """ geo_query: GeoQuery """ Conditions on the transactables """ listing: QueryListing """ Page number to return, starting at 1. Requesting a page beyond the last one returns an empty results list """ page: Int = 1 """ Number of results per page, must be greater than 0 """ per_page: Int = 20 """ Full-text search query """ query: Query """ Sort order of the results. When several entries are given, they are applied in the given order """ sort: [SortOrder] ): ListingCollection! @deprecated(reason: "Use Record instead of Transactables") @doc(category: "Deprecated") """ Returns the names of configured social login providers. Deprecated """ login_providers: [String] @deprecated(reason: "Not needed") @doc(category: "Deprecated") """ Returns a single record. Deprecated, use records instead """ model( """ Unique identifier of the object """ id: ID """ Name of the table the record belongs to """ name: String ): Customization @deprecated(reason: "Use models instead") @doc(category: "Deprecated") """ Returns records under their former name, models. Soft deleted ones are included only when filtering by deleted_at. Deprecated, use records instead """ models( """ Conditions the returned results must match. All conditions are combined with AND """ filter: ModelsFilterInput """ Per-query execution options, such as reading from the read replica or a custom database timeout """ options: QueryOptionsInput """ Page number to return, starting at 1. Requesting a page beyond the last one returns an empty results list """ page: Int = 1 """ Number of results per page, must be greater than 0 """ per_page: Int! """ Sort order of the results. When several entries are given, they are applied in the given order. Results are additionally sorted by id ascending unless id (or random) is part of the sort """ sort: [ModelsSortInput!] ): ModelCollection! @deprecated(reason: "Use records") @doc(category: "Deprecated") """ Returns pages of the instance. Deprecated, use admin_pages instead """ pages( """ Deprecated, negates the metadata, has_key and value conditions. Use filter: { metadata: { exclude: $exclude } } """ exclude: Boolean """ Conditions the returned results must match. All conditions are combined with AND """ filter: PageFilterInput """ Deprecated, use filter: { metadata: { has_key: $key } } """ has_key: String """ Deprecated, use filter: { metadata: { contains: $text } } """ metadata: String """ Deprecated, metadata key used together with value. Use filter: { metadata: { attribute: { key: $name, value: $value } } } """ name: String """ Page number to return, starting at 1. Requesting a page beyond the last one returns an empty results list """ page: Int = 1 """ Number of results per page, must be greater than 0 """ per_page: Int = 20 """ Sort order of the results. When several entries are given, they are applied in the given order """ sort: [PagesSortInput!] """ Deprecated, use filter: { metadata: { attribute: { key: $key, value: $value } } }. Requires name """ value: String ): PageCollection! @deprecated(reason: "use admin_pages") @doc(category: "Deprecated") """ Searches users in the search index. Deprecated, use users instead """ people( """ Aggregations to calculate over the matching users """ aggregations: [ListingAggregation] """ Geo search query """ geo_query: GeoQuery """ Page number to return, starting at 1. Requesting a page beyond the last one returns an empty results list """ page: Int = 1 """ Number of results per page, must be greater than 0 """ per_page: Int = 20 """ Full-text search query """ query: Query """ Sort order of the results. When several entries are given, they are applied in the given order """ sort: [SortOrder] """ Conditions on the users """ user: QueryUser ): UserListingCollection! @deprecated(reason: "Use users") @doc(category: "Deprecated") """ Returns records stored in tables of the instance. Soft deleted records are included only when filtering by deleted_at. """ records( """ Conditions the returned results must match. All conditions are combined with AND """ filter: RecordsFilterInput """ Per-query execution options, such as reading from the read replica or a custom database timeout """ options: QueryOptionsInput """ Page number to return, starting at 1. Requesting a page beyond the last one returns an empty results list """ page: Int = 1 """ Number of results per page, must be greater than 0 """ per_page: Int! """ Sort order of the results. When several entries are given, they are applied in the given order. Results are additionally sorted by id ascending unless id (or random) is part of the sort """ sort: [RecordsSortInput!] ): RecordCollection! @doc(category: "Data") """ Returns records fetched from a remote endpoint. Sends a GET request to the endpoint with filter, sort, page and per_page as query parameters and expects a JSON response shaped like a records collection. An endpoint on a domain of this platform is rendered directly. Not available in requests sent by another platformOS instance. A failed request is logged and returns no results. """ remote_records( """ Endpoint that returns the records as JSON """ endpoint: Endpoint! """ Conditions the returned results must match. All conditions are combined with AND. Passed to the endpoint """ filter: RecordsFilterInput """ Page number to return, starting at 1. Requesting a page beyond the last one returns an empty results list """ page: Int = 1 """ Number of results per page, must be greater than 0 """ per_page: Int! """ Sort order passed to the endpoint """ sort: [RecordsSortInput!] ): RecordCollection! @doc(category: "Data") """ Returns users fetched from a remote endpoint. Sends a GET request to the endpoint with filter, sort, page and per_page as query parameters and expects a JSON response shaped like a users collection. An endpoint on a domain of this platform is rendered directly. Not available in requests sent by another platformOS instance. A failed request is logged and returns no results. """ remote_users( """ Endpoint that returns the users as JSON """ endpoint: Endpoint! """ Conditions the returned results must match. All conditions are combined with AND. Passed to the endpoint """ filter: UsersFilterInput """ Page number to return, starting at 1. Requesting a page beyond the last one returns an empty results list """ page: Int = 1 """ Number of results per page, must be greater than 0 """ per_page: Int! """ Sort order passed to the endpoint """ sort: [UsersSortInput!] ): UserCollection! @doc(category: "Data") """ Returns details of the current HTTP request. Deprecated, use context.headers and context.params in Liquid instead """ request: HTTPRequestContext @deprecated(reason: "Not needed") @doc(category: "Deprecated") """ Returns activities of a single activity feed, together with the number of unread activities """ streams( """ Id of the feed within its type, usually the id of the object that owns it. Either feed_id or feed_name is required """ feed_id: ID """ Deprecated, use feed_id """ feed_name: String """ Type of the feed, e.g. the type of the object that owns it """ feed_type: String! """ Page number to return, starting at 1. Requesting a page beyond the last one returns an empty results list """ page: Int = 1 """ Number of results per page, must be greater than 0 """ per_page: Int = 20 """ When true, marks the feed as read, so the unread count is reset """ reset_last_read: Boolean = true ): ActivityStreamsActivityStreamCollection @doc(category: "Activity feeds") """ Returns a single legacy transactable. Deprecated, use records instead """ transactable( """ Id of the user who created the transactable """ creator_id: ID """ Unique identifier of the object """ id: ID """ Slug of the transactable """ slug: String ): Transactable! @deprecated(reason: "Not needed") @doc(category: "Deprecated") """ Returns a legacy transactable type. Deprecated, use admin_tables instead """ transactable_type( """ Unique identifier of the object """ id: ID """ Name of the transactable type """ name: String ): TransactableType @deprecated(reason: "Not needed; use ModelSchema instead of TransactableType") @doc(category: "Deprecated") """ Returns legacy transactable types. Deprecated, use admin_tables instead """ transactable_types( """ Ids of the transactable types """ ids: [ID] """ Names of the transactable types """ names: [String] ): [TransactableType] @deprecated(reason: "Not needed; use ModelSchema instead of TransactableType") @doc(category: "Deprecated") """ Returns legacy transactables. Deprecated, use records instead """ transactables( """ Page number to return, starting at 1. Requesting a page beyond the last one returns an empty results list """ page: Int = 1 """ Number of results per page, must be greater than 0 """ per_page: Int = 20 ): TransactableCollection! @deprecated(reason: "Use Records instead of Transactables") @doc(category: "Deprecated") """ Returns the first user matching all given arguments, or null when no argument is given. Soft deleted users are included unless is_deleted is false. Deprecated, use users instead """ user( """ Email of the user """ email: String """ Identifier of the object in an external system. Used mainly for import/export, when a third party service is the source of truth """ external_id: String """ Unique identifier of the object """ id: ID """ True returns only soft deleted users, false only not deleted ones """ is_deleted: Boolean """ Per-query execution options, such as reading from the read replica or a custom database timeout """ options: QueryOptionsInput """ Slug of the user """ slug: String ): User @deprecated(reason: "Use users") @doc(category: "Deprecated") """ Returns users of the instance. Soft deleted users are included only when filtering by deleted_at. """ users( """ Conditions the returned results must match. All conditions are combined with AND """ filter: UsersFilterInput """ Per-query execution options, such as reading from the read replica or a custom database timeout """ options: QueryOptionsInput """ Page number to return, starting at 1. Requesting a page beyond the last one returns an empty results list """ page: Int = 1 """ Number of results per page, must be greater than 0 """ per_page: Int! """ Sort order of the results. When several entries are given, they are applied in the given order. Results are additionally sorted by id ascending unless id (or random) is part of the sort """ sort: [UsersSortInput!] ): UserCollection! @doc(category: "Data") } """ Type a selected property value is returned as """ enum SelectPropertyTypeEnum { """ Returned as an array, like property_array """ array """ Returned as a boolean, like property_boolean """ boolean """ Returned as a float, like property_float """ float """ Returned as an integer, like property_int """ int """ Returned as JSON, like property_json """ json """ Returned as an object, like property_object """ object """ Returned as a string, like property """ string } """ Log entry of a sent notification (email, SMS or API call), with the values it was sent with. An SMS longer than one segment is logged once per segment """ type SentNotification implements AdminNonDeployableSharedAttributesInterface { """ Rendered content that was sent, truncated to 65536 characters; binary content is replaced with a placeholder giving its size """ content: String """ Timestamp of when the object was created, set automatically by the system """ created_at: JSONDate! """ Unique identifier of the object """ id: ID! """ Id of the notification definition that was sent """ notification_id: ID! """ Kind of the notification """ notification_type: NotificationTypeEnum! """ Other rendered values the notification was sent with, specific to its kind, for example to, from and subject for an email, or to, request_type and headers for an API call """ options: HashObject """ Timestamp of when the object was last updated, set automatically by the system """ updated_at: JSONDate! } """ Paginated list of sent notifications """ type SentNotificationCollection { """ Number of the page returned in results """ current_page: Int! """ True when there is at least one page after the current one """ has_next_page: Boolean! """ True when the current page is not the first one """ has_previous_page: Boolean! """ Maximum number of results returned on a single page """ per_page: Int! """ Results on the current page """ results: [SentNotification!] """ Total number of results matching the query, across all pages """ total_entries: Int! """ Total number of pages, given per_page """ total_pages: Int! } """ Conditions for admin_sent_notifications """ input SentNotificationsFilterInput { """ Conditions on the content that was sent """ content: StringFilter """ Conditions on the creation time """ created_at: DateFilter """ Conditions on the id """ id: UniqIdFilter """ Conditions on the id of the notification definition that was sent """ notification_id: UniqIdFilter """ Conditions on the kind of notification: email, SMS or API call """ notification_type: NotificationTypeFilter """ Alternative condition sets: matches when at least one of them matches. Combined with AND with the other conditions """ or: [SentNotificationsFilterInput!] """ Conditions on the last update time """ updated_at: DateFilter } """ Sort order for admin_sent_notifications """ input SentNotificationsSortInput { """ Sort by creation time """ created_at: StandardSort """ Sort by id """ id: StandardSort """ Sort by last update time """ updated_at: StandardSort } """ SMS template (app/smses): a text message sent with the sms_send mutation """ type SmsNotification implements AdminSharedAttributesInterface { """ Liquid that evaluates to the text of the message. The data argument of sms_send is available in the data variable """ content: String """ Timestamp of when the object was created, set automatically by the system """ created_at: JSONDate! """ Number of minutes sms_send waits before sending the SMS, given as a plain number, for example 60. Defaults to 0 """ delay_by: String """ Deprecated, legacy forms that send this SMS """ form_configurations: [FormConfiguration!] @deprecated(reason: "use forms") """ Deprecated, legacy forms that send this SMS """ forms: [Form!] """ Unique identifier of the object """ id: ID! """ When true, the resource is managed outside of files: pos-cli deploy and sync never overwrite or delete it """ manually_managed: Boolean """ Free-form data attached to the resource with the metadata key of its file (or the metadata argument of an admin mutation) """ metadata: HashObject """ Name of the SMS, used to send it with the sms_send mutation """ name: String! """ Path of the file the resource comes from, relative to the app directory, for example views/pages/index.liquid or modules/my_module/public/views/partials/header.liquid. Identifies the resource in deploy, sync and admin mutations """ physical_file_path: String """ Liquid that evaluates to the recipient mobile number with the country code, for example +1 541 754 3010. The to_mobile_number filter helps to build it """ to: String! """ Liquid that evaluates to true (or t) when the SMS should be sent; any other result skips it. Defaults to true """ trigger_condition: String """ Timestamp of when the object was last updated, set automatically by the system """ updated_at: JSONDate! } """ Paginated list of SMS notifications """ type SmsNotificationCollection { """ Number of the page returned in results """ current_page: Int! """ True when there is at least one page after the current one """ has_next_page: Boolean! """ True when the current page is not the first one """ has_previous_page: Boolean! """ Maximum number of results returned on a single page """ per_page: Int! """ Results on the current page """ results: [SmsNotification!] """ Total number of results matching the query, across all pages """ total_entries: Int! """ Total number of pages, given per_page """ total_pages: Int! } """ Attributes of an SMS notification, the same ones that can be set in a smses/*.liquid file """ input SmsNotificationInputType { """ Liquid code rendered into the text of the message. The data argument of sms_send is available in the `data` variable """ content: String """ Number of minutes sms_send waits before sending the SMS, given as a plain number, for example `60`. Defaults to 0, sent right away """ delay_by: String = "0" """ Deprecated, ignored. Ids of legacy forms """ form_configuration_ids: [ID] """ Deprecated, ids of legacy forms that send the SMS; replaces the current list """ form_ids: [ID] """ Arbitrary JSON data stored with the SMS (the metadata section of the file) """ metadata: HashObject """ Deprecated, the name is derived from physical_file_path. Name used to send the SMS with the sms_send mutation """ name: String """ Path of the file the SMS is stored as, used by pos-cli pull and deploy. Must be `smses/<name>.liquid` (or legacy `notifications/sms_notifications/<name>.liquid`), optionally prefixed with `modules/<module_name>/public/` or `modules/<module_name>/private/`, for example `smses/welcome.liquid` """ physical_file_path: String! """ Liquid code rendering to the recipient mobile number with country code, for example `+15417543010`; the to_mobile_number filter helps build it. Required """ to: String """ Liquid code; the SMS is sent only when it renders to `true`. Defaults to `true` """ trigger_condition: String = "true" } """ Conditions for admin_sms_notifications """ input SmsNotificationsFilterInput { """ Conditions on the callback Liquid """ callback: StringFilter """ Conditions on the message template """ content: StringFilter """ Conditions on the creation time """ created_at: DateFilter """ Deprecated, use delay_by """ delay: StringFilter """ Conditions on the delay template """ delay_by: StringFilter """ Conditions on the id """ id: UniqIdFilter """ Conditions on the metadata defined in the file. All conditions are combined with AND """ metadata: [JsonbFilter!] """ Conditions on the name """ name: StringFilter """ Alternative condition sets: matches when at least one of them matches. Combined with AND with the other conditions """ or: [SmsNotificationsFilterInput!] """ Conditions on the source file path relative to the app directory, e.g. views/pages/index.liquid """ physical_file_path: StringFilter """ Conditions on the recipient phone number template """ to: StringFilter """ Conditions on the trigger condition """ trigger_condition: StringFilter """ Conditions on the last update time """ updated_at: DateFilter } """ Sort order for admin_sms_notifications """ input SmsNotificationsSortInput { """ Sort by creation time """ created_at: StandardSort """ Sort by id """ id: StandardSort """ Sort by metadata values, applied in the given order """ metadata: [JsonbSort!] """ Sort by name """ name: StandardSort """ Sort by the path of the source file """ physical_file_path: StandardSort """ Sort by last update time """ updated_at: StandardSort } """ SMS to send directly, without an SMS template """ input SmsSendInput { """ Text of the message """ content: String! """ Number of minutes to wait before sending the message """ delay: Int = 0 """ Recipient phone number """ to: String! } """ Autogenerated return type of SmsSend. """ type SmsSendPayload { """ Always empty; failures are raised as errors """ errors: [BaseError!]! @deprecated(reason: "Not needed") """ True when the SMS was scheduled to be sent """ is_scheduled_to_send: Boolean! } """ Sort by a field of a child document, for deprecated queries """ input SortByChildField { """ Type of the child document, e.g. "transactable" """ child_type: String """ Name of the child field to sort by, e.g. "id" """ field_name: String } """ Sort by distance from a reference point """ input SortByDistance { """ Location field to measure the distance from, e.g. "geo_location" """ field_name: String! """ Point the distance is measured to, usually the current location """ reference_point: GeoPoint! """ Unit in which the distance is computed """ unit: DistanceUnit = km } """ Puts results with the given field values first, in the given order, followed by all other results """ input SortByFieldOrder { """ Name of the field to sort by, e.g. "id" """ field_name: String! """ Field values in the desired order. With `{ field_name: "id", values: ["109", "903"] }` the result with id 109 comes first, 903 second, then the rest """ values: [String]! } """ Sort order for the deprecated customizations, listings and people queries. Deprecated, use the sort argument of records or users """ input SortOrder { """ Sorts by a field of a child document """ child_field: SortByChildField """ Sorts by distance from a point """ distance: SortByDistance """ Puts results with the given field values first, in the given order """ field: SortByFieldOrder """ Name of the field to sort by; a `properties.` prefix sorts by a property """ name: String """ Sort direction: asc or desc """ order: String = "asc" """ Sorts by distance from a point, using user profile addresses """ profile_distance: SortByDistance """ User profile field to sort by; use the `properties.` prefix for a property, e.g. `properties.color` """ profile_field: String """ User profile property to sort by """ profile_property: String """ Name of the user profile type used by profile_field and profile_property """ profile_type: String """ Name of the property to sort by """ property_name: String } """ Sort direction """ enum SortOrderEnum { """ Ascending: strings from a to z, numbers from lowest to highest, dates from oldest to newest """ ASC """ Descending: strings from z to a, numbers from highest to lowest, dates from newest to oldest """ DESC } """ Captcha settings of a form; set one of the strategies """ input SpamProtectionInput { """ Enables hCaptcha verification """ hcaptcha: HashObject """ Enables reCAPTCHA v2 verification """ recaptcha_v2: HashObject """ Enables reCAPTCHA v3 verification """ recaptcha_v3: SpamProtectionRecaptchaV3Input } """ Captcha settings of a form; set one of the strategies """ input SpamProtectionInputType { """ Enables reCAPTCHA v2 verification """ recaptcha_v2: HashObject """ Enables reCAPTCHA v3 verification """ recaptcha_v3: SpamProtectionRecaptchaV3InputType } """ reCAPTCHA v3 settings of a form """ input SpamProtectionRecaptchaV3Input { """ reCAPTCHA v3 action name the token must have been issued for """ action: String! """ Minimum reCAPTCHA v3 score (0.0 to 1.0) required to accept the submission """ minimum_score: Float } """ reCAPTCHA v3 settings of a form """ input SpamProtectionRecaptchaV3InputType { """ reCAPTCHA v3 action name the token must have been issued for """ action: String! """ Minimum reCAPTCHA v3 score (0.0 to 1.0) required to accept the submission """ minimum_score: Float } """ Attributes of a property (a column of a table or of the user schema) """ input StandalonePropertyInputType { """ Data type of the property. Defaults to string """ attribute_type: PropertyTypeEnum = string """ Name of the table (or `user`) whose record ids this property holds. Used by data import and export to remap ids between instances """ belongs_to: String """ Value given to the property in new records that do not set it. For the array type it must be a JSON array """ default_value: String """ Arbitrary JSON data stored with the property """ metadata: HashObject """ Name of the property; spaces are replaced with underscores and it is lowercased. Must be unique within its table, and cannot be `errors` or `model` """ name: String! """ Options of an upload property, such as file access, size limit and image versions; ignored for other types """ options: PropertyUploadOptionsInput """ Id of the table the property belongs to; leave empty when target_type is User """ target_id: ID """ Kind of schema the property belongs to """ target_type: PropertyTargetType! } """ Sort direction for a single field """ input StandardSort { """ Sort direction """ order: SortOrderEnum! """ Values to put first, in the given order. Items with other values follow, sorted by order """ order_by_values: [String!] } """ Conditions on a text field. All operators given in one filter must match (they are combined with AND). Operators with a null or empty-string value are ignored. Equality operators (value, value_in, not_value, not_value_in) are always case sensitive; contains, starts_with, ends_with and their not_ variants are case insensitive unless case_sensitive is true. Characters such as % and _ are matched literally. In queries that read from the database, records without a value (null) are never matched by the not_ operators. """ input StringFilter { """ When true, contains, starts_with, ends_with and their not_ variants compare case sensitively. Defaults to false (case insensitive) for most fields; admin_background_jobs `source_name` defaults to true """ case_sensitive: Boolean """ Matches when the field contains the given text anywhere """ contains: String """ Matches when the field ends with the given text """ ends_with: String """ Deprecated, use value """ exact: String """ Matches when the field does not contain the given text """ not_contains: String """ Matches when the field does not end with the given text """ not_ends_with: String """ Matches when the field does not start with the given text """ not_starts_with: String """ Matches when the field is not equal to the given text """ not_value: String """ Matches when the field is not equal to any of the given values """ not_value_in: [String!] """ Matches when the field starts with the given text """ starts_with: String """ Matches when the field is exactly equal to the given text """ value: String """ Matches when the field is exactly equal to one of the given values. An empty list matches nothing """ value_in: [String!] } """ Table (app/schema): defines the properties of the records stored in it """ type Table implements AdminPropertiesInterface & AdminSharedAttributesInterface { """ Timestamp of when the object was created, set automatically by the system """ created_at: JSONDate! """ Deprecated, use properties instead """ fields: [Property!]! @deprecated(reason: "Use properties") """ Unique identifier of the object """ id: ID! """ When true, the resource is managed outside of files: pos-cli deploy and sync never overwrite or delete it """ manually_managed: Boolean """ Free-form data attached to the resource with the metadata key of its file (or the metadata argument of an admin mutation) """ metadata: HashObject """ Name of the table, as given in its file """ name: String! """ Name used to refer to the table in queries and mutations: the name in lower case with spaces replaced by underscores, prefixed with modules/<module name>/ for a table of a module """ parameterized_name: String! """ Path of the file the resource comes from, relative to the app directory, for example views/pages/index.liquid or modules/my_module/public/views/partials/header.liquid. Identifies the resource in deploy, sync and admin mutations """ physical_file_path: String """ Properties defined in the schema, sorted by name """ properties: [Property!]! """ Number of records stored in the table, counted when requested """ records_count: Int! """ Deprecated alias of records_count """ records_count_rc: Int! @deprecated(reason: "Use records_count") """ Timestamp of when the object was last updated, set automatically by the system """ updated_at: JSONDate! } """ Paginated list of tables """ type TableCollection { """ Number of the page returned in results """ current_page: Int! """ True when there is at least one page after the current one """ has_next_page: Boolean! """ True when the current page is not the first one """ has_previous_page: Boolean! """ Maximum number of results returned on a single page """ per_page: Int! """ Results on the current page """ results: [Table!] """ Total number of results matching the query, across all pages """ total_entries: Int! """ Total number of pages, given per_page """ total_pages: Int! } """ Attributes of a table, the same ones that can be set in a schema/*.yml file """ input TableInputType { """ Arbitrary JSON data stored with the table """ metadata: HashObject """ Path of the file the table definition is stored as, used by pos-cli pull and deploy. Must be `schema/<name>.yml` (or legacy `custom_model_types/` or `model_schemas/`), optionally prefixed with `modules/<module_name>/public/` or `modules/<module_name>/private/`. The table name is derived from it, for example `schema/blog_post.yml` gives `blog_post` """ physical_file_path: String! """ Properties (columns) of the table """ properties: [NestedPropertyInputType] } """ Conditions for admin_tables """ input TablesFilterInput { """ Conditions on the creation time """ created_at: DateFilter """ Conditions on the id """ id: UniqIdFilter """ Conditions on the metadata defined in the file. All conditions are combined with AND """ metadata: [JsonbFilter!] """ Conditions on the name """ name: StringFilter """ Alternative condition sets: matches when at least one of them matches. Combined with AND with the other conditions """ or: [TablesFilterInput!] """ Conditions on the parameterized name, the form of the name used to refer to it in code """ parameterized_name: StringFilter """ Conditions on the source file path relative to the app directory, e.g. views/pages/index.liquid """ physical_file_path: StringFilter """ Conditions on the last update time """ updated_at: DateFilter } """ Sort order for admin_tables """ input TablesSortInput { """ Sort by creation time """ created_at: StandardSort """ Sort by id """ id: StandardSort """ Sort by metadata values, applied in the given order """ metadata: [JsonbSort!] """ Sort by name """ name: StandardSort """ Sort by parameterized name """ parameterized_name: StandardSort """ Sort by the path of the source file """ physical_file_path: StandardSort """ Sort by last update time """ updated_at: StandardSort } """ Integration with an external service (for example email delivery, SMS, reCAPTCHA or an OpenID Connect provider), configured in the Partner Portal """ type ThirdPartyIntegration { """ Timestamp of when the object was created, set automatically by the system """ created_at: JSONDate! """ Unique identifier of the object """ id: ID! """ Settings of the integration as configured, which may include credentials """ settings: HashObject! """ Kind of integration, for example ThirdPartyIntegration::SendgridIntegration """ type: String! """ Timestamp of when the object was last updated, set automatically by the system """ updated_at: JSONDate! } """ Paginated list of third party integrations """ type ThirdPartyIntegrationCollection { """ Number of the page returned in results """ current_page: Int! """ True when there is at least one page after the current one """ has_next_page: Boolean! """ True when the current page is not the first one """ has_previous_page: Boolean! """ Maximum number of results returned on a single page """ per_page: Int! """ Results on the current page """ results: [ThirdPartyIntegration!] """ Total number of results matching the query, across all pages """ total_entries: Int! """ Total number of pages, given per_page """ total_pages: Int! } """ Conditions for admin_third_party_integrations """ input ThirdPartyIntegrationsFilterInput { """ Conditions on the creation time """ created_at: DateFilter """ Conditions on the id """ id: UniqIdFilter """ Alternative condition sets: matches when at least one of them matches. Combined with AND with the other conditions """ or: [ThirdPartyIntegrationsFilterInput!] """ Conditions on the integration type """ type: StringFilter """ Conditions on the last update time """ updated_at: DateFilter } """ Sort order for admin_third_party_integrations """ input ThirdPartyIntegrationsSortInput { """ Sort by creation time """ created_at: StandardSort """ Sort by id """ id: StandardSort """ Sort by integration type """ type: StandardSort """ Sort by last update time """ updated_at: StandardSort } """ Transactable. Deprecated, use Record instead """ type Transactable implements RelationOnDemandInterface { """ Timestamp of when the object was created, set automatically by the system """ created_at: JSONDate """ User who created the transactable """ creator: User """ Id of the user who created the transactable """ creator_id: ID """ Address with the given name """ custom_address( """ Name of the address property """ name: String! ): CustomAddrress """ Image with the given name """ custom_image( """ Name of the image property """ name: String! ): [ListingImage] """ Customizations attached to the transactable, optionally narrowed by id, model schema name or owner """ customizations( """ Only the customization with this id """ id: ID """ Only customizations of this model schema """ name: String """ Only customizations owned by this user """ user_id: ID ): [Customization!] """ Identifier of the object in an external system. Used mainly for import/export, when a third party service is the source of truth """ external_id: ID """ Unique identifier of the object """ id: ID! """ Whether the transactable is soft deleted """ is_deleted: Boolean """ Returns the related model. Deprecated, use related_model """ model( """ Name of the property of the related object that must equal the value of join_on_property """ foreign_property: String = "id" """ Name of the property of this object whose value is matched against foreign_property """ join_on_property: String """ Name of the model schema (table) of the related models """ model_name: String ): ListingsCustomization @deprecated(reason: "use `related_model`") """ Returns related models. Deprecated, use related_models """ models( """ Name of the property of the related object that must equal the value of join_on_property """ foreign_property: String! """ Name of the property of this object whose value is matched against foreign_property """ join_on_property: String! """ Name of the model schema (table) of the related models """ model_name: [String] ): [ListingsCustomization!] @deprecated(reason: "use `related_models`") """ Name of the transactable """ name: String """ Value of the property with the given name; e.g. `hair_color: property(name: "hair_color")` """ property( """ Name of the property """ name: String! ): String """ Value of the Array property with the given name """ property_array( """ Name of the property """ name: String! ): [String!]! """ Returns the model whose foreign_property equals the value of join_on_property of this object (belongs-to relation). Legacy relation, use related_record of Record instead """ related_model( """ Name of the property of the related object that must equal the value of join_on_property """ foreign_property: String = "id" """ Name of the property of this object whose value is matched against foreign_property """ join_on_property: String """ Name of the model schema (table) of the related models """ model_schema_name: String ): ListingsCustomization """ Returns models whose foreign_property equals the value of join_on_property of this object (has-many relation), at most 10000 at once. Legacy relation, use related_records of Record instead """ related_models( """ Name of the property of the related object that must equal the value of join_on_property """ foreign_property: String! """ Name of the property of this object whose value is matched against foreign_property """ join_on_property: String! """ Name of the model schema (table) of the related models """ model_schema_name: [String] ): [ListingsCustomization!] """ Returns the user whose foreign_property equals the value of join_on_property of this object; by default the user whose id is in user_id """ related_user( """ Name of the user attribute that must equal the value of join_on_property """ foreign_property: String = "id" """ Name of the property of this object holding the user id """ join_on_property: String = "user_id" ): User """ URL-friendly identifier of the transactable """ slug: String! """ Timestamp of when the object was last updated, set automatically by the system """ updated_at: JSONDate """ Returns the related user. Deprecated, use related_user """ user( """ Name of the user attribute that must equal the value of join_on_property """ foreign_property: String = "id" """ Name of the property of this object holding the user id """ join_on_property: String = "user_id" ): User @deprecated(reason: "use `related_users`") } """ Paginated list of transactables. Deprecated, use RecordCollection instead """ type TransactableCollection { """ Number of the page returned in results """ current_page: Int! """ True when there is at least one page after the current one """ has_next_page: Boolean! """ True when the current page is not the first one """ has_previous_page: Boolean! """ Maximum number of results returned on a single page """ per_page: Int! """ Results on the current page """ results: [Transactable!] """ Total number of results matching the query, across all pages """ total_entries: Int! """ Total number of pages, given per_page """ total_pages: Int! } """ Deprecated. A transactable to import """ input TransactableImport { """ Values of address properties """ addresses: [AddressImport!] """ Values of attachment properties """ attachments: [AttachmentsImport!] """ Creation time to set """ created_at: ISO8601DateTime """ Id of the user who created the transactable """ creator_id: ID! """ Id of the transactable in the source system; references to it are preserved """ id: ID! """ Values of image properties """ images: [ImagesImport!] """ Name of the transactable """ name: String """ Property values, for example `{ "color": "red" }`; every key must be a defined property. Merged into the properties of an existing object """ properties: HashObject """ Slug of the transactable """ slug: String! """ Name of the transactable schema """ type_name: String! """ Last update time to set """ updated_at: ISO8601DateTime } """ Attributes of a transactable. Deprecated, use records instead """ input TransactableInputType { """ ID of the user who created the transactable """ creator_id: ID """ Currency code """ currency: String """ Description of the transactable """ description: String """ Name of the transactable """ name: String """ Values of the properties to set """ properties: [CustomAttributeInputType] """ Available quantity """ quantity: Int """ URL slug """ slug: String """ State transition to trigger """ state_event: String """ Name of the transactable schema """ transactable_type_name: String } """ Schema of transactables (formerly TransactableType). Deprecated, use Table instead """ type TransactableSchema implements AdminPropertiesInterface & AdminSharedAttributesInterface { """ Timestamp of when the object was created, set automatically by the system """ created_at: JSONDate! """ Deprecated, use properties instead """ fields: [Property!]! @deprecated(reason: "Use properties") """ Unique identifier of the object """ id: ID! """ When true, the resource is managed outside of files: pos-cli deploy and sync never overwrite or delete it """ manually_managed: Boolean """ Free-form data attached to the resource with the metadata key of its file (or the metadata argument of an admin mutation) """ metadata: HashObject """ Name of the schema """ name: String! """ Name used to refer to the schema in queries and mutations """ parameterized_name: String! """ Path of the file the resource comes from, relative to the app directory, for example views/pages/index.liquid or modules/my_module/public/views/partials/header.liquid. Identifies the resource in deploy, sync and admin mutations """ physical_file_path: String """ Properties defined in the schema, sorted by name """ properties: [Property!]! """ Timestamp of when the object was last updated, set automatically by the system """ updated_at: JSONDate! } """ Paginated list of transactable schemas. Deprecated, use TableCollection instead """ type TransactableSchemaCollection { """ Number of the page returned in results """ current_page: Int! """ True when there is at least one page after the current one """ has_next_page: Boolean! """ True when the current page is not the first one """ has_previous_page: Boolean! """ Maximum number of results returned on a single page """ per_page: Int! """ Results on the current page """ results: [TransactableSchema!] """ Total number of results matching the query, across all pages """ total_entries: Int! """ Total number of pages, given per_page """ total_pages: Int! } """ Attributes of a transactable schema. Deprecated, use tables and records instead """ input TransactableSchemaInputType { """ Deprecated, use properties """ fields: [NestedPropertyInputType] """ Deprecated, derived from physical_file_path. Name of the schema """ name: String """ Path of the file the schema is stored as, used by pos-cli pull and deploy """ physical_file_path: String! """ Properties of the schema """ properties: [NestedPropertyInputType] } """ Conditions for admin_transactable_schemas """ input TransactableSchemasFilterInput { """ Conditions on the creation time """ created_at: DateFilter """ Conditions on the id """ id: UniqIdFilter """ Conditions on the name """ name: StringFilter """ Alternative condition sets: matches when at least one of them matches. Combined with AND with the other conditions """ or: [TransactableSchemasFilterInput!] """ Conditions on the parameterized name, the form of the name used to refer to it in code """ parameterized_name: StringFilter """ Conditions on the last update time """ updated_at: DateFilter } """ Sort order for admin_transactable_schemas """ input TransactableSchemasSortInput { """ Sort by creation time """ created_at: StandardSort """ Sort by id """ id: StandardSort """ Sort by name """ name: StandardSort """ Sort by parameterized name """ parameterized_name: StandardSort """ Sort by last update time """ updated_at: StandardSort } """ Transactable type. Deprecated, use tables and records instead """ type TransactableType { """ Unique identifier of the object """ id: ID! """ Name of the transactable type """ name: String! } """ Translation (app/translations): text for one key in one locale, used by the t filter """ type Translation { """ Timestamp of when the object was created, set automatically by the system """ created_at: JSONDate! """ Unique identifier of the object """ id: ID! """ Full dot-separated key of the translation, starting with the top-level key of the translation file, for example app.header.title """ key: String! """ Locale of the translation, for example en or de """ locale: String! """ Timestamp of when the object was last updated, set automatically by the system """ updated_at: JSONDate! """ Translated text """ value: String! } """ A single translation: the text of one key in one locale """ input TranslationInputType { """ Translation key, a dot-separated path such as `app.welcome.title` """ key: String! """ Locale code, for example `en` or `de` """ locale: String! """ Currently ignored by translation mutations """ manually_managed: Boolean """ Translated text """ value: String! } """ Result of setting a branch of translations with admin_translation_set_json """ type TranslationJson { """ Number of existing translations deleted before setting the branch (overwrite strategy only) """ deleted_records: Int! """ Key prefix of the branch that was set, for example app.header """ key: String! """ Locale the translations were set for, for example en """ locale: String! """ Strategy used to set the branch """ strategy: TranslationJsonStrategy! """ Number of translations created or updated """ upserted_records: Int! """ Translation tree that was set, as given in the input """ value_json: HashObject! } """ A branch of translations given as a nested JSON object """ input TranslationJsonInputType { """ Key prefix of the branch, for example `app.user`; every key in value_json is stored under it """ key: String! """ Locale code, for example `en` or `de` """ locale: String! """ Nested JSON object of translations, for example `{ "name": "Name", "buttons": { "save": "Save" } }` sets `<key>.name` and `<key>.buttons.save`; arrays are stored as JSON strings """ value_json: HashObject! } """ How translations given as JSON are combined with existing ones """ enum TranslationJsonStrategy { """ Deep merge with existing translations; nothing is deleted """ merge """ Remove all existing translations under the given key prefix and replace them with the provided values """ overwrite } """ Conditions on an identifier field. All operators given in one filter must match (they are combined with AND); operators with a null or empty-string value are ignored """ input UniqIdFilter { """ Matches when the identifier is none of the given values """ not_value_in: [ID!] """ Matches when the identifier is within the given bounds; useful for paging through records by id. Not supported by every query, e.g. admin_background_jobs returns an error """ range: IdRangeFilter """ Matches when the identifier is equal to the given value """ value: ID """ Matches when the identifier is one of the given values. An empty list matches nothing """ value_in: [ID!] } """ Attributes of an API call to change. Omitted attributes keep their current value, except trigger_condition and delay_by, which fall back to their defaults """ input UpdateApiCallNotificationInputType { """ Liquid code run after the response is received; the response is available in the `response` variable """ callback: String """ Liquid code rendered into the request body, for example a JSON document """ content: String """ Number of minutes the request is delayed by. Ignored by api_call_send, which always sends the request immediately. Defaults to 0, so omitting it resets an existing delay """ delay_by: String = "0" """ Deprecated, ignored. Ids of legacy forms """ form_configuration_ids: [ID] """ Deprecated, use request_headers """ headers: HashObject """ When true, pos-cli deploy and sync never overwrite or delete it and pos-cli pull skips it """ manually_managed: Boolean """ Arbitrary JSON data stored with the API call (the metadata section of the file); replaces the existing metadata """ metadata: HashObject """ Deprecated, the name is derived from physical_file_path. Name used to send the API call with the api_call_send mutation """ name: String """ New path of the file the API call is stored as, used by pos-cli pull and deploy. Must be `api_calls/<name>.liquid` (or legacy `notifications/api_call_notifications/<name>.liquid`), optionally prefixed with `modules/<module_name>/public/` or `modules/<module_name>/private/` """ physical_file_path: String """ Request headers as a JSON object, for example `{ "Content-Type": "application/json" }`; values may contain Liquid """ request_headers: HashObject """ Liquid code rendering to the HTTP method: Get, Post, Put, Patch, Delete, Head, or to send binary files as multipart form data: Post_Multipart, Put_Multipart, Patch_Multipart """ request_type: String """ Liquid code rendering to the URL the request is sent to """ to: String """ Liquid code; the API call is sent only when it renders to `true`. Defaults to `true`, so omitting it resets an existing condition """ trigger_condition: String = "true" } """ Attributes of an authorization policy to change; omitted attributes keep their current value """ input UpdateAuthorizationPolicyInputType { """ Liquid code evaluated on each request to a page using the policy; access is granted only when it renders to `true` (case and surrounding whitespace are ignored) """ content: String """ Liquid code rendered into the flash alert message shown when access is denied """ flash_alert: String """ When true, pos-cli deploy and sync never overwrite or delete it and pos-cli pull skips it """ manually_managed: Boolean """ Arbitrary JSON data stored with the policy (the metadata section of the file); replaces the existing metadata """ metadata: HashObject """ Deprecated, the name is derived from physical_file_path. Name used to attach the policy to pages """ name: String """ New path of the file the policy is stored as, used by pos-cli pull and deploy. Must be `authorization_policies/<name>.liquid`, optionally prefixed with `modules/<module_name>/public/` or `modules/<module_name>/private/`, for example `authorization_policies/is_admin.liquid` """ physical_file_path: String """ Liquid code rendering to the URL the user is redirected to when access is denied. A `return_to` parameter with the requested path is appended unless disabled in the instance configuration. When not set, the request is answered with an error status instead (403 by default) """ redirect_to: String } """ Legacy custom attachment changes. Deprecated, use a property of type upload instead """ input UpdateCustomAttachmentInputType { """ Name of the file property the attachment is stored in """ custom_attribute_name: String """ URL of a file uploaded directly to storage with attachment_presign_url """ direct_url: String """ Id of the record the attachment belongs to """ owner_id: ID """ Type of the record the attachment belongs to: Customization, UserProfile or User """ owner_type: String """ Deprecated, ignored """ page_slug: String """ Id of the user who uploads the attachment """ uploader_id: ID } """ Autogenerated return type of UpdateCustomizationsMutation. """ type UpdateCustomizationsMutationPayload { """ Ids of the updated records """ ids: [ID!]! } """ Attributes of an email notification to change. Omitted attributes keep their current value, except trigger_condition and delay_by, which fall back to their defaults """ input UpdateEmailNotificationInputType { """ Liquid code rendering to a JSON object of attachments keyed by file name, for example `{ "file_name.jpg": { "url": "https://example.com/file.jpg" } }` """ attachments: String """ Liquid code rendering to a comma-separated list of blind carbon copy recipients """ bcc: String """ Liquid code rendering to a comma-separated list of carbon copy recipients """ cc: String """ Liquid code rendered into the HTML body of the email. The data argument of email_send is available in the `data` variable. Required """ content: String """ Number of minutes email_send waits before sending the email, given as a plain number, for example `60`. Defaults to 0, sent right away, so omitting it resets an existing delay """ delay_by: String = "0" """ Deprecated, ids of legacy forms that send the email; replaces the current list """ form_configuration_ids: [ID] """ Liquid code rendering to the sender address, for example `notifications@example.com`. Required """ from: String """ Name of the layout the rendered content is injected into, for example `mailer`; must be an existing layout """ layout: String """ Deprecated, use layout """ layout_path: String """ When true, pos-cli deploy and sync never overwrite or delete it and pos-cli pull skips it """ manually_managed: Boolean """ Arbitrary JSON data stored with the email (the metadata section of the file); replaces the existing metadata """ metadata: HashObject """ Deprecated, the name is derived from physical_file_path. Name used to send the email with the email_send mutation """ name: String """ New path of the file the email is stored as, used by pos-cli pull and deploy. Must be `emails/<name>.liquid` (or legacy `notifications/email_notifications/<name>.liquid`), optionally prefixed with `modules/<module_name>/public/` or `modules/<module_name>/private/`, for example `emails/welcome.liquid` """ physical_file_path: String """ Liquid code rendering to the address replies should go to, for example `support@example.com` """ reply_to: String """ Liquid code rendered into the subject line """ subject: String """ Liquid code rendering to a comma-separated list of recipients, for example `john@example.com, jane@example.com` """ to: String """ Liquid code; the email is sent only when it renders to `true`. Defaults to `true`, so omitting it resets an existing condition """ trigger_condition: String = "true" } """ Deprecated, use UpdateFormInputType. Attributes of a form to change """ input UpdateFormConfigurationInputType { """ Liquid code run in a background job after the data is saved """ async_callback_actions: String """ Liquid code rendering to the number of minutes async_callback_actions are delayed by """ async_callback_delay: String = "0" """ Maximum number of attempts of async_callback_actions when they fail """ async_callback_max_attempts: Int = 1 """ Priority of the async_callback_actions background job """ async_callback_priority: AsyncCallbackPriority = default """ Ids of authorization policies checked before the form is shown or submitted """ authorization_policy_ids: [ID] """ Liquid code run right after the data is saved; prefer async_callback_actions """ callback_actions: String """ Allowlist of attributes that can be saved; submitted values are available in callbacks and notifications through the `form` variable, for example `form.properties.my_var` """ configuration: HashObject = {} """ Liquid code rendering to JSON merged over the submitted input before validation, for values users must not set themselves, such as context.current_user.id """ default_payload: String """ Liquid code rendering to the message shown when validation fails, available as context.flash_alert """ flash_alert: String """ Liquid code rendering to the message shown after a successful submission, available as context.flash_notice """ flash_notice: String """ Liquid code rendering the form HTML; the `form_builder` variable and the `form` tag are available """ liquid_body: String """ Arbitrary JSON data stored with the form """ metadata: HashObject """ Deprecated, derived from physical_file_path. Name of the form """ name: String """ Path of the file the form is stored as, for example `forms/sign_up.liquid` or `modules/<module_name>/public/forms/sign_up.liquid` """ physical_file_path: String """ Liquid code rendering to the path or URL the user is redirected to after a successful submission """ redirect_to: String """ Kind of record the form saves, for example a table name, `User` or `Session` """ resource: String """ Who can submit the form: `anyone` or `creator` (`anyone` or `self` for User forms); when `anyone`, protect the form with authorization policies """ resource_owner: String """ Captcha the submission must pass """ spam_protection: SpamProtectionInputType = null } """ Attributes of a form to change; omitted attributes keep their current value """ input UpdateFormInput { """ Liquid code run in a background job after the data is saved """ async_callback_actions: String """ Liquid code rendering to the number of minutes async_callback_actions are delayed by """ async_callback_delay: String """ Maximum number of attempts of async_callback_actions when they fail """ async_callback_max_attempts: Int """ Priority of the async_callback_actions background job """ async_callback_priority: AsyncCallbackPriority """ Ids of authorization policies checked before the form is shown or submitted """ authorization_policy_ids: [ID!] """ Liquid code run right after the data is saved; prefer async_callback_actions """ callback_actions: String """ Allowlist of attributes that can be saved; submitted values are available in callbacks and notifications through the `form` variable, for example `form.properties.my_var` """ configuration: HashObject """ Liquid code rendering to JSON merged over the submitted input before validation, for values users must not set themselves, such as context.current_user.id """ default_payload: String """ Liquid code rendering to the message shown when validation fails, available as context.flash_alert """ flash_alert: String """ Liquid code rendering to the message shown after a successful submission, available as context.flash_notice """ flash_notice: String """ Liquid code rendering the form HTML; the `form_builder` variable and the `form` tag are available """ liquid_body: String """ Arbitrary JSON data stored with the form """ metadata: HashObject """ Deprecated, derived from physical_file_path. Name of the form """ name: String """ Path of the file the form is stored as, for example `forms/sign_up.liquid` or `modules/<module_name>/public/forms/sign_up.liquid` """ physical_file_path: String """ Liquid code rendering to the path or URL the user is redirected to after a successful submission """ redirect_to: String """ Kind of record the form saves, for example a table name, `User` or `Session` """ resource: String """ Who can submit the form: `anyone` or `creator` (`anyone` or `self` for User forms); when `anyone`, protect the form with authorization policies """ resource_owner: String """ Liquid code rendering to a JSON object of headers added to the response of a form submission """ response_headers: String """ Captcha the submission must pass """ spam_protection: SpamProtectionInput } """ Attributes of a stored GraphQL query to change; omitted attributes keep their current value """ input UpdateGraphqlInputType { """ GraphQL document of the query or mutation; it must be valid against the schema """ body: String """ Arbitrary JSON data stored with the query; replaces the existing metadata """ metadata: HashObject """ Ignored """ path: String """ New path of the file the query is stored as. Must be under `graphql/` (or legacy `graph_queries/`), optionally prefixed with `modules/<module_name>/public/` or `modules/<module_name>/private/`. The query name is not changed """ physical_file_path: String } """ Attributes of a layout to change. Omitted attributes keep their current value, except format, which falls back to html """ input UpdateLiquidLayoutInputType { """ Liquid code of the layout; `{{ content_for_layout }}` marks where the page content goes. Required """ body: String """ Format of the pages the layout is used for. Defaults to html, so omitting it resets an existing format """ format: PageFormat = html """ When true, pos-cli deploy and sync never overwrite or delete it and pos-cli pull skips it """ manually_managed: Boolean """ Arbitrary JSON data stored with the layout; replaces the existing metadata """ metadata: HashObject """ Name the layout is referred to by, for example from the layout setting of a page; for a module layout the `modules/<module_name>/` prefix is added automatically """ path: String """ New path of the file the layout is stored as, used by pos-cli pull and deploy. Must be under `views/layouts/`, optionally prefixed with `modules/<module_name>/public/` or `modules/<module_name>/private/`, for example `views/layouts/application.liquid` """ physical_file_path: String } """ Attributes of a partial to change. Omitted attributes keep their current value, except format, which falls back to html """ input UpdateLiquidPartialInputType { """ Liquid code of the partial """ body: String """ Format the partial is used for. Defaults to html, so omitting it resets an existing format """ format: PageFormat = html """ When true, pos-cli deploy and sync never overwrite or delete it and pos-cli pull skips it """ manually_managed: Boolean """ Arbitrary JSON data stored with the partial; replaces the existing metadata """ metadata: HashObject """ Name the partial is rendered by, for example `shared/header` for `{% render 'shared/header' %}`; for a module partial the `modules/<module_name>/` prefix is added automatically """ path: String """ New path of the file the partial is stored as, used by pos-cli pull and deploy. Must be under `views/partials/`, optionally prefixed with `modules/<module_name>/public/` or `modules/<module_name>/private/` """ physical_file_path: String } """ Attributes of a model schema to change; omitted attributes keep their current value """ input UpdateModelSchemaInputType { """ Deprecated, use properties """ fields: [NestedPropertyInputType] """ Arbitrary JSON data stored with the schema; replaces the existing metadata """ metadata: HashObject """ Deprecated, the name is derived from physical_file_path """ name: String """ New path of the file the model schema is stored as. Must be `schema/<name>.yml` (or legacy `custom_model_types/` or `model_schemas/`), optionally prefixed with `modules/<module_name>/public/` or `modules/<module_name>/private/`. The schema name is not changed """ physical_file_path: String """ Properties to add, change or remove: entries with an id change that property (or remove it with _destroy), entries without an id are added; properties not listed are kept """ properties: [NestedPropertyInputType] } """ Attributes of a page to change; omitted attributes keep their current value """ input UpdatePageInputType { """ Names of authorization policies checked before the page is rendered, the same names as in the authorization_policies setting of a page file, for example `page_policy` or `modules/my_module/page_policy`. Can be combined with authorization_policy_ids; raises a validation error if any name does not exist """ authorization_policies: [String] """ Ids of authorization policies checked before the page is rendered; replaces the current list """ authorization_policy_ids: [ID] """ Liquid code rendered as the page body """ content: String """ Timestamp of when the object was soft deleted, populated by the delete action. It is also possible to set it manually via update. To undelete, change it back to an empty value; note that associated objects need to be undeleted manually as well. """ deleted_at: JSONDate """ Number of seconds the rendered page is cached for; authorization policies are still checked on every request """ dynamic_cache_expire: Int """ Liquid code rendering to the cache key, for example `{{ context.page.slug }}/{{ context.params.slug2 }}`. When blank, the full URL is used """ dynamic_cache_key: String """ When true, the layout is cached together with the page; usually not possible when the layout shows user-specific data """ dynamic_cache_layout: Boolean """ Format of the page, for example html or json; the same slug can serve several formats """ format: PageFormat """ Template language of the content. Currently ignored by this mutation """ handler: PageHandler """ Name of the layout the page content is rendered into, for example `application`; must be an existing layout unless it contains Liquid """ layout: String """ Deprecated, use layout """ layout_name: String """ When true, pos-cli deploy and sync never overwrite or delete it and pos-cli pull skips it """ manually_managed: Boolean """ Maximum number of URL segments, counting the slug itself, the page responds to. For example slug `abc` with max_deep_level 2 resolves /abc and /abc/1 but not /abc/1/something """ max_deep_level: Int """ Arbitrary JSON data stored with the page; replaces the existing metadata """ metadata: HashObject """ New path of the file the page is stored as, used by pos-cli pull and deploy. Must be under `views/pages/` (or `pages/`), optionally prefixed with `modules/<module_name>/public/` or `modules/<module_name>/private/`, for example `views/pages/hello/world.html.liquid` """ physical_file_path: String """ HTTP status of the redirect when redirect_to is set """ redirect_code: PageRedifectCode """ Liquid code rendering to the URL the request is redirected to instead of rendering the page """ redirect_to: String """ HTTP method the page responds to """ request_method: PageRequestMethod """ Headers added to the response; values may contain Liquid """ response_headers: HashObject """ When true, the rendered content is stored with the page so it can be searched """ searchable: Boolean """ URL path the page is served at, for example `hello/world` for https://example.com/hello/world. It is not changed automatically when physical_file_path changes; after changing it, consider creating a page at the old slug that redirects to the new one """ slug: String """ Number of seconds the page is cached for as static HTML. Currently ignored by this mutation """ static_cache_expire: Int """ Subdomain the page is served on, for pages that should respond only on that subdomain """ subdomain: String } """ Attributes of an SMS notification to change. Omitted attributes keep their current value, except trigger_condition and delay_by, which fall back to their defaults """ input UpdateSmsNotificationInputType { """ Liquid code rendered into the text of the message. The data argument of sms_send is available in the `data` variable """ content: String """ Number of minutes sms_send waits before sending the SMS, given as a plain number, for example `60`. Defaults to 0, sent right away, so omitting it resets an existing delay """ delay_by: String = "0" """ Deprecated, ignored. Ids of legacy forms """ form_configuration_ids: [ID] """ Arbitrary JSON data stored with the SMS (the metadata section of the file); replaces the existing metadata """ metadata: HashObject """ Deprecated, the name is derived from physical_file_path. Name used to send the SMS with the sms_send mutation """ name: String """ New path of the file the SMS is stored as, used by pos-cli pull and deploy. Must be `smses/<name>.liquid` (or legacy `notifications/sms_notifications/<name>.liquid`), optionally prefixed with `modules/<module_name>/public/` or `modules/<module_name>/private/`, for example `smses/welcome.liquid` """ physical_file_path: String """ Liquid code rendering to the recipient mobile number with country code, for example `+15417543010`; the to_mobile_number filter helps build it. Required """ to: String """ Liquid code; the SMS is sent only when it renders to `true`. Defaults to `true`, so omitting it resets an existing condition """ trigger_condition: String = "true" } """ Attributes of a property to change; omitted attributes keep their current value """ input UpdateStandalonePropertyInputType { """ Data type of the property. Changing it converts the values stored in existing records in a background job """ attribute_type: PropertyTypeEnum """ Name of the table (or `user`) whose record ids this property holds. Used by data import and export to remap ids between instances """ belongs_to: String """ Value given to the property in new records that do not set it. For the array type it must be a JSON array """ default_value: String """ Arbitrary JSON data stored with the property """ metadata: HashObject """ Name of the property; spaces are replaced with underscores and it is lowercased. Must be unique within its table, and cannot be `errors` or `model` """ name: String """ Options of an upload property, such as file access, size limit and image versions; ignored for other types """ options: PropertyUploadOptionsInput """ Id of the table the property belongs to; leave empty when target_type is User """ target_id: ID """ Kind of schema the property belongs to """ target_type: PropertyTargetType } """ Attributes of a table to change; omitted attributes keep their current value """ input UpdateTableInputType { """ Arbitrary JSON data stored with the table; replaces the existing metadata """ metadata: HashObject """ Deprecated, the name is derived from physical_file_path. Name of the table, used to refer to it in queries and mutations """ name: String """ New path of the file the table definition is stored as. Must be `schema/<name>.yml` (or legacy `custom_model_types/` or `model_schemas/`), optionally prefixed with `modules/<module_name>/public/` or `modules/<module_name>/private/`. The table name is not changed """ physical_file_path: String """ Properties to add, change or remove: entries with an id change that property (or remove it with _destroy), entries without an id are added; properties not listed are kept """ properties: [NestedPropertyInputType] } """ Attributes to change of a transactable schema. Deprecated, use tables and records instead """ input UpdateTransactableSchemaInputType { """ Deprecated, use properties """ fields: [NestedPropertyInputType] """ Deprecated, derived from physical_file_path. Name of the schema """ name: String """ Path of the file the schema is stored as, used by pos-cli pull and deploy """ physical_file_path: String """ Properties of the schema """ properties: [NestedPropertyInputType] } """ Deprecated, use admin_translation_set. Attributes of a translation to change """ input UpdateTranslationInputType { """ New key of the translation """ key: String """ New locale of the translation """ locale: String """ Currently ignored by translation mutations """ manually_managed: Boolean """ New translated text """ value: String } """ Attributes to change of a user profile schema. Deprecated, use tables and records instead """ input UpdateUserProfileSchemaInputType { """ Deprecated, use properties """ fields: [NestedPropertyInputType] """ Arbitrary JSON data stored with the schema """ metadata: HashObject """ Deprecated, derived from physical_file_path. Name of the schema """ name: String """ Path of the file the schema is stored as, used by pos-cli pull and deploy """ physical_file_path: String """ Properties of the schema """ properties: [NestedPropertyInputType] } """ Autogenerated return type of UpdateUsersMutation. """ type UpdateUsersMutationPayload { """ Ids of the updated users """ ids: [ID!]! } """ Kind of file uploaded with the deprecated presigned_upload_url mutation """ enum UploadType { """ Attachment """ attachment """ Image """ image } """ User account of the instance, with its properties and profiles """ type User implements HasModelsInterface & HasRecordsInterface & LegacyCustomAttributeInterface & PropertiesInterface & RemoteRecordsInterface & RemoteUsersInterface { """ Returns the legacy address property with the given name. Deprecated, store addresses in your own table """ address( """ Name of the address property """ name: String! ): CustomAddrress @deprecated(reason: "use your own model for address if needed") """ Returns legacy address properties, optionally only those with the given name. Deprecated, store addresses in your own table """ addresses( """ Name of the address property; all when omitted """ name: String ): [CustomAddrress!] @deprecated(reason: "use your own model for address if needed") """ Returns the legacy attachment property with the given name. Deprecated, use property_upload """ attachment( """ Name of the attachment property """ name: String! ): PrivateFile @deprecated(reason: "use property upload") """ Returns legacy attachment properties, optionally only those with the given name. Deprecated, use property_upload """ attachments( """ Name of the attachment property; all when omitted """ name: String ): [PrivateFile!] @deprecated(reason: "use property upload") """ Checks credentials of the user, such as a password or a token """ authenticate: Authenticate! """ Accounts of the user at external identity providers such as auth0, facebook or google. Deprecated, use the pos-module-oauth modules instead """ authentications: [Authentication!] @deprecated(reason: "Use the pos-module-oauth modules") """ Deprecated, phone verification data of a click-to-call integration; use records """ communication: Communication @deprecated(reason: "use records") """ Timestamp of when the object was created, set automatically by the system """ created_at: JSONDate """ Returns the legacy address property with the given name. Deprecated, store addresses in your own table """ custom_address( """ Name of the property """ name: String! ): CustomAddrress @deprecated(reason: "Use address") """ Returns legacy address properties. Deprecated, store addresses in your own table """ custom_addresses( """ Name of the property; all when omitted """ name: String ): [CustomAddrress!] @deprecated(reason: "Use addresses") """ Returns the legacy attachment property with the given name. Deprecated, use property_upload """ custom_attachment( """ Name of the property """ name: String! ): PrivateFile @deprecated(reason: "Use attachment") """ Returns legacy attachment properties. Deprecated, use property_upload """ custom_attachments( """ Name of the property; all when omitted """ name: String ): [PrivateFile!] @deprecated(reason: "Use attachments") """ Returns the legacy image property with the given name. Deprecated, use property_upload """ custom_image( """ Name of the property """ name: String! ): Image @deprecated(reason: "Use image") """ Returns legacy image properties. Deprecated, use property_upload """ custom_images( """ Name of the property; all when omitted """ name: String ): [Image!] @deprecated(reason: "Use images") """ Deprecated, legacy customizations of the user; use related_records """ customizations( """ Name of the model schema """ name: String """ ID of the user who created the customization """ user_id: ID ): [Customization!] """ Timestamp of when the object was soft deleted, populated by the delete action. It is also possible to set it manually via update. To undelete, change it back to an empty value; note that associated objects need to be undeleted manually as well. """ deleted_at: JSONDate """ Email address of the user, unique within the instance """ email: String! """ One-way hash of the user password; the password itself is never stored """ encrypted_password: String """ Identifier of the object in an external system. Used mainly for import/export, when a third party service is the source of truth """ external_id: String """ First name of the user """ first_name: String """ Unique identifier of the object """ id: ID """ Returns the legacy image property with the given name. Deprecated, use property_upload """ image( """ Name of the image property """ name: String! ): Image @deprecated(reason: "use property upload") """ Returns legacy image properties, optionally only those with the given name. Deprecated, use property_upload """ images( """ Name of the image property; all when omitted """ name: String ): [Image!] @deprecated(reason: "use property upload") """ JSON Web Token identifying the user, signed with the instance jwt_encryption_secret constant, which can be used to authenticate the user. It contains the user_id, iat, exp and iss claims and is rejected once the user changes the password """ jwt_token( """ Signing algorithm """ algorithm: JwtAlgorithm = HS256 """ Number of seconds after which the token expires, clamped to a maximum of one year. When omitted, the token expires after the instance session timeout (same source as the `{% sign_in %}` tag). Expired tokens are rejected on decode. """ expires_in: Int = null ): String """ Preferred language of the user, used for translations when the user is logged in """ language: String """ Last name of the user """ last_name: String """ Middle name of the user """ middle_name: String """ Returns one related model. Deprecated, use related_record """ model( """ Additional conditions the related objects must match """ filter: ModelsFilterInput """ Name of the property (or attribute) of the related object equal to join_on_property """ foreign_property: String = "id" """ Name of the property (or attribute) of this object matched against foreign_property """ join_on_property: String! """ Name of the model schema (table) of the related models """ model_name: [String]! """ Sort order of the results. When several entries are given, they are applied in the given order """ sort: [ModelsSortInput!] ): Model @deprecated(reason: "use `related_record`") """ Returns related models. Deprecated, use related_records """ models( """ Name of the property (or attribute) of the related object equal to join_on_property """ foreign_property: String! """ Name of the property (or attribute) of this object matched against foreign_property """ join_on_property: String! """ Maximum number of related objects returned for each object """ limit: Int """ Name of the model schema (table) of the related models """ model_name: [String]! """ Sort order of the results. When several entries are given, they are applied in the given order """ sort: [ModelsSortInput!] ): [Model!] @deprecated(reason: "use `related_records`") """ Full name of the user """ name: String """ Two-factor authentication with TOTP (time-based one-time passwords) """ otp( """ Name of the OTP secret, at most 40 characters; the default secret when omitted """ otp_name: String = null ): Otp! """ Names of the custom (named) OTP secrets of the user """ otp_tokens: [String!]! """ Deprecated, use profiles """ profile( """ Type of the profile """ profile_type: String! ): Profile @deprecated(reason: "use profiles") """ Profiles of the user, which can serve as roles or group related user properties. Soft-deleted profiles are included when the user itself is soft-deleted """ profiles( """ Return only profiles of this type """ profile_type: String ): [Profile!]! """ All properties of the object as an object keyed by property name """ properties( """ Properties to return, each converted to the given type (as by the matching property_* field; other types become strings); all properties as stored when omitted """ select: [PropertiesFieldInput!] ): HashObject """ Returns the value of the property with the given name as a string; ex: hair_color: property(name: "hair_color") """ property( """ Name of the property """ name: String! ): String """ Returns the value of the property with the given name as an array of strings; a single value is wrapped in an array and no value gives an empty array; ex: todo_list: property_array(name: "todo_list") """ property_array( """ Name of the property """ name: String! ): [String!] """ Returns the value of the property with the given name as a boolean. Accepts true/false values and the strings "t"/"T" and "f"/"F"; any other value returns an error; ex: enabled: property_boolean(name: "enabled") """ property_boolean( """ Name of the property """ name: String! ): Boolean """ Returns the value of the property with the given name as a float; returns an error when the value is not a number; ex: price: property_float(name: "price") """ property_float( """ Name of the property """ name: String! ): Float """ Returns the value of the property with the given name as an integer; returns an error when the value cannot be converted, e.g. "abc" or "1.5"; ex: age: property_int(name: "age") """ property_int( """ Name of the property """ name: String! ): Int """ Returns the value of the property with the given name as stored, without conversion """ property_json( """ Name of the property """ name: String! ): JSONPayload """ Returns the value of the property with the given name parsed from JSON text into an object; returns an error when the value is not valid JSON """ property_object( """ Name of the property """ name: String! ): HashObject """ Returns the file stored in the given upload property; ex: avatar: property_upload(name: "avatar") { url } """ property_upload( """ Number of seconds for which the returned URLs are valid. When given, signed URLs are returned; required to access files uploaded with acl private """ expires_in: Int """ Name of the upload property """ name: String! ): PropertyUpload """ Returns one related model. Deprecated, use related_record """ related_model( """ Additional conditions the related objects must match """ filter: ModelsFilterInput """ Name of the property (or attribute) of the related object equal to join_on_property """ foreign_property: String = "id" """ Name of the property (or attribute) of this object matched against foreign_property """ join_on_property: String! """ Name of the model schema (table) of the related models """ model_schema_name: [String]! """ Sort order of the results. When several entries are given, they are applied in the given order """ sort: [ModelsSortInput!] ): Model @deprecated(reason: "use `related_record`") """ Returns related models. Deprecated, use related_records """ related_models( """ Additional conditions the related objects must match """ filter: ModelsFilterInput """ Name of the property (or attribute) of the related object equal to join_on_property """ foreign_property: String! """ Name of the property (or attribute) of this object matched against foreign_property """ join_on_property: String! """ Maximum number of related objects returned for each object """ limit: Int """ Name of the model schema (table) of the related models """ model_schema_name: [String]! """ Sort order of the results. When several entries are given, they are applied in the given order """ sort: [ModelsSortInput!] ): [Model!] @deprecated(reason: "use `related_records`") """ Returns one record of the given table whose foreign_property equals the value of join_on_property of this object (belongs-to or has-one relation). When several records match, the last one in sort order is returned, by default the most recently updated; ex: parent: related_record(table: "parent", join_on_property: "parent_id") { id } """ related_record( """ Additional conditions the related record must match """ filter: RecordsFilterInput """ Name of the property (or attribute, e.g. id) of the related object that must equal the value of join_on_property """ foreign_property: String = "id" """ Name of the property (or attribute, e.g. id or user_id) of this object whose value is matched against foreign_property. When the value is an array, records matching any of its elements are returned. Returns an error when this object has no such property """ join_on_property: String! """ Sort order used to pick the record; updated_at ascending when omitted """ sort: [RecordsSortInput!] """ Name of the table (or tables) the related record belongs to """ table: [String]! ): Record """ Returns records of the given table whose foreign_property equals the value of join_on_property of this object (has-many relation). Related records of all objects in the result are loaded in one batch of at most 10,000 records, soft-deleted records are skipped; ex: children: related_records(table: "child", join_on_property: "id", foreign_property: "parent_id") { id } """ related_records( """ Additional conditions the related records must match """ filter: RecordsFilterInput """ Name of the property (or attribute, e.g. id) of the related object that must equal the value of join_on_property """ foreign_property: String! """ Name of the property (or attribute, e.g. id or user_id) of this object whose value is matched against foreign_property. When the value is an array, records matching any of its elements are returned. Returns an error when this object has no such property """ join_on_property: String! """ Maximum number of related objects returned for each object """ limit: Int """ Sort order of the related records; updated_at ascending when omitted """ sort: [RecordsSortInput!] """ Name of the table (or tables) the related records belong to """ table: [String]! ): [Record!] """ Returns the user whose foreign_property equals the value of join_on_property of this object (belongs-to relation); by default the user whose id is in user_id; ex: invited_by: related_user(join_on_property: "invited_by_id") { id } """ related_user( """ Additional conditions the related objects must match """ filter: ModelsFilterInput """ Name of the property (or attribute) of the related object equal to join_on_property """ foreign_property: String = "id" """ Name of the property (or attribute) of this object matched against foreign_property """ join_on_property: String = "user_id" """ Sort order of the results. When several entries are given, they are applied in the given order """ sort: [UsersSortInput!] ): User """ Returns users whose foreign_property equals the value of join_on_property of this object (has-many relation). Related users of all objects in the result are loaded in one batch of at most 10,000 users, soft-deleted users are skipped; ex: friends: related_users(join_on_property: "friend_ids", foreign_property: "id") { id } """ related_users( """ Additional conditions the related objects must match """ filter: ModelsFilterInput """ Name of the property (or attribute) of the related object equal to join_on_property """ foreign_property: String! """ Name of the property (or attribute) of this object matched against foreign_property """ join_on_property: String! """ Maximum number of related objects returned for each object """ limit: Int """ Sort order of the results. When several entries are given, they are applied in the given order """ sort: [UsersSortInput!] ): [User!] """ Returns records loaded from a remote endpoint: the value of join_on_property is sent as ids and the records in the JSON response are returned. Requests of all objects in the result are batched. Not available while serving a request made by another platformOS remote fetch (returns null) """ remote_records( """ Remote endpoint returning the resources for the given ids as JSON """ endpoint: Endpoint! """ Name of the property of this object holding the id (or array of ids) to request """ join_on_property: String! ): [Record!] """ Returns users loaded from a remote endpoint: the value of join_on_property is sent as ids and the users in the JSON response are returned. Requests of all objects in the result are batched. Not available while serving a request made by another platformOS remote fetch (returns null) """ remote_users( """ Remote endpoint returning the resources for the given ids as JSON """ endpoint: Endpoint! """ Name of the property of this object holding the id (or array of ids) to request """ join_on_property: String! ): [User!] """ URL-friendly identifier to use in URLs instead of the id, unique within the instance. Generated from the name (or first name, depending on instance settings) with a random suffix when taken, and regenerated when the name changes """ slug: String! """ Deprecated, users of the instance who are friends of this user at a connected identity provider; use api calls """ social_friends( """ Page number to return, starting at 1. Requesting a page beyond the last one returns an empty results list """ page: Int = 1 """ Number of results per page, must be greater than 0 """ per_page: Int = 20 ): UserCollection @deprecated(reason: "use api calls") """ Token valid for a given number of hours that authorizes requests as this user, e.g. from a third-party application: send it in the UserTemporaryToken request header. It can also be verified with users { results { authenticate { temporary_token(...) } } }. The token is invalidated when the password changes """ temporary_token( """ Number of hours after which the token expires """ expires_in: Float = 48.0 """ Deprecated, use expires_in. Takes precedence over expires_in when given """ valid_for: Int ): String """ Deprecated, transactables created by the user; use records """ transactables: [Transactable!] @deprecated(reason: "use records") """ Timestamp of when the object was last updated, set automatically by the system """ updated_at: JSONDate """ Returns the related user. Deprecated, use related_user """ user( """ Name of the property (or attribute) of the related object equal to join_on_property """ foreign_property: String = "id" """ Name of the property (or attribute) of this object matched against foreign_property """ join_on_property: String = "user_id" """ Sort order of the results. When several entries are given, they are applied in the given order """ sort: [UsersSortInput!] ): User @deprecated(reason: "use `related_user`") """ Returns related users. Deprecated, use related_users """ users( """ Name of the property (or attribute) of the related object equal to join_on_property """ foreign_property: String! """ Name of the property (or attribute) of this object matched against foreign_property """ join_on_property: String! """ Maximum number of related objects returned for each object """ limit: Int """ Sort order of the results. When several entries are given, they are applied in the given order """ sort: [UsersSortInput!] ): [User!] @deprecated(reason: "use `related_users`") } """ Paginated list of users """ type UserCollection { """ Number of the page returned in results """ current_page: Int! """ True when there is at least one page after the current one """ has_next_page: Boolean! """ True when the current page is not the first one """ has_previous_page: Boolean! """ Maximum number of results returned on a single page """ per_page: Int! """ Results on the current page """ results: [User!] """ Total number of results matching the query, across all pages """ total_entries: Int! """ Total number of pages, given per_page """ total_pages: Int! } """ A user to import """ input UserImport { """ Creation time to set; only used for new users """ created_at: JSONDate """ Email of the user; must be unique within the import """ email: String! """ Already hashed password copied from another instance, used instead of password """ encrypted_password: String """ Identifier of the user in an external system """ external_id: ID """ First name """ first_name: String """ Id of the object in the source system, stored as external_id; generated when empty. With _id_remap, other imported objects refer to this object by it """ id: ID """ Last name """ last_name: String """ Middle name """ middle_name: String """ Full name """ name: String """ Plain-text password, stored hashed """ password: String """ Deprecated. User profiles to import with the user """ profiles: [UserProfileImportType!] = [] """ Property values of the user schema, for example `{ "color": "red" }`; merged into the properties of an existing user """ properties: HashObject """ Slug of the user; must be unique within the import """ slug: String! """ Last update time to set; only used for new users """ updated_at: JSONDate } """ Attributes of a user to create or update """ input UserInputType { """ External (OAuth) authentications of the user """ authentications: [AuthenticationInputType] """ Legacy custom attachments. Deprecated, use upload properties """ custom_attachments: [AtachmentInputType] """ Legacy custom images. Deprecated, use upload properties """ custom_images: [ImageInputType] """ Timestamp of when the object was soft deleted, populated by the delete action. It is also possible to set it manually via update. To undelete, change it back to an empty value; note that associated objects need to be undeleted manually as well. """ deleted_at: JSONDate """ Email address of the user; must be unique """ email: String """ Identifier of the object in an external system. Used mainly for import/export, when a third party service is the source of truth """ external_id: ID """ First name """ first_name: String """ Last name """ last_name: String """ Middle name """ middle_name: String """ Full name """ name: String """ Password; stored encrypted and never returned """ password: String """ Legacy user profiles. Deprecated, use records instead """ profiles: [UserProfileInputType] """ Values of the user properties to set """ properties: [CustomAttributeInputType] """ URL-friendly identifier of the user """ slug: String } """ User returned by the deprecated people query and as a listing creator. Deprecated, use User instead """ type UserListing implements ListingCustomAttributeInterface & ListingsMetadata & RelationOnDemandInterface & RemoteModelInterface { """ Connections of the user with external authentication providers """ authentications: [Authentication!] """ Phone verification details. Deprecated, use records """ communication: ListingsCommunication """ Timestamp of when the object was created, set automatically by the system """ created_at: JSONDate """ Address with the given name; e.g. `address: custom_address(name: "office_address")` """ custom_address( """ Name of the address property """ name: String! ): ListingAddress """ All addresses, optionally only those with the given name; e.g. `home: custom_addresses(name: "home")` """ custom_addresses( """ Name of the address property to return addresses of """ name: String ): [ListingAddress!] """ Attachment with the given name; e.g. `sales_report: custom_attachment(name: "sales_report")` """ custom_attachment( """ Name of the attachment property """ name: String! ): ListingsPrivateFile """ All attachments, optionally only those with the given name """ custom_attachments( """ Name of the attachment property to return attachments of """ name: String ): [ListingsPrivateFile!] """ Image with the given name; e.g. `header: custom_image(name: "header")` """ custom_image( """ Name of the image property """ name: String! ): ListingImage """ All images, optionally only those with the given name; e.g. `cat_images: custom_images(name: "cat")` """ custom_images( """ Name of the image property to return images of """ name: String ): [ListingImage!] """ Customizations attached to the user """ customizations( """ Only customizations of this model schema """ name: String """ Only customizations matching these property conditions """ properties: [QueryCustomAttribute] """ Only customizations owned by this user """ user_id: ID ): [ListingsCustomization!] """ Timestamp of when the object was soft deleted, populated by the delete action. It is also possible to set it manually via update. To undelete, change it back to an empty value; note that associated objects need to be undeleted manually as well. """ deleted_at: JSONDate """ Email of the user """ email: String! """ Identifier of the object in an external system. Used mainly for import/export, when a third party service is the source of truth """ external_id: ID """ First name """ first_name: String """ Unique identifier of the object """ id: ID! """ Preferred language of the user """ language: String """ Last name """ last_name: String """ Middle name """ middle_name: String """ Returns the related model. Deprecated, use related_model """ model( """ Name of the property of the related object that must equal the value of join_on_property """ foreign_property: String = "id" """ Name of the property of this object whose value is matched against foreign_property """ join_on_property: String """ Name of the model schema (table) of the related models """ model_name: String ): ListingsCustomization @deprecated(reason: "use `related_model`") """ Returns related models. Deprecated, use related_models """ models( """ Name of the property of the related object that must equal the value of join_on_property """ foreign_property: String! """ Name of the property of this object whose value is matched against foreign_property """ join_on_property: String! """ Name of the model schema (table) of the related models """ model_name: [String] ): [ListingsCustomization!] @deprecated(reason: "use `related_models`") """ Full name """ name: String! """ User profile of the given type """ profile( """ Name of the user profile type """ profile_type: String! ): ListingUserProfile """ All user profiles of the user """ profiles: [ListingUserProfile!] """ All properties of the object """ properties: HashObject """ Value of the property with the given name, as a String; e.g. `hair_color: property(name: "hair_color")` """ property( """ Name of the property """ name: String! ): String """ Value of the Array property with the given name, as an Array (in contrast to property, which returns a String); e.g. `todo_list: property_array(name: "todo_list")` """ property_array( """ Name of the property """ name: String! ): [String!] """ Value of the property with the given name, as JSON (in contrast to property, which returns a String); e.g. `todo_list: property_json(name: "todo_list")` """ property_json( """ Name of the property """ name: String! ): JSONPayload """ Returns the model whose foreign_property equals the value of join_on_property of this object (belongs-to relation). Legacy relation, use related_record of Record instead """ related_model( """ Name of the property of the related object that must equal the value of join_on_property """ foreign_property: String = "id" """ Name of the property of this object whose value is matched against foreign_property """ join_on_property: String """ Name of the model schema (table) of the related models """ model_schema_name: String ): ListingsCustomization """ Returns models whose foreign_property equals the value of join_on_property of this object (has-many relation), at most 10000 at once. Legacy relation, use related_records of Record instead """ related_models( """ Name of the property of the related object that must equal the value of join_on_property """ foreign_property: String! """ Name of the property of this object whose value is matched against foreign_property """ join_on_property: String! """ Name of the model schema (table) of the related models """ model_schema_name: [String] ): [ListingsCustomization!] """ Returns the user whose foreign_property equals the value of join_on_property of this object; by default the user whose id is in user_id """ related_user( """ Name of the user attribute that must equal the value of join_on_property """ foreign_property: String = "id" """ Name of the property of this object holding the user id """ join_on_property: String = "user_id" ): User """ Returns an object loaded from the remote endpoint by the id stored in join_on_property. Deprecated, use remote_records """ remote_model( """ Remote endpoint returning the resources for the given ids as JSON """ endpoint: Endpoint! """ Name of the property of this object holding the id (or array of ids) to request """ join_on_property: String! ): Customization """ URL-friendly identifier of the user """ slug: String """ When sorting by distance, the distance to the reference point. Deprecated """ sort_score: [Int] @deprecated(reason: "not supported everywhere") """ Token authorizing the user in third party applications. Deprecated, use User.temporary_token """ temporary_token( """ Number of hours before the token expires. Defaults to 48 """ expires_in: Float """ Deprecated, use expires_in """ valid_for: Int ): String """ Timestamp of when the object was last updated, set automatically by the system """ updated_at: JSONDate """ Returns the related user. Deprecated, use related_user """ user( """ Name of the user attribute that must equal the value of join_on_property """ foreign_property: String = "id" """ Name of the property of this object holding the user id """ join_on_property: String = "user_id" ): User @deprecated(reason: "use `related_users`") } """ Paginated list of users found in the search index. Deprecated, use UserCollection instead """ type UserListingCollection { """ Results of the requested aggregations """ aggregations: Aggregations! """ Number of the page returned in results """ current_page: Int! """ True when there is at least one page after the current one """ has_next_page: Boolean! """ True when the current page is not the first one """ has_previous_page: Boolean! """ Deprecated, use current_page instead """ page: Int! @deprecated(reason: "use current_page") """ Maximum number of results returned on a single page """ per_page: Int! """ Results on the current page """ results: [UserListing!] """ Number of results on the current page """ size: Int! """ Total number of results matching the query, across all pages """ total_entries: Int! """ Total number of pages, given per_page """ total_pages: Int! } """ Result of deleting an OTP secret of a user """ type UserOtpDeleteTokenInformation { """ Name of the OTP secret; empty for the default one """ otp_name: String """ success, or not_found when the user has no such OTP secret """ status: String! """ ID of the user """ user_id: ID! } """ Result of refreshing the OTP secret of a user """ type UserOtpSecretRefreshInformation { """ Name of the OTP secret; empty for the default one """ otp_name: String """ success when the secret was refreshed """ status: String! """ ID of the user """ user_id: ID! } """ Deprecated. A user profile to import with a user """ input UserProfileImportType { """ Values of address properties """ addresses: [AddressImport!] """ Values of attachment properties """ attachments: [AttachmentsImport!] """ Id of the profile in the source system """ id: ID """ Values of image properties """ images: [ImagesImport!] """ Property values, for example `{ "color": "red" }`; every key must be a defined property. Merged into the properties of an existing object """ properties: HashObject """ Name of the user profile schema """ type_name: String! } """ User profile to set, identified by its profile type. Deprecated, use records instead of user profiles """ input UserProfileInputType { """ Name of the profile type """ name: String """ Attributes of the profile """ values: DefaultProfileInputType } """ Schema of user profiles (formerly UserProfileType). Deprecated, use Table instead """ type UserProfileSchema implements AdminPropertiesInterface & AdminSharedAttributesInterface { """ Timestamp of when the object was created, set automatically by the system """ created_at: JSONDate! """ Deprecated, use properties instead """ fields: [Property!]! @deprecated(reason: "Use properties") """ Unique identifier of the object """ id: ID! """ When true, the resource is managed outside of files: pos-cli deploy and sync never overwrite or delete it """ manually_managed: Boolean """ Free-form data attached to the resource with the metadata key of its file (or the metadata argument of an admin mutation) """ metadata: HashObject """ Name of the schema """ name: String! """ Name used to refer to the schema in queries and mutations """ parameterized_name: String! """ Path of the file the resource comes from, relative to the app directory, for example views/pages/index.liquid or modules/my_module/public/views/partials/header.liquid. Identifies the resource in deploy, sync and admin mutations """ physical_file_path: String """ Properties defined in the schema, sorted by name """ properties: [Property!]! """ Timestamp of when the object was last updated, set automatically by the system """ updated_at: JSONDate! } """ Paginated list of user profile schemas. Deprecated """ type UserProfileSchemaCollection { """ Number of the page returned in results """ current_page: Int! """ True when there is at least one page after the current one """ has_next_page: Boolean! """ True when the current page is not the first one """ has_previous_page: Boolean! """ Maximum number of results returned on a single page """ per_page: Int! """ Results on the current page """ results: [UserProfileSchema!] """ Total number of results matching the query, across all pages """ total_entries: Int! """ Total number of pages, given per_page """ total_pages: Int! } """ Attributes of a user profile schema. Deprecated, use tables and records instead """ input UserProfileSchemaInputType { """ Deprecated, use properties """ fields: [NestedPropertyInputType] """ Arbitrary JSON data stored with the schema """ metadata: HashObject """ Deprecated, derived from physical_file_path. Name of the schema """ name: String """ Path of the file the schema is stored as, used by pos-cli pull and deploy """ physical_file_path: String! """ Properties of the schema """ properties: [NestedPropertyInputType] } """ Conditions for admin_user_profile_schemas """ input UserProfileSchemasFilterInput { """ Conditions on the creation time """ created_at: DateFilter """ Conditions on the id """ id: UniqIdFilter """ Conditions on the metadata defined in the file. All conditions are combined with AND """ metadata: [JsonbFilter!] """ Conditions on the name """ name: StringFilter """ Alternative condition sets: matches when at least one of them matches. Combined with AND with the other conditions """ or: [UserProfileSchemasFilterInput!] """ Conditions on the parameterized name, the form of the name used to refer to it in code """ parameterized_name: StringFilter """ Conditions on the source file path relative to the app directory, e.g. views/pages/index.liquid """ physical_file_path: StringFilter """ Conditions on the last update time """ updated_at: DateFilter } """ Sort order for admin_user_profile_schemas """ input UserProfileSchemasSortInput { """ Sort by creation time """ created_at: StandardSort """ Sort by id """ id: StandardSort """ Sort by metadata values, applied in the given order """ metadata: [JsonbSort!] """ Sort by name """ name: StandardSort """ Sort by parameterized name """ parameterized_name: StandardSort """ Sort by the path of the source file """ physical_file_path: StandardSort """ Sort by last update time """ updated_at: StandardSort } """ Deprecated. Changes to an existing user profile """ input UserProfileUpdateType { """ Values of address properties """ addresses: [AddressImport!] """ Values of attachment properties """ attachments: [AttachmentsImport!] """ Id of the existing profile """ id: ID! """ Values of image properties """ images: [ImagesImport!] """ Property values, for example `{ "color": "red" }`; every key must be a defined property. Merged into the properties of an existing object """ properties: HashObject """ Name of the user profile schema """ type_name: String! } """ Legacy image property of the user. Deprecated """ input UserPropertyInput { """ Name of the image property """ property_name: String! } """ Schema of users, with the properties defined in app/user.yml """ type UserSchema { """ Properties of users, sorted by name """ properties: [Property!]! } """ Deprecated. Changes to an existing user """ input UserUpdate { """ Creation time to set """ created_at: JSONDate """ Email of the user """ email: String! """ Identifier of the user in an external system """ external_id: ID """ First name """ first_name: String """ Id of the existing user """ id: ID! """ Last name """ last_name: String """ Middle name """ middle_name: String """ Full name """ name: String """ Deprecated. User profiles to update """ profiles: [UserProfileUpdateType!] = [] """ Slug of the user """ slug: String! """ Last update time to set """ updated_at: JSONDate } """ Conditions users must match. All given conditions are combined with AND; use `or` for alternatives. Soft deleted users are excluded unless deleted_at is used """ input UsersFilterInput { """ Condition on the creation time """ created_at: DateFilter """ Condition on the soft deletion time. Using it makes soft deleted users eligible, e.g. `deleted_at: { exists: true }` returns only deleted users """ deleted_at: DateFilter """ Condition on the email """ email: StringFilter """ Condition on the external id """ external_id: UniqIdFilter """ Condition on the first name """ first_name: StringFilter """ Condition on the user id """ id: UniqIdFilter """ Condition on the last name """ last_name: StringFilter """ Condition on the name """ name: StringFilter """ Alternative sets of conditions: matches users meeting at least one of them, in addition to the other conditions of this filter """ or: [UsersFilterInput!] """ Conditions on user profiles; for every entry the user must have a profile meeting it """ profiles: [ProfileFilterInput!] """ Conditions on user properties; every entry must match """ properties: [PropertyFilterInput!] """ Deprecated, use related_records """ related_models: [RelatedModelsFilterInput!] """ Matches users related to records meeting the given conditions; when several entries are given, all must match """ related_records: [RelatedRecordsFilterInput!] """ Matches users related to other users meeting the given conditions; when several entries are given, all must match """ related_users: [RelatedUsersFilterInput!] """ Condition on the slug """ slug: StringFilter """ Condition on the last update time """ updated_at: DateFilter } """ Sort order for users """ input UsersSortInput { """ Sort by creation time """ created_at: StandardSort """ Sort by soft deletion time """ deleted_at: StandardSort """ Sort by email """ email: StandardSort """ Sort by external id """ external_id: StandardSort """ Sort by first name """ first_name: StandardSort """ Sort by id """ id: StandardSort """ Sort by last name """ last_name: StandardSort """ Sort by name """ name: StandardSort """ Sort by property values of the user's legacy user profiles, applied in the given order """ profile_properties: [PropertySort!] """ Sort by user property values, applied in the given order """ properties: [PropertySort!] """ Sort by slug """ slug: StandardSort """ Sort by last update time """ updated_at: StandardSort } """ File to store in an upload property, created on the server from given content or downloaded from a URL. The file is uploaded when the record or user is saved; an error is returned when it cannot be downloaded or uploaded """ input ValueUploadInput { """ Access to the stored file; private files can be read only through signed URLs. Defaults to private """ acl: PropertyUploadACL = private """ Cache-Control header for the file """ cache_control: String """ Content of the file; for pdf, the HTML to convert. Required unless remote_url is provided """ content: String """ Content-Disposition header for the file, for example "attachment; filename=foo.bar;" """ content_disposition: String """ Content-Type header for the file, for example "text/csv; charset=UTF-8" """ content_type: String """ Encrypts content with the given GPG public key before it is stored; a file downloaded from remote_url is not encrypted """ encryption: PropertyUploadEncryptionInput """ Path of the file within the property: files are stored under <table name>/<property name>/<file_path> (user/<property name>/<file_path> for users). Defaults to <uuid>/<property name> (for image, <uuid>/<file name from remote_url>). Use a unique path per record, otherwise existing files are overwritten """ file_path: String """ URL of an external file to download and store. Required unless content is provided; takes precedence over content """ remote_url: String """ When true, the mutation waits (up to about one second) until the stored file is available before returning, so it can be read right away """ synchronous: Boolean = false """ Type of the upload. For image, versions are generated based on the property configuration """ type: ValueUploadInputTypeEnum! } """ Kind of file created by ValueUploadInput """ enum ValueUploadInputTypeEnum { """ Image; versions configured for the property are generated """ image """ PDF generated from the HTML given in content """ pdf """ File stored as given, without any processing """ plain } """ Metric used to measure the distance between two vectors """ enum VectorDistanceEnum { """ Euclidean (straight-line) distance between the vectors """ euclidean } """ Sort by distance between the stored embedding and a given vector, nearest first """ input VectorDistanceSort { """ Vector to compare with, with the same number of dimensions as the stored embeddings. When omitted, no sorting is applied """ embedding: [Float!] """ Distance metric used to compare the vectors """ order: VectorDistanceEnum! } """ Recorded change of a record, user or user profile. Versions are available for the last 7 days """ type Version { """ Timestamp of when the change happened """ created_at: JSONDate! """ Kind of change """ event: VersionAction! """ Unique identifier of the object """ id: ID! """ Id of the object that was changed """ item_id: ID! """ Kind of the object that was changed """ item_type: VersionItemType! """ Attributes of the object before the change; an empty object for a create """ resource: HashObject """ Who made the change: the id of the signed in user for changes made by the application, the Whodunnit request header (graphiql when absent) for changes made through the GraphQL API, or another label for changes made by platformOS support """ whodunnit: String } """ Change recorded by a version """ enum VersionAction { """ The object was created """ create """ The object was deleted """ destroy """ The object was updated """ update } """ Paginated list of versions """ type VersionCollection { """ Number of the page returned in results """ current_page: Int! """ True when there is at least one page after the current one """ has_next_page: Boolean! """ True when the current page is not the first one """ has_previous_page: Boolean! """ Maximum number of results returned on a single page """ per_page: Int! """ Results on the current page """ results: [Version!] """ Total number of results matching the query, across all pages """ total_entries: Int! """ Total number of pages, given per_page """ total_pages: Int! } """ Conditions for admin_versions """ input VersionFilterInput { """ Conditions on the time of the change """ created_at: DateFilter """ Conditions on the kind of change: create, update or destroy """ event: StringFilter """ Conditions on the id """ id: UniqIdFilter """ Conditions on the id of the changed object """ item_id: UniqIdFilter """ Conditions on the type of the changed object, as returned in item_type """ item_type: StringFilter """ Alternative condition sets: matches when at least one of them matches. Combined with AND with the other conditions """ or: [VersionFilterInput!] """ Conditions on the last update time """ updated_at: DateFilter """ Conditions on who made the change, usually the id of a user """ whodunnit: StringFilter } """ Image version generated automatically after upload. Deprecated together with presigned_upload_url """ input VersionInput { """ Additional manipulations """ manipulate: VersionManipulateInput """ Name of the version, for example thumb """ name: String! """ Output format and quality """ output: VersionOutputInput """ Resizing settings """ resize: VersionResizeInput } """ Kind of object a version records a change of """ enum VersionItemType { """ Record (an entry of a table) """ Customization """ User """ User """ User profile """ UserProfile } """ Image manipulations applied to a generated image version """ input VersionManipulateInput { """ Blur strength: the sigma of the Gaussian mask, where sigma = 1 + radius / 2 """ blur: ImageBlur """ Background color that replaces transparency """ flatten: CssColor = "#000000" """ Convert to 8-bit greyscale (256 shades of grey) """ greyscale: Boolean = false } """ Output settings of a generated image version """ input VersionOutputInput { """ Output format of the version """ format: ImageFormat """ Compression quality from 0 (lowest) to 100 (highest). Defaults: PNG 80, WEBP 80, JPEG 85 """ quality: ImageQuality } """ Resizing of a generated image version """ input VersionResizeInput { """ Background color used with fit contain. Default: #000000 """ background: CssColor """ How the image is fitted into width and height """ fit: ImageResizeFit = cover """ Target height in pixels. When omitted, it is derived from width and the aspect ratio """ height: Int """ Position to use when fit is cover or contain """ position: ImageResizePosition """ Target width in pixels. When omitted, it is derived from height and the aspect ratio """ width: Int """ Do not enlarge the image when its width or height is already smaller than the given dimensions """ without_enlargement: Boolean = false } """ Sort order for admin_versions """ input VersionSortInput { """ Sort by the time of the change """ created_at: StandardSort """ Sort by kind of change """ event: StandardSort """ Sort by id """ id: StandardSort """ Sort by the id of the changed object """ item_id: StandardSort """ Sort by the type of the changed object """ item_type: StandardSort """ Sort by last update time """ updated_at: StandardSort """ Sort by who made the change """ whodunnit: StandardSort }