From 1f9fe2ee2929d7877aa0f220ca5d5504bc5241f5 Mon Sep 17 00:00:00 2001 From: Graham McIntire Date: Mon, 11 May 2026 14:46:27 -0500 Subject: [PATCH] chore: add gaiia library dep, remove stale honeybadger/tidewave/cbor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add vendored Gaiia library (path: vendor/gaiia) with auto-generated GraphQL queries and mutations from the Gaiia API schema - Add startAddInventoryItemsJob + updateInventoryItem mutations - Remove `:cbor` (was unused — no references anywhere) - Remove stale Honeybadger filter module, tests, router plug, and config - Remove stale Tidewave plug from endpoint (dev-only, dep already gone) - Unlock leftover deps from lock file --- config/config.exs | 7 - config/dev.exs | 7 - lib/towerops/error_tracker_ignorer.ex | 3 +- lib/towerops/honeybadger_filter.ex | 169 - lib/towerops_web/endpoint.ex | 4 - lib/towerops_web/router.ex | 1 - mix.exs | 6 +- mix.lock | 5 - test/towerops/honeybadger_filter_test.exs | 239 - vendor/gaiia/lib/gaiia.ex | 34 + vendor/gaiia/lib/gaiia/client.ex | 142 + vendor/gaiia/lib/gaiia/error.ex | 81 + vendor/gaiia/lib/gaiia/global_id.ex | 160 + vendor/gaiia/lib/gaiia/mutations.ex | 35 + vendor/gaiia/lib/gaiia/operation.ex | 55 + vendor/gaiia/lib/gaiia/pagination.ex | 79 + vendor/gaiia/lib/gaiia/queries.ex | 50 + vendor/gaiia/lib/gaiia/schema.ex | 33 + vendor/gaiia/lib/gaiia/type_ref.ex | 26 + vendor/gaiia/mix.exs | 35 + vendor/gaiia/mix.lock | 17 + vendor/gaiia/priv/mutations.json | 4574 ++++++++++++++ vendor/gaiia/priv/queries.json | 6806 +++++++++++++++++++++ 23 files changed, 12130 insertions(+), 438 deletions(-) delete mode 100644 lib/towerops/honeybadger_filter.ex delete mode 100644 test/towerops/honeybadger_filter_test.exs create mode 100644 vendor/gaiia/lib/gaiia.ex create mode 100644 vendor/gaiia/lib/gaiia/client.ex create mode 100644 vendor/gaiia/lib/gaiia/error.ex create mode 100644 vendor/gaiia/lib/gaiia/global_id.ex create mode 100644 vendor/gaiia/lib/gaiia/mutations.ex create mode 100644 vendor/gaiia/lib/gaiia/operation.ex create mode 100644 vendor/gaiia/lib/gaiia/pagination.ex create mode 100644 vendor/gaiia/lib/gaiia/queries.ex create mode 100644 vendor/gaiia/lib/gaiia/schema.ex create mode 100644 vendor/gaiia/lib/gaiia/type_ref.ex create mode 100644 vendor/gaiia/mix.exs create mode 100644 vendor/gaiia/mix.lock create mode 100644 vendor/gaiia/priv/mutations.json create mode 100644 vendor/gaiia/priv/queries.json diff --git a/config/config.exs b/config/config.exs index 31c5a61b..a7dfc95d 100644 --- a/config/config.exs +++ b/config/config.exs @@ -25,13 +25,6 @@ config :esbuild, env: %{"NODE_PATH" => [Path.expand("../deps", __DIR__), Mix.Project.build_path()]} ] -config :honeybadger, - api_key: "hbp_xe5xMnpLZ2XJsXQJujoEkgCmiqCfwa0uYA3Y", - environment_name: config_env(), - insights_enabled: true, - use_logger: true, - filter: Towerops.HoneybadgerFilter - # Configure Elixir's Logger config :logger, :default_formatter, format: "$time $metadata[$level] $message\n", diff --git a/config/dev.exs b/config/dev.exs index c39b3361..f5188f0b 100644 --- a/config/dev.exs +++ b/config/dev.exs @@ -1,12 +1,5 @@ import Config -# Disable Honeybadger in development -config :honeybadger, - environment_name: :dev, - exclude_envs: [:dev], - # Don't use custom filter in dev since Honeybadger is excluded - filter: Honeybadger.Filter.Default - # Console backend configuration config :logger, :console, format: "[$level] $message\n", diff --git a/lib/towerops/error_tracker_ignorer.ex b/lib/towerops/error_tracker_ignorer.ex index a464d0a3..a200d590 100644 --- a/lib/towerops/error_tracker_ignorer.ex +++ b/lib/towerops/error_tracker_ignorer.ex @@ -3,8 +3,7 @@ defmodule Towerops.ErrorTrackerIgnorer do Drops benign errors from ErrorTracker that occur during K8s pod shutdown or transient DB connection cycling. - Matches the same patterns as `Towerops.HoneybadgerFilter` and - `Towerops.LoggerFilters.drop_shutdown_errors/2`. + Matches the same patterns as `Towerops.LoggerFilters.drop_shutdown_errors/2`. """ @behaviour ErrorTracker.Ignorer diff --git a/lib/towerops/honeybadger_filter.ex b/lib/towerops/honeybadger_filter.ex deleted file mode 100644 index 63a2e312..00000000 --- a/lib/towerops/honeybadger_filter.ex +++ /dev/null @@ -1,169 +0,0 @@ -defmodule Towerops.HoneybadgerFilter do - @moduledoc """ - Custom Honeybadger filter to exclude noisy errors during deployments - and filter sensitive SNMP credentials from error reports. - - Filters out errors that occur during normal application shutdown/restart: - - OTP supervisor/gen_server termination errors - - Redix connection errors (tcp_closed, econnrefused) - - DBConnection errors during shutdown - - Normal process exits (:normal, :shutdown, {:shutdown, _}) - - Also filters sensitive data from error reports (passwords, tokens, SNMP communities). - """ - - use Honeybadger.Filter.Mixin - - # Named supervisors/processes that generate errors during normal shutdown - @ignored_registered_names [ - "memsup", - "cpu_sup", - "Elixir.PollerSupervisor" - ] - - # Sensitive keys that should be filtered from error reports - @sensitive_keys [ - "password", - "snmp_community", - "community", - "secret", - "token", - "api_key", - "auth_password", - "priv_password", - "auth_pass", - "priv_pass" - ] - - @impl Honeybadger.Filter - def filter_context(context) do - cond do - # Named process in our ignore list - get_in(context, [:registered_name]) in @ignored_registered_names -> - nil - - # Anonymous gen_server shutdown errors (OTP domain, gen_server error_info) - otp_gen_server_shutdown?(context) -> - nil - - # Redix connection errors during shutdown/restart - redix_connection_error?(context) -> - nil - - # DBConnection errors during shutdown/restart - db_connection_error?(context) -> - nil - - # Normal process shutdown (exit :normal, :shutdown, {:shutdown, _}) - normal_shutdown?(context) -> - nil - - true -> - context - |> super() - |> filter_sensitive_data() - end - end - - @impl Honeybadger.Filter - def filter_params(params) when is_map(params) do - Map.new(params, fn {key, value} -> - if should_filter?(key) do - {key, "[FILTERED]"} - else - {key, filter_params(value)} - end - end) - end - - def filter_params(params), do: params - - # Detect anonymous gen_server termination during shutdown - defp otp_gen_server_shutdown?(context) do - domain = get_in(context, [:domain]) - mfa = get_in(context, [:mfa]) - - domain == ["otp"] and match?(["gen_server", "error_info", _], mfa) - end - - # Detect Redix connection errors during shutdown/restart - defp redix_connection_error?(context) do - reason = get_in(context, [:reason]) - message = get_in(context, [:message]) - - cond do - # Redix connection closed errors - is_tuple(reason) and elem(reason, 0) == :tcp_closed -> - true - - # Redix connection refused (during restart) - is_tuple(reason) and elem(reason, 0) == :econnrefused -> - true - - # String message check for Redix errors - is_binary(message) and String.contains?(message, "Redix") -> - true - - true -> - false - end - end - - # Detect DBConnection errors during shutdown/restart - defp db_connection_error?(context) do - reason = get_in(context, [:reason]) - message = get_in(context, [:message]) - - cond do - # DBConnection.ConnectionError - is_exception(reason) and reason.__struct__ == DBConnection.ConnectionError -> - true - - # String message check - is_binary(message) and String.contains?(message, "DBConnection") -> - true - - true -> - false - end - end - - # Detect normal process shutdown - defp normal_shutdown?(context) do - reason = get_in(context, [:reason]) - - case reason do - :normal -> true - :shutdown -> true - {:shutdown, _} -> true - {:port_died, :normal} -> true - {:port_died, :shutdown} -> true - _ -> false - end - end - - # Filter sensitive data from context - defp filter_sensitive_data(nil), do: nil - - defp filter_sensitive_data(context) when is_map(context) do - context - |> Map.update(:cgi_data, %{}, &filter_params/1) - |> Map.update(:params, %{}, &filter_params/1) - |> Map.update(:session, %{}, &filter_params/1) - |> Map.update(:context, %{}, &filter_params/1) - end - - defp filter_sensitive_data(context), do: context - - # Check if a key should be filtered - defp should_filter?(key) when is_binary(key) do - key_lower = String.downcase(key) - Enum.any?(@sensitive_keys, &String.contains?(key_lower, &1)) - end - - defp should_filter?(key) when is_atom(key) do - should_filter?(Atom.to_string(key)) - end - - defp should_filter?(_), do: false -end diff --git a/lib/towerops_web/endpoint.ex b/lib/towerops_web/endpoint.ex index 01011958..3367e4a2 100644 --- a/lib/towerops_web/endpoint.ex +++ b/lib/towerops_web/endpoint.ex @@ -49,10 +49,6 @@ defmodule ToweropsWeb.Endpoint do from: Application.compile_env(:towerops, :coverage_storage_dir, {:towerops, "priv/static/coverage"}), gzip: false - if Mix.env() == :dev do - plug Tidewave - end - # Code reloading can be explicitly enabled under the # :code_reloader configuration of your endpoint. if code_reloading? do diff --git a/lib/towerops_web/router.ex b/lib/towerops_web/router.ex index 861ac11c..314449bb 100644 --- a/lib/towerops_web/router.ex +++ b/lib/towerops_web/router.ex @@ -2,7 +2,6 @@ defmodule ToweropsWeb.Router do @moduledoc false use ToweropsWeb, :router - use Honeybadger.Plug use ErrorTracker.Web, :router import Oban.Web.Router diff --git a/mix.exs b/mix.exs index 7c4e037f..71601764 100644 --- a/mix.exs +++ b/mix.exs @@ -96,8 +96,8 @@ defmodule Towerops.MixProject do github: "tailwindlabs/heroicons", tag: "v2.2.0", sparse: "optimized", app: false, compile: false, depth: 1}, {:swoosh, "~> 1.24"}, {:gen_smtp, "~> 1.0"}, - {:cbor, "~> 1.0"}, {:req, "~> 0.5"}, + {:gaiia, path: "vendor/gaiia"}, {:castore, "~> 1.0"}, {:sweet_xml, "~> 0.7"}, {:yaml_elixir, "~> 2.9"}, @@ -120,7 +120,6 @@ defmodule Towerops.MixProject do {:absinthe, "~> 1.7"}, {:absinthe_plug, "~> 1.5"}, {:absinthe_phoenix, "~> 2.0"}, - {:honeybadger, "~> 0.24"}, {:error_tracker, "~> 0.7"}, {:error_tracker_notifier, "~> 0.2"}, {:stream_data, "~> 1.1", only: :test}, @@ -134,8 +133,7 @@ defmodule Towerops.MixProject do {:cloak_ecto, "~> 1.3"}, {:geo_postgis, "~> 3.7"}, {:logger_file_backend, "~> 0.0.13", only: :dev}, - {:logger_backends, "~> 1.0", only: :dev}, - {:tidewave, "~> 0.5", only: :dev} + {:logger_backends, "~> 1.0", only: :dev} ] end diff --git a/mix.lock b/mix.lock index 54bb6410..66d6d888 100644 --- a/mix.lock +++ b/mix.lock @@ -6,10 +6,8 @@ "bandit": {:hex, :bandit, "1.11.0", "dbdd9c9963f146ee9da9860d1ee5b0ffd65cea51fe2aab3f3273df84329d133a", [:mix], [{:hpax, "~> 1.0", [hex: :hpax, repo: "hexpm", optional: false]}, {:plug, "~> 1.18", [hex: :plug, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}, {:thousand_island, "~> 1.0", [hex: :thousand_island, repo: "hexpm", optional: false]}, {:websock, "~> 0.5", [hex: :websock, repo: "hexpm", optional: false]}], "hexpm", "c949d93a325a28da2333dde5a9ab61986ad2c2b7226347db6a28303b9139865e"}, "bunt": {:hex, :bunt, "1.0.0", "081c2c665f086849e6d57900292b3a161727ab40431219529f13c4ddcf3e7a44", [:mix], [], "hexpm", "dc5f86aa08a5f6fa6b8096f0735c4e76d54ae5c9fa2c143e5a1fc7c1cd9bb6b5"}, "castore": {:hex, :castore, "1.0.18", "5e43ef0ec7d31195dfa5a65a86e6131db999d074179d2ba5a8de11fe14570f55", [:mix], [], "hexpm", "f393e4fe6317829b158fb74d86eb681f737d2fe326aa61ccf6293c4104957e34"}, - "cbor": {:hex, :cbor, "1.0.2", "9b0af85af291a556e10a0ffd48ba9a21a75e711828fafd3af193d56d95f0907f", [:mix], [], "hexpm", "edbc9b4a16eb93a582437b9b249c340a75af03958e338fb43d8c1be9fc65b864"}, "cc_precompiler": {:hex, :cc_precompiler, "0.1.11", "8c844d0b9fb98a3edea067f94f616b3f6b29b959b6b3bf25fee94ffe34364768", [:mix], [{:elixir_make, "~> 0.7", [hex: :elixir_make, repo: "hexpm", optional: false]}], "hexpm", "3427232caf0835f94680e5bcf082408a70b48ad68a5f5c0b02a3bea9f3a075b9"}, "certifi": {:hex, :certifi, "2.15.0", "0e6e882fcdaaa0a5a9f2b3db55b1394dba07e8d6d9bcad08318fb604c6839712", [:rebar3], [], "hexpm", "b147ed22ce71d72eafdad94f055165c1c182f61a2ff49df28bcc71d1d5b94a60"}, - "circular_buffer": {:hex, :circular_buffer, "1.0.0", "25c004da0cba7bd8bc1bdabded4f9a902d095e20600fd15faf1f2ffbaea18a07", [:mix], [], "hexpm", "c829ec31c13c7bafd1f546677263dff5bfb006e929f25635878ac3cfba8749e5"}, "cloak": {:hex, :cloak, "1.1.4", "aba387b22ea4d80d92d38ab1890cc528b06e0e7ef2a4581d71c3fdad59e997e7", [:mix], [{:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}], "hexpm", "92b20527b9aba3d939fab0dd32ce592ff86361547cfdc87d74edce6f980eb3d7"}, "cloak_ecto": {:hex, :cloak_ecto, "1.3.0", "0de127c857d7452ba3c3367f53fb814b0410ff9c680a8d20fbe8b9a3c57a1118", [:mix], [{:cloak, "~> 1.1.1", [hex: :cloak, repo: "hexpm", optional: false]}, {:ecto, "~> 3.0", [hex: :ecto, repo: "hexpm", optional: false]}], "hexpm", "314beb0c123b8a800418ca1d51065b27ba3b15f085977e65c0f7b2adab2de1cc"}, "comeonin": {:hex, :comeonin, "5.5.1", "5113e5f3800799787de08a6e0db307133850e635d34e9fab23c70b6501669510", [:mix], [], "hexpm", "65aac8f19938145377cee73973f192c5645873dcf550a8a6b18187d17c13ccdb"}, @@ -40,7 +38,6 @@ "gettext": {:hex, :gettext, "1.0.2", "5457e1fd3f4abe47b0e13ff85086aabae760497a3497909b8473e0acee57673b", [:mix], [{:expo, "~> 0.5.1 or ~> 1.0", [hex: :expo, repo: "hexpm", optional: false]}], "hexpm", "eab805501886802071ad290714515c8c4a17196ea76e5afc9d06ca85fb1bfeb3"}, "hackney": {:hex, :hackney, "1.25.0", "390e9b83f31e5b325b9f43b76e1a785cbdb69b5b6cd4e079aa67835ded046867", [:rebar3], [{:certifi, "~> 2.15.0", [hex: :certifi, repo: "hexpm", optional: false]}, {:idna, "~> 6.1.0", [hex: :idna, repo: "hexpm", optional: false]}, {:metrics, "~> 1.0.0", [hex: :metrics, repo: "hexpm", optional: false]}, {:mimerl, "~> 1.4", [hex: :mimerl, repo: "hexpm", optional: false]}, {:parse_trans, "3.4.1", [hex: :parse_trans, repo: "hexpm", optional: false]}, {:ssl_verify_fun, "~> 1.1.0", [hex: :ssl_verify_fun, repo: "hexpm", optional: false]}, {:unicode_util_compat, "~> 0.7.1", [hex: :unicode_util_compat, repo: "hexpm", optional: false]}], "hexpm", "7209bfd75fd1f42467211ff8f59ea74d6f2a9e81cbcee95a56711ee79fd6b1d4"}, "heroicons": {:git, "https://github.com/tailwindlabs/heroicons.git", "0435d4ca364a608cc75e2f8683d374e55abbae26", [tag: "v2.2.0", sparse: "optimized", depth: 1]}, - "honeybadger": {:hex, :honeybadger, "0.27.0", "970efc796b5fb6db5c6a6e8e68660865b249bd184c306cfa323797a4b3570be9", [:mix], [{:ash, "~> 3.0", [hex: :ash, repo: "hexpm", optional: true]}, {:ecto, ">= 2.0.0", [hex: :ecto, repo: "hexpm", optional: true]}, {:hackney, "~> 1.8 or ~> 4.0", [hex: :hackney, repo: "hexpm", optional: true]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}, {:phoenix, ">= 1.0.0 and < 2.0.0", [hex: :phoenix, repo: "hexpm", optional: true]}, {:plug, ">= 1.0.0 and < 2.0.0", [hex: :plug, repo: "hexpm", optional: true]}, {:process_tree, "~> 0.2.1", [hex: :process_tree, repo: "hexpm", optional: false]}, {:req, "~> 0.5.0", [hex: :req, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "236612eeac103619c6d4297090f6a3bf517c0f5ad5f210fec7ba8a90d47a8209"}, "hpax": {:hex, :hpax, "1.0.3", "ed67ef51ad4df91e75cc6a1494f851850c0bd98ebc0be6e81b026e765ee535aa", [:mix], [], "hexpm", "8eab6e1cfa8d5918c2ce4ba43588e894af35dbd8e91e6e55c817bca5847df34a"}, "httpoison": {:hex, :httpoison, "2.3.0", "10eef046405bc44ba77dc5b48957944df8952cc4966364b3cf6aa71dce6de587", [:mix], [{:hackney, "~> 1.21", [hex: :hackney, repo: "hexpm", optional: false]}], "hexpm", "d388ee70be56d31a901e333dbcdab3682d356f651f93cf492ba9f06056436a2c"}, "idna": {:hex, :idna, "6.1.1", "8a63070e9f7d0c62eb9d9fcb360a7de382448200fbbd1b106cc96d3d8099df8d", [:rebar3], [{:unicode_util_compat, "~> 0.7.0", [hex: :unicode_util_compat, repo: "hexpm", optional: false]}], "hexpm", "92376eb7894412ed19ac475e4a86f7b413c1b9fbb5bd16dccd57934157944cea"}, @@ -80,7 +77,6 @@ "plug_crypto": {:hex, :plug_crypto, "2.1.1", "19bda8184399cb24afa10be734f84a16ea0a2bc65054e23a62bb10f06bc89491", [:mix], [], "hexpm", "6470bce6ffe41c8bd497612ffde1a7e4af67f36a15eea5f921af71cf3e11247c"}, "poolboy": {:hex, :poolboy, "1.5.2", "392b007a1693a64540cead79830443abf5762f5d30cf50bc95cb2c1aaafa006b", [:rebar3], [], "hexpm", "dad79704ce5440f3d5a3681c8590b9dc25d1a561e8f5a9c995281012860901e3"}, "postgrex": {:hex, :postgrex, "0.22.1", "b3665ad17e15441557da8f45eeebfcd56e4a2b0b98538b855679a13d05e5cc5d", [:mix], [{:db_connection, "~> 2.9", [hex: :db_connection, repo: "hexpm", optional: false]}, {:decimal, "~> 1.5 or ~> 2.0 or ~> 3.0", [hex: :decimal, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:table, "~> 0.1.0", [hex: :table, repo: "hexpm", optional: true]}], "hexpm", "df59f828b167b49a5853f645b65f57eb1bc5f3b230497ceaca7af5d8ac05afef"}, - "process_tree": {:hex, :process_tree, "0.2.1", "4ebcaa96c64a7833467909f49fee28a8e62eed04975613f4c81b4b99424f7e8a", [:mix], [], "hexpm", "68eee6bf0514351aeeda7037f1a6003c0e25de48fe6b7d15a1b0aebb4b35e713"}, "prom_ex": {:hex, :prom_ex, "1.11.0", "1f6d67f2dead92224cb4f59beb3e4d319257c5728d9638b4a5e8ceb51a4f9c7e", [:mix], [{:absinthe, ">= 1.7.0", [hex: :absinthe, repo: "hexpm", optional: true]}, {:broadway, ">= 1.1.0", [hex: :broadway, repo: "hexpm", optional: true]}, {:ecto, ">= 3.11.0", [hex: :ecto, repo: "hexpm", optional: true]}, {:finch, "~> 0.18", [hex: :finch, repo: "hexpm", optional: false]}, {:jason, "~> 1.4", [hex: :jason, repo: "hexpm", optional: false]}, {:oban, ">= 2.10.0", [hex: :oban, repo: "hexpm", optional: true]}, {:octo_fetch, "~> 0.4", [hex: :octo_fetch, repo: "hexpm", optional: false]}, {:peep, "~> 3.0", [hex: :peep, repo: "hexpm", optional: false]}, {:phoenix, ">= 1.7.0", [hex: :phoenix, repo: "hexpm", optional: true]}, {:phoenix_live_view, ">= 0.20.0", [hex: :phoenix_live_view, repo: "hexpm", optional: true]}, {:plug, ">= 1.16.0", [hex: :plug, repo: "hexpm", optional: true]}, {:plug_cowboy, ">= 2.6.0", [hex: :plug_cowboy, repo: "hexpm", optional: true]}, {:telemetry, ">= 1.0.0", [hex: :telemetry, repo: "hexpm", optional: false]}, {:telemetry_metrics, "~> 1.0", [hex: :telemetry_metrics, repo: "hexpm", optional: false]}, {:telemetry_metrics_prometheus_core, "~> 1.2", [hex: :telemetry_metrics_prometheus_core, repo: "hexpm", optional: false]}, {:telemetry_poller, "~> 1.1", [hex: :telemetry_poller, repo: "hexpm", optional: false]}], "hexpm", "76b074bc3730f0802978a7eb5c7091a65473eaaf07e99ec9e933138dcc327805"}, "ranch": {:hex, :ranch, "2.2.0", "25528f82bc8d7c6152c57666ca99ec716510fe0925cb188172f41ce93117b1b0", [:make, :rebar3], [], "hexpm", "fa0b99a1780c80218a4197a59ea8d3bdae32fbff7e88527d7d8a4787eff4f8e7"}, "redix": {:hex, :redix, "1.5.3", "4eaae29c75e3285c0ff9957046b7c209aa7f72a023a17f0a9ea51c2a50ab5b0f", [:mix], [{:castore, "~> 0.1.0 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: true]}, {:nimble_options, "~> 0.5.0 or ~> 1.0", [hex: :nimble_options, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4.0 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "7b06fb5246373af41f5826b03334dfa3f636347d4d5d98b4d455b699d425ae7e"}, @@ -97,7 +93,6 @@ "telemetry_metrics_prometheus_core": {:hex, :telemetry_metrics_prometheus_core, "1.2.1", "c9755987d7b959b557084e6990990cb96a50d6482c683fb9622a63837f3cd3d8", [:mix], [{:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}, {:telemetry_metrics, "~> 0.6 or ~> 1.0", [hex: :telemetry_metrics, repo: "hexpm", optional: false]}], "hexpm", "5e2c599da4983c4f88a33e9571f1458bf98b0cf6ba930f1dc3a6e8cf45d5afb6"}, "telemetry_poller": {:hex, :telemetry_poller, "1.3.0", "d5c46420126b5ac2d72bc6580fb4f537d35e851cc0f8dbd571acf6d6e10f5ec7", [:rebar3], [{:telemetry, "~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "51f18bed7128544a50f75897db9974436ea9bfba560420b646af27a9a9b35211"}, "thousand_island": {:hex, :thousand_island, "1.4.3", "2158209580f633be38d43ec4e3ce0a01079592b9657afff9080d5d8ca149a3af", [:mix], [{:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "6e4ce09b0fd761a58594d02814d40f77daff460c48a7354a15ab353bb998ea0b"}, - "tidewave": {:hex, :tidewave, "0.5.6", "91f35540b5599640443f1d3a1c6166bf506e202840261a6344e384e8813c1f64", [:mix], [{:circular_buffer, "~> 0.4 or ~> 1.0", [hex: :circular_buffer, repo: "hexpm", optional: false]}, {:igniter, "~> 0.6", [hex: :igniter, repo: "hexpm", optional: true]}, {:jason, "~> 1.4", [hex: :jason, repo: "hexpm", optional: false]}, {:phoenix_live_reload, ">= 1.6.1", [hex: :phoenix_live_reload, repo: "hexpm", optional: true]}, {:plug, "~> 1.17", [hex: :plug, repo: "hexpm", optional: false]}, {:req, "~> 0.5", [hex: :req, repo: "hexpm", optional: false]}], "hexpm", "dc82d52b8b6ffc04680544b17cd340c7d4166bb0d63999eb960850526866b533"}, "tzdata": {:hex, :tzdata, "1.1.3", "b1cef7bb6de1de90d4ddc25d33892b32830f907e7fc2fccd1e7e22778ab7dfbc", [:mix], [{:hackney, "~> 1.17", [hex: :hackney, repo: "hexpm", optional: false]}], "hexpm", "d4ca85575a064d29d4e94253ee95912edfb165938743dbf002acdf0dcecb0c28"}, "unicode_util_compat": {:hex, :unicode_util_compat, "0.7.1", "a48703a25c170eedadca83b11e88985af08d35f37c6f664d6dcfb106a97782fc", [:rebar3], [], "hexpm", "b3a917854ce3ae233619744ad1e0102e05673136776fb2fa76234f3e03b23642"}, "websock": {:hex, :websock, "0.5.3", "2f69a6ebe810328555b6fe5c831a851f485e303a7c8ce6c5f675abeb20ebdadc", [:mix], [], "hexpm", "6105453d7fac22c712ad66fab1d45abdf049868f253cf719b625151460b8b453"}, diff --git a/test/towerops/honeybadger_filter_test.exs b/test/towerops/honeybadger_filter_test.exs deleted file mode 100644 index 5233af05..00000000 --- a/test/towerops/honeybadger_filter_test.exs +++ /dev/null @@ -1,239 +0,0 @@ -defmodule Towerops.HoneybadgerFilterTest do - use ExUnit.Case, async: true - - alias Towerops.HoneybadgerFilter - - describe "filter_params/1" do - test "filters SNMP community strings" do - params = %{ - "name" => "Device 1", - "snmp_community" => "public", - "ip_address" => "192.168.1.1" - } - - filtered = HoneybadgerFilter.filter_params(params) - - assert filtered["name"] == "Device 1" - assert filtered["snmp_community"] == "[FILTERED]" - assert filtered["ip_address"] == "192.168.1.1" - end - - test "filters community strings with just 'community' key" do - params = %{"community" => "secret123", "device_id" => "abc"} - - filtered = HoneybadgerFilter.filter_params(params) - - assert filtered["community"] == "[FILTERED]" - assert filtered["device_id"] == "abc" - end - - test "filters passwords" do - params = %{"email" => "user@example.com", "password" => "secret"} - - filtered = HoneybadgerFilter.filter_params(params) - - assert filtered["email"] == "user@example.com" - assert filtered["password"] == "[FILTERED]" - end - - test "filters SNMPv3 credentials" do - params = %{ - "snmp_version" => "3", - "auth_password" => "authpass", - "priv_password" => "privpass", - "username" => "admin" - } - - filtered = HoneybadgerFilter.filter_params(params) - - assert filtered["snmp_version"] == "3" - assert filtered["auth_password"] == "[FILTERED]" - assert filtered["priv_password"] == "[FILTERED]" - assert filtered["username"] == "admin" - end - - test "filters API keys and tokens" do - params = %{ - "api_key" => "key123", - "token" => "token456", - "secret" => "secret789" - } - - filtered = HoneybadgerFilter.filter_params(params) - - assert filtered["api_key"] == "[FILTERED]" - assert filtered["token"] == "[FILTERED]" - assert filtered["secret"] == "[FILTERED]" - end - - test "filters nested params" do - params = %{ - "device" => %{ - "name" => "Router", - "snmp_community" => "private", - "ip_address" => "10.0.0.1" - } - } - - filtered = HoneybadgerFilter.filter_params(params) - - assert filtered["device"]["name"] == "Router" - assert filtered["device"]["snmp_community"] == "[FILTERED]" - assert filtered["device"]["ip_address"] == "10.0.0.1" - end - - test "filters atom keys" do - params = %{ - name: "Device", - snmp_community: "public", - ip_address: "192.168.1.1" - } - - filtered = HoneybadgerFilter.filter_params(params) - - assert filtered[:name] == "Device" - assert filtered[:snmp_community] == "[FILTERED]" - assert filtered[:ip_address] == "192.168.1.1" - end - - test "handles case-insensitive filtering" do - params = %{ - "SNMP_COMMUNITY" => "public", - "SnmpCommunity" => "private", - "API_KEY" => "secret" - } - - filtered = HoneybadgerFilter.filter_params(params) - - assert filtered["SNMP_COMMUNITY"] == "[FILTERED]" - assert filtered["SnmpCommunity"] == "[FILTERED]" - assert filtered["API_KEY"] == "[FILTERED]" - end - - test "does not filter non-sensitive data" do - params = %{ - "name" => "Device", - "ip_address" => "192.168.1.1", - "description" => "Main router" - } - - filtered = HoneybadgerFilter.filter_params(params) - - assert filtered == params - end - end - - describe "filter_context/1" do - test "filters sensitive data from context params" do - context = %{ - params: %{ - "device" => %{"snmp_community" => "public", "name" => "Router"} - } - } - - filtered = HoneybadgerFilter.filter_context(context) - - assert filtered.params["device"]["name"] == "Router" - assert filtered.params["device"]["snmp_community"] == "[FILTERED]" - end - - test "filters sensitive data from cgi_data" do - context = %{ - cgi_data: %{"auth_token" => "Bearer token123", "user_agent" => "Mozilla/5.0"} - } - - filtered = HoneybadgerFilter.filter_context(context) - - assert filtered.cgi_data["auth_token"] == "[FILTERED]" - assert filtered.cgi_data["user_agent"] == "Mozilla/5.0" - end - - test "filters ignored registered names" do - context = %{registered_name: "memsup"} - - filtered = HoneybadgerFilter.filter_context(context) - - assert filtered == nil - end - - test "filters Redix connection errors (tcp_closed)" do - context = %{reason: {:tcp_closed, :some_data}} - - filtered = HoneybadgerFilter.filter_context(context) - - assert filtered == nil - end - - test "filters Redix connection errors (econnrefused)" do - context = %{reason: {:econnrefused, :some_data}} - - filtered = HoneybadgerFilter.filter_context(context) - - assert filtered == nil - end - - test "filters Redix errors by message" do - context = %{message: "Redix connection failed"} - - filtered = HoneybadgerFilter.filter_context(context) - - assert filtered == nil - end - - test "filters DBConnection errors by exception" do - context = %{reason: %DBConnection.ConnectionError{message: "connection lost"}} - - filtered = HoneybadgerFilter.filter_context(context) - - assert filtered == nil - end - - test "filters DBConnection errors by message" do - context = %{message: "DBConnection timeout"} - - filtered = HoneybadgerFilter.filter_context(context) - - assert filtered == nil - end - - test "filters normal shutdown" do - context = %{reason: :normal} - - filtered = HoneybadgerFilter.filter_context(context) - - assert filtered == nil - end - - test "filters shutdown" do - context = %{reason: :shutdown} - - filtered = HoneybadgerFilter.filter_context(context) - - assert filtered == nil - end - - test "filters shutdown with reason" do - context = %{reason: {:shutdown, :application_stopped}} - - filtered = HoneybadgerFilter.filter_context(context) - - assert filtered == nil - end - - test "filters port_died with :normal reason" do - context = %{reason: {:port_died, :normal}} - - filtered = HoneybadgerFilter.filter_context(context) - - assert filtered == nil - end - - test "filters port_died with :shutdown reason" do - context = %{reason: {:port_died, :shutdown}} - - filtered = HoneybadgerFilter.filter_context(context) - - assert filtered == nil - end - end -end diff --git a/vendor/gaiia/lib/gaiia.ex b/vendor/gaiia/lib/gaiia.ex new file mode 100644 index 00000000..a9c68959 --- /dev/null +++ b/vendor/gaiia/lib/gaiia.ex @@ -0,0 +1,34 @@ +defmodule Gaiia do + @moduledoc """ + Elixir client for the [Gaiia](https://gaiia.com) GraphQL API. + + The top-level `Gaiia` module is a thin convenience wrapper that + builds an implicit client from application config: + + config :gaiia, + endpoint: "https://api.gaiia.com/graphql", + token: System.get_env("GAIIA_TOKEN") + + Gaiia.query("query { account(id: $id) { id name } }", %{"id" => "..."}) + + For per-call control over headers, request options, or to use multiple + endpoints simultaneously, build a `Gaiia.Client` explicitly: + + client = Gaiia.Client.new(token: "...", headers: [{"x-trace-id", "abc"}]) + Gaiia.Client.query(client, "{ __typename }") + """ + + alias Gaiia.Client + + @doc "Run a GraphQL query using the default client built from app config." + @spec query(String.t(), map(), keyword()) :: {:ok, map()} | {:error, Gaiia.Error.t()} + def query(query, variables \\ %{}, opts \\ []), do: Client.query(default_client(), query, variables, opts) + + @doc "Run a GraphQL mutation using the default client built from app config." + @spec mutate(String.t(), map(), keyword()) :: {:ok, map()} | {:error, Gaiia.Error.t()} + def mutate(mutation, variables \\ %{}, opts \\ []), do: Client.mutate(default_client(), mutation, variables, opts) + + @doc "Build a default client from application config." + @spec default_client() :: Client.t() + def default_client, do: Client.new() +end diff --git a/vendor/gaiia/lib/gaiia/client.ex b/vendor/gaiia/lib/gaiia/client.ex new file mode 100644 index 00000000..0de47dd0 --- /dev/null +++ b/vendor/gaiia/lib/gaiia/client.ex @@ -0,0 +1,142 @@ +defmodule Gaiia.Client do + @moduledoc """ + HTTP client for the Gaiia GraphQL API. + + A `Gaiia.Client` is a lightweight, immutable struct holding the endpoint, + optional bearer token, custom headers, and pass-through options forwarded + to `Req`. + + ## Configuration + + Defaults can be supplied through application config: + + config :gaiia, + endpoint: "https://api.gaiia.com/graphql", + token: System.get_env("GAIIA_TOKEN") + + ## Example + + client = Gaiia.Client.new() + + {:ok, %{"account" => account}} = + Gaiia.Client.query(client, ~S\"\"\" + query($id: GlobalID!) { + account(id: $id) { id name } + } + \"\"\", %{"id" => "account_8rnXNuR5sKP5uNwoPL41Zp"}) + """ + + alias Gaiia.Error + + @type t :: %__MODULE__{ + endpoint: String.t(), + token: String.t() | nil, + headers: [{String.t(), String.t()}], + req_options: keyword() + } + + @enforce_keys [:endpoint] + defstruct endpoint: nil, token: nil, headers: [], req_options: [] + + @doc """ + Build a new client. + + ## Options + + * `:endpoint` — Base GraphQL endpoint URL. Required unless set in app env. + * `:token` — Bearer token sent in the `Authorization` header. + * `:headers` — Extra headers as `[{name, value}]`. + * `:req_options` — Keyword list of options forwarded to `Req.request/1`. + Useful for testing (`:adapter`, `:plug`) and tuning + (`:retry`, `:receive_timeout`, etc.). + + Raises `ArgumentError` when no endpoint can be resolved. + """ + @spec new(keyword()) :: t() + def new(opts \\ []) do + endpoint = fetch_required(opts, :endpoint) + + %__MODULE__{ + endpoint: endpoint, + token: Keyword.get(opts, :token, Application.get_env(:gaiia, :token)), + headers: Keyword.get(opts, :headers, []), + req_options: Keyword.get(opts, :req_options, Application.get_env(:gaiia, :req_options, [])) + } + end + + @doc """ + Run a GraphQL query. + + Returns `{:ok, data}` on success, where `data` is the value of the + `data` field in the GraphQL response. Returns `{:error, %Gaiia.Error{}}` + on any failure mode. + + ## Options + + * `:operation_name` — GraphQL operation name to send (`operationName`). + """ + @spec query(t(), String.t(), map(), keyword()) :: {:ok, map()} | {:error, Error.t()} + def query(%__MODULE__{} = client, query, variables \\ %{}, opts \\ []) do + body = build_body(query, variables, opts) + + client + |> build_request(body) + |> Req.request() + |> handle_response() + end + + @doc """ + Run a GraphQL mutation. Mechanically identical to `query/4` — provided + for readability at call sites. + """ + @spec mutate(t(), String.t(), map(), keyword()) :: {:ok, map()} | {:error, Error.t()} + def mutate(client, mutation, variables \\ %{}, opts \\ []), do: query(client, mutation, variables, opts) + + ## ---- request construction ---- + + @spec build_body(String.t(), map(), keyword()) :: map() + defp build_body(query, variables, opts) do + put_operation_name(%{"query" => query, "variables" => variables}, Keyword.get(opts, :operation_name)) + end + + defp put_operation_name(body, nil), do: body + defp put_operation_name(body, name), do: Map.put(body, "operationName", name) + + @spec build_request(t(), map()) :: Req.Request.t() + defp build_request(%__MODULE__{} = client, body) do + [ + method: :post, + url: client.endpoint, + json: body, + headers: headers_for(client) + ] + |> Keyword.merge(client.req_options) + |> Req.new() + end + + defp headers_for(%__MODULE__{token: nil, headers: extra}), do: extra + defp headers_for(%__MODULE__{token: token, headers: extra}), do: [{"authorization", "Bearer " <> token} | extra] + + ## ---- response handling ---- + + @spec handle_response({:ok, Req.Response.t()} | {:error, Exception.t()}) :: + {:ok, map()} | {:error, Error.t()} + defp handle_response({:ok, %Req.Response{status: status, body: body}}) when status in 200..299, do: decode_graphql(body) + + defp handle_response({:ok, %Req.Response{status: status, body: body}}), do: {:error, Error.http(status, body)} + + defp handle_response({:error, exception}), do: {:error, Error.network(exception)} + + defp decode_graphql(%{"errors" => [_ | _] = errors}), do: {:error, Error.graphql(errors)} + defp decode_graphql(%{"data" => data}), do: {:ok, data} + defp decode_graphql(other), do: {:error, Error.decode(other)} + + ## ---- option resolution ---- + + defp fetch_required(opts, key) do + case Keyword.get(opts, key, Application.get_env(:gaiia, key)) do + nil -> raise ArgumentError, "missing required Gaiia.Client option: #{inspect(key)}" + value -> value + end + end +end diff --git a/vendor/gaiia/lib/gaiia/error.ex b/vendor/gaiia/lib/gaiia/error.ex new file mode 100644 index 00000000..8b707e43 --- /dev/null +++ b/vendor/gaiia/lib/gaiia/error.ex @@ -0,0 +1,81 @@ +defmodule Gaiia.Error do + @moduledoc """ + Structured error returned by `Gaiia.Client` calls. + + The `:kind` discriminates the failure mode so callers can pattern match + rather than parse messages: + + * `:graphql` — the server returned a 200 with one or more entries in `errors` + * `:http` — the server returned a non-2xx HTTP response + * `:network` — the request never reached the server (connection refused, DNS, etc.) + * `:decode` — the response was 2xx but the body was not a valid GraphQL envelope + """ + + @type kind :: :graphql | :http | :network | :decode + + @type t :: %__MODULE__{ + kind: kind(), + message: String.t(), + status: pos_integer() | nil, + errors: [map()] | nil, + details: term() + } + + @enforce_keys [:kind, :message] + defexception [:kind, :message, :status, :errors, :details] + + @doc "Build a `:graphql` error from a list of GraphQL error maps." + @spec graphql([map()]) :: t() + def graphql(errors) when is_list(errors) do + %__MODULE__{ + kind: :graphql, + message: "GraphQL error: " <> format_graphql_messages(errors), + errors: errors + } + end + + @doc "Build an `:http` error from a status code and response body." + @spec http(pos_integer(), term()) :: t() + def http(status, body) when is_integer(status) do + %__MODULE__{ + kind: :http, + message: "HTTP #{status} from Gaiia API", + status: status, + details: body + } + end + + @doc "Build a `:network` error from a transport-layer exception." + @spec network(Exception.t() | term()) :: t() + def network(%{__exception__: true} = exception) do + %__MODULE__{ + kind: :network, + message: "Network error: " <> Exception.message(exception), + details: exception + } + end + + def network(other) do + %__MODULE__{ + kind: :network, + message: "Network error: " <> inspect(other), + details: other + } + end + + @doc "Build a `:decode` error from an undecodable response body." + @spec decode(term()) :: t() + def decode(body) do + %__MODULE__{ + kind: :decode, + message: "Could not decode Gaiia response body", + details: body + } + end + + defp format_graphql_messages([]), do: "" + + defp format_graphql_messages(errors) do + Enum.map_join(errors, "; ", &Map.get(&1, "message", "")) + end +end diff --git a/vendor/gaiia/lib/gaiia/global_id.ex b/vendor/gaiia/lib/gaiia/global_id.ex new file mode 100644 index 00000000..21e41612 --- /dev/null +++ b/vendor/gaiia/lib/gaiia/global_id.ex @@ -0,0 +1,160 @@ +defmodule Gaiia.GlobalID do + @moduledoc """ + Encode and decode Gaiia Global IDs. + + Global IDs combine a snake_cased type name with a Base58-encoded UUID, + separated by an underscore: `account_8rnXNuR5sKP5uNwoPL41Zp`. + """ + + @alphabet "123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ" + @base 58 + @target_len 22 + + @doc """ + Encodes a type name and UUID into a Global ID. + + ## Examples + + iex> Gaiia.GlobalID.encode("Account", "3c3b1978-6a68-4a13-bdc2-2d51c8ef7519") + "account_8rnXNuR5sKP5uNwoPL41Zp" + + """ + @spec encode(String.t(), String.t()) :: String.t() + def encode(type_name, uuid_str) do + snake = snake_case(type_name) + short = short_uuid(uuid_str) + "#{snake}_#{short}" + end + + @doc """ + Decodes a Global ID into a tuple of `{type, uuid}`. + + ## Examples + + iex> Gaiia.GlobalID.decode("account_8rnXNuR5sKP5uNwoPL41Zp") + {"account", "3c3b1978-6a68-4a13-bdc2-2d51c8ef7519"} + + """ + @spec decode(String.t()) :: {String.t(), String.t()} + def decode(global_id) do + short_id = String.slice(global_id, -@target_len, @target_len) + type = String.slice(global_id, 0, byte_size(global_id) - @target_len - 1) + {type, short_to_uuid(short_id)} + end + + @doc """ + Extracts the type name from a Global ID. + + ## Examples + + iex> Gaiia.GlobalID.type("account_8rnXNuR5sKP5uNwoPL41Zp") + "account" + + """ + @spec type(String.t()) :: String.t() + def type(global_id) do + type_len = byte_size(global_id) - @target_len - 1 + String.slice(global_id, 0, type_len) + end + + @doc """ + Extracts the UUID from a Global ID. + + ## Examples + + iex> Gaiia.GlobalID.to_uuid("account_8rnXNuR5sKP5uNwoPL41Zp") + "3c3b1978-6a68-4a13-bdc2-2d51c8ef7519" + + """ + @spec to_uuid(String.t()) :: String.t() + def to_uuid(global_id) do + {_type, uuid} = decode(global_id) + uuid + end + + @doc """ + Converts a type name and UUID to a Global ID. Alias for `encode/2`. + + ## Examples + + iex> Gaiia.GlobalID.from_uuid("Account", "3c3b1978-6a68-4a13-bdc2-2d51c8ef7519") + "account_8rnXNuR5sKP5uNwoPL41Zp" + + """ + @spec from_uuid(String.t(), String.t()) :: String.t() + def from_uuid(type_name, uuid_str), do: encode(type_name, uuid_str) + + @doc """ + Encodes a UUID to a 22-character Base58 short UUID. + + ## Examples + + iex> Gaiia.GlobalID.short_uuid("3c3b1978-6a68-4a13-bdc2-2d51c8ef7519") + "8rnXNuR5sKP5uNwoPL41Zp" + + """ + @spec short_uuid(String.t()) :: String.t() + def short_uuid(uuid_str) do + stripped = String.downcase(String.replace(uuid_str, "-", "")) + num = String.to_integer(stripped, 16) + encode_base58(num) + end + + @doc """ + Decodes a short UUID back to a standard UUID string. + """ + @spec short_to_uuid(String.t()) :: String.t() + def short_to_uuid(short_id) do + num = decode_base58(short_id) + hex = num |> Integer.to_string(16) |> String.pad_leading(32, "0") |> String.downcase() + format_uuid(hex) + end + + # -- Private: encode -- + + defp encode_base58(0), do: String.duplicate(<<:binary.at(@alphabet, 0)>>, @target_len) + + defp encode_base58(num) do + chars = do_encode(num, []) + first = <<:binary.at(@alphabet, 0)>> + Enum.join(pad_list(chars, @target_len, first)) + end + + defp do_encode(0, acc), do: acc + + defp do_encode(n, acc) do + idx = rem(n, @base) + char = <<:binary.at(@alphabet, idx)>> + do_encode(div(n, @base), [char | acc]) + end + + # -- Private: decode -- + + defp decode_base58(short_id) do + short_id + |> String.to_charlist() + |> Enum.reduce(0, fn char, acc -> acc * @base + alpha_index(char) end) + end + + @alphabet_index_map for {ch, i} <- Enum.with_index(String.to_charlist(@alphabet)), into: %{}, do: {ch, i} + + defp alpha_index(char), do: Map.fetch!(@alphabet_index_map, char) + + # -- Private: helpers -- + + defp pad_list(chars, target_len, pad_char) do + if length(chars) < target_len do + List.duplicate(pad_char, target_len - length(chars)) ++ chars + else + chars + end + end + + defp format_uuid(hex) do + "#{String.slice(hex, 0, 8)}-#{String.slice(hex, 8, 4)}-#{String.slice(hex, 12, 4)}-#{String.slice(hex, 16, 4)}-#{String.slice(hex, 20, 12)}" + end + + defp snake_case(type_name) do + type_name |> String.replace(~r/([a-z])([A-Z])/, "\\1_\\2") |> String.downcase() + end +end diff --git a/vendor/gaiia/lib/gaiia/mutations.ex b/vendor/gaiia/lib/gaiia/mutations.ex new file mode 100644 index 00000000..1739529e --- /dev/null +++ b/vendor/gaiia/lib/gaiia/mutations.ex @@ -0,0 +1,35 @@ +defmodule Gaiia.Mutations do + @moduledoc """ + Auto-generated functions for every mutation operation in the Gaiia + GraphQL API. + + Signature, semantics, and return-value handling are identical to + `Gaiia.Queries` — see that module for details. + """ + + alias Gaiia.Client + alias Gaiia.Operation + alias Gaiia.Schema + + for op <- Schema.mutations() do + @name op["name"] + @fun_name Schema.function_name(@name) + @args op["args"] + @description op["description"] || "GraphQL mutation `#{@name}`." + + @doc """ + #{@description} + + GraphQL: `mutation { #{@name} }` + """ + @spec unquote(@fun_name)(Client.t(), map(), String.t(), keyword()) :: + {:ok, term()} | {:error, Gaiia.Error.t()} + def unquote(@fun_name)(client, variables \\ %{}, selection \\ "", opts \\ []) do + operation = Operation.build(:mutation, unquote(@name), unquote(Macro.escape(@args)), variables, selection) + + with {:ok, data} <- Client.mutate(client, operation, variables, opts) do + {:ok, Map.get(data, unquote(@name))} + end + end + end +end diff --git a/vendor/gaiia/lib/gaiia/operation.ex b/vendor/gaiia/lib/gaiia/operation.ex new file mode 100644 index 00000000..68cb0894 --- /dev/null +++ b/vendor/gaiia/lib/gaiia/operation.ex @@ -0,0 +1,55 @@ +defmodule Gaiia.Operation do + @moduledoc """ + Build GraphQL operation strings from introspection-style argument specs + at runtime. + + Operations have shape: + + ($a: T!, $b: U) { (a: $a, b: $b) { } } + + Only variables that the caller actually supplies are declared and passed, + so GraphQL doesn't reject the request for unused variables. + """ + + alias Gaiia.TypeRef + + @type op_type :: :query | :mutation + @type arg_spec :: %{required(String.t()) => term()} + + @doc """ + Build a GraphQL operation string. + + * `op_type` — `:query` or `:mutation` + * `name` — the operation/field name (e.g. `"account"`) + * `args` — list of argument specs `[%{"name" => "id", "type" => type_ref}, ...]` + * `variables` — variables map; only keys present here are declared/passed + * `selection` — selection set body (without braces). Empty string means no selection. + """ + @spec build(op_type(), String.t(), [arg_spec()], map(), String.t()) :: String.t() + def build(op_type, name, args, variables, selection) do + used = filter_used_args(args, variables) + "#{keyword(op_type)} #{name}#{declarations(used)} { #{name}#{call_args(used)}#{selection_block(selection)} }" + end + + defp keyword(:query), do: "query" + defp keyword(:mutation), do: "mutation" + + defp filter_used_args(args, variables) do + Enum.filter(args, fn %{"name" => name} -> Map.has_key?(variables, name) end) + end + + defp declarations([]), do: "" + + defp declarations(args) do + "(" <> Enum.map_join(args, ", ", fn %{"name" => n, "type" => t} -> "$#{n}: #{TypeRef.render(t)}" end) <> ")" + end + + defp call_args([]), do: "" + + defp call_args(args) do + "(" <> Enum.map_join(args, ", ", fn %{"name" => n} -> "#{n}: $#{n}" end) <> ")" + end + + defp selection_block(""), do: "" + defp selection_block(selection), do: " { " <> selection <> " }" +end diff --git a/vendor/gaiia/lib/gaiia/pagination.ex b/vendor/gaiia/lib/gaiia/pagination.ex new file mode 100644 index 00000000..fbdd68e3 --- /dev/null +++ b/vendor/gaiia/lib/gaiia/pagination.ex @@ -0,0 +1,79 @@ +defmodule Gaiia.Pagination do + @moduledoc """ + Helpers for traversing Relay-style cursor pagination over the Gaiia API. + + The GraphQL schema exposes paginated lists with a `nodes` field and a + `pageInfo { hasNextPage endCursor }` envelope. `stream/4` follows + these cursors transparently and yields individual node maps. + + ## Example + + query = ~S\"\"\" + query Accounts($first: Int, $after: String) { + accounts(first: $first, after: $after) { + nodes { id name } + pageInfo { hasNextPage endCursor } + } + } + \"\"\" + + client + |> Gaiia.Pagination.stream(query, %{"first" => 50}, path: ["accounts"]) + |> Stream.take(200) + |> Enum.to_list() + """ + + alias Gaiia.Client + + @type opts :: [ + path: [String.t()], + cursor_variable: String.t() + ] + + @doc """ + Stream all nodes from a paginated GraphQL field. + + ## Options + + * `:path` — A list of keys describing where the connection lives inside + the `data` payload, for example `["accounts"]`. Required. + * `:cursor_variable` — Variable name for the after-cursor (default `"after"`). + """ + @spec stream(Client.t(), String.t(), map(), opts()) :: Enumerable.t() + def stream(%Client{} = client, query, variables, opts) do + path = Keyword.fetch!(opts, :path) + cursor_var = Keyword.get(opts, :cursor_variable, "after") + + Stream.resource( + fn -> {:cont, nil} end, + &next_page(&1, client, query, variables, path, cursor_var), + fn _ -> :ok end + ) + end + + defp next_page(:halt, _client, _query, _variables, _path, _cursor_var), do: {:halt, :halt} + + defp next_page({:cont, cursor}, client, query, variables, path, cursor_var) do + vars = put_cursor(variables, cursor_var, cursor) + + client + |> Client.query(query, vars) + |> handle_page(path) + end + + defp put_cursor(variables, _cursor_var, nil), do: variables + defp put_cursor(variables, cursor_var, cursor), do: Map.put(variables, cursor_var, cursor) + + defp handle_page({:ok, data}, path) do + connection = get_in(data, path) || %{} + nodes = Map.get(connection, "nodes", []) + page_info = Map.get(connection, "pageInfo", %{}) + {nodes, advance_from(page_info)} + end + + defp handle_page({:error, error}, _path), do: raise(error) + + defp advance_from(%{"hasNextPage" => true, "endCursor" => cursor}) when is_binary(cursor), do: {:cont, cursor} + + defp advance_from(_page_info), do: :halt +end diff --git a/vendor/gaiia/lib/gaiia/queries.ex b/vendor/gaiia/lib/gaiia/queries.ex new file mode 100644 index 00000000..c591a816 --- /dev/null +++ b/vendor/gaiia/lib/gaiia/queries.ex @@ -0,0 +1,50 @@ +defmodule Gaiia.Queries do + @moduledoc """ + Auto-generated functions for every query operation in the Gaiia + GraphQL API. + + Each function has the signature: + + (client, variables \\\\ %{}, selection \\\\ "", opts \\\\ []) + :: {:ok, map() | term()} | {:error, Gaiia.Error.t()} + + Arguments: + + * `client` — a `Gaiia.Client` struct (build with `Gaiia.Client.new/1`) + * `variables` — map of variables matching the GraphQL argument names + (camelCase, string keys). Only keys present in this map are sent. + * `selection` — selection-set body (no surrounding braces). Required + for object return types; pass `""` for scalar return types. + * `opts` — forwarded to `Gaiia.Client.query/4` (e.g. `:operation_name`) + + Return value is the contents of the named field, unwrapped from the + `data` envelope — i.e. `Gaiia.Queries.account(client, %{"id" => id}, "id")` + returns `{:ok, %{"id" => "..."}}`, not `{:ok, %{"account" => %{"id" => "..."}}}`. + """ + + alias Gaiia.Client + alias Gaiia.Operation + alias Gaiia.Schema + + for op <- Schema.queries() do + @name op["name"] + @fun_name Schema.function_name(@name) + @args op["args"] + @description op["description"] || "GraphQL query `#{@name}`." + + @doc """ + #{@description} + + GraphQL: `query { #{@name} }` + """ + @spec unquote(@fun_name)(Client.t(), map(), String.t(), keyword()) :: + {:ok, term()} | {:error, Gaiia.Error.t()} + def unquote(@fun_name)(client, variables \\ %{}, selection \\ "", opts \\ []) do + operation = Operation.build(:query, unquote(@name), unquote(Macro.escape(@args)), variables, selection) + + with {:ok, data} <- Client.query(client, operation, variables, opts) do + {:ok, Map.get(data, unquote(@name))} + end + end + end +end diff --git a/vendor/gaiia/lib/gaiia/schema.ex b/vendor/gaiia/lib/gaiia/schema.ex new file mode 100644 index 00000000..33caf678 --- /dev/null +++ b/vendor/gaiia/lib/gaiia/schema.ex @@ -0,0 +1,33 @@ +defmodule Gaiia.Schema do + @moduledoc """ + Compile-time access to the Gaiia GraphQL schema. + + At compile time this module loads the operation specs from + `priv/queries.json` and `priv/mutations.json` (extracted from the + full introspection schema) so generator modules can iterate over + every operation. + """ + + @queries_path :gaiia |> :code.priv_dir() |> to_string() |> Path.join("queries.json") + @mutations_path :gaiia |> :code.priv_dir() |> to_string() |> Path.join("mutations.json") + + @external_resource @queries_path + @external_resource @mutations_path + + @queries @queries_path |> File.read!() |> Jason.decode!() + @mutations @mutations_path |> File.read!() |> Jason.decode!() + + # The compile-time-loaded literals would force dialyzer to infer the + # full nested map shape; we keep these specless so callers can treat + # them as the opaque "introspection envelope" they are. + + @doc "Return the list of all query operation specs." + def queries, do: @queries + + @doc "Return the list of all mutation operation specs." + def mutations, do: @mutations + + @doc "Convert a camelCase GraphQL name to an Elixir-friendly snake_case atom." + @spec function_name(String.t()) :: atom() + def function_name(camel_name), do: camel_name |> Macro.underscore() |> String.to_atom() +end diff --git a/vendor/gaiia/lib/gaiia/type_ref.ex b/vendor/gaiia/lib/gaiia/type_ref.ex new file mode 100644 index 00000000..7c78d6c0 --- /dev/null +++ b/vendor/gaiia/lib/gaiia/type_ref.ex @@ -0,0 +1,26 @@ +defmodule Gaiia.TypeRef do + @moduledoc """ + Helpers for working with GraphQL type-reference maps as returned by + introspection (`__Type`). + + A type reference is a recursive map of the shape: + + %{"kind" => "NON_NULL" | "LIST" | "SCALAR" | ..., "name" => name, "ofType" => inner_or_nil} + + This module renders such structures to GraphQL syntax (`Int!`, + `[String!]!`, etc.) and unwraps modifiers to find the underlying named type. + """ + + @type t :: %{required(String.t()) => term()} + + @doc "Render a type-reference map as a GraphQL type string." + @spec render(t()) :: String.t() + def render(%{"kind" => "NON_NULL", "ofType" => inner}), do: render(inner) <> "!" + def render(%{"kind" => "LIST", "ofType" => inner}), do: "[" <> render(inner) <> "]" + def render(%{"name" => name}) when is_binary(name), do: name + + @doc "Unwrap NON_NULL/LIST modifiers to return the innermost named type ref." + @spec named_type(t()) :: t() + def named_type(%{"kind" => kind, "ofType" => inner}) when kind in ["NON_NULL", "LIST"], do: named_type(inner) + def named_type(%{"name" => name} = type) when is_binary(name), do: type +end diff --git a/vendor/gaiia/mix.exs b/vendor/gaiia/mix.exs new file mode 100644 index 00000000..57b14db1 --- /dev/null +++ b/vendor/gaiia/mix.exs @@ -0,0 +1,35 @@ +defmodule Gaiia.MixProject do + use Mix.Project + + def project do + [ + app: :gaiia, + version: "0.1.0", + elixir: "~> 1.19", + start_permanent: Mix.env() == :prod, + elixirc_paths: elixirc_paths(Mix.env()), + deps: deps(), + dialyzer: [ + plt_add_apps: [:ex_unit], + flags: [:error_handling, :underspecs, :unmatched_returns] + ] + ] + end + + def application do + [extra_applications: [:logger]] + end + + defp elixirc_paths(:test), do: ["lib", "test/support"] + defp elixirc_paths(_), do: ["lib"] + + defp deps do + [ + {:req, "~> 0.5"}, + {:jason, "~> 1.4"}, + {:styler, "~> 1.5", only: [:dev, :test], runtime: false}, + {:credo, "~> 1.7", only: [:dev, :test], runtime: false}, + {:dialyxir, "~> 1.4", only: [:dev, :test], runtime: false} + ] + end +end diff --git a/vendor/gaiia/mix.lock b/vendor/gaiia/mix.lock new file mode 100644 index 00000000..3e898dfc --- /dev/null +++ b/vendor/gaiia/mix.lock @@ -0,0 +1,17 @@ +%{ + "bunt": {:hex, :bunt, "1.0.0", "081c2c665f086849e6d57900292b3a161727ab40431219529f13c4ddcf3e7a44", [:mix], [], "hexpm", "dc5f86aa08a5f6fa6b8096f0735c4e76d54ae5c9fa2c143e5a1fc7c1cd9bb6b5"}, + "credo": {:hex, :credo, "1.7.18", "5c5596bf7aedf9c8c227f13272ac499fe8eae6237bd326f2f07dfc173786f042", [:mix], [{:bunt, "~> 0.2.1 or ~> 1.0", [hex: :bunt, repo: "hexpm", optional: false]}, {:file_system, "~> 0.2 or ~> 1.0", [hex: :file_system, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "a189d164685fd945809e862fe76a7420c4398fa288d76257662aecb909d6b3e5"}, + "dialyxir": {:hex, :dialyxir, "1.4.7", "dda948fcee52962e4b6c5b4b16b2d8fa7d50d8645bbae8b8685c3f9ecb7f5f4d", [:mix], [{:erlex, ">= 0.2.8", [hex: :erlex, repo: "hexpm", optional: false]}], "hexpm", "b34527202e6eb8cee198efec110996c25c5898f43a4094df157f8d28f27d9efe"}, + "erlex": {:hex, :erlex, "0.2.8", "cd8116f20f3c0afe376d1e8d1f0ae2452337729f68be016ea544a72f767d9c12", [:mix], [], "hexpm", "9d66ff9fedf69e49dc3fd12831e12a8a37b76f8651dd21cd45fcf5561a8a7590"}, + "file_system": {:hex, :file_system, "1.1.1", "31864f4685b0148f25bd3fbef2b1228457c0c89024ad67f7a81a3ffbc0bbad3a", [:mix], [], "hexpm", "7a15ff97dfe526aeefb090a7a9d3d03aa907e100e262a0f8f7746b78f8f87a5d"}, + "finch": {:hex, :finch, "0.21.0", "b1c3b2d48af02d0c66d2a9ebfb5622be5c5ecd62937cf79a88a7f98d48a8290c", [:mix], [{:mime, "~> 1.0 or ~> 2.0", [hex: :mime, repo: "hexpm", optional: false]}, {:mint, "~> 1.6.2 or ~> 1.7", [hex: :mint, repo: "hexpm", optional: false]}, {:nimble_options, "~> 0.4 or ~> 1.0", [hex: :nimble_options, repo: "hexpm", optional: false]}, {:nimble_pool, "~> 1.1", [hex: :nimble_pool, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "87dc6e169794cb2570f75841a19da99cfde834249568f2a5b121b809588a4377"}, + "hpax": {:hex, :hpax, "1.0.3", "ed67ef51ad4df91e75cc6a1494f851850c0bd98ebc0be6e81b026e765ee535aa", [:mix], [], "hexpm", "8eab6e1cfa8d5918c2ce4ba43588e894af35dbd8e91e6e55c817bca5847df34a"}, + "jason": {:hex, :jason, "1.4.5", "2e3a008590b0b8d7388c20293e9dcc9cf3e5d642fd2a114e4cbbb52e595d940a", [:mix], [{:decimal, "~> 1.0 or ~> 2.0 or ~> 3.0", [hex: :decimal, repo: "hexpm", optional: true]}], "hexpm", "b0c823996102bcd0239b3c2444eb00409b72f6a140c1950bc8b457d836b30684"}, + "mime": {:hex, :mime, "2.0.7", "b8d739037be7cd402aee1ba0306edfdef982687ee7e9859bee6198c1e7e2f128", [:mix], [], "hexpm", "6171188e399ee16023ffc5b76ce445eb6d9672e2e241d2df6050f3c771e80ccd"}, + "mint": {:hex, :mint, "1.8.0", "b964eaf4416f2dee2ba88968d52239fca5621b0402b9c95f55a08eb9d74803e9", [:mix], [{:castore, "~> 0.1.0 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: true]}, {:hpax, "~> 0.1.1 or ~> 0.2.0 or ~> 1.0", [hex: :hpax, repo: "hexpm", optional: false]}], "hexpm", "f3c572c11355eccf00f22275e9b42463bc17bd28db13be1e28f8e0bb4adbc849"}, + "nimble_options": {:hex, :nimble_options, "1.1.1", "e3a492d54d85fc3fd7c5baf411d9d2852922f66e69476317787a7b2bb000a61b", [:mix], [], "hexpm", "821b2470ca9442c4b6984882fe9bb0389371b8ddec4d45a9504f00a66f650b44"}, + "nimble_pool": {:hex, :nimble_pool, "1.1.0", "bf9c29fbdcba3564a8b800d1eeb5a3c58f36e1e11d7b7fb2e084a643f645f06b", [:mix], [], "hexpm", "af2e4e6b34197db81f7aad230c1118eac993acc0dae6bc83bac0126d4ae0813a"}, + "req": {:hex, :req, "0.5.17", "0096ddd5b0ed6f576a03dde4b158a0c727215b15d2795e59e0916c6971066ede", [:mix], [{:brotli, "~> 0.3.1", [hex: :brotli, repo: "hexpm", optional: true]}, {:ezstd, "~> 1.0", [hex: :ezstd, repo: "hexpm", optional: true]}, {:finch, "~> 0.17", [hex: :finch, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}, {:mime, "~> 2.0.6 or ~> 2.1", [hex: :mime, repo: "hexpm", optional: false]}, {:nimble_csv, "~> 1.0", [hex: :nimble_csv, repo: "hexpm", optional: true]}, {:plug, "~> 1.0", [hex: :plug, repo: "hexpm", optional: true]}], "hexpm", "0b8bc6ffdfebbc07968e59d3ff96d52f2202d0536f10fef4dc11dc02a2a43e39"}, + "styler": {:hex, :styler, "1.11.0", "35010d970689a23c2bcc8e97bd8bf7d20e3561d60c49be84654df5c37d051a9c", [:mix], [], "hexpm", "70f36165d0cf238a32b7a456fdef6a9c72e77e657d7ac4a0ace33aeba3f2b8c0"}, + "telemetry": {:hex, :telemetry, "1.4.2", "a0cb522801dffb1c49fe6e30561badffc7b6d0e180db1300df759faa22062855", [:rebar3], [], "hexpm", "928f6495066506077862c0d1646609eed891a4326bee3126ba54b60af61febb1"}, +} diff --git a/vendor/gaiia/priv/mutations.json b/vendor/gaiia/priv/mutations.json new file mode 100644 index 00000000..d8bb93e5 --- /dev/null +++ b/vendor/gaiia/priv/mutations.json @@ -0,0 +1,4574 @@ +[ + { + "name": "createAccount", + "description": "Create a new account.", + "args": [ + { + "name": "input", + "description": "The input required to create an account.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "CreateAccountInput", + "description": "The input required to create an account.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "CreateAccountResult", + "description": "The createAccount mutation's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "createNote", + "description": "Create a new note.", + "args": [ + { + "name": "input", + "description": "The input required to create a note.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "CreateNoteInput", + "description": "The input required to create a note.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "CreateNoteResult", + "description": "The createNote mutation's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "createAccountContact", + "description": "Create a contact.", + "args": [ + { + "name": "accountId", + "description": "The account's unique ID.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalID", + "description": "A global ID, containing both the type and the identifier of the entity it represents.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "input", + "description": "The input required to create a contact.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "CreateAccountContactInput", + "description": "The input required to create the account's contact.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "CreateAccountContactResult", + "description": "The createContact mutation's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "initiatePinVerification", + "description": "Initiate a PIN verification session for an entity.", + "args": [ + { + "name": "entityId", + "description": "The entity to verify.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalID", + "description": "A global ID, containing both the type and the identifier of the entity it represents.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "input", + "description": "The input required to initiate a PIN verification session.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "InitiatePinVerificationInput", + "description": "The input required to initiate a PIN verification session.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "InitiatePinVerificationResult", + "description": "The initiatePinVerification mutation's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "verifyPinVerification", + "description": "Submit a PIN to complete a verification.", + "args": [ + { + "name": "verificationId", + "description": "The verification to complete.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalID", + "description": "A global ID, containing both the type and the identifier of the entity it represents.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "input", + "description": "The input required to verify a PIN.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "VerifyPinVerificationInput", + "description": "The input required to verify a PIN.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "VerifyPinVerificationResult", + "description": "The verifyPinVerification mutation's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "deleteNote", + "description": "Delete a note.", + "args": [ + { + "name": "noteId", + "description": "The notes's unique ID.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalID", + "description": "A global ID, containing both the type and the identifier of the entity it represents.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "DeleteNoteResult", + "description": "The deleteNote mutation's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "updateAccountContact", + "description": "Update a contact.", + "args": [ + { + "name": "accountId", + "description": "The account's unique ID.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalID", + "description": "A global ID, containing both the type and the identifier of the entity it represents.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "id", + "description": "The contact's unique ID.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalID", + "description": "A global ID, containing both the type and the identifier of the entity it represents.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "input", + "description": "The input required to update a contact.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "UpdateAccountContactInput", + "description": "The input required to update a contact.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "UpdateAccountContactResult", + "description": "The updateContact mutation's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "updateAccountCustomFieldDefinition", + "description": "Update an account custom field definition.", + "args": [ + { + "name": "id", + "description": "The account custom field definition's unique ID.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalID", + "description": "A global ID, containing both the type and the identifier of the entity it represents.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "input", + "description": "The input required to update an account custom field definition.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "UpdateAccountCustomFieldDefinitionInput", + "description": "The input required to update an account custom field definition.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "UpdateAccountCustomFieldDefinitionResult", + "description": "The updateAccountCustomFieldDefinition mutation's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "updateNote", + "description": "Update a note.", + "args": [ + { + "name": "input", + "description": "The input required to update a note.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "UpdateNoteInput", + "description": "The input required to update a note.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "UpdateNoteResult", + "description": "The updateNote mutation's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "updateAccount", + "description": "Update an account.", + "args": [ + { + "name": "id", + "description": "The account's unique ID.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalID", + "description": "A global ID, containing both the type and the identifier of the entity it represents.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "input", + "description": "The input required to update an account.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "UpdateAccountInput", + "description": "The input required to update an account.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "UpdateAccountResult", + "description": "The updateAccount mutation's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "updatePropertyGroupManager", + "description": "Update a property group manager.", + "args": [ + { + "name": "id", + "description": "The property group manager's unique ID.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalID", + "description": "A global ID, containing both the type and the identifier of the entity it represents.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "input", + "description": "The input required to update a property group manager.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "UpdatePropertyGroupManagerInput", + "description": "The input required to update a property group manager.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "UpdatePropertyGroupManagerResult", + "description": "The updatePropertyGroupManager mutation's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "updatePropertyGroup", + "description": "Update a property group.", + "args": [ + { + "name": "id", + "description": "The property group's unique ID.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalID", + "description": "A global ID, containing both the type and the identifier of the entity it represents.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "input", + "description": "The input required to update a property group.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "UpdatePropertyGroupInput", + "description": "The input required to update a property group.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "UpdatePropertyGroupResult", + "description": "The updatePropertyGroup mutation's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "updateUnit", + "description": "Update a unit.", + "args": [ + { + "name": "id", + "description": "The unit's unique ID.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalID", + "description": "A global ID, containing both the type and the identifier of the entity it represents.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "input", + "description": "The input required to update a unit.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "UpdateUnitInput", + "description": "The input required to update a unit.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "UpdateUnitResult", + "description": "The updateUnit mutation's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "createPropertyUnits", + "description": "Create units.", + "args": [ + { + "name": "propertyId", + "description": "The property's unique ID.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalID", + "description": "A global ID, containing both the type and the identifier of the entity it represents.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "input", + "description": "The input required to a property's units.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "CreatePropertyUnitsInput", + "description": "The input required to create units.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "CreatePropertyUnitsResult", + "description": "The createUnits mutation's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "updatePropertyContact", + "description": "Update a property's contact.", + "args": [ + { + "name": "propertyId", + "description": "The property's unique ID.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalID", + "description": "A global ID, containing both the type and the identifier of the entity it represents.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "id", + "description": "The contact's unique ID.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalID", + "description": "A global ID, containing both the type and the identifier of the entity it represents.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "input", + "description": "The input required to update a property's contact.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "UpdatePropertyContactInput", + "description": "The input for updating a contact.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "UpdatePropertyContactResult", + "description": "The updatePropertyContact mutation's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "createPropertyGroup", + "description": "Create a property group.", + "args": [ + { + "name": "input", + "description": "The input required to create a property group.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "CreatePropertyGroupInput", + "description": "The input required to create a property group.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "CreatePropertyGroupResult", + "description": "The createPropertyGroup mutation's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "createProperty", + "description": "Create a property.", + "args": [ + { + "name": "input", + "description": "The input required to create a property.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "CreatePropertyInput", + "description": "The input required to create a property.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "CreatePropertyResult", + "description": "The createProperty mutation's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "createPropertyContact", + "description": "Create a property's contact.", + "args": [ + { + "name": "id", + "description": "The property's unique ID.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalID", + "description": "A global ID, containing both the type and the identifier of the entity it represents.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "input", + "description": "The input required to create a property's contact.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "CreatePropertyContactInput", + "description": "The input for creating a property's contact.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "CreatePropertyContactResult", + "description": "The createPropertyContact mutation's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "updateProperty", + "description": "Update a property.", + "args": [ + { + "name": "id", + "description": "The property's unique id.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalID", + "description": "A global ID, containing both the type and the identifier of the entity it represents.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "input", + "description": "The input required to update a property.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "UpdatePropertyInput", + "description": "The input required to update a property.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "UpdatePropertyResult", + "description": "The updateProperty mutation's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "updatePropertyPhysicalAddress", + "description": "Update a property's physical address.", + "args": [ + { + "name": "id", + "description": "The property's unique id.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalID", + "description": "A global ID, containing both the type and the identifier of the entity it represents.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "input", + "description": "The input required to update a property's physical address.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "UpdatePropertyPhysicalAddressInput", + "description": "The input required to update a property.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "UpdatePropertyPhysicalAddressResult", + "description": "The updatePropertyPhysicalAddress mutation's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "updateAccountPhysicalAddress", + "description": "Update an account's physical address.", + "args": [ + { + "name": "id", + "description": "The account's unique id.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalID", + "description": "A global ID, containing both the type and the identifier of the entity it represents.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "input", + "description": "The input required to update an account's physical address.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "UpdateAccountPhysicalAddressInput", + "description": "The input required to update an account's physical address.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "UpdateAccountPhysicalAddressResult", + "description": "The updateAccountPhysicalAddress mutation's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "updateAccountMailingAddress", + "description": "Update an account's mailing address.", + "args": [ + { + "name": "id", + "description": "The account's unique id.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalID", + "description": "A global ID, containing both the type and the identifier of the entity it represents.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "input", + "description": "The input required to update an account's mailing address.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "UpdateAccountMailingAddressInput", + "description": "The input required to update an account's mailing address.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "UpdateAccountMailingAddressResult", + "description": "The updateAccountMailingAddress mutation's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "createAccountServiceCancellationReason", + "description": "Create a new account service cancellation reason.", + "args": [ + { + "name": "input", + "description": "The input required to create an account service cancellation reason.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "CreateAccountServiceCancellationReasonInput", + "description": "The input required to create an account service cancellation reason.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "CreateAccountServiceCancellationReasonResult", + "description": "The createAccountServiceCancellationReason mutation's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "updateEntityCustomFieldDefinition", + "description": "Update an entity custom field definition.", + "args": [ + { + "name": "id", + "description": "The entity custom field definition's unique ID.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalID", + "description": "A global ID, containing both the type and the identifier of the entity it represents.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "input", + "description": "The input required to update an entity custom field definition.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "UpdateEntityCustomFieldDefinitionInput", + "description": "The input required to update an entity custom field definition.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "UpdateEntityCustomFieldDefinitionResult", + "description": "The updateEntityCustomFieldDefinition mutation's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "updateEntityCustomFields", + "description": "Update an entity's custom fields.", + "args": [ + { + "name": "entityId", + "description": "The entity's unique ID.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalID", + "description": "A global ID, containing both the type and the identifier of the entity it represents.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "input", + "description": "The input required to update an entity's custom fields.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "UpdateEntityCustomFieldsInput", + "description": "The input required to update an entity's custom fields.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "UpdateEntityCustomFieldsResult", + "description": "The updateEntityCustomFields mutation's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "assignBillingSubscriptions", + "description": "Assign billing subscriptions.", + "args": [ + { + "name": "input", + "description": "The input required to assign billing subscriptions.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "AssignBillingSubscriptionsMutationInput", + "description": "The input required to assign billing subscriptions.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "AssignBillingSubscriptionsResult", + "description": "The assign billing subscriptions' result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "createDebits", + "description": "Create debits.", + "args": [ + { + "name": "input", + "description": "The input required to create debits.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "CreateDebitsInput", + "description": "The input required to create debits.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "CreateDebitsResult", + "description": "The create debits' result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "updateDelinquencyStep", + "description": "Update a delinquency step.", + "args": [ + { + "name": "input", + "description": "The input required to update a delinquency step.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "UpdateDelinquencyStepInput", + "description": "The input required to update a delinquency step.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "UpdateDelinquencyStepResult", + "description": "The update delinquency step's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "createPaymentMethod", + "description": "Create a payment method for a billable entity. The payment method can be used for payments and optionally for automatic payments.", + "args": [ + { + "name": "input", + "description": "The input required to create a payment method.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "CreatePaymentMethodInput", + "description": "The input required to create a payment method.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "CreatePaymentMethodResult", + "description": "The result of the create payment method operation.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "createPayment", + "description": "Create a payment.", + "args": [ + { + "name": "input", + "description": "The input required to create a payment.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "CreatePaymentInput", + "description": "The input required to create a payment.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "CreatePaymentResult", + "description": "The create payment's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "updatePayments", + "description": "Update payments' status.", + "args": [ + { + "name": "input", + "description": "The input required to update payments.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "UpdatePaymentsInput", + "description": "The input required to update payments.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "UpdatePaymentsResult", + "description": "The update payments' result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "createInvoice", + "description": "Generate an invoice on an account. All uninvoiced transactions will be included.", + "args": [ + { + "name": "input", + "description": "The input required to create an invoice.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "CreateInvoiceInput", + "description": "The input required to create an invoice.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "CreateInvoiceResult", + "description": "The create invoice's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "writeOffInvoices", + "description": "Write off invoices by creating credit notes for the remaining amounts.", + "args": [ + { + "name": "input", + "description": "The input required to write off invoices.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "WriteOffInvoicesInput", + "description": "The input required to write off invoices.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "WriteOffInvoicesResult", + "description": "The write off invoices' result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "toggleAutoPayment", + "description": "Toggle auto payment on a payment method. Enabling auto payment on a payment method will disable it on all other payment methods for the same account.", + "args": [ + { + "name": "input", + "description": "The input required to toggle auto payment.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "ToggleAutoPaymentInput", + "description": "The input required to toggle auto payment on a payment method.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "ToggleAutoPaymentResult", + "description": "The toggle auto payment's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "deletePaymentMethod", + "description": "Delete a payment method. The payment method will be archived (soft delete) in the billing system, and removal from the payment processor will be attempted. The payment method record remains in the database, marked as archived, and will not appear in queries.", + "args": [ + { + "name": "input", + "description": "The input required to delete a payment method.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "DeletePaymentMethodInput", + "description": "The input required to delete a payment method.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "DeletePaymentMethodResult", + "description": "The delete payment method's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "unarchiveAddress", + "description": "Unarchive an address.", + "args": [ + { + "name": "addressId", + "description": "The address's unique ID.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalID", + "description": "A global ID, containing both the type and the identifier of the entity it represents.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "UnarchiveAddressResult", + "description": "The unarchiveAddress mutation's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "archiveAddress", + "description": "Archive an address.", + "args": [ + { + "name": "addressId", + "description": "The address's unique ID.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalID", + "description": "A global ID, containing both the type and the identifier of the entity it represents.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "ArchiveAddressResult", + "description": "The archiveAddress mutation's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "updateAddressCustomFieldDefinition", + "description": "Update an address custom field definition.", + "args": [ + { + "name": "id", + "description": "The custom field definition's unique ID.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalID", + "description": "A global ID, containing both the type and the identifier of the entity it represents.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "input", + "description": "Input containing the custom field definition update details.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "UpdateAddressCustomFieldDefinitionInput", + "description": "Input for updating an address custom field definition.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "UpdateAddressCustomFieldDefinitionResult", + "description": "Result of updateAddressCustomFieldDefinition mutation.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "updateAddressCustomFields", + "description": "Update custom fields for an address.", + "args": [ + { + "name": "input", + "description": "Input containing address ID and field updates.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "UpdateAddressCustomFieldsInput", + "description": "Input for updating address custom fields.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "UpdateAddressCustomFieldsResult", + "description": "Result of updateAddressCustomFields mutation.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "createAddress", + "description": "Create an address.", + "args": [ + { + "name": "input", + "description": "The address's input.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "CreateGeoAddressInput", + "description": "The createAddress mutation's input.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "CreateAddressResult", + "description": "The createAddress mutation's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "updateAddress", + "description": "Update an address.", + "args": [ + { + "name": "id", + "description": "The address's unique ID.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalID", + "description": "A global ID, containing both the type and the identifier of the entity it represents.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "input", + "description": "The address's input.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "UpdateGeoAddressInput", + "description": "The updateAddress mutation's input.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "UpdateAddressResult", + "description": "The updateAddress mutation's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "createCoverageArea", + "description": "Creates a new coverage area.", + "args": [ + { + "name": "input", + "description": "The coverage area's input.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "CreateCoverageAreaInput", + "description": "The createCoverageArea mutation's input.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "CreateCoverageAreaResult", + "description": "The createCoverageArea mutation's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "updateCoverageArea", + "description": "Updates an existing coverage area.", + "args": [ + { + "name": "input", + "description": "The coverage area's input.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "UpdateCoverageAreaInput", + "description": "The updateCoverageArea mutation's input.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "UpdateCoverageAreaResult", + "description": "The updateCoverageArea mutation's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "archiveCoverageAreas", + "description": "Archive multiple coverage areas.", + "args": [ + { + "name": "coverageAreaIds", + "description": "The coverage areas' unique IDs.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "LIST", + "name": null, + "description": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalID", + "description": "A global ID, containing both the type and the identifier of the entity it represents.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + }, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "ArchiveCoverageAreasResult", + "description": "The archiveCoverageAreas mutation's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "unarchiveCoverageAreas", + "description": "Unarchive multiple coverage areas.", + "args": [ + { + "name": "coverageAreaIds", + "description": "The coverage areas' unique IDs.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "LIST", + "name": null, + "description": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalID", + "description": "A global ID, containing both the type and the identifier of the entity it represents.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + }, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "UnarchiveCoverageAreasResult", + "description": "The unarchiveCoverageAreas mutation's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "createGeofence", + "description": "Create a geofence.", + "args": [ + { + "name": "input", + "description": "The geofence's input.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "CreateGeofenceInput", + "description": "The createGeofence mutation's input.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "CreateGeofenceResult", + "description": "The createGeofence mutation's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "integrationNone", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "addCustomerOwnedItem", + "description": "Assign an inventory item.", + "args": [ + { + "name": "input", + "description": "The input required to add a customer owned item.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "AddCustomerOwnedItemInput", + "description": "The addCustomerOwnedItem mutation's input.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "AddCustomerOwnedItemResult", + "description": "The addCustomerOwnedItem mutation's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "archiveInventoryRoles", + "description": "Archive existing inventory roles.", + "args": [ + { + "name": "input", + "description": "The archiveInventoryRoles mutation's input.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "ArchiveInventoryRolesInput", + "description": "The archiveInventoryRole mutation's input.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "ArchiveInventoryRolesResult", + "description": "The archiveInventoryRoles mutation's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "unarchiveInventoryRoles", + "description": "Unarchive existing inventory roles.", + "args": [ + { + "name": "input", + "description": "The unarchiveInventoryRoles mutation's input.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "UnarchiveInventoryRolesInput", + "description": "The unarchiveInventoryRole mutation's input.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "UnarchiveInventoryRolesResult", + "description": "The unarchiveInventoryRoles mutation's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "assignInventoryItem", + "description": "Assign an inventory item.", + "args": [ + { + "name": "input", + "description": "The input required to assign an inventory item.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "AssignInventoryItemInput", + "description": "The assignInventoryItem mutation's input.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "AssignInventoryItemResult", + "description": "The assignInventoryItem mutation's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "createInventoryModelCategory", + "description": "Create a new inventory model category.", + "args": [ + { + "name": "input", + "description": "The input required to create a new inventory model category.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "CreateInventoryModelCategoryInput", + "description": "The createInventoryModelCategory mutation's input.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "CreateInventoryModelCategoryResult", + "description": "The createInventoryModelCategory mutation's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "createInventoryLocationAddress", + "description": "Create an inventory location address.", + "args": [ + { + "name": "input", + "description": "The input required to create an inventory location address.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "CreateInventoryLocationAddressInput", + "description": "The createInventoryLocationAddress mutation's input.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "CreateInventoryLocationAddressResult", + "description": "The createInventoryLocationAddress mutation's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "createInventoryModel", + "description": "Mutation to create an inventory model.", + "args": [ + { + "name": "input", + "description": "The input required to create an inventory model.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "CreateInventoryModelInput", + "description": "Input to create an inventory model.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "CreateInventoryModelResult", + "description": "The result when creating an inventory model.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "createInventoryRole", + "description": "Create a new inventory role.", + "args": [ + { + "name": "input", + "description": "The createInventoryRole mutation's input.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "CreateInventoryRoleInput", + "description": "The createInventoryRole mutation's input.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "CreateInventoryRoleResult", + "description": "The createInventoryRole mutation's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "createManufacturer", + "description": "Create a new manufacturer.", + "args": [ + { + "name": "input", + "description": "The createManufacturer mutation's input.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "CreateManufacturerInput", + "description": "The createManufacturer mutation's input.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "CreateManufacturerResult", + "description": "The createManufacturer mutation's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "unassignCustomerOwnedItem", + "description": "Unassign a customer owned item.", + "args": [ + { + "name": "input", + "description": "The unassignCustomerOwnedItem mutation's input.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "UnassignCustomerOwnedItemInput", + "description": "The unassignCustomerOwnedItem mutation's input.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "UnassignCustomerOwnedItemResult", + "description": "The unassignCustomerOwnedItem mutation's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "updateInventoryLocationAddress", + "description": "Update an inventory location address.", + "args": [ + { + "name": "input", + "description": "The input required to update an inventory location address.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "UpdateInventoryLocationAddressInput", + "description": "The updateInventoryLocationAddress mutation's input.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "UpdateInventoryLocationAddressResult", + "description": "The updateInventoryLocationAddress mutation's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "updateInventoryRole", + "description": "Update an existing inventory role.", + "args": [ + { + "name": "input", + "description": "The updateInventoryRole mutation's input.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "UpdateInventoryRoleInput", + "description": "The updateInventoryRole mutation's input.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "UpdateInventoryRoleResult", + "description": "The updateInventoryRole mutation's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "sendCommunication", + "description": "Send a communication to an entity using a template.", + "args": [ + { + "name": "input", + "description": "The input required to send a communication.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "SendCommunicationInput", + "description": "The input required to send a communication.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "SendCommunicationResult", + "description": "The sendCommunication mutation's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "startProductAvailabilityJob", + "description": "Start an asynchronous job to check available products at a given location. Requires a gaiia [publishable key](../../../authentication) in the request headers.", + "args": [ + { + "name": "input", + "description": "The input required to create a product availability job.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "StartProductAvailabilityJobInput", + "description": "Input required to start a product availability job.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "StartProductAvailabilityJobResult", + "description": "The result of a starting a product availability job.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "archiveBundle", + "description": "Archive a bundle.", + "args": [ + { + "name": "input", + "description": "The archiveBundle mutation's input.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "ArchiveBundleInput", + "description": "The archiveBundle mutation's input.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "ArchiveBundleResult", + "description": "The archiveBundle mutation's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "createBundle", + "description": "Create a bundle.", + "args": [ + { + "name": "input", + "description": "The createBundle mutation's input.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "CreateBundleInput", + "description": "The createBundle mutation's input.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "CreateBundleResult", + "description": "The createBundle mutation's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "createProduct", + "description": "Create a product.", + "args": [ + { + "name": "input", + "description": "The createProduct mutation's input.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "CreateProductInput", + "description": "The createProduct mutation's input.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "CreateProductResult", + "description": "The createProduct mutation's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "createProductVersion", + "description": "Create a new product version.", + "args": [ + { + "name": "input", + "description": "The createProductVersion mutation's input.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "CreateProductVersionInput", + "description": "The createProductVersion mutation's input.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "CreateProductVersionResult", + "description": "The createProductVersion mutation's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "updateBundle", + "description": "Update a bundle.", + "args": [ + { + "name": "input", + "description": "The updateBundle mutation's input.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "UpdateBundleInput", + "description": "The updateBundle mutation's input.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "UpdateBundleResult", + "description": "The updateBundle mutation's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "addImpactedAccountsToIncident", + "description": "Add impacted accounts to an incident.", + "args": [ + { + "name": "input", + "description": "The input required to add impacted accounts to an incident.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "AddImpactedAccountsToIncidentInput", + "description": "The input required to add impacted accounts to an incident.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "AddImpactedAccountsToIncidentResult", + "description": "The addImpactedAccountsToIncident mutation's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "addImpactedAccountsToIncidentFromGeofence", + "description": "Add impacted accounts to an incident from a geofence.", + "args": [ + { + "name": "input", + "description": "The input required to add impacted accounts to an incident from a geofence.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "AddImpactedAccountsToIncidentFromGeofenceInput", + "description": "The input required to add impacted accounts to an incident from a geofence.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "AddImpactedAccountsToIncidentFromGeofenceResult", + "description": "The addImpactedAccountsToIncidentFromGeofence mutation's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "addImpactedAccountsToIncidentFromProperties", + "description": "Add impacted accounts to an incident from properties.", + "args": [ + { + "name": "input", + "description": "The input required to add impacted accounts to an incident from properties.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "AddImpactedAccountsToIncidentFromPropertiesInput", + "description": "The input required to add impacted accounts to an incident from properties.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "AddImpactedAccountsToIncidentFromPropertiesResult", + "description": "The addImpactedAccountsToIncidentFromProperties mutation's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "addImpactedAccountsToIncidentFromNetworkSites", + "description": "Add impacted accounts to an incident from network sites.", + "args": [ + { + "name": "input", + "description": "The input required to add impacted accounts to an incident from network sites.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "AddImpactedAccountsToIncidentFromNetworkSitesInput", + "description": "The input required to add impacted accounts to an incident from network sites.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "AddImpactedAccountsToIncidentFromNetworkSitesResult", + "description": "The addImpactedAccountsToIncidentFromNetworkSites mutation's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "addProcedureToIncident", + "description": "Add a given procedure to an incident.", + "args": [ + { + "name": "input", + "description": "The input required to add a procedure to an incident.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "AddProcedureToIncidentInput", + "description": "The input required to add a procedure to an incident.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "AddProcedureToIncidentResult", + "description": "The addProcedureToIncident mutation's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "assignUpstreamDeviceToInventoryItem", + "description": "Assign an upstream device to an inventory item.", + "args": [ + { + "name": "input", + "description": "The assignUpstreamDeviceToInventoryItem mutation's input.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "AssignUpstreamDeviceToInventoryItemInput", + "description": "Input for assigning an upstream device to an inventory item.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "AssignUpstreamDeviceToInventoryItemResult", + "description": "Result of assigning an upstream device to an inventory item.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "createIncident", + "description": "Create a new incident.", + "args": [ + { + "name": "input", + "description": "The input required to create an incident.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "CreateIncidentInput", + "description": "The input required to create an incident.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "CreateIncidentResult", + "description": "The createIncident mutation's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "removeImpactedAccountsFromIncident", + "description": "Remove impacted accounts from an incident.", + "args": [ + { + "name": "input", + "description": "The input required to remove impacted accounts from an incident.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "RemoveImpactedAccountsFromIncidentInput", + "description": "The input required to remove impacted accounts from an incident.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "RemoveImpactedAccountsFromIncidentResult", + "description": "The removeImpactedAccountsFromIncident mutation's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "unassignUpstreamDeviceFromInventoryItem", + "description": "Unassign an upstream device from an inventory item.", + "args": [ + { + "name": "input", + "description": "The unassignUpstreamDeviceFromInventoryItem mutation's input.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "UnassignUpstreamDeviceFromInventoryItemInput", + "description": "Input for unassigning an upstream device from an inventory item.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "UnassignUpstreamDeviceFromInventoryItemResult", + "description": "Result of unassigning an upstream device from an inventory item.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "updateIncident", + "description": "Update an incident.", + "args": [ + { + "name": "input", + "description": "The input required to update an incident.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "UpdateIncidentInput", + "description": "The input required to update an incident.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "UpdateIncidentResult", + "description": "The updateIncident mutation's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "addInventoryItemLinkedDevices", + "description": "Add new linked devices to an inventory item.", + "args": [ + { + "name": "input", + "description": "The addInventoryItemLinkedDevices mutation's input.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "AddInventoryItemLinkedDevicesInput", + "description": "The addInventoryItemLinkedDevices mutation's input.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "AddInventoryItemLinkedDevicesResult", + "description": "The addInventoryItemLinkedDevices mutation's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "removeInventoryItemLinkedDevices", + "description": "Remove linked devices from an inventory item.", + "args": [ + { + "name": "input", + "description": "The removeInventoryItemLinkedDevices mutation's input.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "RemoveInventoryItemLinkedDevicesInput", + "description": "The removeInventoryItemLinkedDevices mutation's input.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "RemoveInventoryItemLinkedDevicesResult", + "description": "The removeInventoryItemLinkedDevices mutation's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "clearInventoryItemLinkedDevices", + "description": "Clear all linked devices from an inventory item.", + "args": [ + { + "name": "input", + "description": "The clearInventoryItemLinkedDevices mutation's input.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "ClearInventoryItemLinkedDevicesInput", + "description": "The clearInventoryItemLinkedDevices mutation's input.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "ClearInventoryItemLinkedDevicesResult", + "description": "The clearInventoryItemLinkedDevices mutation's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "deleteIncidentProcedure", + "description": "Delete an incident procedure.", + "args": [ + { + "name": "input", + "description": "The input required to delete an incident procedure.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "DeleteIncidentProcedureInput", + "description": "The input required to delete an incident procedure.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "DeleteIncidentProcedureResult", + "description": "The deleteIncidentProcedure mutation's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "closeTicket", + "description": "Close a ticket.", + "args": [ + { + "name": "id", + "description": "The ticket's unique ID.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalID", + "description": "A global ID, containing both the type and the identifier of the entity it represents.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "input", + "description": "The input required to close a ticket.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "CloseTicketInput", + "description": "The input required to close a ticket.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "CloseTicketResult", + "description": "The closeTicket mutation's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "mergeTickets", + "description": "Merge a child ticket into a parent ticket. The child ticket will be closed and archived.", + "args": [ + { + "name": "input", + "description": "The input required to merge tickets.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "MergeTicketsInput", + "description": "The input required to merge a child ticket into a parent ticket.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "MergeTicketsResult", + "description": "The mergeTickets mutation's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "createInternalTicket", + "description": "Create a new internal ticket.", + "args": [ + { + "name": "input", + "description": "The input required to create an internal ticket.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "CreateInternalTicketInput", + "description": "The createInternalTicket mutation's input.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "CreateInternalTicketResult", + "description": "The createInternalTicket mutation's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "createExternalTicket", + "description": "Create a new external ticket.", + "args": [ + { + "name": "input", + "description": "The input required to create an external ticket.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "CreateExternalTicketInput", + "description": "The input required to create an external ticket.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "CreateExternalTicketResult", + "description": "The createExternalTicket mutation's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "createTicketComment", + "description": "Create a new ticket comment.", + "args": [ + { + "name": "input", + "description": "The input required to create a ticket comment.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "CreateTicketCommentInput", + "description": "The input required to create a ticket comment.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "CreateTicketCommentResult", + "description": "The createTicketComment mutation's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "createTicketCommentAttachments", + "description": "Create ticket comment attachments. This mutation should be used after uploading files using URLs from [createTicketCommentAttachmentUploadUrl](../mutations/createTicketCommentAttachmentUploadUrl). See the [Files](../../files) section of the documentation for more information.", + "args": [ + { + "name": "input", + "description": "The input required to create ticket comment attachments.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "CreateTicketCommentAttachmentsInput", + "description": "The input required to create ticket comment attachments.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "CreateTicketCommentAttachmentsResult", + "description": "The createTicketCommentAttachments mutation's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "createTicketCommentAttachmentUploadUrl", + "description": "Create a ticket comment attachment upload URL. This mutation should be used in combination with [createTicketCommentAttachments](../mutations/createTicketCommentAttachments). See the [Files](../../files) section of the documentation for more information.", + "args": [ + { + "name": "input", + "description": "The input required to create a ticket comment attachment upload URL.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "CreateTicketCommentAttachmentUploadUrlInput", + "description": "The input required to create a ticket comment attachment upload URL.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "CreateTicketCommentAttachmentUploadUrlResult", + "description": "The createTicketCommentAttachmentUploadUrl mutation's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "createTicketWorklog", + "description": "Create a new ticket worklog.", + "args": [ + { + "name": "input", + "description": "The input required to create a ticket worklog.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "CreateTicketWorklogInput", + "description": "The input required to create a ticket worklog.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "CreateTicketWorklogResult", + "description": "The createTicketWorklog mutation's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "updateTicketAssignees", + "description": "Update a ticket's assignees.", + "args": [ + { + "name": "id", + "description": "The ticket's unique ID.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalID", + "description": "A global ID, containing both the type and the identifier of the entity it represents.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "input", + "description": "The input required to update a ticket's assignees.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "UpdateTicketAssigneesInput", + "description": "The input required to update a ticket's assignees.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "UpdateTicketAssigneesResult", + "description": "The updateTicketAssignees mutation's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "updateTicketFollowers", + "description": "Update a ticket's followers.", + "args": [ + { + "name": "id", + "description": "The ticket's unique ID.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalID", + "description": "A global ID, containing both the type and the identifier of the entity it represents.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "input", + "description": "The input required to update a ticket's followers.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "UpdateTicketFollowersInput", + "description": "The input required to update a ticket's followers.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "UpdateTicketFollowersResult", + "description": "The updateTicketFollowers mutation's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "updateExternalTicket", + "description": "Update an external ticket.", + "args": [ + { + "name": "id", + "description": "The ticket's unique ID.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalID", + "description": "A global ID, containing both the type and the identifier of the entity it represents.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "input", + "description": "The input required to update an external ticket.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "UpdateExternalTicketInput", + "description": "The updateExternalTicket mutation's input (see [Ticket](../objects/Ticket) for required fields).", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "UpdateExternalTicketResult", + "description": "The updateExternalTicket mutation's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "updateInternalTicket", + "description": "Update an internal ticket.", + "args": [ + { + "name": "id", + "description": "The ticket's unique ID.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalID", + "description": "A global ID, containing both the type and the identifier of the entity it represents.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "input", + "description": "The input required to update an internal ticket.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "UpdateInternalTicketInput", + "description": "The updateInternalTicket mutation's input (see [Ticket](../objects/Ticket) for required fields).", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "UpdateInternalTicketResult", + "description": "The updateInternalTicket mutation's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "updateTicketStatus", + "description": "Update a ticket's status.", + "args": [ + { + "name": "id", + "description": "The ticket's unique ID.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalID", + "description": "A global ID, containing both the type and the identifier of the entity it represents.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "input", + "description": "The input required to update a ticket's status.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "UpdateTicketStatusInput", + "description": "The input required to update a ticket's status.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "UpdateTicketStatusResult", + "description": "The updateTicketStatus mutation's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "updateTicketWorkOrder", + "description": "Update a ticket's work order.", + "args": [ + { + "name": "id", + "description": "The ticket's unique ID.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalID", + "description": "A global ID, containing both the type and the identifier of the entity it represents.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "input", + "description": "The input required to update a ticket's work order.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "UpdateTicketWorkOrderInput", + "description": "The input required to update a ticket's work order.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "UpdateTicketWorkOrderResult", + "description": "The updateTicketWorkOrder mutation's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "cancelWorkflowExecution", + "description": "Cancel the workflow execution.", + "args": [ + { + "name": "input", + "description": "The input required to cancel a workflow execution.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "CancelWorkflowExecutionInput", + "description": "The input to cancel a workflow execution.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "CancelWorkflowExecutionResult", + "description": "The cancelWorkflowExecution mutation's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "createWebhook", + "description": "Create a new webhook.", + "args": [ + { + "name": "input", + "description": "The input required to create a webhook.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "CreateWebhookInput", + "description": "The input required to create a webhook.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "CreateWebhookResult", + "description": "The createWebhook mutation's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "deleteWebhook", + "description": "Delete a webhook by unique ID.", + "args": [ + { + "name": "input", + "description": "The input required to delete a webhook.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "DeleteWebhookInput", + "description": "The input required to delete a webhook.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "DeleteWebhookResult", + "description": "The deleteWebhook mutation's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "retryWorkflowExecution", + "description": "Retry the workflow execution.", + "args": [ + { + "name": "input", + "description": "The input required to retry a workflow execution.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "RetryWorkflowExecutionInput", + "description": "The input to retry a workflow execution.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "RetryWorkflowExecutionResult", + "description": "The retryWorkflowExecution mutation's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "skipNodeExecution", + "description": "Skip a failed node execution.", + "args": [ + { + "name": "input", + "description": "The input required to skip a node execution.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "SkipNodeExecutionInput", + "description": "The input to skip a failed node execution.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "SkipNodeExecutionResult", + "description": "The skipNodeExecution mutation's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "startWorkflowExecution", + "description": "Start the workflow execution.", + "args": [ + { + "name": "input", + "description": "The input required to start a workflow execution.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "StartWorkflowExecutionInput", + "description": "The input to start a workflow execution.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "StartWorkflowExecutionResult", + "description": "The startWorkflowExecution mutation's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "assignTechnicianToWorkOrder", + "description": "Assign a primary technician to a work order.", + "args": [ + { + "name": "input", + "description": "The input required to assign a technician to a work order.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "AssignTechnicianToWorkOrderInput", + "description": "The assignTechnicianToWorkOrder mutation's input.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "AssignTechnicianToWorkOrderResult", + "description": "The assignTechnicianToWorkOrder mutation's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "createWorkOrder", + "description": "Create a new work order.", + "args": [ + { + "name": "input", + "description": "The input required to create a work order.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "CreateWorkOrderInput", + "description": "The createWorkOrder mutation's input.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "CreateWorkOrderResult", + "description": "The createWorkOrder mutation's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "createWorkOrderNote", + "description": "Create a new work order note.", + "args": [ + { + "name": "input", + "description": "The input required to create a work order note.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "CreateWorkOrderNoteInput", + "description": "The createWorkOrderNote mutation's input.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "CreateWorkOrderNoteResult", + "description": "The createWorkOrderNote mutation's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "startWorkOrderAutoAssign", + "description": "Send a work order to the auto-assign queue for async processing.", + "args": [ + { + "name": "input", + "description": "The input required to start work order auto-assign.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "StartWorkOrderAutoAssignInput", + "description": "The startWorkOrderAutoAssign mutation's input.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "StartWorkOrderAutoAssignResult", + "description": "The startWorkOrderAutoAssign mutation's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "updateWorkOrder", + "description": "Update an existing work order.", + "args": [ + { + "name": "input", + "description": "The input required to update a work order.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "UpdateWorkOrderInput", + "description": "The updateWorkOrder mutation's input.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "UpdateWorkOrderResult", + "description": "The result of an updateWorkOrder mutation.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "updateWorkOrderProcedureValue", + "description": "Update the procedure value of a work order.", + "args": [ + { + "name": "input", + "description": "The input required to update the procedure value.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "UpdateWorkOrderProcedureValueInput", + "description": "The updateWorkOrderProcedureValue mutation's input.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "UpdateWorkOrderProcedureValueResult", + "description": "The result of a updateWorkOrderProcedureValue mutation.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "updateDefaultAppointmentConfig", + "description": "Update the default appointment configuration for the current tenant.", + "args": [ + { + "name": "input", + "description": "The updateDefaultAppointmentConfig mutation's input.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "UpdateDefaultAppointmentConfigInput", + "description": "The updateDefaultAppointmentConfig mutation's input.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "UpdateDefaultAppointmentConfigResult", + "description": "The updateDefaultAppointmentConfig mutation's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "unassignAllTechniciansFromWorkOrder", + "description": "Unassign all technicians from work order.", + "args": [ + { + "name": "input", + "description": "The input required to unassign all technicians from a work order.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "UnassignAllTechniciansFromWorkOrderInput", + "description": "The unassignAllTechniciansFromWorkOrder mutation's input.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "UnassignAllTechniciansFromWorkOrderResult", + "description": "The unassignAllTechniciansFromWorkOrder mutation's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "createWorkOrderCustomStatus", + "description": "Create a new work order custom status.", + "args": [ + { + "name": "input", + "description": "The input required to create a work order custom status.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "CreateWorkOrderCustomStatusInput", + "description": "The createWorkOrderCustomStatus mutation's input.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "CreateWorkOrderCustomStatusResult", + "description": "The createWorkOrderCustomStatus mutation's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "updateWorkOrderCustomStatus", + "description": "Update a work order custom status.", + "args": [ + { + "name": "input", + "description": "The input required to update a work order custom status.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "UpdateWorkOrderCustomStatusInput", + "description": "The updateWorkOrderCustomStatus mutation's input.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "UpdateWorkOrderCustomStatusResult", + "description": "The updateWorkOrderCustomStatus mutation's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "archiveWorkOrderCustomStatus", + "description": "Archive a work order custom status by unique ID.", + "args": [ + { + "name": "input", + "description": "The input required to archive a work order custom status.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "ArchiveWorkOrderCustomStatusInput", + "description": "The input required to archive a work order custom status.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "ArchiveWorkOrderCustomStatusResult", + "description": "The archiveWorkOrderCustomStatus mutation's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "updateInventoryItem", + "description": "Update an inventory item.", + "args": [ + { + "name": "id", + "description": "The inventory item ID.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "SCALAR", + "name": "ID", + "description": null, + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "input", + "description": "The input required to update an inventory item.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "UpdateInventoryItemInput", + "description": null, + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "OBJECT", + "name": "InventoryItem", + "description": null, + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "startAddInventoryItemsJob", + "description": "Starts a background job to add inventory items in bulk.", + "args": [ + { + "name": "input", + "description": "The input for adding inventory items.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "AddInventoryItemsInput", + "description": null, + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "SCALAR", + "name": "String", + "description": null, + "ofType": null, + "__typename": "__Type" + } + } +] \ No newline at end of file diff --git a/vendor/gaiia/priv/queries.json b/vendor/gaiia/priv/queries.json new file mode 100644 index 00000000..a455b80d --- /dev/null +++ b/vendor/gaiia/priv/queries.json @@ -0,0 +1,6806 @@ +[ + { + "name": "account", + "description": "Query an account by unique ID.", + "args": [ + { + "name": "id", + "description": "The account's unique ID.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalID", + "description": "A global ID, containing both the type and the identifier of the entity it represents.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "OBJECT", + "name": "Account", + "description": "The central piece of the CRM module, representing a customer.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "accounts", + "description": "Query a paginated list of accounts.", + "args": [ + { + "name": "first", + "description": "Returns up to the first `n` elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "last", + "description": "Returns up to the last `n` elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "after", + "description": "Returns the elements that come after the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "before", + "description": "Returns the elements that come before the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "orderBy", + "description": "Orders the results by the given fields.", + "type": { + "kind": "LIST", + "name": null, + "description": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "AccountOrderBy", + "description": "To order accounts.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "filter", + "description": "Filters the results.", + "type": { + "kind": "INPUT_OBJECT", + "name": "AccountFilter", + "description": "Available filters for accounts.", + "ofType": null, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "AccountConnection", + "description": "To paginate through multiple accounts.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "accountByReadableId", + "description": "Query an account by its readable ID.", + "args": [ + { + "name": "readableId", + "description": "The account's readable ID.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "OBJECT", + "name": "Account", + "description": "The central piece of the CRM module, representing a customer.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "accountCustomFieldDefinitions", + "description": "Query a paginated list of account custom field definitions.", + "args": [ + { + "name": "first", + "description": "Returns up to the first `n` elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "last", + "description": "Returns up to the last `n` elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "after", + "description": "Returns the elements that come after the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "before", + "description": "Returns the elements that come before the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "AccountCustomFieldDefinitionConnection", + "description": "To paginate through multiple account custom field definitions.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "accountLabels", + "description": "Query a paginated list of account labels.", + "args": [ + { + "name": "first", + "description": "Returns up to the first `n` elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "last", + "description": "Returns up to the last `n` elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "after", + "description": "Returns the elements that come after the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "before", + "description": "Returns the elements that come before the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "orderBy", + "description": "Orders the results by the given fields.", + "type": { + "kind": "LIST", + "name": null, + "description": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "AccountLabelOrderBy", + "description": "To order account labels.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "filter", + "description": "Filters the results.", + "type": { + "kind": "INPUT_OBJECT", + "name": "AccountLabelFilter", + "description": "Available filters for account labels.", + "ofType": null, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "AccountLabelConnection", + "description": "To paginate through multiple account labels.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "accountTypes", + "description": "Query a paginated list of account types.", + "args": [ + { + "name": "first", + "description": "Returns up to the first `n` elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "last", + "description": "Returns up to the last `n` elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "after", + "description": "Returns the elements that come after the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "before", + "description": "Returns the elements that come before the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "AccountTypeConnection", + "description": "To paginate through multiple account types.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "accountStatuses", + "description": "Query a paginated list of account statuses.", + "args": [ + { + "name": "first", + "description": "Returns up to the first `n` elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "last", + "description": "Returns up to the last `n` elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "after", + "description": "Returns the elements that come after the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "before", + "description": "Returns the elements that come before the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "filter", + "description": "Filters the results.", + "type": { + "kind": "INPUT_OBJECT", + "name": "AccountStatusFilter", + "description": "To filter AccountStatuses.", + "ofType": null, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "AccountStatusConnection", + "description": "To paginate through multiple account statuses.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "commercialAccountStatuses", + "description": "Query a paginated list of commercial account statuses.", + "args": [ + { + "name": "first", + "description": "Returns up to the first `n` elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "last", + "description": "Returns up to the last `n` elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "after", + "description": "Returns the elements that come after the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "before", + "description": "Returns the elements that come before the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "filter", + "description": "Filters the results.", + "type": { + "kind": "INPUT_OBJECT", + "name": "CommercialAccountStatusFilter", + "description": "To filter CommercialAccountStatuses.", + "ofType": null, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "CommercialAccountCustomStatusConnection", + "description": "To paginate through multiple commercial account custom statuses.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "cancellationReasons", + "description": "Query a paginated list of cancellation reasons.", + "args": [ + { + "name": "first", + "description": "Returns up to the first `n` elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "last", + "description": "Returns up to the last `n` elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "after", + "description": "Returns the elements that come after the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "before", + "description": "Returns the elements that come before the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "filter", + "description": "Filter the cancellation reasons by category.", + "type": { + "kind": "INPUT_OBJECT", + "name": "CancellationReasonFilter", + "description": "Filter the cancellation reasons.", + "ofType": null, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "CancellationReasonConnection", + "description": "To paginate through multiple cancellation reasons.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "note", + "description": "Query a note by unique ID.", + "args": [ + { + "name": "id", + "description": "The notes's unique ID.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalID", + "description": "A global ID, containing both the type and the identifier of the entity it represents.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "OBJECT", + "name": "Note", + "description": "Note information.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "notes", + "description": "Query a paginated list of notes.", + "args": [ + { + "name": "first", + "description": "Returns up to the first `n` elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "last", + "description": "Returns up to the last `n` elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "after", + "description": "Returns the elements that come after the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "before", + "description": "Returns the elements that come before the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "filter", + "description": "Filters the results.", + "type": { + "kind": "INPUT_OBJECT", + "name": "NoteFilter", + "description": "Available filters for notes.", + "ofType": null, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "NoteConnection", + "description": "To paginate through multiple notes.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "property", + "description": "Query a property by unique ID.", + "args": [ + { + "name": "id", + "description": "The property's unique ID.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalID", + "description": "A global ID, containing both the type and the identifier of the entity it represents.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "OBJECT", + "name": "Property", + "description": "Property.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "unit", + "description": "Query a unit by unique id.", + "args": [ + { + "name": "id", + "description": "The unit's unique ID.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalID", + "description": "A global ID, containing both the type and the identifier of the entity it represents.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "OBJECT", + "name": "Unit", + "description": "A unit of a property.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "units", + "description": "Query a list of units.", + "args": [ + { + "name": "first", + "description": "Returns the first `n` elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "last", + "description": "Returns the last `n` elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "before", + "description": "Returns the elements that come after the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "after", + "description": "Returns the elements that come before the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "orderBy", + "description": "Orders the results by the given fields.", + "type": { + "kind": "LIST", + "name": null, + "description": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "UnitOrderBy", + "description": "To order units.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "filter", + "description": "Filters the results.", + "type": { + "kind": "INPUT_OBJECT", + "name": "UnitFilter", + "description": "Available filters for units.", + "ofType": null, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "UnitConnection", + "description": "To paginate through multiple units.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "propertyGroup", + "description": "Query a property group by unique ID.", + "args": [ + { + "name": "id", + "description": "The property group's unique ID.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalID", + "description": "A global ID, containing both the type and the identifier of the entity it represents.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "OBJECT", + "name": "PropertyGroup", + "description": "Property group.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "propertyGroups", + "description": "Query a paginated list of property groups.", + "args": [ + { + "name": "first", + "description": "Returns up to the first `n` elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "last", + "description": "Returns up to the last `n` elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "after", + "description": "Returns the elements that come after the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "before", + "description": "Returns the elements that come before the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "orderBy", + "description": "Orders the results by the given fields.", + "type": { + "kind": "LIST", + "name": null, + "description": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "PropertyGroupOrderBy", + "description": "To order property groups.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "filter", + "description": "Filters the results.", + "type": { + "kind": "INPUT_OBJECT", + "name": "PropertyGroupFilter", + "description": "Available filters for property groups.", + "ofType": null, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "PropertyGroupConnection", + "description": "To paginate through multiple property groups.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "properties", + "description": "Query a list of properties.", + "args": [ + { + "name": "first", + "description": "Returns up to the first `n` elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "last", + "description": "Returns up to the last `n` elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "after", + "description": "Returns the elements that come after the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "before", + "description": "Returns the elements that come before the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "orderBy", + "description": "Orders the results by the given fields.", + "type": { + "kind": "LIST", + "name": null, + "description": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "PropertyOrderBy", + "description": "To order properties.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "filter", + "description": "Filters the results.", + "type": { + "kind": "INPUT_OBJECT", + "name": "PropertyFilter", + "description": "Available filters for properties.", + "ofType": null, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "PropertyConnection", + "description": "To paginate through multiple properties.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "entityCustomFieldDefinitions", + "description": "Get entity custom field definitions for a specific entity type.", + "args": [ + { + "name": "first", + "description": "Returns up to the first `n` elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "last", + "description": "Returns up to the last `n` elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "after", + "description": "Returns the elements that come after the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "before", + "description": "Returns the elements that come before the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "filter", + "description": "Filters available for the query.", + "type": { + "kind": "INPUT_OBJECT", + "name": "EntityCustomFieldDefinitionFilter", + "description": "Filters for entity custom field definitions.", + "ofType": null, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "EntityCustomFieldDefinitionConnection", + "description": "Entity custom field definition connection.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "pinVerification", + "description": "Query the PIN verification status for an entity.", + "args": [ + { + "name": "entityId", + "description": "The entity to check verification status for.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalID", + "description": "A global ID, containing both the type and the identifier of the entity it represents.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "OBJECT", + "name": "PinVerification", + "description": "A PIN verification session.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "invoice", + "description": "Query an invoice by unique ID.", + "args": [ + { + "name": "id", + "description": "The invoice's unique Id.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalID", + "description": "A global ID, containing both the type and the identifier of the entity it represents.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "OBJECT", + "name": "Invoice", + "description": "The billable entity's invoice.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "invoices", + "description": "Query a paginated list of billing invoices. The arguments 'first' and 'last' are mutually exclusive; only one of them can be set at a time. The same applies to 'after' and 'before'.", + "args": [ + { + "name": "before", + "description": "Returns the elements that come before the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "first", + "description": "Returns up to the first 'n' elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "after", + "description": "Returns the elements that come after the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "last", + "description": "Returns up to the last 'n' elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "filter", + "description": "Filters the results.", + "type": { + "kind": "INPUT_OBJECT", + "name": "InvoicesFilter", + "description": "Available filters for invoices.", + "ofType": null, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "InvoiceConnection", + "description": "To paginate through multiple invoices.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "paymentMethods", + "description": "Query a paginated list of payment methods. The arguments 'first' and 'last' are mutually exclusive; only one of them can be set at a time. The same applies to 'after' and 'before'.", + "args": [ + { + "name": "before", + "description": "Returns the elements that come before the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "first", + "description": "Returns up to the first 'n' elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "after", + "description": "Returns the elements that come after the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "last", + "description": "Returns up to the last 'n' elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "filter", + "description": "Filters the results.", + "type": { + "kind": "INPUT_OBJECT", + "name": "PaymentMethodsFilter", + "description": "Available filters for payment methods.", + "ofType": null, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "PaymentMethodConnection", + "description": "To paginate through multiple payment methods.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "billingSubscription", + "description": "Query a billing subscription by unique ID.", + "args": [ + { + "name": "id", + "description": "The billing subscription's unique ID.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalID", + "description": "A global ID, containing both the type and the identifier of the entity it represents.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "OBJECT", + "name": "BillingSubscription", + "description": "The billing subscription.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "billingSubscriptions", + "description": "Query a paginated list of billing subscriptions. The arguments 'first' and 'last' are mutually exclusive; only one of them can be set at a time. The same applies to 'after' and 'before'.", + "args": [ + { + "name": "before", + "description": "Returns the elements that come before the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "after", + "description": "Returns the elements that come after the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "first", + "description": "Returns up to the first 'n' elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "last", + "description": "Returns up to the last 'n' elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "filter", + "description": "Filters the results.", + "type": { + "kind": "INPUT_OBJECT", + "name": "BillingSubscriptionsFilter", + "description": "Available filters for subscriptions.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "orderBy", + "description": "Orders the results by the given fields.", + "type": { + "kind": "LIST", + "name": null, + "description": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "BillingSubscriptionsOrderBy", + "description": "To order subscriptions.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "BillingSubscriptionConnection", + "description": "To paginate through multiple subscriptions.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "transaction", + "description": "Query a transaction by unique ID.", + "args": [ + { + "name": "id", + "description": "The transaction's unique ID.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalID", + "description": "A global ID, containing both the type and the identifier of the entity it represents.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "Transaction", + "description": "The transaction.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "usageRecords", + "description": "Query a paginated list of usage records. The arguments 'first' and 'last' are mutually exclusive; only one of them can be set at a time. The same applies to 'after' and 'before'.", + "args": [ + { + "name": "before", + "description": "Returns the elements that come before the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "first", + "description": "Returns up to the first 'n' elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "after", + "description": "Returns the elements that come after the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "last", + "description": "Returns up to the last 'n' elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "filter", + "description": "Filters the results.", + "type": { + "kind": "INPUT_OBJECT", + "name": "UsageRecordsFilter", + "description": "Available filters for usage records.", + "ofType": null, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "UsageRecordConnection", + "description": "Contains a usage record and the current edge's cursor.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "addressCustomFieldDefinitions", + "description": "Query a paginated list of address custom field definitions.", + "args": [ + { + "name": "first", + "description": "Returns up to the first `n` elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "last", + "description": "Returns up to the last `n` elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "after", + "description": "Returns the elements that come after the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "before", + "description": "Returns the elements that come before the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "filters", + "description": "Filters to apply to the query.", + "type": { + "kind": "INPUT_OBJECT", + "name": "AddressCustomFieldDefinitionFilters", + "description": "Filters for the address custom field definitions query.", + "ofType": null, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "AddressCustomFieldDefinitionConnection", + "description": "To paginate through multiple custom field definitions.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "addresses", + "description": "Query a paginated list of addresses.", + "args": [ + { + "name": "first", + "description": "Returns up to the first `n` elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "last", + "description": "Returns up to the last `n` elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "after", + "description": "Returns the elements that come after the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "before", + "description": "Returns the elements that come before the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "filter", + "description": "Filters to apply to the query.", + "type": { + "kind": "INPUT_OBJECT", + "name": "AddressesQueryFilter", + "description": "Filters for the addresses query.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "orderBy", + "description": "Order by which to sort results.", + "type": { + "kind": "LIST", + "name": null, + "description": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "AddressOrderBy", + "description": "Ordering configuration for the addresses query.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "GeoAddressConnection", + "description": "To paginate through multiple geo addresses.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "coverageAreas", + "description": "Query a paginated list of coverage areas.", + "args": [ + { + "name": "first", + "description": "Returns up to the first `n` elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "last", + "description": "Returns up to the last `n` elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "after", + "description": "Returns the elements that come after the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "before", + "description": "Returns the elements that come before the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "filter", + "description": "Filters to apply to the query.", + "type": { + "kind": "INPUT_OBJECT", + "name": "CoverageAreasQueryFilter", + "description": "Filters for the coverage areas query.", + "ofType": null, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "CoverageAreaConnection", + "description": "To paginate through multiple coverage areas.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "archivedCoverageAreas", + "description": "Query a paginated list of archived coverage areas.", + "args": [ + { + "name": "first", + "description": "Returns up to the first `n` elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "last", + "description": "Returns up to the last `n` elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "after", + "description": "Returns the elements that come after the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "before", + "description": "Returns the elements that come before the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "filter", + "description": "Filters to apply to the query.", + "type": { + "kind": "INPUT_OBJECT", + "name": "ArchivedCoverageAreasQueryFilter", + "description": "Filters for the archived coverage areas query.", + "ofType": null, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "CoverageAreaConnection", + "description": "To paginate through multiple coverage areas.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "integrationNone", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "addressImportCsvDocumentation", + "description": "Query the CSV documentation for address imports.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "AddressImportCsvDocumentationResult", + "description": "The addressImportCsvDocumentation query's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "addressImportCsvTemplate", + "description": "Query the CSV template for address imports.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "AddressImportCsvTemplateResult", + "description": "The addressImportCsvTemplate query's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "archivedInventoryRoles", + "description": "Query to get a list of archived inventory roles.", + "args": [ + { + "name": "first", + "description": "Returns up to the first `n` elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "last", + "description": "Returns up to the last `n` elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "after", + "description": "Returns the elements that come after the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "before", + "description": "Returns the elements that come before the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "filters", + "description": "Filters to apply to the query", + "type": { + "kind": "INPUT_OBJECT", + "name": "ArchivedInventoryRolesQueryFilters", + "description": "Filters for the archived inventory roles query.", + "ofType": null, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "InventoryRoleConnection", + "description": "To paginate through multiple inventory roles.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "categoryImportCsvDocumentation", + "description": "Query the CSV documentation for category imports.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "CategoryImportCsvDocumentationResult", + "description": "The categoryImportCsvDocumentation query's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "categoryImportCsvTemplate", + "description": "Query the CSV template for category imports.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "CategoryImportCsvTemplateResult", + "description": "The categoryImportCsvTemplate query's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "categoryFieldImportCsvDocumentation", + "description": "Query the CSV documentation for category field imports.", + "args": [ + { + "name": "categoryCsvFileName", + "description": "Optionally provide a filled out category CSV to receive an updated documentation.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "CategoryFieldImportCsvDocumentationResult", + "description": "The categoryFieldImportCsvDocumentation query's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "categoryFieldImportCsvTemplate", + "description": "Query the CSV template for category field imports.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "CategoryFieldImportCsvTemplateResult", + "description": "The categoryFieldImportCsvTemplate query's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "inventoryLocationImportCsvDocumentation", + "description": "Query the CSV documentation for inventory location imports. @deprecated Use inventoryImportSchemas instead.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "InventoryLocationImportCsvDocumentationResult", + "description": "@deprecated Use inventoryImportSchemas instead.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "inventoryLocationImportCsvTemplate", + "description": "Query the CSV template for inventory location imports. @deprecated Use inventoryImportSchemas instead.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "InventoryLocationImportCsvTemplateResult", + "description": "@deprecated Use inventoryImportSchemas instead.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "manufacturerImportCsvDocumentation", + "description": "Query the CSV documentation for manufacturer imports. @deprecated Use inventoryImportSchemas instead.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "ManufacturerImportCsvDocumentationResult", + "description": "@deprecated Use inventoryImportSchemas instead.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "manufacturerImportCsvTemplate", + "description": "Query the CSV template for manufacturer imports. @deprecated Use inventoryImportSchemas instead.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "ManufacturerImportCsvTemplateResult", + "description": "@deprecated Use inventoryImportSchemas instead.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "contactImportCsvDocumentation", + "description": "Query the CSV documentation for contact imports.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "ContactImportCsvDocumentationResult", + "description": "The contactImportCsvDocumentation query's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "contactImportCsvTemplate", + "description": "Query the CSV template for contact imports.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "ContactImportCsvTemplateResult", + "description": "The contactImportCsvTemplate query's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "contactInformationImportCsvDocumentation", + "description": "Query the CSV documentation for contact information imports.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "ContactInformationImportCsvDocumentationResult", + "description": "The contactInformationImportCsvDocumentation query's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "contactInformationImportCsvTemplate", + "description": "Query the CSV template for contact information imports.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "ContactInformationImportCsvTemplateResult", + "description": "The contactInformationImportCsvTemplate query's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "inventoryLocationContactInformationImportCsvDocumentation", + "description": "Query the CSV documentation for inventory location contact information imports.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "InventoryLocationContactInformationImportCsvDocumentationResult", + "description": "The inventoryLocationContactInformationImportCsvDocumentation query's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "inventoryLocationContactInformationImportCsvTemplate", + "description": "Query the CSV template for inventory location contact information imports.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "InventoryLocationContactInformationImportCsvTemplateResult", + "description": "The inventoryLocationContactInformationImportCsvTemplate query's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "customerOwnedItems", + "description": "Query a paginated list of customer owned items.", + "args": [ + { + "name": "first", + "description": "Returns up to the first `n` elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "last", + "description": "Returns up to the last `n` elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "after", + "description": "Returns the elements that come after the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "before", + "description": "Returns the elements that come before the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "filters", + "description": "Filters to apply to the query.", + "type": { + "kind": "INPUT_OBJECT", + "name": "CustomerOwnedItemsQueryFilters", + "description": "Filters for the customer owned items query.", + "ofType": null, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "CustomerOwnedItemConnection", + "description": "To paginate through multiple customer owned items.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "inventoryItem", + "description": "Query a single inventory item by its ID.", + "args": [ + { + "name": "id", + "description": "The global ID of the inventory item to retrieve.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalID", + "description": "A global ID, containing both the type and the identifier of the entity it represents.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "OBJECT", + "name": "InventoryItem", + "description": "An inventory item managed by the inventory-expedition-service.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "inventoryItems", + "description": "Query a paginated list of inventory items.", + "args": [ + { + "name": "first", + "description": "Returns up to the first `n` elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "last", + "description": "Returns up to the last `n` elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "after", + "description": "Returns the elements that come after the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "before", + "description": "Returns the elements that come before the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "filters", + "description": "Filters to apply to the query.", + "type": { + "kind": "INPUT_OBJECT", + "name": "InventoryItemsQueryFilters", + "description": "Filters for the inventory items query.", + "ofType": null, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "InventoryItemConnection", + "description": "To paginate through multiple inventory items.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "inventoryItemsImportCsvDocumentation", + "description": "Query the CSV documentation for inventory items.", + "args": [ + { + "name": "modelCsvFileName", + "description": "Optionally provide a filled out model CSV to receive an updated documentation.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "modelFieldCsvFileName", + "description": "Optionally provide a filled out model field CSV to receive an updated documentation.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "InventoryItemsImportCsvDocumentationResult", + "description": "The inventoryItemsImportCsvDocumentation query's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "inventoryItemsImportCsvTemplate", + "description": "Query the CSV template for inventory items.", + "args": [ + { + "name": "modelCsvFileName", + "description": "Optionally provide a filled out model CSV to receive an updated documentation.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "modelFieldCsvFileName", + "description": "Optionally provide a filled out model field CSV to receive an updated documentation.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "InventoryItemsImportCsvTemplateResult", + "description": "The inventoryItemsImportCsvTemplate query's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "linkedDevicesImportCsvDocumentation", + "description": "Query the CSV documentation for linked devices.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "LinkedDevicesImportCsvDocumentationResult", + "description": "The linkedDevicesImportCsvDocumentation query's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "linkedDevicesImportCsvTemplate", + "description": "Query the CSV template for linked devices.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "LinkedDevicesImportCsvTemplateResult", + "description": "The linkedDevicesImportCsvTemplate query's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "inventoryLocations", + "description": "Query to get a list of inventory locations.", + "args": [ + { + "name": "first", + "description": "Returns up to the first `n` elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "last", + "description": "Returns up to the last `n` elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "after", + "description": "Returns the elements that come after the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "before", + "description": "Returns the elements that come before the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "filters", + "description": "Filters to apply to the query.", + "type": { + "kind": "INPUT_OBJECT", + "name": "InventoryLocationsQueryFilters", + "description": "Filters for the inventory locations query.", + "ofType": null, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "InventoryLocationConnection", + "description": "To paginate through multiple inventory locations.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "inventoryModels", + "description": "Query to get a list of inventory models.", + "args": [ + { + "name": "first", + "description": "Returns up to the first `n` elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "last", + "description": "Returns up to the last `n` elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "after", + "description": "Returns the elements that come after the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "before", + "description": "Returns the elements that come before the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "filters", + "description": "Filters to apply to the query.", + "type": { + "kind": "INPUT_OBJECT", + "name": "InventoryModelQueryFilters", + "description": "Filters for the inventory models query.", + "ofType": null, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "InventoryModelConnection", + "description": "To paginate through multiple inventory models.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "inventoryModelCategories", + "description": "Query to get all inventory model categories.", + "args": [ + { + "name": "first", + "description": "Returns up to the first `n` elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "before", + "description": "Returns up to the last `n` elements from the list.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "after", + "description": "Returns the elements that come after the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "last", + "description": "Returns the elements that come before the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "InventoryModelCategoryConnection", + "description": "To paginate through categories.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "inventoryRoles", + "description": "Query to get a list of inventory roles.", + "args": [ + { + "name": "first", + "description": "Returns up to the first `n` elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "last", + "description": "Returns up to the last `n` elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "after", + "description": "Returns the elements that come after the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "before", + "description": "Returns the elements that come before the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "filters", + "description": "Filters to apply to the query", + "type": { + "kind": "INPUT_OBJECT", + "name": "InventoryRolesQueryFilters", + "description": "Filters for the inventory roles query.", + "ofType": null, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "InventoryRoleConnection", + "description": "To paginate through multiple inventory roles.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "manufacturers", + "description": "Query to get a list of manufacturers.", + "args": [ + { + "name": "first", + "description": "Returns up to the first `n` elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "last", + "description": "Returns up to the last `n` elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "after", + "description": "Returns the elements that come after the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "before", + "description": "Returns the elements that come before the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "filters", + "description": "Filters to apply to the query", + "type": { + "kind": "INPUT_OBJECT", + "name": "ManufacturersQueryFilters", + "description": "Filters for the manufacturers query.", + "ofType": null, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "ManufacturerConnection", + "description": "To paginate through multiple manufacturers.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "modelImportCsvDocumentation", + "description": "Query the CSV documentation for model imports.", + "args": [ + { + "name": "categoriesCsvFileName", + "description": "Optionally provide a filled out categories CSV to receive an updated documentation.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "manufacturersCsvFileName", + "description": "Optionally provide a filled out manufacturers CSV to receive an updated documentation.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "ModelImportCsvDocumentationResult", + "description": "The modelImportCsvDocumentation query's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "modelImportCsvTemplate", + "description": "Query the CSV template for model imports.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "ModelImportCsvTemplateResult", + "description": "The modelImportCsvTemplate query's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "modelFieldImportCsvDocumentation", + "description": "Query the CSV documentation for model field imports.", + "args": [ + { + "name": "modelCsvFileName", + "description": "Optionally provide a filled out model CSV to receive an updated documentation.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "ModelFieldImportCsvDocumentationResult", + "description": "The modelFieldImportCsvDocumentation query's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "modelFieldImportCsvTemplate", + "description": "Query the CSV template for model field imports.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "ModelFieldImportCsvTemplateResult", + "description": "The modelFieldImportCsvTemplate query's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "zoneImportCsvDocumentation", + "description": "Query the CSV documentation for zone imports.", + "args": [ + { + "name": "inventoryLocationCsvFileName", + "description": "Optionally provide a filled out inventory location CSV to receive an updated documentation.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "ZoneImportCsvDocumentationResult", + "description": "The zoneImportCsvDocumentation query's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "zoneImportCsvTemplate", + "description": "Query the CSV template for zone imports.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "ZoneImportCsvTemplateResult", + "description": "The zoneImportCsvTemplate query's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "productAvailabilityJob", + "description": "Retrieve a product availability job by its ID. Requires a gaiia [publishable key](../../../authentication) in the request headers.", + "args": [ + { + "name": "id", + "description": "ID of the product availability job to retrieve.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalID", + "description": "A global ID, containing both the type and the identifier of the entity it represents.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "OBJECT", + "name": "ProductAvailabilityJob", + "description": "An async job for requesting product availability.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "plannedServiceArea", + "description": "Query a plan service area by unique ID.", + "args": [ + { + "name": "id", + "description": "The plan service area's unique ID.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalID", + "description": "A global ID, containing both the type and the identifier of the entity it represents.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "OBJECT", + "name": "PlannedServiceArea", + "description": "A planned service area represents a geographic area where service is planned but not yet available.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "plannedServiceAreaBySlug", + "description": "Query a planned service area by unique slug.", + "args": [ + { + "name": "slug", + "description": "The planned service area's unique slug.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "OBJECT", + "name": "PlannedServiceArea", + "description": "A planned service area represents a geographic area where service is planned but not yet available.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "order", + "description": "Query an order by unique ID.", + "args": [ + { + "name": "id", + "description": "The order's unique ID.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalID", + "description": "A global ID, containing both the type and the identifier of the entity it represents.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "OBJECT", + "name": "Order", + "description": "An order managed by the ordering-service.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "orders", + "description": "Query a paginated list of orders.", + "args": [ + { + "name": "first", + "description": "Returns up to the first `n` elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "last", + "description": "Returns up to the last `n` elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "after", + "description": "Returns the elements that come after the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "before", + "description": "Returns the elements that come before the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "filter", + "description": "Filters the results.", + "type": { + "kind": "INPUT_OBJECT", + "name": "OrderFilter", + "description": "Available filters for orders.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "orderBy", + "description": "Orders the results by the given fields.", + "type": { + "kind": "LIST", + "name": null, + "description": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "OrderOrderBy", + "description": "To order orders.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "OrderConnection", + "description": "To paginate through orders.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "orderAttributionProfile", + "description": "Query an order attribution profile by unique ID.", + "args": [ + { + "name": "id", + "description": "The order attribution profile's unique ID.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalID", + "description": "A global ID, containing both the type and the identifier of the entity it represents.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "OBJECT", + "name": "OrderAttributionProfile", + "description": "An order attribution profile for tracking order sources.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "orderAttributionProfiles", + "description": "Query a paginated list of order attribution profiles. The arguments `first` and `last` are mutually exclusive; only one of them can be set at a time. The same applies to `after` and `before`.", + "args": [ + { + "name": "first", + "description": "Returns up to the first `n` elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "last", + "description": "Returns up to the last `n` elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "after", + "description": "Returns the elements that come after the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "before", + "description": "Returns the elements that come before the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "searchTerm", + "description": "Search by profile name.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "filter", + "description": "Filters the results.", + "type": { + "kind": "INPUT_OBJECT", + "name": "OrderAttributionProfileFilter", + "description": "Available filters for order attribution profiles.", + "ofType": null, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "OrderAttributionProfileConnection", + "description": "To paginate through order attribution profiles.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "platformServiceNone", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "platformServiceHealthCheck", + "description": "Health check endpoint for platform service", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "featureFlags", + "description": "Query feature flags from AppConfig", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "FeatureFlagsResponse", + "description": "Response containing feature flags configuration from AppConfig", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "archivedBundles", + "description": "Query paginated list of archived product bundles.", + "args": [ + { + "name": "first", + "description": "Returns up to the first `n` elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "last", + "description": "Returns up to the last `n` elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "after", + "description": "Returns the elements that come after the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "before", + "description": "Returns the elements that come before the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "filters", + "description": "Filters to apply to the query.", + "type": { + "kind": "INPUT_OBJECT", + "name": "BundlesQueryFilters", + "description": "Filters for the bundles query.", + "ofType": null, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "BundleConnection", + "description": "To paginate through product bundles.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "bundle", + "description": "Get a bundle by its ID.", + "args": [ + { + "name": "id", + "description": "The bundle's unique ID.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalID", + "description": "A global ID, containing both the type and the identifier of the entity it represents.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "OBJECT", + "name": "Bundle", + "description": "The bundle.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "bundles", + "description": "Query paginated list of product bundles.", + "args": [ + { + "name": "first", + "description": "Returns up to the first `n` elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "last", + "description": "Returns up to the last `n` elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "after", + "description": "Returns the elements that come after the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "before", + "description": "Returns the elements that come before the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "filters", + "description": "Filters to apply to the query.", + "type": { + "kind": "INPUT_OBJECT", + "name": "BundlesQueryFilters", + "description": "Filters for the bundles query.", + "ofType": null, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "BundleConnection", + "description": "To paginate through product bundles.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "bundlesImportCsvSchema", + "description": "Query the CSV schema for bundles. Returns the JSON schema for validation.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "BundlesImportCsvSchemaResult", + "description": "The bundlesImportCsvSchema query's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "bundlesImportCsvTemplate", + "description": "Query the CSV template for bundles. Returns the template string and filename.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "BundlesImportCsvTemplateResult", + "description": "The bundlesImportCsvTemplate query's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "generalLedgerCodesImportCsvSchema", + "description": "Query the CSV schema for general ledger codes. Returns the JSON schema for validation.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "GeneralLedgerCodesImportCsvSchemaResult", + "description": "The generalLedgerCodesImportCsvSchema query's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "generalLedgerCodesImportCsvTemplate", + "description": "Query the CSV template for general ledger codes. Returns the template string and filename.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "GeneralLedgerCodesImportCsvTemplateResult", + "description": "The generalLedgerCodesImportCsvTemplate query's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "pricesImportCsvSchema", + "description": "Query the CSV schema for prices. Returns the JSON schema for validation.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "PricesImportCsvSchemaResult", + "description": "The pricesImportCsvSchema query's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "pricesImportCsvTemplate", + "description": "Query the CSV template for prices. Returns the template string and filename.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "PricesImportCsvTemplateResult", + "description": "The pricesImportCsvTemplate query's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "pricingTiersImportCsvSchema", + "description": "Query the CSV schema for pricing tiers. Returns the JSON schema for validation.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "PricingTiersImportCsvSchemaResult", + "description": "The pricingTiersImportCsvSchema query's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "pricingTiersImportCsvTemplate", + "description": "Query the CSV template for pricing tiers. Returns the template string and filename.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "PricingTiersImportCsvTemplateResult", + "description": "The pricingTiersImportCsvTemplate query's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "productBySlug", + "description": "Get a product by slug. If the slug is not current, attempts to resolve it using product slug history.", + "args": [ + { + "name": "slug", + "description": "The product slug from the URL.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "ProductBySlugResult", + "description": "The productBySlug query's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "products", + "description": "Query paginated list of products.", + "args": [ + { + "name": "first", + "description": "Returns up to the first `n` elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "last", + "description": "Returns up to the last `n` elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "after", + "description": "Returns the elements that come after the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "before", + "description": "Returns the elements that come before the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "filter", + "description": "Filter the results.", + "type": { + "kind": "INPUT_OBJECT", + "name": "ProductFilter", + "description": "Available filters for products.", + "ofType": null, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "ProductConnection", + "description": "To paginate through products.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "productsImportCsvSchema", + "description": "Query the CSV schema for products. Returns the JSON schema for validation.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "ProductsImportCsvSchemaResult", + "description": "The productsImportCsvSchema query's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "productsImportCsvTemplate", + "description": "Query the CSV template for products. Returns the template string and filename.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "ProductsImportCsvTemplateResult", + "description": "The productsImportCsvTemplate query's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "productEligibilityRulesImportCsvSchema", + "description": "Query the CSV schema for product eligibility rules. Returns the JSON schema for validation.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "ProductEligibilityRulesImportCsvSchemaResult", + "description": "The productEligibilityRulesImportCsvSchema query's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "productEligibilityRulesImportCsvTemplate", + "description": "Query the CSV template for product eligibility rules. Returns the template string and filename.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "ProductEligibilityRulesImportCsvTemplateResult", + "description": "The productEligibilityRulesImportCsvTemplate query's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "productImportSchemas", + "description": "Returns all Product import JSON schemas in a single call.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "ProductImportSchemasResult", + "description": "The productImportSchemas query's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "productCategories", + "description": "Query paginated list of product categories.", + "args": [ + { + "name": "first", + "description": "Returns up to the first `n` elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "last", + "description": "Returns up to the last `n` elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "after", + "description": "Returns the elements that come after the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "before", + "description": "Returns the elements that come before the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "ProductCategoryConnection", + "description": "To paginate through product categories.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "productCategoriesImportCsvSchema", + "description": "Query the CSV schema for product categories. Returns the JSON schema for validation.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "ProductCategoriesImportCsvSchemaResult", + "description": "The productCategoriesImportCsvSchema query's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "productCategoriesImportCsvTemplate", + "description": "Query the CSV template for product categories. Returns the template string and filename.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "ProductCategoriesImportCsvTemplateResult", + "description": "The productCategoriesImportCsvTemplate query's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "productCategoriesSpecificationValuesImportCsvSchema", + "description": "Query the CSV schema for product categories specification values. Returns the JSON schema for validation.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "ProductCategoriesSpecificationValuesImportCsvSchemaResult", + "description": "The productCategoriesSpecificationValuesImportCsvSchema query's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "productCategoriesSpecificationValuesImportCsvTemplate", + "description": "Query the CSV template for product categories specification values. Returns the template string and filename.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "ProductCategoriesSpecificationValuesImportCsvTemplateResult", + "description": "The productCategoriesSpecificationValuesImportCsvTemplate query's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "propertyProductsImportCsvSchema", + "description": "Query the CSV schema for property products. Returns the JSON schema for validation.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "PropertyProductsImportCsvSchemaResult", + "description": "The propertyProductsImportCsvSchema query's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "propertyProductsImportCsvTemplate", + "description": "Query the CSV template for property products. Returns the template string and filename.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "PropertyProductsImportCsvTemplateResult", + "description": "The propertyProductsImportCsvTemplate query's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "productVersion", + "description": "Get a productVersion by its ID.", + "args": [ + { + "name": "id", + "description": "The productVersion's unique ID.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalID", + "description": "A global ID, containing both the type and the identifier of the entity it represents.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "OBJECT", + "name": "ProductVersion", + "description": "A product version represents a specific version of a product offering.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "productVersions", + "description": "Query paginated list of product versions.", + "args": [ + { + "name": "first", + "description": "Returns up to the first `n` elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "last", + "description": "Returns up to the last `n` elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "after", + "description": "Returns the elements that come after the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "before", + "description": "Returns the elements that come before the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "filter", + "description": "Filter the results.", + "type": { + "kind": "INPUT_OBJECT", + "name": "ProductVersionFilter", + "description": "Available filters for product versions.", + "ofType": null, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "ProductVersionConnection", + "description": "To paginate through product versions.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "productVersionsImportCsvSchema", + "description": "Query the CSV schema for product versions. Returns the JSON schema for validation.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "ProductVersionsImportCsvSchemaResult", + "description": "The productVersionsImportCsvSchema query's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "productVersionsImportCsvTemplate", + "description": "Query the CSV template for product versions. Returns the template string and filename.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "ProductVersionsImportCsvTemplateResult", + "description": "The productVersionsImportCsvTemplate query's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "usageAllowancesImportCsvSchema", + "description": "Query the CSV schema for usage allowances. Returns the JSON schema for validation.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "UsageAllowancesImportCsvSchemaResult", + "description": "The usageAllowancesImportCsvSchema query's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "usageAllowancesImportCsvTemplate", + "description": "Query the CSV template for usage allowances. Returns the template string and filename.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "UsageAllowancesImportCsvTemplateResult", + "description": "The usageAllowancesImportCsvTemplate query's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "usageAllowancePricesImportCsvSchema", + "description": "Query the CSV schema for usage allowance prices. Returns the JSON schema for validation.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "UsageAllowancePricesImportCsvSchemaResult", + "description": "The usageAllowancePricesImportCsvSchema query's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "usageAllowancePricesImportCsvTemplate", + "description": "Query the CSV template for usage allowance prices. Returns the template string and filename.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "UsageAllowancePricesImportCsvTemplateResult", + "description": "The usageAllowancePricesImportCsvTemplate query's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "accountsInNetworkSites", + "description": "Query accounts in network sites by traversing device hierarchy.", + "args": [ + { + "name": "filters", + "description": "Filters to apply to the query.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "AccountsInNetworkSitesQueryFilters", + "description": "Filters for the accounts in network sites query.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "first", + "description": "Returns up to the first `n` elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "last", + "description": "Returns up to the last `n` elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "after", + "description": "Returns the elements that come after the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "before", + "description": "Returns the elements that come before the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "AccountInNetworkSiteConnection", + "description": "Connection type for accounts found in network sites.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "incident", + "description": "Query an incident by unique ID.", + "args": [ + { + "name": "id", + "description": "The incident's unique ID.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalID", + "description": "A global ID, containing both the type and the identifier of the entity it represents.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "Incident", + "description": "Incident managed by the provisioning-service.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "incidents", + "description": "Query a paginated list of incidents.", + "args": [ + { + "name": "first", + "description": "Returns up to the first `n` elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "last", + "description": "Returns up to the last `n` elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "after", + "description": "Returns the elements that come after the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "before", + "description": "Returns the elements that come before the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "filters", + "description": "Filters the results.", + "type": { + "kind": "INPUT_OBJECT", + "name": "IncidentFilter", + "description": "Available filters for incidents.", + "ofType": null, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "IncidentConnection", + "description": "To paginate through multiple incidents.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "networkSite", + "description": "Query a network site by unique ID.", + "args": [ + { + "name": "id", + "description": "The network site's unique ID.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalID", + "description": "A global ID, containing both the type and the identifier of the entity it represents.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "OBJECT", + "name": "NetworkSite", + "description": "Network site managed by the provisioning-service.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "incidentProcedureTemplate", + "description": "Query an incident procedure template.", + "args": [ + { + "name": "id", + "description": "The incident procedure template's unique ID.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalID", + "description": "A global ID, containing both the type and the identifier of the entity it represents.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "IncidentProcedureTemplate", + "description": "Definition of an incident procedure template.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "incidentProcedureTemplates", + "description": "Query a paginated list of incident procedure templates.", + "args": [ + { + "name": "first", + "description": "Returns up to the first `n` elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "last", + "description": "Returns up to the last `n` elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "after", + "description": "Returns the elements that come after the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "before", + "description": "Returns the elements that come before the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "IncidentProcedureTemplateConnection", + "description": "To paginate through incident procedure templates.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "ticketCategories", + "description": "Query paginated list of ticket categories.", + "args": [ + { + "name": "first", + "description": "Returns up to the first `n` elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "last", + "description": "Returns up to the last `n` elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "after", + "description": "Returns the elements that come after the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "before", + "description": "Returns the elements that come before the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "orderBy", + "description": "Orders the results by the given fields.", + "type": { + "kind": "LIST", + "name": null, + "description": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "TicketCategoryOrderBy", + "description": "To order ticket categories.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "filter", + "description": "Filters the results.", + "type": { + "kind": "INPUT_OBJECT", + "name": "TicketCategoryFilter", + "description": "Available filters for ticket categories.", + "ofType": null, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "TicketCategoryConnection", + "description": "To paginate through ticket categories.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "ticket", + "description": "Query a ticket by unique ID.", + "args": [ + { + "name": "id", + "description": "The ticket's unique ID.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalID", + "description": "A global ID, containing both the type and the identifier of the entity it represents.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "OBJECT", + "name": "Ticket", + "description": "A ticket managed by the ticketing-service.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "tickets", + "description": "Query paginated list of tickets.", + "args": [ + { + "name": "first", + "description": "Returns up to the first `n` elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "last", + "description": "Returns up to the last `n` elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "after", + "description": "Returns the elements that come after the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "before", + "description": "Returns the elements that come before the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "orderBy", + "description": "Orders the results by the given fields.", + "type": { + "kind": "LIST", + "name": null, + "description": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "TicketOrderBy", + "description": "To order tickets.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "filter", + "description": "Filters the results.", + "type": { + "kind": "INPUT_OBJECT", + "name": "TicketFilter", + "description": "Available filters for tickets.", + "ofType": null, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "TicketConnection", + "description": "To paginate through tickets.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "ticketCustomStatuses", + "description": "Query paginated list of ticket custom statuses.", + "args": [ + { + "name": "first", + "description": "Returns up to the first `n` elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "last", + "description": "Returns up to the last `n` elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "after", + "description": "Returns the elements that come after the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "before", + "description": "Returns the elements that come before the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "orderBy", + "description": "Orders the results by the given fields.", + "type": { + "kind": "LIST", + "name": null, + "description": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "TicketCustomStatusOrderBy", + "description": "To order ticket custom statuses.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "filter", + "description": "Filters the results.", + "type": { + "kind": "INPUT_OBJECT", + "name": "TicketCustomStatusFilter", + "description": "The ticket custom status's available fields to filter by.", + "ofType": null, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "CustomStatusConnection", + "description": "To paginate through custom statuses.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "ticketMailboxes", + "description": "Query paginated list of ticket mailboxes.", + "args": [ + { + "name": "first", + "description": "Returns up to the first `n` elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "last", + "description": "Returns up to the last `n` elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "after", + "description": "Returns the elements that come after the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "before", + "description": "Returns the elements that come before the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "TicketMailboxConnection", + "description": "To paginate through ticket mailboxes.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "ticketTypes", + "description": "Query paginated list of ticket types.", + "args": [ + { + "name": "first", + "description": "Returns up to the first `n` elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "last", + "description": "Returns up to the last `n` elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "after", + "description": "Returns the elements that come after the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "before", + "description": "Returns the elements that come before the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "orderBy", + "description": "Orders the results by the given fields.", + "type": { + "kind": "LIST", + "name": null, + "description": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "TicketTypeOrderBy", + "description": "To order ticket types.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "filter", + "description": "Filters the results.", + "type": { + "kind": "INPUT_OBJECT", + "name": "TicketTypeFilter", + "description": "Available filters for ticket types.", + "ofType": null, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "TicketTypeConnection", + "description": "To paginate through ticket types.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "ticketAttachmentsImportCsvSchema", + "description": "Query the CSV schema for ticket attachments.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "TicketAttachmentsImportCsvSchemaResult", + "description": "The ticketAttachmentsImportCsvSchema query's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "ticketAttachmentsImportCsvTemplate", + "description": "Query the CSV template for ticket attachments.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "TicketAttachmentsImportCsvTemplateResult", + "description": "The ticketAttachmentsImportCsvTemplate query's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "ticketCategoriesImportCsvSchema", + "description": "Query the CSV schema for ticket categories.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "TicketCategoriesImportCsvSchemaResult", + "description": "The ticketCategoriesImportCsvSchema query's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "ticketCategoriesImportCsvTemplate", + "description": "Query the CSV template for ticket categories.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "TicketCategoriesImportCsvTemplateResult", + "description": "The ticketCategoriesImportCsvTemplate query's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "ticketClosedReasonsImportCsvSchema", + "description": "Query the CSV schema for ticket closed reasons.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "TicketClosedReasonsImportCsvSchemaResult", + "description": "The ticketClosedReasonsImportCsvSchema query's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "ticketClosedReasonsImportCsvTemplate", + "description": "Query the CSV template for ticket closed reasons.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "TicketClosedReasonsImportCsvTemplateResult", + "description": "The ticketClosedReasonsImportCsvTemplate query's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "ticketCommentsImportCsvSchema", + "description": "Query the CSV schema for ticket comments.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "TicketCommentsImportCsvSchemaResult", + "description": "The ticketCommentsImportCsvSchema query's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "ticketCommentsImportCsvTemplate", + "description": "Query the CSV template for ticket comments.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "TicketCommentsImportCsvTemplateResult", + "description": "The ticketCommentsImportCsvTemplate query's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "ticketQuickRepliesImportCsvSchema", + "description": "Query the CSV schema for ticket quick replies.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "TicketQuickRepliesImportCsvSchemaResult", + "description": "The ticketQuickRepliesImportCsvSchema query's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "ticketQuickRepliesImportCsvTemplate", + "description": "Query the CSV template for ticket quick replies.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "TicketQuickRepliesImportCsvTemplateResult", + "description": "The ticketQuickRepliesImportCsvTemplate query's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "ticketsImportCsvSchema", + "description": "Query the CSV schema for tickets.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "TicketsImportCsvSchemaResult", + "description": "The ticketsImportCsvSchema query's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "ticketsImportCsvTemplate", + "description": "Query the CSV template for tickets.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "TicketsImportCsvTemplateResult", + "description": "The ticketsImportCsvTemplate query's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "ticketTypesImportCsvSchema", + "description": "Query the CSV schema for ticket types.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "TicketTypesImportCsvSchemaResult", + "description": "The ticketTypesImportCsvSchema query's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "ticketTypesImportCsvTemplate", + "description": "Query the CSV template for ticket types.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "TicketTypesImportCsvTemplateResult", + "description": "The ticketTypesImportCsvTemplate query's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "users", + "description": "Query a paginated list of users.", + "args": [ + { + "name": "first", + "description": "Returns up to the first `n` elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "last", + "description": "Returns up to the last `n` elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "after", + "description": "Returns the elements that come after the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "before", + "description": "Returns the elements that come before the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "UserConnection", + "description": "To paginate through multiple users.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "user", + "description": "Query a user by unique ID.", + "args": [ + { + "name": "id", + "description": "The user's unique ID.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalID", + "description": "A global ID, containing both the type and the identifier of the entity it represents.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "OBJECT", + "name": "User", + "description": "A user managed by the user-service.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "webhook", + "description": "Query a webhook by unique ID.", + "args": [ + { + "name": "id", + "description": "The webhook's unique ID.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalID", + "description": "A global ID, containing both the type and the identifier of the entity it represents.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "OBJECT", + "name": "Webhook", + "description": "Webhooks can be used to automatically send real-time data to another system when specific events occur in gaiia.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "webhookExecution", + "description": "Query a webhook execution by unique ID.", + "args": [ + { + "name": "id", + "description": "The webhook execution's unique ID.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalID", + "description": "A global ID, containing both the type and the identifier of the entity it represents.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "OBJECT", + "name": "WebhookExecution", + "description": "The execution when a webhook is invoked.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "webhooks", + "description": "Query a paginated list of webhooks. The arguments `first` and `last` are mutually exclusive; only one of them can be set at a time. The same applies to `after` and `before`.", + "args": [ + { + "name": "first", + "description": "Returns up to the first `n` elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "last", + "description": "Returns up to the last `n` elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "after", + "description": "Returns the elements that come after the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "before", + "description": "Returns the elements that come before the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "orderBy", + "description": "Orders the results by the given fields.", + "type": { + "kind": "LIST", + "name": null, + "description": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "WebhookOrderBy", + "description": "To order webhooks.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "filter", + "description": "Filters the results.", + "type": { + "kind": "INPUT_OBJECT", + "name": "WebhookFilter", + "description": "Available filters for webhooks.", + "ofType": null, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "WebhookConnection", + "description": "To paginate through webhooks.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "workflowExecution", + "description": "Query a workflow execution by unique ID.", + "args": [ + { + "name": "id", + "description": "The workflow execution's unique ID.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalID", + "description": "A global ID, containing both the type and the identifier of the entity it represents.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "OBJECT", + "name": "WorkflowExecution", + "description": "The workflow execution data.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "workflowExecutions", + "description": "Query a paginated list of workflow executions. The arguments `first` and `last` are mutually exclusive; only one of them can be set at a time. The same applies to `after` and `before`.", + "args": [ + { + "name": "first", + "description": "Returns up to the first `n` elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "last", + "description": "Returns up to the last `n` elements from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "after", + "description": "Returns the elements that come after the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "before", + "description": "Returns the elements that come before the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "filter", + "description": "Filters the results.", + "type": { + "kind": "INPUT_OBJECT", + "name": "WorkflowExecutionFilter", + "description": "Available filters for workflow executions.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "orderBy", + "description": "Orders the results by the given fields.", + "type": { + "kind": "LIST", + "name": null, + "description": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "WorkflowExecutionOrderBy", + "description": "To order workflow executions.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "WorkflowExecutionConnection", + "description": "To paginate through workflow executions.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "workflow", + "description": "Query a workflow by unique ID.", + "args": [ + { + "name": "id", + "description": "The workflow's unique ID.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalID", + "description": "A global ID, containing both the type and the identifier of the entity it represents.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "OBJECT", + "name": "Workflow", + "description": "Workflows can be used to automate tasks and processes.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "availableTechniciansForWorkOrderAndStartDate", + "description": "Query a paginated list of technicians available for a work order on a specified date.", + "args": [ + { + "name": "first", + "description": "Return up to the first `n` technicians from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "last", + "description": "Returns up to the last `n` technicians from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "after", + "description": "Returns the technicians that come after the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "before", + "description": "Returns the technicians that come before the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "orderBy", + "description": "Orders the results by the given fields.", + "type": { + "kind": "LIST", + "name": null, + "description": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "TechnicianOrderBy", + "description": "To order technicians.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "filter", + "description": "Filters the results.", + "type": { + "kind": "INPUT_OBJECT", + "name": "TechnicianFilter", + "description": "Available filters for technicians.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "startDate", + "description": "The start date of the work order to search for technicians.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "SCALAR", + "name": "DateTime", + "description": "A date and time, represented as an ISO-8601 string.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "workOrderId", + "description": "The work order's ID.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "SCALAR", + "name": "GlobalID", + "description": "A global ID, containing both the type and the identifier of the entity it represents.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "TechnicianConnection", + "description": "To paginate through multiple technicians.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "defaultAppointmentConfig", + "description": "Retrieve the default appointment configuration.", + "args": [], + "type": { + "kind": "OBJECT", + "name": "AppointmentConfig", + "description": "Configuration for appointment availability settings.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "technicians", + "description": "Query a paginated list of technicians.", + "args": [ + { + "name": "first", + "description": "Return up to the first `n` technicians from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "last", + "description": "Returns up to the last `n` technicians from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "after", + "description": "Returns the technicians that come after the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "before", + "description": "Returns the technicians that come before the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "orderBy", + "description": "Orders the results by the given fields.", + "type": { + "kind": "LIST", + "name": null, + "description": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "TechnicianOrderBy", + "description": "To order technicians.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "filter", + "description": "Filters the results.", + "type": { + "kind": "INPUT_OBJECT", + "name": "TechnicianFilter", + "description": "Available filters for technicians.", + "ofType": null, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "TechnicianConnection", + "description": "To paginate through multiple technicians.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "workOrders", + "description": "Query a paginated list of work orders.", + "args": [ + { + "name": "first", + "description": "Return up to the first `n` work orders from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "last", + "description": "Returns up to the last `n` work orders from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "after", + "description": "Returns the work orders that come after the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "before", + "description": "Returns the work orders that come before the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "orderBy", + "description": "Orders the results by the given fields.", + "type": { + "kind": "LIST", + "name": null, + "description": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "WorkOrderOrderBy", + "description": "To order work orders.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "filter", + "description": "Filters the results.", + "type": { + "kind": "INPUT_OBJECT", + "name": "WorkOrderFilter", + "description": "Available filters for work orders.", + "ofType": null, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "WorkOrderConnection", + "description": "To paginate through work orders.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "workforceOverviewStatistics", + "description": "Query workforce overview statistics.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "WorkforceOverviewStatisticsQueryResult", + "description": "Contains workforce overview statistics.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "workTypes", + "description": "Query a paginated list of work types.", + "args": [ + { + "name": "first", + "description": "Return up to the first `n` work types from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "last", + "description": "Returns up to the last `n` work types from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "after", + "description": "Returns the work types that come after the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "before", + "description": "Returns the work types that come before the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "orderBy", + "description": "Orders the results by the given fields.", + "type": { + "kind": "LIST", + "name": null, + "description": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "WorkTypeOrderBy", + "description": "To order work types.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "filter", + "description": "Filters the results.", + "type": { + "kind": "INPUT_OBJECT", + "name": "WorkTypeFilter", + "description": "Available filters for work types.", + "ofType": null, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "WorkTypeConnection", + "description": "To paginate through multiple work types.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "workTypeImportCsvTemplate", + "description": "Query the CSV template for work type imports.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "WorkTypeImportCsvTemplateResult", + "description": "The workTypeImportCsvTemplate query's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "workTypeImportCsvDocumentation", + "description": "Query the CSV documentation for work type imports.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "WorkTypeImportCsvDocumentationResult", + "description": "The workTypeImportCsvDocumentation query's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "workTypeProcedureImportCsvTemplate", + "description": "Query the CSV template for work type procedure imports.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "WorkTypeProcedureImportCsvTemplateResult", + "description": "The workTypeProcedureImportCsvTemplate query's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "workTypeProcedureImportCsvDocumentation", + "description": "Query the CSV documentation for work type procedure imports.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "WorkTypeProcedureImportCsvDocumentationResult", + "description": "The workTypeProcedureImportCsvDocumentation query's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "workOrderImportCsvTemplate", + "description": "Query the CSV template for work order imports.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "WorkOrderImportCsvTemplateResult", + "description": "The workOrderImportCsvTemplate query's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "workOrderImportCsvDocumentation", + "description": "Query the CSV documentation for work order imports.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "WorkOrderImportCsvDocumentationResult", + "description": "The workOrderImportCsvDocumentation query's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "workOrderStatusAnalytics", + "description": "Query work order status analytics with filters for coverage area, work type, and date range.", + "args": [ + { + "name": "input", + "description": "Input filters for the analytics query.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "WorkOrderStatusAnalyticsInput", + "description": "Input for work order status analytics query.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "WorkOrderStatusAnalyticsResult", + "description": "Contains work order status analytics data.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "workOrderCustomStatusCategoryAnalytics", + "description": "Query work order custom status category analytics with filters for coverage area, work type, and date range.", + "args": [ + { + "name": "input", + "description": "Input filters for the analytics query.", + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "WorkOrderCustomStatusCategoryAnalyticsInput", + "description": "Input for work order custom status category analytics query.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "WorkOrderCustomStatusCategoryAnalyticsResult", + "description": "Contains work order custom status category analytics data.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "workOrderCustomStatuses", + "description": "Query a paginated list of work order custom statuses.", + "args": [ + { + "name": "first", + "description": "Return up to the first `n` work order custom statuses from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "last", + "description": "Returns up to the last `n` work order custom statuses from the list.", + "type": { + "kind": "SCALAR", + "name": "Int", + "description": "The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "after", + "description": "Returns the work order custom statuses that come after the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "before", + "description": "Returns the work order custom statuses that come before the specified cursor.", + "type": { + "kind": "SCALAR", + "name": "String", + "description": "The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.", + "ofType": null, + "__typename": "__Type" + } + }, + { + "name": "orderBy", + "description": "Orders the results by the given fields.", + "type": { + "kind": "LIST", + "name": null, + "description": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "INPUT_OBJECT", + "name": "WorkOrderCustomStatusOrderBy", + "description": "To order work order custom statuses.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "filter", + "description": "Filters the results.", + "type": { + "kind": "INPUT_OBJECT", + "name": "WorkOrderCustomStatusFilter", + "description": "Filter work order custom statuses.", + "ofType": null, + "__typename": "__Type" + } + } + ], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "WorkOrderCustomStatusConnection", + "description": "To paginate through multiple work order custom statuses.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "workOrderStatusCountsByCategory", + "description": "Query work order counts grouped by custom status category.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "WorkOrderStatusCountsByCategoryResult", + "description": "The workOrderStatusCountsByCategory query's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "technicianImportCsvTemplate", + "description": "Query the CSV template for technician imports.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "TechnicianImportCsvTemplateResult", + "description": "The technicianImportCsvTemplate query's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "technicianImportCsvDocumentation", + "description": "Query the CSV documentation for technician imports.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "TechnicianImportCsvDocumentationResult", + "description": "The technicianImportCsvDocumentation query's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "technicianTeamImportCsvTemplate", + "description": "Query the CSV template for technician team imports.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "TechnicianTeamImportCsvTemplateResult", + "description": "The technicianTeamImportCsvTemplate query's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "technicianTeamImportCsvDocumentation", + "description": "Query the CSV documentation for technician team imports.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "TechnicianTeamImportCsvDocumentationResult", + "description": "The technicianTeamImportCsvDocumentation query's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "timeBlockerImportCsvTemplate", + "description": "Query the CSV template for time blocker imports.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "TimeBlockerImportCsvTemplateResult", + "description": "The timeBlockerImportCsvTemplate query's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "timeBlockerImportCsvDocumentation", + "description": "Query the CSV documentation for time blocker imports.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "TimeBlockerImportCsvDocumentationResult", + "description": "The timeBlockerImportCsvDocumentation query's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "scheduleTemplateImportCsvTemplate", + "description": "Query the CSV template for schedule template imports.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "ScheduleTemplateImportCsvTemplateResult", + "description": "The scheduleTemplateImportCsvTemplate query's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "scheduleTemplateImportCsvDocumentation", + "description": "Query the CSV documentation for schedule template imports.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "ScheduleTemplateImportCsvDocumentationResult", + "description": "The scheduleTemplateImportCsvDocumentation query's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "shiftAssignationImportCsvTemplate", + "description": "Query the CSV template for shift assignation imports.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "ShiftAssignationImportCsvTemplateResult", + "description": "The shiftAssignationImportCsvTemplate query's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + }, + { + "name": "shiftAssignationImportCsvDocumentation", + "description": "Query the CSV documentation for shift assignation imports.", + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "description": null, + "ofType": { + "kind": "OBJECT", + "name": "ShiftAssignationImportCsvDocumentationResult", + "description": "The shiftAssignationImportCsvDocumentation query's result.", + "ofType": null, + "__typename": "__Type" + }, + "__typename": "__Type" + } + } +]